PDA

Ver la Versión Completa : Duda sobre variable en un Bucle Repeat


gerupc
20-07-2007, 02:42:00
Hola,

tengo una duda en un bucle repeat, os escribo el codigo:


Repeat
write('Introduce Numero: ');
readln(numero);
contador := contador + 1;
suma := suma + 1;
Until
contador = 5;
Write('La suma de los numeros es: ',suma:2:2);
readln;
Write('La media es: ', suma/contador:2:2);
readln;


Bien, pues mi problema es que no entiendo que función cumple la variable 'suma', si, entiendo que sirve para que en cada iteración 'almacene' el numero, pero porqué de esta manera? Qué sentido tiene? :confused:

Un saludo y muchas gracias de antemano,;)

Geru.

cHackAll
20-07-2007, 03:14:11
write('Introduce Numero: ');
readln(numero);
Repeat
contador := contador + 1;
suma := suma + numero;
Until
contador = 5;
Write('La suma de los numeros es: ',suma:2:2);
readln;
Write('La media es: ', suma/contador:2:2);
readln; :confused:

gerupc
20-07-2007, 03:22:13
Hola,

El write, quiero que valla dentro de repeat para que me pida 5 veces que introduzca un numero.

Pero claro, lo que no entiendo es porqué he de hacerlo lo de la variable suma := suma + numero; ---> De esta manera, a ver si alguien me lo podría explicar.

Gracias y un saludo,

Geru.

Neftali [Germán.Estévez]
20-07-2007, 08:42:15
:confused::confused::confused:
¿Qué tal si explicas qué estás intentando hacer? ¿Qué quieres hacer con ese código?

Si no nos explicas qué se pretende, ¿cómo quieres que sepamos para qué sirve una variable?
No sabemos si el código lo has hecho tú, si lo has extraído de algun sitio,...:confused::confused::confused:

Ferrari
20-07-2007, 19:18:04
Pues si, creo seria mas facil saber ke deseas hacer con el codigo..salu2:D

gerupc
20-07-2007, 23:09:03
Hola,

De acuerdo, este programa está sacado de una hoja de ejercicios en Delphi para practicar en 1º de carrera, el codigo completo es:


PROGRAM EJER54;
USES CRT;
VAR i:INTEGER;
VAR num,suma:REAL;
BEGIN
ClrScr;
i:=0;

REPEAT
WRITE('Introduzca un numero: '); READLN(num);
suma:=suma+num;
i:=i+1;
UNTIL i=5;
WRITE('La media es: '); WRITELN(suma/i:5:2);
END.


bien, pues lo que quiero es; que el programa me pida numeros 5 veces un numero, y que éste almacene los cinco numeros, para después yo decirle que haga la media.
Lo que no entiendo es la funcion que cumple la siguiente sentencia del bucle:


suma := suma + num;


Muchas gracias y un saludo,

Geru.

dec
20-07-2007, 23:36:13
Hola,

... la instrucción que mencionas significa: "Asigna a la variable 'suma' el valor de esta misma variable más el valor de la variable 'num'".

gerupc
20-07-2007, 23:53:10
Aupi,

muchísimas gracias Dec, pero cual es el valor de 'suma', si yo antes no le he asignado ninguno?

Una vez más, gracias.

Geru.

Alcolea
21-07-2007, 00:45:24
Aupi,

muchísimas gracias Dec, pero cual es el valor de 'suma', si yo antes no le he asignado ninguno?

Una vez más, gracias.

Geru.

La variable suma debes inicializarla en algún momento antes del bucle. Si vas a hacer sumador, como en este caso que empleas la variable para "acumular" los valores que entras


...........

suma := 0;
i := 0; // A la variable i tambien debes darle un valor antes de usarla
REPEAT
WRITE('Introduzca un numero: '); READLN(num);
suma := suma + num;
i := i + 1;
UNTIL i = 5;
WRITE('La media es: ',suma/i:5:2);

...........



... en el caso de la varible i la utilizas como contador, o sea en cada vuelta del bucle esta aumenta en uno, vas contando un cantidad en cada vuelta, esto último es equivalente a la función Inc (i)

gerupc
21-07-2007, 02:44:34
Ok, muchas gracias, ya lo he entendido a la perfección ;)

Un saludo,

Geru.