Pascal/Turbo Pascal - Ayuda con Menu principal en pascal

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 3 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayuda con Menu principal en pascal

Publicado por Wepia (5 intervenciones) el 13/09/2018 03:09:36
Tengo un problema con un trabajo en el que me piden hacer u menú principal en donde acceda a un programa, y pueda volver al menú principal y/o ir directamente a otro programa. El problema es que al acceder a una de los que puse no da el resultado de dicha operación, y automáticamente me salta el menú principal. Estoy un tanto estancado, y no sé cómo solucionarlo…


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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Esto es el que llevo del menú
program menu;
uses
wincrt;
 
const capacidad=100;
 
var
salida: boolean;
opc , Total, contador, i : integer;
Num, media : real;
 
datos: array [1..capacidad] of integer;
n,cantidad:  integer;
 
 
         procedure Promedio;
 
begin
clrscr;
writeln('Numeros de examenes a promediar: ');
readln (Total);
 
media:=0;
 
 
 
For contador:=1 to Total do
 
 Begin
  Write('Examen: ',contador,' : ');
  Readln (Num);
  media := media + Num / Total;
 
 end;
 
 
Writeln('El Promedio es: ', media:9:3);
writeln('');
 
 end;
 
         procedure Valor_absoluto;
 
begin
 
cantidad:=0;
 
repeat
if cantidad >= capacidad then
writeln('No cabe mas datos')
else
 
begin
cantidad:=cantidad+1;
 
clrscr;
write('Calcular el valor absoluto');
writeln('');
write('Introdusca el Numero',cantidad,' (999 para salir): ');
readln(datos[cantidad]);
 
end;
 
until datos [cantidad]=999;
 
 
write ('el valor absoluto es; ');
 
n:= 1;
 
 
while datos [n] <> 999 do
 
begin
write(abs (datos [n]), ' ');
     inc(n);
     end;
   writeLn;
 
end;
 
 
procedure MenuPrincipal;
 
 
begin
 
 gotoxy(33,2); writeln('MENU PRINCIPAL');
  gotoxy(21,5); writeln('1.- Promedio.');
  gotoxy(21,7); writeln('2.- Valor_absoluto.');
  gotoxy(21,13); writeln('3.- Salir.');
 
  end;
 
  begin
  salida:= false;
 
  repeat
 
  clrscr;
  MenuPrincipal;
  gotoxy(40,15); write('Selecione el Numero: ');
   readln(opc);
 
  case opc of
 
  1: Promedio;
  2: Valor_absoluto;
  3: salida:= true;
 
  end;
 
  until (salida=true);
 
  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: 69
Oro
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayuda con Menu principal en pascal

Publicado por dario (23 intervenciones) el 13/09/2018 09:56:14
Tu mismo programa corregido.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program menu;
uses crt;
 
const capacidad=100;
 
var
	salida: boolean;
	opc , Total, contador: integer;
	Num, media : real;
 	datos: array [1..capacidad] of integer;
	n,cantidad:  integer;
 
procedure Promedio;
begin
	clrscr;
	writeln('Numeros de examenes a promediar: ');
	readln (Total);
	media:=0;
 
	For contador:=1 to Total do
	Begin
		Write('Examen: ',contador,' : ');
		Readln (Num);
		media := media + Num / Total;
	end;
 
	Writeln('El Promedio es: ', media:9:3);
	readkey;
end;
 
procedure Valor_absoluto;
begin
	cantidad:=0;
 
	repeat
		if cantidad >= capacidad then
			writeln('No cabe mas datos')
		else
		begin
			cantidad:=cantidad+1;
			clrscr;
			write('Calcular el valor absoluto');
			writeln('');
			write('Introduzca el Numero',cantidad,' (999 para salir): ');
			readln(datos[cantidad]);
		end;
	until datos [cantidad]=999;
 
	write ('el valor absoluto es; ');
	n:= 1;
 
	while datos [n] <> 999 do
	begin
		write(abs (datos [n]), ' ');
		inc(n);
     end;
 
	readkey;
end;
 
procedure MenuPrincipal;
begin
	gotoxy(33,2); writeln('MENU PRINCIPAL');
	gotoxy(21,5); writeln('1.- Promedio.');
	gotoxy(21,7); writeln('2.- Valor_absoluto.');
	gotoxy(21,9); writeln('3.- Salir.');
end;
 
begin
	salida:= false;
 
	repeat
		clrscr;
		MenuPrincipal;
		gotoxy(40,15); write('Selecione el Numero: ');
		readln(opc);
		case opc of
			1: Promedio;
			2: Valor_absoluto;
			3: salida:= true;
		end;
	until (salida=true);
 end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 3 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayuda con Menu principal en pascal

Publicado por Wepia (5 intervenciones) el 14/09/2018 04:35:22
Muchas gracias por solucionarlo. XD
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