Atascada en un programa de Pascal
Publicado por Vero (4 intervenciones) el 11/09/2011 23:15:50
Hola a todos!
Verán, estoy intentando hacer un problema en Pascal y me encuentro atascada. El programa debe leer un número indeterminado de valores positivos enteros por teclado y calcular luego la media de los valores leídos, el máximo y el mínimo. El proceso acaba cuando se lee un número negativo.
Aquí expongo lo que llevo hecho de momento, a ver si me pueden ayudar:
Program Enteros;
uses crt;
var
valor, primer valor, maximo, minimo, suma, numvalores: integer;
media: real;
begin
clrscr;
suma:= 0;
numvalores:= 0;
minimo:= 10;
maximo:= 0;
writeln('Por favor, introduzca los valores que desee: ');
read(primervalor);
if (primervalor<0) then
writeln('Disculpe, el programa se ejecutará cuando introduzca, al menos, un valor positivo.')
else
if (primervalor>0) then
begin
read(valor);
.
.
.
end.
P.D: ¿Por qué estoy atascada? Lo del primer valor se me ocurrió por si se introducía en primer lugar un número negativo. El programa no tendría sentido que se ejecutara y ví bien que diera ese mensaje de aviso. Pero si a continuación el segundo if se ejecuta, creo que estando como está, el primer valor introducido no se tendría en cuenta para calcular la media, minimo y máximo, ¿no?. Pffff, estoy hecha un lío, También pensé en usar un: for i :=0 to n do y proceder a meter los subprogramas para el cálculo de la media, maximo y minimo. ¿Qué opinan? Muchas gracias de antemano :)
Verán, estoy intentando hacer un problema en Pascal y me encuentro atascada. El programa debe leer un número indeterminado de valores positivos enteros por teclado y calcular luego la media de los valores leídos, el máximo y el mínimo. El proceso acaba cuando se lee un número negativo.
Aquí expongo lo que llevo hecho de momento, a ver si me pueden ayudar:
Program Enteros;
uses crt;
var
valor, primer valor, maximo, minimo, suma, numvalores: integer;
media: real;
begin
clrscr;
suma:= 0;
numvalores:= 0;
minimo:= 10;
maximo:= 0;
writeln('Por favor, introduzca los valores que desee: ');
read(primervalor);
if (primervalor<0) then
writeln('Disculpe, el programa se ejecutará cuando introduzca, al menos, un valor positivo.')
else
if (primervalor>0) then
begin
read(valor);
.
.
.
end.
P.D: ¿Por qué estoy atascada? Lo del primer valor se me ocurrió por si se introducía en primer lugar un número negativo. El programa no tendría sentido que se ejecutara y ví bien que diera ese mensaje de aviso. Pero si a continuación el segundo if se ejecuta, creo que estando como está, el primer valor introducido no se tendría en cuenta para calcular la media, minimo y máximo, ¿no?. Pffff, estoy hecha un lío, También pensé en usar un: for i :=0 to n do y proceder a meter los subprogramas para el cálculo de la media, maximo y minimo. ¿Qué opinan? Muchas gracias de antemano :)
Valora esta pregunta
0