[Archivo] Matemáticas puras, física, química, etc.: problemas de entrenamiento cerebral no relacionados con el comercio de ninguna manera - página 235

 

No confunda el operando con la operación. En nuestro caso.

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

Los cuatro son operaciones, no operandos.

MetaDriver, no creo que haya que descartar todas las condiciones menos una. No es tan sencillo, es Pi. Y de todos modos, me estás aburriendo con tu recursividad...

Por cierto, aquí está el primer bucle que se puede comprobar con el compilador electrónico junto con la salida de toda la información de depuración necesaria. C-4 dice que el bucle se ejecutará una sola vez (¿por qué una sola vez?), mientras que a mí me parece que se ejecutará muchas veces.

 
Mathemat >>:

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

de Strausrup ("The C++ Programming Language", capítulo "Reference Manual", sección 14 (Summary of Syntax)):

| выражение:

| терм

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

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

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

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

| выражение:

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


En azul, he resaltado lo que hay que mirar.

 
Mathemat >>:

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

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

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

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

Tendrás que hacerlo.

Busca más descripciones del operador coma en la web. Para su completa satisfacción (:flecha flotante:).

 
Mathemat >>:

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

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

Eso estaría bien. Tengo algunos, pero no quiero descargar la memoria para VS.

(Tengo muchos programas en ejecución, toda la memoria está llena. Todavía estoy trabajando en el sitio web de estiramiento y techo:)

 

Bien, esperaremos hasta mañana. Miraré el operador coma. El criterio seguirá siendo la práctica, hasta la aguja flotante.

 
Mathemat >>:

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

Bien, hagámoslo mañana. :)

 
Aquí tienes un enlace por ahora: Operador coma en una condición de bucle for
 

No pude resistirme a hacer un proyecto en el estudio. Después de la siguiente reforma (ver más abajo) el código funciona:
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;
}
A continuación, voy a deshacerme de la última for'a, sustituyéndola también por while.  
Entonces podemos tratar poco a poco el algoritmo, sustituyendo los identificadores por otros más significativos en el camino.

 
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[])
{

¡para (;(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;
}
devuelve 0;
}

¡¡¡Funcionó!!!
 

¿Y qué, sale Pi, lo hace?