PDA

Ver la Versión Completa : Estructura de control repetitiva while


andrecuellar
23-09-2015, 00:49:43
buenas a todos, soy nuevo en esto del delphi y recién estoy empezando a entender, y bueno me pidieron lo siguiente:

Dado N notas finales, muestre la cantidad de aprobados y reprobados.

Por Ejemplo: 31, 51,45,35,90,65,25 (nota de aprobación: 51 o más, nota de reprobación: 50 o menos, nota máxima: 100, nota mínima: 0)

Aprobados= 3

Reprobados = 4

Haga el diseño y la codificación utilizando la estructura WHILE.


y bueno la verdad que no se me ocurre muy bien como hacer esto pues no había hecho que colocando cierto número de notas me diga cuantas aprobaron y cuantas no, yo he hecho otro tipo de ejercicios como factoriales y esas cosas y pues ahora quiero saber el tema de las variables con esto, puesto que tendria que añadir N variables dependiendo de N notas que necesite colocar, es esto posible? me pueden ayudar con la codificacion? mejor si es del botón completo gracias de antemano


si es que no es posible hacer lo que yo quiero de N notas entonces que sean 7 notas, si es posible, gracias

AgustinOrtu
23-09-2015, 03:35:28
Bienvenido al Club.

Por lo general en este tipo de casos nos gusta mas ayudar a pensar que resolver el problema :)

La solucioon a este problema es muy similar a lo que venias haciendo. Solamente que en este caso no se conoce el numero de iteraciones. No necesitas N variables

Es decir, antes tendrias una estructura similar a esta:



var
I: Integer; // indice del for
Total: Integer; // total de datos a procesar
begin
ReadLn(Total); // leer por la entrada estandar (consola) y guardar en variable total
for I := 0 to Total - 1 do
begin
// procesar el elemento I
end;
end;


En lineas generales, el for recorre desde I hasta N todos los elementos. El while es una estructura que no maneja un indice, simplemente se repite mientras (de ahi su nombre) la condicion que evalua sea verdadera


Ejemplos sencillos:


while True do
begin
WriteLn('este codigo se ejecutará por lo siglos de los siglos !');
end;



var
Condicion: Boolean;
begin
while Condicion do
begin
WriteLn('este codigo se ejecutará por lo siglos de los siglos a menos que alguien ponga "Condicion" en Falso !');
end;



var
I: Integer;
begin
I := 0;
while I < 10 do
begin
I := I + 1;
Writeln('La variable I ahora vale ' + IntToStr(I));
end;


Espero te sirva

Casimiro Notevi
23-09-2015, 09:46:41
Bienvenido al Club.
Por lo general en este tipo de casos nos gusta mas ayudar a pensar que resolver el problema :)

^\||/^\||/^\||/