[ 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 (+13)

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:
[pascal]
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.
[/pascal]

Espero te haya sido útil.
Saludos.






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...