Ejercicios de arrays:
Buscar los dos mayores de una lista de N datos.
1 Proceso BuscarLosDosMayoresDeUnaListadeNNumeros
2 Definir N, Indice Como Entero;
3 Escribir "Dime N >
2";
4 Leer N;
5 Definir Nums Como Entero;
6 Dimension Nums[N];
7 Para Indice <- 1 Hasta N Hacer
8 Nums[Indice]
<- Azar(100);
9 Escribir Nums[Indice];
10 FinPara
11 //Buscar los
dos Mayores
12 Nums[1]<-99;
13 Definir Mayores Como Entero;
14 Dimension Mayores[2]; //pos 2 es el
mas alto.
15 Si Nums[1] > Nums[2] entonces
16 Mayores[2] <- Nums[1];
17 Mayores[1] <- Nums[2];
18 Sino
19 Mayores[2] <- Nums[2];
20 Mayores[1] <- Nums[1];
21 FinSi
22 Para Indice <- 3 hasta N hacer
23 si Nums[Indice]
> Mayores[1] entonces //> que algun mayor
24 si Nums[Indice]
> Mayores[2] entonces //> que el mas mayor
25 Mayores[1]<-Mayores[2]; //El mayor pas
al 2mayor
26 Mayores[2]<-Nums[Indice];
27 sino // mayor que el
2º mayor
28 Mayores[1]<-Nums[Indice];
29 FinSi
30 FinSi
31 FinPara
32
33 Escribir "Resultados";
34 Para Indice<-2 hasta 1 Con Paso -1 Hacer
35 Escribir Mayores[Indice];
36
37 FinPara
38 FinProceso
Se ingresan los precios de 5 artículos y las cantidades vendidas por una empresa en sus 4 sucursales.Informar:
- Las cantidades totales de cada articulo.
- La cantidad de artículos en la sucursal 2.
- La cantidad del articulo 3 en la sucursal 1.
- La recaudación total de cada sucursal.
- La recaudación total de la empresa.
- La sucursal de mayor recaudación.
1 Proceso PreciosArticulosySucursales
2 //Se ingresan
los precios de 5 articulos y las cantidades
3 //vendidas por
una empresa en sus 4 sucursales.
4 //Informar:
5 // Las
cantidades totales de cada articulo.
6 // La cantidad
de artículos en la sucursal 2.
7 // la cantidad
del articulo 3 en la sucursal 1.
8 // la recaudación
total de cada sucursal.
9 // La recaudación
total de la empresa.
10 // La sucursal
de mayor recaudación.
11 Definir Precios como real;
12 Dimension Precios[5]; // precios de
los 5 articulos
13 Definir VentasSucursal Como Entero;
14 Dimension VentasSucursal[4,5];
15 Definir I, S , A
Como
Entero;
16 Escribir "Dime los
precios";
17 Para I<-1 hasta 5 Hacer
18 Escribir "A" , I Sin Saltar;
19 Leer Precios[I]
;
20 FinPara
21 Para S<-1 Hasta 4 hacer //paso por las
sucursales
22 Escribir "";
23 Escribir "Venta de la
sucursal num: ", S;
24 Para A <-1 hasta 5 hacer //Pido ventas
de cada articulo
25 Escribir "A", A Sin Saltar;
26 Leer VentasSucursal[S,A]
;
27 finpara
28 FinPara
29
30 Definir Cantidades como entero;
31 Dimension Cantidades[5];//cantidades
totales de cada articulo.
32 Para i<-1 hasta 5 hacer
33 Cantidades[i]<-0; // a acero para
acumular
34 FinPara
35
36 Definir totalS2 como entero;//cantidad de
art en sucursal 2.
37 TotalS2 <-0;
38
39 Definir CantAr3enS1 como entero;//cant del art
3 en sucursal 1.
40 CantAr3enS1 <- VentasSucursal[1,3];
41
42 Definir Recaudaciones como real;
43 Dimension Recaudaciones[4]; //recaudacion
total de cada sucul.
44 Para I<-1 hasta 4 hacer
45 Recaudaciones[I]<-0;
46 FinPara
47 Definir Total como real;// recaudacion
total de la empresa.
48 Total <- 0;
49 Definir MejorSucursal como entero;//sucursal de
mayor recaudacion.
50 Definir MaxSucursal como real;
51 MaxSucursal <- 0;
52 Para S<-1 Hasta 4 Hacer
53 Para A<-1 hasta 5 Hacer
54 Cantidades[A]
<- Cantidades[A] + VentasSucursal[S,A];
55 Si S = 2 Entonces
56 TotalS2 <- TotalS2 + VentasSucursal[S,A];
57 FinSi
58 Recaudaciones[S]
<- Recaudaciones[S] + ( VentasSucursal[S,A]
* Precios[A]);
59 Total <- Total + ( VentasSucursal[S,A]
* Precios[A]);
60 FinPara
61 FinPara
62
63 Escribir "Total de
Ventas por Articulos";
64 Para i<-1 hasta 5 hacer
65 Escribir "Articulo
" , i , "Total: " ,Cantidades[i];
66 FinPara
67 Escribir "Total ventas
Sucursal 2 :" , TotalS2;
68 Escribir "cant del art
3 en sucursal 1: " , CantAr3enS1;
69 Escribir "Recaudacion
de cada sucursal";
70 Para I<-1 hasta 4 hacer
71 Si Recaudaciones[I]
> MaxSucursal entonces
72 MaxSucursal<-Recaudaciones[I];
73 MejorSucursal<-I;
74 FinSi
75 Escribir "El Total en
sucursal ", i , " Es ", Recaudaciones[I];
76 FinPara
77 Escribir "Recaudacion
total de la empresa ", Total;
78 Escribir "La Mejor
sucursal es ", MejorSucursal, " Con " , MaxSucursal ," Euros.";
79 FinProceso
Hay unos multicines con 5 salas, y cada sala con 100 personas distribuidas en 20 asientos y 5 filas. Si yo pido entrada para una sala, implementar un programa que me diga si hay sitio en la sala.
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 FinProcesoOpción vender varias entradas:
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 FinSi
109 Hasta Que Sala = 0
110
111
112
113 FinProceso
Programa que lee dos matrices y permite operar con ellas sumar , restar y multiplicar.
1 Proceso OpertarConMatrices
2 //Programa que
lee dos matrices y permite operar con ellas
3 // 1 = sumar ,
2 = restar , 3 = multiplicar , 4 = Fin
4 Definir FilasA , ColumnasA
como
entero;
5 Definir FilasB , ColumnasB
como
entero;
6 Definir MatrizA , MatrizB
Como
Real;
7 Escribir "Dime las
filas de la Matriz A";
8 Leer FilasA;
9 Escribir "Dime las
columnas de la Matriz A";
10 Leer ColumnasA;
11 Dimension MatrizA[FilasA,
ColumnasA];
12 Definir i,j,x
como
entero;
13 Para i<-1 hasta FilasA hacer
14 Para j<-1 hasta ColumnasA hacer
15 MatrizA[i,j]
<- azar(10) ;
16 FinPara
17 FinPara
18 Escribir "Dime las
filas de la Matriz B";
19 Leer FilasB;
20 Escribir "Dime las
columnas de la Matriz B";
21 Leer ColumnasB;
22 Dimension MatrizB[FilasB,
ColumnasB];
23 Para i<-1 hasta FilasB hacer
24 Para j<-1 hasta ColumnasB hacer
25 MatrizB[i,j]
<- azar(10);
26 FinPara
27 FinPara
28 Escribir "Matriz
A";
29 Para i<-1 hasta FilasA hacer
30 Para j<-1 hasta ColumnasA hacer
31 Escribir MatrizA[i,j]
, "
" Sin Saltar;
32 FinPara
33 Escribir "";
34 FinPara
35 Escribir "Matriz
B";
36 Para i<-1 hasta FilasB hacer
37 Para j<-1 hasta ColumnasB hacer
38 Escribir MatrizB[i,j]
, "
" Sin Saltar;
39 FinPara
40 Escribir "";
41 FinPara
42 Definir operacion Como Entero; //1 suma 2
resta 3 producto 4 salir
43 Definir MatrizS, MatrizP
como
real;
44 Dimension MatrizS[FilasA,
ColumnasA];
45 Dimension MatrizP[FilasA,
ColumnasB];
46 Repetir
47 Escribir "Dime la
operacion a realizar 1 Suma 2 Resta 3 Producto 4 Fin";
48 Leer Operacion;
49 segun Operacion hacer
50 1: //sumar
51 Si FilasA <>
FilasB | ColumnasA <> ColumnasB entonces
52 Escribir "Solo se
pueden sumar matrices de la misma dimension";
53 Sino
54 Para i<-1 hasta FilasA hacer
55 Para j<-1 hasta ColumnasA hacer
56 MatrizS[i,j]
<- MatrizA[i,j] + MatrizB[i,j];
57 FinPara
58 FinPara
59 Escribir "Matriz
Suma";
60 Para i<-1 hasta FilasA hacer
61 Para j<-1 hasta ColumnasA hacer
62 Escribir MatrizS[i,j]
, "
" Sin Saltar;
63 FinPara
64 Escribir "";
65 FinPara
66 FinSi
67 2: //Restar
68 Si FilasA <>
FilasB | ColumnasA <> ColumnasB entonces
69 Escribir "Solo se
pueden restar matrices de la misma dimension";
70 Sino
71 Para i<-1 hasta FilasA hacer
72 Para j<-1 hasta ColumnasA hacer
73 MatrizS[i,j]
<- MatrizA[i,j] - MatrizB[i,j];
74 FinPara
75 FinPara
76 Escribir "Matriz
Resta";
77 Para i<-1 hasta FilasA hacer
78 Para j<-1 hasta ColumnasA hacer
79 Escribir MatrizS[i,j]
, "
" Sin Saltar;
80 FinPara
81 Escribir "";
82 FinPara
83 FinSi
84 3: //Producto
85 Si ColumnasA <>
FilasB Entonces
86 Escribir "Solo se
pueden multiplicar si el número de columnas de la primera matriz coincida con
el número de filas de la segunda";
87 Sino
88 Para i<-1 hasta FilasA Hacer
89 para j<-1 hasta ColumnasB Hacer
90 // Suma i,j es
Ain*Bnj
91 MatrizP[i,j]
<- 0;
92 para x<-1 hasta ColumnasA hacer
93 MatrizP[i,j]
<- MatrizP[i,j] + (MatrizA[i,x] * MatrizB[x,j]);
94 FinPara
95 FinPara
96 FinPara
97
98
99 Escribir "Matriz
Producto";
100 Para i<-1 hasta FilasA Hacer
101 para j<-1 hasta ColumnasB Hacer
102 Escribir MatrizP[i,j]
, "
" Sin Saltar;
103 FinPara
104 Escribir "";
105 FinPara
106 FinSi
107 FinSegun
108 Hasta Que operacion = 4
109
110
111
112 FinProceso
Siguiente>