Pascal/Turbo Pascal - Necesito ayuda con menus

 
Vista:
sin imagen de perfil

Necesito ayuda con menus

Publicado por Ricardo (1 intervención) el 27/07/2021 03:16:58
Hola necesito ayuda para hacer este programa ya que no tengo ni idea de como hacerlo ayuda por favor.

Realice un menu dentro del menu principal (case anidado) pidiendo si desea sumar, restar, multiplicar o dividir dos números, depende la eleccion debera pedir los valores y hacer la operación correspondiente, regresando al menu principal despues.

llevo esto:

program operaciones_basicas;
uses crt;
var
menu,SumA,SumB,SumC:integer;

begin
clrscr;
menu := 1,2,3,4;
repeat
Writeln('Bienvenido a operaciones basicas');
Writeln('1. Sumar');
Writeln('2. Restar');
Writeln('3. Multiplicar');
Writeln('4. Dividir 2 números');
readln(menu);
until menu = 1,2,3,4;
clrscr;
if menu =1 then
begin
Writeln('Ingrese un número');
readln(SumA);
writeln('Ingrese el 2do número');
readln(SumB);
SumC:=SumA+SumB;
Writeln('el resultado de su suma es:',SumC);
readln;
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 287
Oro
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Necesito ayuda con menus

Publicado por dario (87 intervenciones) el 27/07/2021 18:29:58
Hola, te doy una idea de como lo puedes hacer.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
var
    opc1,opc2:byte;
begin
    clrscr;
    repeat
	writeln('Menu Principal');
        writeln('1. Operaciones Basicas');
        writeln('0. Salir');
        write('Seleccione una opcion: ');
        readln(opc1);
        case opc1 of
            1:
                repeat
                    writeln('Operaciones Basicas');
                    writeln('1. Suma');
                    writeln('2. Resta');
                    writeln('3. Producto');
                    writeln('4. Division');
                    writeln('5. Salir');
                    write('Opcion >> ');
                    readln(opc2);
                    case opc2 of
                        1: {suma};
                        2: {resta};
                        3: {producto};
                        4: {division};
                    end;
                until opc2 = 5;
        end;
    until opc1 = 0;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 36
Ha aumentado su posición en 4 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Necesito ayuda con menus

Publicado por Armando José (43 intervenciones) el 28/07/2021 10:55:44
(*

Realice un menu
dentro del menu
principal (case
anidado)
pidiendo si desea
sumar,
restar,
multiplicar
o
dividir dos números,
depende la eleccion debera
pedir los valores y hacer
la operación correspondiente,
regresando al menu principal
despues.
*)

uses crt , math ;
var

op1, op2 : Char;
n1,n2 : real ;




procedure menuprin;
begin
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>');
writeln('<< Menu Principal >>');
writeln('<< 1. Operaciones Basicas >>');
writeln('<< 0. Salir >>');
writeln('<< Seleccione una opcion: >>');
writeln('>>>>>>>>>>>>>>>>>>>>>>>');
end;

procedure menuopeba;
begin
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
writeln('<< Operaciones Basicas >>');
writeln('<< 1. Suma >>');
writeln('<< 2. Resta >>');
writeln('<< 3. Producto >>');
writeln('<< 4. Division >>');
writeln('<< 5. Salir >>');
writeln('<< Seleccione una opcion: >>');
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
end;


procedure leer;
begin
writeln('Ingrese un numero 1: ') ;
readln(n1);
writeln('Ingrese un numero 2: ') ;
readln(n2);
end;


function aritmetica(x:Char;numero1,numero2:Real):Real;
begin
case x of
'1' : aritmetica := numero1 + numero2;
'2' : aritmetica := numero1 - numero2;
'3' : aritmetica := numero1 * numero2;
'4' : begin
if (numero2 = 0) then
aritmetica := 0
else
aritmetica := numero1
/ numero2;
end;
end;
end;


procedure mostrar(x:char);
begin
case x of
'1' :
begin
clrscr();
leer;
writeln('suma ',n1,' + ', n2 ,' = ', aritmetica(op2,n1,n2) );
readln;
end;
'2' :
begin
clrscr();
leer;
writeln('resta ',n1,' - ', n2 ,' = ' , aritmetica(op2,n1,n2) );
readln;
end;
'3' :
begin
clrscr();
leer;
writeln('mul ',n1,' * ', n2 ,' = ', aritmetica(op2,n1,n2) );
readln;
end;
'4' :
begin
clrscr();
leer;
if (n2 = 0) then
writeln('Error división por cero ')
else
writeln('division ',n1,' / ', n2 ,' = ' , aritmetica(op2,n1,n2) );

readln;
end;
'5' :
begin
break;
end;

end;
end;

/// principal
begin
clrscr;

repeat
repeat
repeat
menuprin;
// writeln(' opcion 1');
readLn(op1);
until (op1 >= '0') and (op1 <= '1');
case op1 of

'1' : begin

menuopeba;
// write('opcion 2');
readLn(op2);


mostrar (op2);

end;

'0' : begin

write('saliendo');
break;

end;
end;
until op2 = '5';

until (op1 = '0') ;


end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar