Está en la página 1de 15

Planteo :

Numeros Repeticiones
1 5
2 4 ------ Indefinidas veces
3 3
Comentario de Lean 4 1
num Ver Mañana ...
contarNum = 0;
i=1;

Mientras No EoF
auxNum = num;
Mientras auxNum == num Mini prueba de escritorio:
contarNum = contarNum + 1;
num Num auxNum contarNum maxContador maxNum i
Fin Mientras 1
i=1 0
v f 1
maxContador = contarNum 1
i=2 1
maxNum = auxNum 1
2
contarNum > maxContador 1
v f 3
maxContador = contarNum 1
maxNum = auxNum 4
1
" El numero ", auxNum , " se repitio ", contarNum , " veces" 5
2 1
contarNum = 0 5
Fin Mientras 2
1
"El numero 1 se repitio 5 veces"
" El numero que se repitio mas veces es ", maxNum 0
2
1
2
2
2
3
.........

Lean:
maxNum;
cant=0;
maxi=0;

num
Mientras num != 0
aux = num;
Mientras aux == num
cant = cant + 1;
num
Fin Mientras
max < cant
v f
max = cant
maxNum = aux

" El numero ", aux , " se repitio ", cant , " veces"

cant=0;

"El numero que mas se repitio es:", maxNum;


Planteo :

Dia Repeticiones
1 4
2 2 ------ Indefinidas veces
3 1
dia, temp 4 3

Mientras dia <= 30 //Comentario


auxDia = dia;

Mientras auxDia = dia


sumaT = sumaT + temp;
cantMuestras = cantMuestras + 1

cantMuestras = 1
v f
mayor = temp
menor = temp
temp > mayor
v f
mayor = temp
temp < menor
v f
menor = temp

dia, temp

promedio = sumaT / cantMuestras


" Registro del dia ", auxDia;
" Mayor temperatura : ", mayor;
" Menor temperatura : ", menor;
" Promedio : ", promedio;

sumaT = 0 ;
cantMuestras = 0;
codCliente, dia, venta
sumaV = 0;
contadorV = 0;
i = 1;

Mientras codCliente != 0
auxCliente = codCliente;

"Código de cliente : " , cod cliente


Mientras auxCliente = codCliente
sumaV = sumaV + venta;
contadorV = contadorV + 1;
"Dia : " , dia, ", importe realizado = $ ", venta

codCliente, dia, venta

promedio = sumaV / contadorV;

"Total vendido = $ " , sumaT;


"Promedio = $ " , promedio;

i=1
v f
maxCompras = contadorV;
minImporte = sumaV;
maxCliente = auxCliente;
minCliente = auxCliente
i=i+1

contadorV > maxCompras


v f
maxCompras = contadorV
maxCliente = auxCliente
sumaV < minImporte
v f
minImporte = sumaV
minCliente = auxCliente

sumaV = 0;
contadorV = 0;

"El cliente " , maxCliente, " realizo mas compras ";


"El cliente " , minCliente, " realizo el menor importe ";
numVuelo, pasajeros, codDestino

sumaPasajeros = 0;
totalVuelos = 0;
vuelosCompletos = 0;

Mientras codDestino != " "


auxDestino = codDestino;
Mientras auxDestino = codDestino
sumaPasajeros = sumaPasajeros + pasajeros;

pasajeros = 150
V F
vuelosCompletos = vuelosCompletos + 1; "Vuelo ", numVuelo;
"Vuelo ", numVuelo; "Destino ", codDestino
"Destino ", codDestino " Espacios libres "
" Completo "

totalVuelos = totalVuelos + 1 ;

numVuelo, pasajeros, codDestino

porcentaje = vuelosCompletos / totalVuelos * 100;

"Porcentaje de vuelos completos : ", porcentaje ;


"Total de pasajeros : ", sumaPasajeros ;

sumaPasajeros = 0;
totalVuelos = 0;
vuelosCompletos = 0;
49

Tam, Can
sumaCan=0 canTam=0 cont=0
Mientras No EoF
auxTam=Tam
Mientras auxTam=Tam
sumaCan=sumaCan+Can
canTam=canTam+1

Tam, Can

cont=cont+1

si sumaCan>300
v f
ma300=ma300+1

si cont=1
v f
minTam=Tam
Menor=sumaCan

si sumaCan<Menor
v f
minTam=Tam
Menor=sumaCan

PromGen=sumaCan/canTam

"Promedio general del Tamaño" ;Tam ": " ;PromGen

sumaCan=0
canTam=0
"La cantidad de tamaños con una fabricación mayor a 300 es de: " ;ma300

"El tamaño con menor fabricación es: " ;minTam


Enf, Bac
canBac=0 totalBac=0 cont=0
Mientras No EoF
auxEnf=Enf
Mientras auxEnf=Enf
totalBac=totalBac+Bac
contBac=contBac+1

Enf, Bac

cont=cont+1

si totalBac>30000
v f
ma30000=ma30000+1

si cont=1
v f
minBac=Enf
Menor=totalBac

si totalBac<Menor
v f
minBac=Enf
Menor=totalBac

PromGen=totalBac/contBac

"Promedio general de las bacterias de" ;Enf ": " ;PromGen

totalBac=0
canBac=0

"La cantidad de enfermedades con una cantidad acumulada de bacterias superior a 30.000 es: " ;ma30000

"La enfermedad con menor cantidad de bacterias es: " ;minBac


Ejercicio 51
En un archivo vienen informados los datos de las notas que los alumnos obtienen en las
materias que cursan, se desea saber, por lo tanto, imprimir:
Cuando alumnos cursan cada materia (hay varios registros por alumno, y por materia)
2 - La nota promedio de cada alumno.
3 - Nota promedio general.
La finalización está determinada por EOF.

contar = 0, sumaNota = 0 cuentaProm = 0, promGral = 0; alumMat = 0


Leer N° de legajo, Código Materia, Nota, Nombre y Apellido
Mientras <> EoF
contar = contar + 1
SI contar == 1
SI NO
alumno = Nombre Y Apellido
LegPromedio = N° de legajo
cuentaProm = 1
SI LegPromedio == N° de legajo
SI NO
sumaNota = sumaNota + Nota
cuentaProm = cuentaProm + 1

LegPromedio <> N° de legajo


SI NO
Escribir "El Promedio del Alumno: ", alumno, " es "
cuentaProm > 0
SI NO
Escribir " igual a: ", sumaNota / CuentaProm Escribir " Sin Notas "
alumno = Nombre Y Apellido
LegPromedio = N° de legajo
sumaNota = 0
cuentaProm = 0
promGral = promGral + Nota
Leer N° de legajo, Código Materia, Nota, Nombre y Apellido
Fin Mientras
SI contar > 0
SI NO
Escribir " El promedio general es igual a: ", promGral / contar Escribir " Sin Promedios "
Generar un arreglo de 25 componentes en el cual las mismas contengan los primeros
números naturales pares e imprimirlo.

Tito [ 25 ] Tito [ i ] 2*i


1 2
Para i=1 hasta i<26 con paso 1 , 2 4
Tito [ i ] = 2 * i; 3 6
Escribir Tito [ i ]

Ingresar un conjunto VEC1 de 50 números enteros. A partir de este conjunto generar otro
VEC2 en el que cada elemento sea el doble del elemento homólogo de VEC1. Finalmente
imprimir ambos vectores a razón de un valor de cada uno por renglón.

VEC1 [ 50 ]
VEC2 [ 50 ]

Para i=1 hasta i<51 con paso 1 1 1 2


2 2 4
Leer num

VEC1 [ i ] = num;
VEC2[ i ] = VEC1 [ i ] * 2;

Escribir VEC1 [ i ] , VEC2 [ i ] ;

VEC1 [ 100 ]

suma = 0

Para i = 1 hasta i < 101 con paso 1

Leer num
suma = suma + num;
VEC1 [ i ] = num ;

Si (suma MOD 2 = 0 )
v f

Observaciones Y lo que se hizo fue copiar VEC1 en VEC2


Se deben intercambiar los valores.esto es:
Al inicio del programa Al finalizar programa
Posicion VEC1 [ 41 ] VEC2 [ 41 ] Posicion VEC1 [ 41 ] VEC2 [ 41 ]
0 6 8 0 8 6
1 8 10 1 10 8
VEC1 [ 41 ] 2 7 1 2 1 7
VEC2 [ 41 ] 3 10 9 3 9 10
4 2 9 4 9 2
Para i = 0 hasta i < 41 con paso 1 5 8 1 5 1 8
Leer num 6 3 0 6 0 3
VEC1 [ i ] = num ; 7 4 3 7 3 4
VEC2 [ 40 - i ] = VEC1 [ i ] 8 1 6 8 6 1
9 5 1 9 1 5
10 5 8 10 8 5
11 7 9 11 9 7
12 4 1 12 1 4
Para i = 0 hasta i < 41 con paso 1 13 4 9 13 9 4
14 9 4 14 4 9
Escribir VEC1 [ i ] ; 15 0 10 15 10 0
Escribir VEC2 [ i ] ;

VEC1 [ 50 ]

suma = 0;
Para i = 0 hasta i < 50 con paso 1
Leer num
VEC1 [ i ] = num ;

Si i = 0
v f
max = num
min = num
posMin = i;
posMax = i;

Si VEC1 [ i ] > max


v f
max = VEC1 [ i ];
posMax = i;

Si VEC1 [ i ] < min


v f
min = VEC1 [ i ];
posMin = i;

suma = suma + VEC1 [ i ];

promedio = suma / 50 ;

Para i = 0 hasta i < 50 con paso 1

" Posicion " , i , " ---> " , VEC1 [ i ]

Escribir " El mayor es " , max , " en la posicion " , posMax


Escribir " El menor es " , min , " en la posicion " , posMin
Escribir " El promedio es ", promedio ;

VEC1 [ 50 ]
VEC2 [ 50 ]

Para i = 1 hasta i < 51 con paso 1


Leer num;
VEC1 [ i ] = num ;
VEC2 [ i ] = num ;

Para i = 1 hasta i < 50 con paso 1


Para j = i + 1 hasta i <51 con paso 1
VEC2 [ i ] < VEC2 [ j ]
v f
aux = VEC2 [ i ]
VEC2 [ i ] = VEC2 [ j ]
VEC2 [ j ] = aux

Para i = 1 hasta i < 51 con paso 1

Escribir VEC1 [ i ] ;
Escribir VEC2 [ i ] ;
I
J 1 2 3 4 5 6 7 8 9 10 11 12 13
1 1
2 5 56
3 5 231
4 12
COLUMNA FILA I = Columna 5 321 45
i j I=1 I=2 I=3 I=4 6
1 1 MAT1[1,1] MAT1[1,2] MAT1[J,I] MAT1[1,2] 7
2 2 MAT1[2,1] MAT1[2,2] MAT1[2,2] MAT1[2,2] 8
3 3 MAT1[3,1] MAT1[3,2] MAT1[3,2] MAT1[3,2] 9
4 4 MAT1[4,1] MAT1[4,2] MAT1[4,2] MAT1[4,2] 10
MAT1[30;25] 5 5 11
6 6 12
Cargamos el vector 7 7 13
para i=0 hasta i < 30 con paso 1 8 14
9
para j=0 hasta j<25 con paso 1 10
"Ingrese un numero Entero " 11
Leer MAT1[i,j] 12
FinPara
FinPara

para i=0 hasta i < 30 con paso 1 Filas


"Fila" ;i, MAT[i,0], MAT[i,1], MAT[i,2], MAT[i,3]... Fila 1 columna1 columna2 columna3
para j=0 hasta j<25 con paso 1 Columnas 25 30
" " ;MAT1[i, j] Imprime Matriz por Columnas
sumaMat=sumaMat+MAT1[i,j] Acumulamos para Promedio
cont=cont+1 Contador para Promedio General

VECMAXFIL[i] < MAT[i,j] Si El valor de la fila es mayor al guardado


SI NO 1 326 61 12 45 231 0 0 0
VECMAXFIL[i] = MAT[i,j] Guardando el Valor Maximo de cada fila

FinPara
"Valor maximo de la fila ", i, "es ", VECMAXFIL[i]
FinPara int MAT1[30][25 ];
for(int i = 0;i < 30 ; i++)
para i=1 hasta i =25 con paso 1 {
para j=1 hasta j = 30 con paso 1 for(int j = 0; j < 25;j++)
VECSUMCOL[i]=VECSUMCOL[i]+MAT1[j, i] MAT1[J,I] { printf(" ", MAT1[i,j]);

}
FinPara }
"Suma de la columna ", i, "es ", VECSUMCOL[i]

FinPara
Orden
ventas Vendedor Venta
ventas [ vendedor ] Vendedor Ventas acumuladas 0 2 700
0 -- > 500 700 1
Leer nV , valor 1 -- > 600 2 0 500
2 --> 700 500 3
Mientras nV != 11 3 --> 400 4
4 --> 300 5
ventas [ nV ] = ventas [ nV ] + ventas 5 --> 200

Leer nV , valor nV Total --> ventas [ i ]


Falto imprimir a medida que leiamos

Para i = 1 hasta i = 10 Orden i Valor Orden j Valor


1 500 2 600
orden [ i , 1 ] = i ; No declaramos la matriz 1 600 3 700
orden [ i, 2 ] = ventas [ i ] 1 700 4 400
1 700 5 300
1 700 6 ...

Para i = 1 hasta i = 9
Para j = i + 1 hasta i = 10

orden [ i , 2 ] < orden [ j, 2 ]


v f
aux = orden [ i , 2]
orden [ i , 2 ] = orden [ j, 2 ]
orden [ j , 2 ] = aux

aux2 = orden [ i , 1]
orden [ i , 1 ] = orden [ j , 1]
orden [ j, 1 ] = aux2

Para i = 1 hasta i = 10

Escribir " El vendedor ", orden [ i, 1 ], " vendio un total de ", orden [ i, 2 ]
Tito [ 3 , 11 ]
cat, area, hstr
area
Mientras cat <> 0 1 2 3 4 5
Tito [ cat , area ] = Tito [ cat, area] + hstr 1 20
cat 2 50
cat, area, hstr 3
4
Para i = 1 hasta i = 3
Para j = 1 hasta j = 10 5

Tito [ i, 11 ] = Tito [ i, 11 ] + Tito [ i, j]

Escribir " Area 1 Area 2 Area 3 ....."


Para i = 1 hasta i = 3

Escribir " Categoria ", i , " : " , Tito [cat, 1 ] , Tito [ cat , 2 ] , Tito [ cat , 3 ], Tito [ cat , 4 ] ...
Escribir " Horas trabajadas totales: " --> " Tito [ i, 11]
Ejercicio 61
Una empresa tiene cuatro depósitos, donde se almacenan los artículos fabricados, los cuales Depositos Articulos Vendedores
son diez, que son vendidos por sus doce jefes de ventas. 4 10 12
Por cada venta realizada se registra la siguiente información:
N° de Depósito N° de Artículo N° de Vendedor Valor de la Venta
Pueden existir varias ventas del mismo depósito, del mismo artículo, del mismo vendedor, y deposito venta deposito venta
los datos ingresan respetando el formato establecido y pueden llegar en cualquier orden. 2 1500 0 200
El final de ingreso de datos se produce con el número de depósito 5. 1 500 1 500
Se pide: 3 400 2 1500
Cuál fue el valor de venta máximo, indicando el depósito, el artículo y el vendedor 0 200 3 400
correspondiente. 4 100 4 100

Realizar e imprimir una tabla con las ventas totales de cada depósito ordenada de vector[0] 4 100
forma decreciente, indicando el número de depósito y la venta total. vector[1] 0 200
vector[2] 3 400
maximo, deposito,articulo,vendedor vector[3] 1 500
TITO[deposito][articulo][vendedor] vector[4] 2 1500
TITO_1[deposito][2]
Mientras deposito <> 5
TITO[deposito][articulo][vendedor] = TITO[deposito][articulo][vendedor] +ValVent

Fin mientras
PARA I =1 HASTA I = 4 CON PASO 1
PARA J =1 HASTA J = 10 CON PASO 1
PARA K =1 HASTA K = 12 CON PASO 1

Deposito 1
Articulos V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
1 0
2
3
4
5
6
7
8
9
10

También podría gustarte