Ejercicio 5 Practico 5

Ejercicio 5 Practico 5

de Santiago Marchiotto Texeira -
Número de respuestas: 1
Buenas!
Estaría teniendo un problema con este ejercicio a la hora de aplicar while, en la cual ignora esta orden y pasa directamente a un comando siguiente ya que no me verifica la desigualdad que coloco en mi while, haciendo que el programa entre en un loop infinito.

Adjunto el código para que lo puedan visualizar:

program practico5ejercicio5;
var
denominante: char;
total, ingreso: integer;
begin
prueba:=0;
total:=0;
ingreso:=0;
writeln ('escriba su estado de cuenta original, total es el siguiente valor');
readln (total);
writeln ('realice su operacion, denominante es el siguiente valor');
readln (denominante);
        While (denominante <> 'X') do
        begin
         writeln ('llegue a la mitad, ingreso es el siguiente valor');
          read (ingreso);
                 begin
                        case Denominante of
                                'D' : begin
                                         writeln ('llegue a 3 cuartos, total es el siguiente valor (soy deposito)');
                                         total:=total+ingreso;
                                         writeln (total);
                                         end;
                                'R' :  begin
                                          writeln ('llegue a 3 cuartos, total es el siguiente valor (soy retiro)');
                                          total:=total-ingreso;
                                          writeln (total);
                                          end;
                        end;
            writeln ('realice su operacion, soy del final, denominante viene ahora');
            readln (Denominante);
        end;
        end;
if (Denominante = 'X') then
writeln ('este es su total actual ', total);
end.





En respuesta a Santiago Marchiotto Texeira

Re: Ejercicio 5 Practico 5

de Felipe Miranda Torres De La Llosa -
Hola Santiago, cómo estás?

Algunas cosas sobre tu solución.

La indentación se puede cambiar un poco para ayudar a que el código sea mas fácil de leer, y esto te puede servir también para ver algún problemita, me parece que hay algún detalle al momento de cerrar los begin-end, si alineas cada begin con su end correspondiente va a ser más fácil verificar que quede adentro lo que necesitas.

Por ejemplo, el while tendría que estar a la misma altura que la instrucción de arriba (readln (denominante);), ya que está al mismo nivel, dentro del bloque begin-end principal.

Adentro del while, envolvés al Case dentro de un begin-end, esto no es necesario.

El chequeo final "Denominante = 'X'" no es necesario ya que siempre va a ser verdadero, de lo contrario seguirías dentro del while.

Proba alguno de estos cambios a ver si podes resolver el problema, cualquier cosa volvé a preguntar.

Saludos,
Felipe