¿Como crear un menú de opciones en Pascal?

publicado por: Anonymous

soy Jose Rangel.
Soy estudiante de Ing. Sistemas, estoy comenzando a ver programación y el primer lenguaje con que hemos iniciado es con Pascal.

Como bien dice el titulo, quisiera saber como puedo hacer un menú con dos opciones a elegir.
Es sobre convertir de Centigrados a Fahrenheit o viceversa.
el programa no me copila pero no se donde tengo el error.

Program Conversor_de_unidades;
uses crt;
var grado, opcion: integer;
begin
clrscr;
write ('introduzca un valor: ');
readln (grado);
write ('seleccione su opcion');
write ('1: Celcius a Fahrenheit');
write('2: Fahrenheit a Celcius');
readln (opcion);
case opcion of
writeln ('C a F: ', (grado+9/5));
readl;
end;
begin
write ('F a C: ', ((grado-32)+9/5));
readln;
end;
end;
end.

solución

Tu codigo tenia 2 problemas, uno era un typo ya que escribiste readl en vez de readln y el otro era en la sintaxis del case of, la idea es que al usar case opcion of tu especifiques que cosa se ejecuta dependiendo de lo ingresado por el usuario, pero en tu codigo faltaba poner 1: y 2: que especifica lo que se ejecutara en caso de poner la opcion 1 (que seria writeln('C a F: ', (grado + 9 / 5))) y la opcion 2 (que seria writeln('F a C: ', ((grado - 32) + 9 / 5)))

El codigo con las correcciones seria:

Program Conversor_de_unidades;

uses crt;

var grado, opcion: integer;

begin
    clrscr;
    write('introduzca un valor: ');
    readln(grado);

    writeln('seleccione su opcion');
    writeln('1: Celcius a Fahrenheit');
    writeln('2: Fahrenheit a Celcius');
    readln(opcion);

    case opcion of
        1: writeln('C a F: ', (grado + 9 / 5));
        2: writeln('F a C: ', ((grado - 32) + 9 / 5));
    end;

    readln;
end.

Ahora, por otro lado las conversiones que tienes son incorrectas, ya que para pasar de celsius a fahrenheit se usa (celsius × 9/5) + 32 y para pasar de fahrenheit a celsius se usa (fahrenheit - 32) x 5/9, finalmente tu programa quedaria asi:

Program Conversor_de_unidades;

uses crt;

var grado, opcion: integer;

begin
    clrscr;
    write('introduzca un valor: ');
    readln(grado);

    writeln('seleccione su opcion');
    writeln('1: Celcius a Fahrenheit');
    writeln('2: Fahrenheit a Celcius');
    readln(opcion);

    case opcion of
        1: writeln('C a F: ', (grado * (9 / 5) + 32));
        2: writeln('F a C: ', ((grado - 32) * (5 / 9)));
    end;

    readln;
end.

Saludos!

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *