El pseudocódigo esta creado usando PSeInt.
El enunciado del ejercicio es:
Hay un multicine con 5 salas, y cada sala con 100 personas distribuidas en 20 asientos y 5 filas.
Se solicita por teclado la sala y el programa nos indica el primer asiento libre y lo marca como ocupado, si en esa sala no hay asientos libres nos informa.
1 Proceso Cines
2 //Hay unos multicines con 4 salas,
3 //y cada sala con 100 personas distribuidas
4 //en 20 asientos y 5 filas.
5 //Si yo pido entrada para una sala, implementar
6 //un programa que me diga si hay sitio en la sala.
7 //Decir fila y asiento
8 Definir Cines como logico; //Verdadero
es ocupado
9 Dimension Cines[4,5,20]; // 4
salas, 5 filas , 20 asientos
10 Definir S, F , A Como Entero;
11 Para S<-1 hasta 4 Hacer
12 Para F<-1 hasta 5 Hacer
13 Para A<-1 hasta 20 Hacer
14 Cines[S,F,A] <- (Azar(2) = 1);
15 FinPara
16 FinPara
17 FinPara
18
19 Para S<-1 hasta 4 Hacer
20 Escribir "Sala : ", S;
21 Para F<-1 hasta 5 Hacer
22 Para A<-1 hasta 20 Hacer
23 Si Cines[S,F,A] entonces //Verdadero
ocupado
24 Escribir " X " sin saltar;
25 sino
26 Escribir " . " sin saltar;
27 FinSi
28 FinPara
29 Escribir "";
30 FinPara
31 FinPara
32
33 Definir Sala, Fila , Asiento Como Entero;
34 Definir SeguirBuscado como logico;
35 Repetir
36 Escribir "Dime a que sala queires ir??";
37 Leer Sala;
38 Si Sala <> 0 Entonces
39 Borrar
Pantalla;
40 F<-1;
41 A<-1;
42 SeguirBuscado<-Verdadero;
43 Mientras SeguirBuscado
44 si Cines[Sala,F,A]
= Falso Entonces
45 SeguirBuscado<-falso;
46 sino
47 A<-A+1;
48 Si A > 20 entonces
49 F <- F + 1;
50 A <- 1;
51 si F > 5 entonces
52 SeguirBuscado<- Falso;
53 FinSi
54 FinSi
55 FinSi
56 FinMientras
57 Si F > 5 Entonces //sala
ocupada
58 Escribir "Sala ocupada.";
59 Sino
60 Cines[Sala,F,A]
<- Verdadero;
61 Escribir "Tu entrada es S:" , Sala , " F:", F, " A:",A;
62 FinSi
63 Para S<-1 hasta 4 Hacer
64 Escribir "Sala : ", S;
65 Para F<-1 hasta 5 Hacer
66 Para A<-1 hasta 20 Hacer
67 Si Cines[S,F,A] entonces //Verdadero
ocupado
68 Escribir " X " sin saltar;
69 sino
70 Escribir " . " sin saltar;
71 FinSi
72 FinPara
73 Escribir "";
74 FinPara
75 FinPara
76 FinSi
77 Hasta Que Sala = 0
78
FinProceso
Veamos ahora otra variante del mismo algoritmo, en este caso nos permite vender varias entradas a la vez.
1 Proceso CinesVariasEntradas
2 //Hay unos multicines con 4 salas,
3 //y cada sala con 100 personas distribuidas
4 //en 20 asientos y 5 filas.
5 //Si yo pido un numeros de entradas para una sala, implementar
6 //un programa que me diga si hay sitio en la sala.
7 //Decir fila y asiento
8 Definir Cines como logico; //Verdadero
es ocupado
9 Dimension Cines[4,5,20]; // 4
salas, 5 filas , 20 asientos
10 Definir S, F , A Como Entero;
11 Para S<-1 hasta 4 Hacer
12 Para F<-1 hasta 5 Hacer
13 Para A<-1 hasta 20 Hacer
14 Cines[S,F,A] <- (Azar(2) = 1);
15 FinPara
16 FinPara
17 FinPara
18
19 Para S<-1 hasta 4 Hacer
20 Escribir "Sala : ", S;
21 Para F<-1 hasta 5 Hacer
22 Para A<-1 hasta 20 Hacer
23 Si Cines[S,F,A] entonces //Verdadero
ocupado
24 Escribir " X " sin saltar;
25 sino
26 Escribir " . " sin saltar;
27 FinSi
28 FinPara
29 Escribir "";
30 FinPara
31 FinPara
32 Definir Sala, NumEntradas, EntradasResevadas, Entradas
Como Entero;
33 Dimension Entradas[15, 3]; // NumEntada(1)Sala (2)Fila
(3)Asiento
34 Definir SeguirBuscado como logico;
35 Repetir
36 Escribir "Dime a que sala queires
ir??";
37 Leer Sala;
38 Si Sala <> 0 Entonces
39 Escribir "Dime cuantas entradas max(15) ?";
40 Leer NumEntradas;
41
42 Borrar Pantalla;
43
44 EntradasResevadas <-0;
45 F<-1;
46 A<-1;
47 SeguirBuscado<-Verdadero;
48 Mientras SeguirBuscado
49 si Cines[Sala,F,A] = Falso Entonces
50 EntradasResevadas
<- EntradasResevadas + 1;
51 Entradas[EntradasResevadas,1 ]<-Sala;
52 Entradas[EntradasResevadas,2 ]<-F;
53 Entradas[EntradasResevadas,3 ]<-A;
54 si EntradasResevadas = NumEntradas Entonces
55 SeguirBuscado<-falso;
56 Sino
57 A<-A+1;
58 Si A > 20 entonces
59 F <- F + 1;
60 A <- 1;
61 si F > 5 entonces
62 SeguirBuscado<- Falso;
63 FinSi
64 FinSi
65 FinSi
66 sino
67 A<-A+1;
68 Si A > 20 entonces
69 F <- F + 1;
70 A <- 1;
71 si F > 5 entonces
72 SeguirBuscado<- Falso;
73 FinSi
74 FinSi
75 FinSi
76 finMientras
77
78
79
80
81 Si F > 5 Entonces //sala
ocupada
82 Escribir "Sala ocupada ";
83 Sino
84 //Cines[Sala,F,A] <- Verdadero;
85 Escribir "Tus Entradas:";
86 Para S<-1 Hasta NumEntradas Hacer
87 Sala <- Entradas[S,1 ];
88 F<-Entradas[S,2 ];
89 A<- Entradas[S,3 ];
90 Cines[Sala,F,A]
<- Verdadero;
91 Escribir "Entrada ", S," en S:", Sala," F:", F, " A:",A;
92 FinPara
93
94 FinSi
95 Para S<-1 hasta 4 Hacer
96 Escribir "Sala : ", S;
97 Para F<-1 hasta 5 Hacer
98 Para A<-1 hasta 20 Hacer
99 Si Cines[S,F,A] entonces //Verdadero
ocupado
100 Escribir " X " sin saltar;
101 sino
102 Escribir " . " sin saltar;
103 FinSi
104 FinPara
105 Escribir "";
106 FinPara
107 FinPara
108 Fin Si
109 Hasta Que Sala = 0
110
111
112
113 FinProceso
1 SubProceso InicializarCine(ElCine)
2 Definir S, F , A Como Entero;
3 Para S<-1 hasta 4 Hacer
4 Para F<-1 hasta 5 Hacer
5 Para A<-1 hasta 20 Hacer
6 ElCine[S,F,A] <- (Azar(2) = 1);
7 FinPara
8 FinPara
9 FinPara
10 FinSubProceso
11 SubProceso MostrarCines(ElCine)
12 Definir S, F , A Como Entero;
13 Para S<-1 hasta 4 Hacer
14 Escribir "Sala : ", S;
15 Para F<-1 hasta 5 Hacer
16 Para A<-1 hasta 20 Hacer
17 Si ElCine[S,F,A]
entonces //Verdadero ocupado
18 Escribir " X " sin saltar;
19 sino
20 Escribir " . " sin saltar;
21 FinSi
22 FinPara
23 Escribir "";
24 FinPara
25 FinPara
26 FinSubProceso
27 SubProceso Ok <- ReservarEntradas(ElCine, Sala,
CantEntradas, LasEntradas)
28 Definir Ok, SeguirBuscado como logico;
29 Definir EntradasResevadas, F, A como entero;
30 EntradasResevadas
<-0;
31 F<-1;
32 A<-1;
33 SeguirBuscado<-Verdadero;
34 Mientras SeguirBuscado
35 si ElCine[Sala,F,A] = Falso Entonces
36 EntradasResevadas <- EntradasResevadas + 1;
37 LasEntradas[EntradasResevadas,1 ]<-Sala;
38 LasEntradas[EntradasResevadas,2 ]<-F;
39 LasEntradas[EntradasResevadas,3 ]<-A;
40 si EntradasResevadas = CantEntradas
Entonces
41 SeguirBuscado<-falso;
42 Sino
43 A<-A+1;
44 Si A > 20 entonces
45 F <- F + 1;
46 A <- 1;
47 si F > 5 entonces
48 SeguirBuscado<- Falso;
49 FinSi
50 FinSi
51 FinSi
52 sino
53 A<-A+1;
54 Si A > 20 entonces
55 F <- F + 1;
56 A <- 1;
57 si F > 5 entonces
58 SeguirBuscado<- Falso;
59 FinSi
60 FinSi
61 FinSi
62 finMientras
63 Si F > 5 Entonces //sala
ocupada
64 Ok<-Falso;
65 Sino
66 Ok<-Verdadero;
67 finsi
68 FinSubProceso
69 Proceso CinesVariasEntradas
70 //Hay unos multicines con 4 salas,
71 //y cada sala con 100 personas distribuidas
72 //en 20 asientos y 5 filas.
73 //Si yo pido un numeros de entradas para una sala, implementar
74 //un programa que me diga si hay sitio en la sala.
75 //Decir fila y asiento
76 Definir Cines como logico; //Verdadero
es ocupado
77 Dimension Cines[4,5,20]; // 4
salas, 5 filas , 20 asientos
78 Definir S, F , A Como Entero;
79 InicializarCine(Cines);
80 MostrarCines(Cines);
81 Definir Sala, NumEntradas, Entradas Como Entero;
82 Dimension Entradas[15, 3]; // NumEntada(1)Sala (2)Fila
(3)Asiento
83 Definir SeguirBuscado como logico;
84 Repetir
85 Escribir "Dime a que sala queires ir??";
86 Leer Sala;
87 Si Sala <> 0 Entonces
88 Escribir "Dime cuantas entradas max(15) ?";
89 Leer NumEntradas;
90 Borrar
Pantalla;
91 Si ~ReservarEntradas(Cines, Sala,
NumEntradas, Entradas) Entonces
92 Escribir "Sala ocupada ";
93 Sino
94 Escribir "Tus Entradas:";
95 Para S<-1 Hasta NumEntradas Hacer
96 Sala <- Entradas[S,1 ];
97 F<-Entradas[S,2 ];
98 A<- Entradas[S,3 ];
99 Cines[Sala,F,A]
<- Verdadero;
100 Escribir "Entrada " , S, " en S:" , Sala , " F:", F, " A:",A;
101 FinPara
102 FinSi
103 MostrarCines(Cines);
104 FinSi
105 Hasta Que Sala = 0
106 FinProceso
No hay comentarios:
Publicar un comentario