[ Foro de Pascal ]

Leer varias variables a la vez

23-Oct-2014 00:03
Guillermo Martin
6 Respuestas

Buenas noches, me han pedido que haga el siguiente ejercicio y no tengo ni idea de por donde empezar, se supone que debo hacerlo con sentencias repetitivas, pero no se como puedo leer todos los números que le meta hasta que meta un 0 supongo que será con REPEAT y hasta UNTIL, no tengo ni idea, alguien puede echarme una mano?

"Plantee e implemente un programa en PASCAL que acepte valores enteros como entrada (por teclado) y que muestre por pantalla la suma de los valores introducidos. El programa terminará cuando el usuario introduzca un 0, tal y como se muestra en el ejemplo siguiente:

A continuación introduzca los números enteros de los que desee calcular la suma
separados por espacios:
$ 2 3 56 7 8 90 76 61 0
La suma de los números introducidos es 303"


23-Oct-2014 00:30
Nacho Cabanes (+84)

Como los datos están en la misma línea, deberás usar "Read" en vez de "ReadLine". Por tanto, el bloque principal de tu programa será


repeat
  read(dato);
until dato = 0;




23-Oct-2014 19:51
Guillermo Martin

Muchas gracias Nacho, y después para mostrar el sumatorio de todos los números introducidos?

No debería ser así?


write('A continuación introduzca los números enteros de los que desee calcular la suma separados por espacios: '); 

repeat
   read (n);
   suma:=0;
   suma:=suma+n;
until n = 0;

writeln(suma);




23-Oct-2014 20:27
Nacho Cabanes (+84)

Casi. Pero en cada pasada no debes empezar a sumar desde cero, así que ese "suma := 0" debería estar antes del "repeat":


write('A continuación introduzca los números enteros de los que desee calcular la suma separados por espacios: '); 

suma:=0;
repeat
   read (n);
   suma:=suma+n;
until n = 0;

writeln(suma);



23-Oct-2014 20:36
Guillermo Martin

Pues no se que estará haciendo mal, pero no muestra nada a la salida :(


PROGRAM EjerciciosSentenciasRepetitivas_7 (input,output);

VAR

n,suma:integer;

BEGIN

write('A continuación introduzca los números enteros de los que desee calcular la suma separados por espacios: '); 

suma:=0;
   
repeat
   read (n);
   suma:=suma+n;
until n = 0;

writeln(suma);
 
READLN;
END.




23-Oct-2014 20:39
Guillermo Martin

Vale perdón, se me olvidó meter un 0 en el sumatorio para que parara :D

Muchas gracias!!!!


23-Oct-2014 20:54
Nacho Cabanes (+84)

Ya te iba a decir yo que no podía probarlo en este momento, pero que tenía pinta de estar bien...






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)