[ Foro de Pascal ]

como puedo re-empezar mi perograma

25-Apr-2018 23:03
Invitado (Taton)
1 Respuestas

holas, miren soy nuevo en la programación en pascal y estoy tratando de verificar si lo introducido(en mi caso letras minúsculas) no sea letras mayúsculas y si no esta correcto que vuelva a empezar el programa desde una determinada parte inicial. el ejercicio se basa en convertir una letra minuscula en ascii con su codigo, y despues que este muestre la misma letra en mayuscula y su codigo.


Uses CRT;
Var

 a: char;
b:byte;

Begin
     Writeln ('solo escribir letras!');
     writeln ('Ingresa una letra minuscula para ver su codigo');
     writeln ('en ASCII');
     readln (a);
     if (a >= 'a') and (a<= 'z') then begin
     writeln ('Su codigo en ASCII es: ',ord(a));
     end else
      begin
     writeln ('Usted a introducido un caracter, el cual no es una');
           writeln('letra minuscula, por favor vuelva a introducir la letra');
           writeln('en minuscula, por ejemplo "a"');
             gotoxy(1,7);
            end;
      writeln ('');
      b:= ord(a)-32 ;
      writeln ('Presione Enter para saber su letra en mayuscula');
      readkey();
      write('su letra en mayuscula es: ');
      for b := b to b do Write(Chr(b));
      writeln(' ');
      writeln ('Presiona Enter para saber el codigo de la letra en mayuscula');
      readkey();
      writeln ('el codigo de su letra en mayuscula es:',ord(a)-32);
      writeln('');
      writeln('presione Enter para cerrar el programa');
      readkey();
END. 


 


28-Apr-2018 04:26
Luis Torres (+18)

En este tipo de problemas en los que no se debe permitir avanzar hasta que el usuario introduzca el dato correcto es más útil usar la estructura Repeat-Until. Se repite la petición del dato hasta que este sea el correcto. Elaboré una porción de código que resultó muy bien, a continuación te la escribo:


program letraminuscula;

uses CRT;
var
 letra: char;

BEGIN
 Repeat
   write('Introduzca una letra minuscula: ');
   readln(letra);
   If (letra<'a') and (letra>'z') then
    Begin
      writeln('Usted no introdujo un caracter valido. (PRESIONE ENTER)');
      readln;
    End;
 Until (letra>='a') and (letra<='z');

 Writeln('Usted introdujo una letra minuscula cuyo codigo es: ',ord(letra));

 Readln;
END.



Espero te haya sido útil.
Saludos.






(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.)