hola me pidieron este programa en la escuela, funciona bien pero tengo un problema, cuando pongo la opcion salir y confirmo la salida, no me vuelve al menu principal sino se sale directamente, yo lo tengo que hacer que vuelva al menu principal del programa
aca lo dejo por si alguno me quiere dar una mano
[SPOILER]Program xx;
uses crt;
var
yy,rr,t,op,op2,op3,x,v,elem,w,o,elem1,o2,may,men,op20,cantidad,elemento,elemento2,tot,tot1,i,totmay1,b1:integer;
num,may1,men1,tot3,cod,cv,s_v,op4,op5,op6,op7,op8,op9,op10,z,cant,cant8,num8,may8,men8,tot8,totmay8,nn:integer;
a,b,c,d,e,f,g,h,j,k,l,m,din1,din2,din3,din,alum,alum1,alum2,pre:real;
s15,s16,des,r,y,u,uu,s:string[200];
op90,op99,op21,op24,op79,op78:char;
begin
textcolor(white);
repeat
repeat
clrscr;
gotoxy(20,5);
write(‘1-suma,resta,multiplicacion,division’);
gotoxy(20,6);
write(‘2-Porcentajes’);
gotoxy(20,7);
write(‘3-mayor,menor,promedio’);
gotoxy(20,8);
write(‘4-Caso For:repite 3 veces la misma frase’);
gotoxy(20,9);
write(‘5-While caso1:grande/chico/promedio/mayor a 123’);
gotoxy(20,10);
write(‘6-While caso2:muestra productos sin venderse’);
gotoxy(20,11);
write(‘7-While caso3:grande/chico/promedio/mayor a 123’);
gotoxy(20,12);
write(‘8-Procesar una frase’);
gotoxy(20,13);
write(‘9-Mostrar una frase de atras para adelante’);
gotoxy(20,14);
write(‘10-?’);
gotoxy(20,15);
write(‘11-Salir’);
gotoxy(20,16);
write(‘Elija una opcion’);
gotoxy(20,17);
readln(op);
until op in [1…11];
if op=1 then
Begin
clrscr;
writeln('1_suma');
writeln('2_resta');
writeln('3_multiplicacion');
writeln('4_division');
writeln('5_salir');
writeln('Elija una opcion');
readln(op2);
If op2=1then
begin
writeln('ingrese primer numero');
readln(a);
writeln('ingrese segundo numero');
readln(b);
c:=a+b;
writeln('la suma es' , c:2:2);
readln;
end;
if op2=2then
begin
writeln('ingrese primer numero');
readln(d);
writeln('ingrese segundo numero');
readln(e);
f:=d-e;
writeln('la resta es' , f:2:2);
readln;
end;
if op2=3then
begin
writeln('ingrese primer numero');
readln(g);
writeln('ingrese segundo numero');
readln(h);
j:=g*h;
writeln('la multiplicacion es' , j:2:2);
readln;
end;
if op2=4then
begin
writeln('ingrese primer numero');
readln(k);
writeln('ingrese segundo numero');
readln(l);
m:=k/l;
writeln('la division es' , m:2:2);
readln;
end;
if op2=5then
begin
writeln('desea salir? S/N');
readln(op79);
if (op79='s') or (op79='s')then
end;
end;
if op=2 then
begin
clrscr;
writeln('1_porcentaje 1');
writeln('2_porcentaje 2');
writeln('3_salir');
writeln('elija una opcion 1-2-3');
readln(op3);
if op3=1 then
begin
writeln('ingrese cantidad');
readln(din1);
writeln('ingrese porcentaje');
readln(din);
if din3=0 then din3:=1;
din3:=din1*din/100;
writeln('porcentaje:' , din3:2:2);
readln;
end;
if op3=2then
begin
writeln('cantidad a');
readln(alum);
writeln('cantidad b');
readln(alum1);
if alum2=0 then alum2:=1;
alum2:=alum/alum1*100;
writeln('el porcentaje' , alum2:2:2,'%');
readln;
end;
if op3=3then
begin
writeln('desea salir?');
readln(op78);
if (op78='s')or(op78='S')then
end;
end;
if op=3 then
begin
clrscr;
writeln('ingrese cantidad de elementos');
readln(elem);
men:=9999;
may:=0;
for w:=1 to elem do
begin
writeln('ingrese elemento', w);
readln(o);
if o<=men then men:=o;
if o>=may then may:=o;
tot:=tot+o;
end;
writeln('promedio:' ,tot/elem:2:2);
writeln('mayor:' ,may);
writeln('menor:' ,men);
readln;
end;
if op= 4 then
begin
clrscr;
for rr:= 1 to 3 do
begin
writeln('El mas grande,Lejos' , rr);
delay(1500);
end;
end;
textcolor(white);
if op=5then
Begin
clrscr;
men1:=1000;
num:=1;
while(num>0)and(i<300)do
begin
writeln('ingrese numero');
readln(num);
if num<men1 then men1:= num;
if num>may1 then may1:= num;
tot3:=tot3+num;
if num>123 then totmay1:=totmay1+1;
i:=i+1;
end;
writeln('El mas grande es:' , may1);
writeln('El mas chico es:' , men1);
writeln('El promedio es:' , tot3/i:2:2);
writeln('Los mayores a 123 fueron:' , totmay1);
readln;
end;
if op=6 then
begin
clrscr;
writeln('cargar datos S/N');
readln(op90);
while(op90='s')or(op90='S')do
begin
writeln('ingrese codigo:');
readln(cod);
writeln('ingrese descripcion');
readln(des);
writeln('ingrese precio');
readln(pre);
writeln('ingrese cantidad vendida');
readln(cv);
if cv>100 then pre:=pre+pre*15/100;
if cv=0 then s_v:=s_v+1;
if cv<10 then pre:=pre-pre*10/100;
writeln('seguir cargando S/N');
readln(op90);
end;
writeln('productos sin venderse:' , s_v);
readln;
end;
if op=7then
begin
clrscr;
men8:=1000;
num:=1;
z:=1;
writeln('que cantidad de datos desea cargar');
readln(cant8);
while z<=cant8 do
begin
writeln('ingrese numero');
readln(num8);
if num8<men8 then men8:=num8;
if num8>may8 then may8:=num8;
tot8:=tot8+num8;
if num8>123 then totmay8:=totmay8 +1;
z:=z+1;
end;
writeln('Que cantidad de datos desea cargar');
writeln('el mas grande es:' , may8);
writeln('el mas chico es:' ,men8);
writeln('el promedio es:' ,tot8/z:2:2);
writeln('los mayores a 123 fueron' , totmay8);
readln;
end;
if op=8 then
begin
clrscr;
writeln('ingrese frase');
readln(s15);
for t:=10 to length (s15)do
for nn:=1 to length(s15) do
begin
if s15[nn]=' 'then b1:=b1+1;
s15[t]:=upcase(s15[t]);
t:=t+2;
if t>length(s15)then t:=length(s15);
end;
writeln('la frase es: ' , s15);
writeln('la cantidad de caracteres es:' , length(s15));
writeln('la cantidad de palabras es:' , b1+1);
readln;
end;
if op=9then
begin
clrscr;
writeln('ingrese frase');
readln(s16);
for yy:=length (s16)downto 1 do uu:=uu+s16[yy];
begin
writeln('la frase alreves es ' , uu);
readln;
end;
end;
if op=11 then
begin
clrscr;
writeln('conforme salida S/N');
readln(op24);
if(op24='s')or(op24='S')then
begin
x:=1;
end;
end;
until x=1;
end.
[/SPOILER]
gracias y perdon por revivir, ah es en pscal