[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 235

 

Non confondere l'operando con l'operazione! Nel nostro caso.

d+=f[b]*a,f[b]=d%--g,d/=g--,--b

Tutti e quattro sono operazioni, non operandi!

MetaDriver, non credo che tutte le condizioni tranne una debbano essere scartate. Non è così semplice, è Pi. E comunque, mi stai annoiando con la tua ricorsione...

A proposito, ecco il primo ciclo che può essere controllato con l'e-compiler insieme all'output di tutte le informazioni di debug necessarie. C-4 dice che il ciclo sarà eseguito una sola volta (perché una sola volta?), mentre a me sembra che sarà eseguito molte volte.

 
Mathemat >>:

Дык операнд, а не операция!

da Strausrup ("The C++ Programming Language", capitolo "Reference Manual", sezione 14 (Summary of Syntax)):

| выражение:

| терм

| выражение бинарная_операция выражение

| выражение ? выражение : выражение

| список выражений

| список выражений:

| выражение:

| список_выражений, выражение


In blu, ho evidenziato cosa guardare.

 
Mathemat >>:

Дык не путай операнд и операцию! В нашем случае

все четыре - операции, а не операнды!

1) MetaDriver, не верю, что все условия окромя одного придецца отбросить. Не такое оно простое, это Pi. И вообще, запылил мне мозги своей рекурсией...

Кстати, вот самый первый цикл можно и проверить, у кого компилятор е, вместе с выводом нужной отладочной инфы. С-4 говорит, что цикл выполнится только 1 раз (а почему даже 1 раз-то выполнится?), а мне кажется, что много раз.

Dovrai farlo tu!

Cercate altre descrizioni dell'operatore virgola sul web. Per la vostra completa soddisfazione (:floating arrow:).

 
Mathemat >>:

1) Кстати, вот самый первый цикл можно и проверить, у кого компилятор е, вместе с выводом нужной отладочной инфы.

2) С-4 говорит, что цикл выполнится только 1 раз (а почему даже 1 раз-то выполнится?), а мне кажется, что много раз.

Sarebbe bello. Ne ho un po', ma non voglio scaricare la memoria per VS.

(Ho molti programmi in esecuzione, tutta la memoria è piena. Sto ancora lavorando sul sito web dello stretching e del soffitto:)

 

Ok, aspetteremo fino a domani. Guarderò l'operatore virgola. Il criterio sarà ancora la pratica - fino all'ago galleggiante.

 
Mathemat >>:

Ладно, погодим до завтра. Я посмотрю оператор запятой. Критерием все равно будет практика.

OK, facciamolo domani. :)

 
 

Non ho potuto resistere a fare un progetto in studio. Dopo la prossima riforma (vedi sotto) il codice funziona:
int a=10000, b, c=2800, d, e, f[2801], g;

int _tmain(int argc, _TCHAR* argv[]) // Вполне заменяет классический main()
{
   while(( b- c)!=0)  
   {
     f[ b++]= a/5;
   }
   while( g= c*2)
   {
      for( b= c; d+= f[ b]* a, f[ b]= d%-- g, d/= g--,-- b; d*= b);
      
      c-=14;
      printf("%.4d", e+ d/ a);
      e= d% a;
  
      d=0;
  }
   getch(); // Добавил, чтоб тормозить окно от преждевременного захлопывания.
return 0;
}
Poi, mi sbarazzerò dell'ultima for'a, sostituendola anche con while.  
Poi possiamo trattare lentamente l'algoritmo, sostituendo gli identificatori con altri più significativi lungo la strada.

 
C-4 >>:

int a=10000,b,c=2800,d,e,f[2801],g;
int main(void){
for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}

int a=10000, c=2800, b, d, e, g;
int f[2801];

int main(int argc, char* argv[])
{

per (;(b-c)!=0;b++)
{
f[b]=a/5;
}


for(d=0;c>0;)
{
g=c*2-1;
e=d%a;
for(b=c; b>0;)
{
d=d*b;
d=d+f[b]*a;
f[b]=d%g;
d=d/g;
g=g-2;
b--;
}

printf("%.4d",e+d/a);
c=c-14;
}
ritorno 0;
}

Ha funzionato!!!
 

E che cosa, Pi viene fuori, vero?