Autor Tema: hacer un programa que imprima la suma de los 5 primero numeros php  (Leído 46049 veces)

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
No, ya yo entendi que era, estaba imprimiendo después de incrementar

Código: [Seleccionar]
while ($num <=5) {
      $suma = $suma + $num;
      $num = $num + 1;
      echo "$num.<br>";


Este es el código que debe de ir

 
Código: [Seleccionar]
while ($num <=5) {
      $suma = $suma + $num;
      echo "$num.<br>";
      $num = $num + 1;
   

Fijate que ahi si me evalua las dos condiciones y cuando llega 5=5 me imprime porque deja de cumpirse la condición
« Última modificación: 12 de Septiembre 2014, 18:12 por Alex Rodríguez »
Codifica tu vida

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #1 en: 09 de Agosto 2012, 17:29 »
1.- No se si rebisaste el mensaje ke te deje en el tema ke iniciaste sobre:Diseño Extructurado de algoritmo. ahi te recomiendo que uses las pruebas de escritorio                    pruebas de escritorio                    pruebas de escritorio                             pruebas de escritorio, para que te des cuenta, que hace el codigo, en cual esta el problema y saber en que parte se debe cambiar con cierto fundamento y no cambiarlo al azar.
2.- Con respecto a los codigos a mi parecer estan bien, por que la respuesta es 15, claro si se trata de 5 primero numeros.
3.- Ya que te diste cuenta de que se puede hacer de diferentes formas, lo que debes buscar ahora es hacer mas robusto el codigo. Por ejemplo ese aplicación lo distribulles a una escuela, y el alumno no kisiera solo sumar los 5 primero, y quisiera los 6 primeros, no creo que le digan al alumno: que tenemos que llamar al programador para que lo cambie.
Osea lo que te recomiendo es que despues de que practiques un codigo, entiendas que haces, lo que tienes que buscar luego es tratar de simular que pasaria si lo pones en práctica en la vida real, que pasaria si le das a cualquier persona que no sepa nada de programación que dificultades  se presentaria, no se si me hago entender, osea que te pongas en el papel del usuario(una persona comun y corriente).
4.- por ejemplo yo te lo pondria asi:
el algoritmo seria asi:
1. INICIO
2.Variables: //declarando variables
   num;
   suma=0, contador=1; //suma inicializamos con cero y el contador con 1
3.pedir valor para la variable num; //cantidad de numero a sumar ya sea 5, 6 o 7
//maso menos el while seria asi
//while(contador<=num)
4. mientras(contador<=num) hacer
   4.1. suma=suma+contador;
   4.2.contador++; //contador=contador+1
   /*algo opcional cuando la cantidad de numeros es pequeña podrias poner lo siguiente
   4.3. mostrar contador "+"*///opcional
  //fin del cuerpo del bucle
5.mostrar suma; //mostrar en pantalla
6.fin

5.- otra forma de hacer el codigo seria asi

1.inicio
2. declarar variables: suma,numero;
3. pedir valor para la variable numero; // ya sea 5 o 6 o el que quieras
4. suma=((numero)*(numero+1)) / 2;
6. mostrar suma;
7. fin
Por que al momento de hacer la suma de los 1000 primero numeros, la pc haria 1000 veces las operaciones en el codigo que propusiste, mientras que en este codigo no importa la cantidad que se ponga solo realiza una sola vez la operación.
Siempre buscar la eficacia en el código. No se si me hago entender.
No se e opinen, siempre abierto a criticas.
« Última modificación: 09 de Agosto 2012, 17:31 por slif33r »

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #2 en: 09 de Agosto 2012, 21:04 »
Entiendo lo que dices.

Sobre las pruebas de escritorio te puedo decir que el primero esta mal porque cuando el genera los número, la sumatoria es incorrecta y sobre el segundo, no me gusta la forma (es un poco confusa), lo ideal es generar el numero luego guardar la sumatoria y luego imprimirlo.

En cuanto lo otro pues si creo que lo idea es pedir que el usuario ingrese el número pero quiero hacerlo por paso.
Codifica tu vida

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #3 en: 09 de Agosto 2012, 23:40 »
En cuanto a la idea de mejorar, no te digo que debes hacer una aplicación asi con todas las opciones y bien implementado, lo que queria decir es que una vez que hagas el ejemplo o el problema que te dan, y identifiques como se puede llegar al resultado requerido lo realizas asi como dices por pasos, luego realizar el mismo  ejemplo o problema tratando de mejorarlo.
No se si te diste cuenta de los algoritmos que te propuse en los puntos 4 y 5.
No se por que dices que el primer codigo  esta mal la sumatoria es 15 y es correcta
<?php
$num = 1;
$suma = 0;

 while ($num <=5) {
      $suma = $suma + $num;
      $num = $num + 1;
      echo "$num.<br>";
   
   
    }
     echo "La sumatoria es: $suma";
   
   
?>
en cuanto al segundo la sumatoria sale 21, se tiene que hacer una pequeña corrección en la condición:
while($num =<5), quitarle el signo igual(=), te pido sin que te molestes que lo revises un poco vale.
quedaria asi el codigo:
<?php
$num = 0;
$suma = 0;

 while ($num <5) {
      $num = $num + 1;
      $suma = $suma + $num;
      echo "$num.<br>";
   
   
    }
     echo "La sumatoria es: $suma";
   
   
?>
« Última modificación: 10 de Agosto 2012, 18:19 por slif33r »

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #4 en: 09 de Agosto 2012, 23:50 »
Entiendo lo que dices.

Sobre las pruebas de escritorio te puedo decir que el primero esta mal porque cuando el genera los número, la sumatoria es incorrecta y sobre el segundo, no me gusta la forma (es un poco confusa), lo ideal es generar el numero luego guardar la sumatoria y luego imprimirlo.

En cuanto lo otro pues si creo que lo idea es pedir que el usuario ingrese el número pero quiero hacerlo por paso.
Y el cambio que ves que se realiza en ambos codigos pareciera que solo cambia el orden de las sentenciaspero ese cambio se realiza en consecuencia en como se inicializa la variable num.
En el primero creo inicializa en uno num=1;
En el segundo con cero num=0;

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #5 en: 10 de Agosto 2012, 04:12 »
Ok, entonces porque si pongo  while $numero<=5 ¿esta mal? imprime 4 y cuando llegue a 5 me evalue entonces la condicion de menor se deja de cumplir y pasa la de igual.... ¿pero porque se incrementa? no deberia...
Codifica tu vida

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #6 en: 10 de Agosto 2012, 15:07 »
Ok, entonces porque si pongo  while $numero<=5 ¿esta mal? imprime 4 y cuando llegue a 5 me evalue entonces la condicion de menor se deja de cumplir y pasa la de igual.... ¿pero porque se incrementa? no deberia...
EJEMPLO:PROBANDO(PRUEBAS) HASTA 2
1. while ($num <=2) {
     1.1 $num = $num + 1;
     1.2$suma = $suma + $num;
supongamos que num =0 y suma=0
CASO I: cuando num=0
1. while(0<=2)  //verdadero
    1.1. num=0+1=1
    1.2. suma=0+1=1     
   //volvemos al punto 1
----------------------------------------------------------
CASO II: cuando num=1
1.while(1<=2) //verdad
   1.1. num=1+1=2
   1.2. suma=1+2=3
   //volvemos al punto 1
  //lo ideal es que se quede en este caso y no pase a la siguiente,
  //pero como la condiciòn sigue siendo verdadera realiza un caso mas.

---------------------------------------------------------
CASO III: cuando num=2
1.while(2<=2) //verdad
   1.1.num=2+1=3
   1.2.suma=3+3=6
   //volvemos al punto 1
  //para que este caso no se ejecute en necesario quitarle el signo "="
  //a la condiciòn del while(num<2).

---------------------------------------------------------
CASO IV: cuando num=3
1.while(3<=2)  //falso, acaba el bucle
y despues imprime suma que seria 6
Lo cual esta mal la respuesta solo deberia salir 3
no se si te das cuenta donde esta el problema??8)
 
   
 
« Última modificación: 10 de Agosto 2012, 18:33 por slif33r »

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #7 en: 10 de Agosto 2012, 20:38 »
No me di cuenta de que la respuesta la habia colocado al principio  porque era muy tarde y tenia sueño.  :P

La cuestión es la siguiente,  la condicion de menor se ejecuta hasta que llegue a 4 para luego incrementarlo y luego me evalua si 5=5, lo imprime y sale del bucle sin volverlo a incrementar.


Código: [Seleccionar]
while ($num <=5) {
      $suma = $suma + $num;
      echo "$num.<br>";
      $num = $num + 1;
Codifica tu vida

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #8 en: 10 de Agosto 2012, 21:05 »
No me di cuenta de que la respuesta la habia colocado al principio  porque era muy tarde y tenia sueño.  :P

La cuestión es la siguiente,  la condicion de menor se ejecuta hasta que llegue a 4 para luego incrementarlo y luego me evalua si 5=5, lo imprime y sale del bucle sin volverlo a incrementar.


Código: [Seleccionar]
while ($num <=5) {
      $suma = $suma + $num;
      echo "$num.<br>";
      $num = $num + 1;
Eso si esta bien el problema pasa cuando :
      $num = $num + 1;
      $suma = $suma + $num;
      echo "$num.<br>";
     

kostipado

  • Sin experiencia
  • *
  • Mensajes: 13
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #9 en: 12 de Agosto 2012, 12:56 »
Yo creo que si escribes:

while ($num <=5) {
      $suma = $suma + $num;
      $num = $num + 1;
      echo "$num.<br>";   
    }

$num toma los valores 1, 2, 3, 4, 5 y 6. Al valer 6 ya no vuelve a entrar al bucle, pero el valor con el que se quedó esa variable es 6. Para que no te llegara a tomar el valor 6 tendrías que establecer un menor estricto, es decir, while ($num <5) hay que tener cuidado porque entre <= y = los resultados de un programa serán distintos.

slif33r

  • Sin experiencia
  • *
  • Mensajes: 28
    • Ver Perfil
Re:hacer un programa que imprima la suma de los 5 primero numeros
« Respuesta #10 en: 13 de Agosto 2012, 21:46 »
complementando, tambien podria decir que  se debe tomar en cuenta con que valores se estan inicializando las variables

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".