Ejercicios de Programación Lógica Año 2010
Ejercicios de Programación Lógica Año 2010
Ejercicios de Programación Lógica Año 2010
GUIA DE EJERCICIOS
NOTA: Los ejercicios cuyo enunciado comiencen con el símbolo se realizarán en clase.
1) Realizar las siguientes operaciones entre variables numéricas enteras e indicar el conteni-
do final de las variables si el contenido inicial es:
AA = 6 A=1 B=3
a) AA = A
b) B = AA
c) A =AA + AA
d) B=B–A
e) A = AA * A
f) A=A*B–A
g) A = (B – A) / 2
2) Idem al punto 1.
A=2 B=3 C=6
A=A*B–C/A+C
3) Idem al punto 1.
A=2 B=4 C=8
A = A ** B / C * A – B / A
4) Idem al punto 1.
R = 40 S = 12 T=5
a) S=S/4
b) T = R + S – 10
c) T = R – 24 / S + T
d) R = R / 10 + S * T / S * 2
5) Antes de que pueda extenderse un carnet de conductor a un particular deben ser satisfechas
ciertas condiciones. Ordene los pasos para obtener el algoritmo necesario y dibuje el diagrama de
flujo correspondiente.
FIN
INICIO
RENDIR EXAMEN
EXTENDER CARNET
NEGAR CARNET
COBRAR DERECHO DE CARNET
APROBO EXAMEN ?
REINTEGRAR DERECHO DE CARNET.
ES VIA AEREA ?
COLOCAR CARTA EN EL SOBRE
PEGAR SOBRE
TIRAR CARTA ADENTRO DEL BUZON
12) Ingresar un número en una variable llamada A y otro en una variable X. Calcular el X%
de A y guardar el resultado en una variable llamada B. Imprimir B.
13) Ingresar un número entero en una variable llamada X. Si es 10, imprimir X, sumar 2 a X y
dejar el resultado en A. Si X es distinto de 10, imprimir el mensaje “El número no es correc-
to”.
15)Ingresar dos números, calcular e imprimir los dos posibles cocientes entre ellos.
16)Ingresar dos números y efectuar las dos posibles diferencias entre ellos, imprimiendo los co-
rrespondientes resultados.
17)Ingresar en una variable un número entero e imprimir el mismo tomando su valor absoluto.
18) Ingresar dos números en las variables A y B respectivamente. Efectuar los siguientes cálculos
e imprimir los resultados:
Si A > B C=A+B
Si A < B C=A–B
Si A = B C=A
20) Ingresar un número entero comprendido entro cero y nueve, ambos inclusive e imprimirlo
expresado en letras. Ej: 2 (dos), 5 (cinco) etc.
21) Leer un número mayor o igual que cero y menor que quince e imprimir este número en letras.
22) Se desea hacer un programa que calcule el combustible utilizado por un automóvil para reco-
rrer cierta distancia, como así también cuanto dinero se necesita para cubrir el consumo de
nafta para la distancia antes mencionada. Se deberá ingresar al comienzo la distancia recorri-
da, el valor por litro de la nafta y cuantos kilómetros por litro de nafta hace el automóvil.
25) Se tienen varios mazos de cartas mezclados e incompletos. Se sabe que en total hay 60
cartas. Realizar un algoritmo que determine cuantos cuatro de copas hay. Imprimir resultado.
26) En un bolillero hay 10 bolillas entre rojas, azules y blancas. Se extrae de a una hasta fina-
lizar con las 10. Indicar los pasos a seguir para determinar la cantidad de bolillas rojas, azules
y blancas que hay.
27) Se tira un dado de 6 caras numeradas del 1 al 6. Se tira el mismo 20 veces. Determinar e
imprimir, cuantas veces sale cada número.
34) Dada una serie de N números, deseamos saber cuántos superaron el valor de una variable
llamada LIMITE, cual es el mayor de los datos ingresados y en que orden apareció.
37) Ingresar 2 números enteros, positivos o negativos, en las variables A y B. Calcular el re-
sultado de la multiplicación de A y B sin utilizar el operador matemático de multiplicación (* )
y teniendo en cuenta el signo del resultado (+ ó -).
39) Ingresar un número entero positivo y determinar si es par o impar. Imprimir mensaje co-
rrespondiente.
40) Imprimir los números pares comprendidos entre 15 y 112 utilizando una estructura repeti-
tiva que vaya incrementando de 1 en 1 los valores a analizar.
42) En una empresa, la oficina de personal debe calcular los montos netos que cobrarán cada uno
de los empleados. Para ello se ingresan en la computadora los siguiente datos: Sueldo Básico,
legajo y categoría del empleado. Para calcular el sueldo neto de un empleado se deberá tener
en cuenta los siguientes incrementos dados por las categorías a las cuales pertenecen los em-
pleados:
PORCENTAJE DE
CATEGORÍA
INCREMENTO
1 10%
2 15%
3 20%
4 25%
5 30%
Imprimir Legajo, Sueldo Básico, monto del incremento y Sueldo Neto. También imprimir el total
general de cada uno de los ítem.
43) Ingresar un número entero comprendido entro cero y nueve, ambos inclusivo e imprimirlo
expresado en letras.
44) Imprimir las potencias de 2 con exponente de 1 a 100 (21, 22, 23,......,299,2100).
45) Idem al ejercicio anterior pero indicando con un asterisco (*) los exponentes impares.
46) Idem al ejercicio anterior pero alternando asterisco (*) y guión (-) en los exponentes im-
pares.
47) Se ingresan 20 ternas en las variables N, P y A; donde N: Nombre, P: peso y A: altura de
una persona. Se pide que se imprima al final el nombre del más pesado y del más bajo.
48) Imprimir la suma de N números. El algoritmo termina cuando se ingresa el número –99 (a
este no tenerlo en cuenta a la hora de sumar).
49) Ingresar una distancia expresada en Cms. En una variable de tipo real, si este valor es menor
de 1000 imprimirlo en Mts. , sino en Kms. y además imprimir en que unidad se imprimió el
valor.
50) Ingresar tres números distintos y enteros, imprimir el número entero de valor intermedio. Re-
dondear al valor entero mayor cuando el decimal es de 50 o más.
53) En una fábrica de cilindros se quiere realizar un listado de aquellas piezas que no cumplieron
con el estándar establecido para su fabricación. Los estándares son: longitud de 948 mm y un
radio de 200 mm con una tolerancia de mas o menos 3 por ciento. Ingresar por primera vez los
valores estándares y luego ingresar el número, longitud y radio de cada pieza. El proceso ter-
mina cuando se ingresa como número de pieza el cero.
54) En una oficina meteorológica se dispone de las temperaturas máximas y mínimas diarias a lo
largo de un período "x". Se quiere encontrar la temperatura mínima y máxima. Además la
máxima de las mínimas y la mínima de las máximas. Se debe ingresar de a pares ordenados
(min.- max.). El proceso termina cuando las temperaturas leídas sean (99 - 99).
55) Buscar el mayor de un conjunto de números y la posición en que este fue ingresado. El
algoritmo termina cuando se ingresa un múltiplo de 3 (a este valor no tenerlo en cuenta).
57) Dados los tres lados de un triángulo, informar el se trata de un triángulo equilátero, isósceles,
escaleno, o rectángulo en ese orden.
58) Ingresar las notas de Programación Lógica de los alumnos de 1er año y determinar la me-
jor nota, la peor nota y el promedio de las mismas.
59) Ingresar un número entero positivo e imprimir si se trata de un número primo (recordar
que los números primos son aquellos que sólo pueden ser divididos en forma exacta por la
unidad y por si mismo).
60) Ingresar pares de valores enteros, si el primer número es negativo, se debe sumar el se-
gundo a un acumulador. Si el primer número es múltiplo de 5, se debe acumular en otro lado
el cuadrado del segundo número y si el primer número es primo, se debe acumular la raíz cua-
drada del cubo del segundo número. Imprimir resultados.
NOTA: Cada paso excluye al siguiente, por ejemplo: si el primer número es negativo no se
deberá preguntar si el número es múltiplo de 5 ni si es primo.
61) Ingresar 25 valores. Imprimir al final la suma de los 12 primeros, el más chicos de los 6
siguientes, la suma y el promedio de los últimos y la suma total de todos los números ingresa-
dos. Imprimir también el valor del mayor de todos los números.
62) Calcular e imprimir los primeros 40 múltiplos de 9 que no sean múltiplos de cuatro.
63) Sumar todos los valores positivos impares ingresados e imprimir el resultado. El proceso ter-
mina cuando se ingrese el valor es igual a –999.
64) En un cine se quiere saber cuanto se recaudó a lo largo de un día, sabiendo que el valor de
la entrada es de tres pesos, que existen tres puertas de acceso y en el cine hay tres funciones
diarias codificadas de la siguiente manera: TA = tarde; NO = noche y TN = trasnoche. En cada
lectura ingresarán el número de puerta por el que ingresaron los espectadores, el código de la
función y la cantidad de entradas vendidas en dicha función. Además imprimir en que función
se recaudó más y en cual menos.
65) El cajero de un banco al finalizar el día quiere saber el saldo que debe tener en su poder.
Para esto dispone de una lista que el mismo fue confeccionando durante el día, en esta se en-
cuentran todas las extracciones y depósitos efectuados por los señores clientes, codificada de
la siguiente forma:
1 – Depósito
Operación 2 – Extracción
3 - Pago
Importe Cantidad de dinero operado
1 – Cuentas corrientes
Cta 2 – Impuestos
3 - otros
Los datos se ingresan en forma de ternas. El proceso debe terminar cuándo se lea un importe
igual a cero.
66) Modificar el ejercicio anterior para que también calcule e indique por pantalla el importe
promedio de las operaciones efectuadas.
67) En una farmacia necesitan ordenar el sistema de compras y ventas, e introducir una compu-
tadora para una mayor rapidez y efectividad; a tal efecto contrataron a un analista de sistemas,
el que cargo un listado, con los datos pertinentes a los procesos que luego se deben realizar.
Resolver cada uno de los ejercicios que a continuación se detallan con los datos antes menciona-
dos.
67.1) Calcular e imprimir el importe que debe pagar cada cliente junto con los datos del
mismo.
67.7) Indicar mediante un mensaje por cuál de las tres formas de venta se recaudo mayor
importe.
67.9) Informar si la cantidad de ventas con obra social fue superior a la cantidad de ventas
realizadas sin obra social.
67.10) Buscar e imprimir el mayor importe de las ventas realizadas a clientes con obra so-
cial.
68) Ingresar 25 números. Encontrar e imprimir el mayor de todos y el que le sigue en valor.
69) En un espectáculo teatral se desea determinar el total recaudado en cada sector por ventas de
entradas. Se vendieron 500 entradas. Si el espectador eligió SA (Sector A): 5 pesos, SB (Sec-
tor B): 10 pesos y SC (Sector C): 20 pesos. Tener en cuenta que si la persona es menor de
edad el precio de la entrada es la mitad. Determinar el total recaudado por cada sector y la can-
tidad de entradas vendidas en cada sector.
VECTORES
72) Generar un vector con los nombres de los meses luego ingresar el nombre de un mes e
imprimir el número del mes.
73) Ingresar valores a un vector dando en primer lugar la cantidad de elementos que tiene el
mismo. Se pide:
75) Crear un vector de 20 elementos y cargarlo con números enteros positivos y el cero. Emi-
tir la cantidad de elementos iguales a 0 y los elementos con valores impares.
76) Cargar un vector con cincuenta valores enteros, imprimir las posiciones de todos los elemen-
tos que sean múltiplos de tres.
77) Cargar un vector de 30 elementos con números. Imprimir el lugar que ocupa el mínimo
valor. Tener en cuenta que este puede aparecer repetido. En ese caso imprimir todos los luga-
res donde aparece ese valor.
78) Cargar un vector de N elementos (a N ingresarlo al comienzo del algoritmo) con números.
Elimine el valor del primer elemento y desplace los demás de lugar de tal manera que el últi-
mo elemento valga cero.
79) Con los datos de una lista que contiene- nombre, numero de legajo y sueldo de cada uno
de los empleados de una empresa, realizar las siguientes operaciones. Esta firma contiene co-
mo máximo MIL empleados.
78.1) Cargar todos los datos de esta lista en los vectores NOM, LEG, SUE respectivamente.
78.2) Luego de cargarlos en los vectores, listar todos los nombres de los empleados con
número de legajo impar.
78.3) Emitir un listado de todos aquellos empleados que perciban un sueldo inferior al suel-
do promedio pagado por la firma.
78.4) Indicar el numero de orden en la lista (posición que ocupan en el vector) de todos
aquellos empleados cuyo legajo, sea par.
78.5) Imprimir un listado de todos aquellos empleados cuya posición en el vector sea impar
(número de orden en la lectura).
80) Cargar un vector con un conjunto de letras elegidas al azar, luego imprimir las posiciones de
todas aquellas letras que sean vocales.
81) Cargar un vector con números reales positivos; calcular, e imprimir el promedio de todos los
elementos mayores que 50. El último elemento de la serie de números a cargar (que no debe
ser incluido) es cero.
82) Cargar 2 vectores de dimensión W con Números enteros. Hallar un tercero que cumpla:
C(1) = A(1) + B(1), C(2) = A(2) - B(2), C(3) = A(3) + B(3), C(4) = A(4) – B(4),....
83) Se tiene la información de las ventas realizadas por M sucursales de una empresa. Ingre-
sar en un vector las M ventas y determinar:
85) Cargar un vector de 30 elementos con números enteros e ingresar un número entero en
una variable llamada N. Se pide: imprimir la cantidad de valores iguales a N que hay en el
vector, y la cantidad de múltiplos de N que hay en el vector.
NOTA: En caso de que el máximo se repita tomar el que tenga el índice menor, y en caso
de que el mínimo valor dentro del vector se repita, tomar el de índice mayor.
87) Cargar un vector de 20 elementos. Se debe invertir sin utilizar un vector auxiliar. Impri-
mir el vector luego de invertirlo.
88) Cargar 2 vectores de 25 elementos cada uno. Generar un tercer vector cuyos elementos surjan
de sumar los elementos correspondientes entre el primer vector y el segundo previo invertir
sus elementos.
89) La panadería TRIG0 LIMPIO desea evaluar algunos datos sobre la comercialización de sus
productos, para ello deberá procesarse un listado, que contiene un resumen de las ventas reali-
zadas desde el día primero al ultimo día de un periodo cualquiera; estos datos se encuentran
agrupados de la siguiente forma:
RESUMEN DE VENTAS
Notación:
90) Cargar un vector con 30 números enteros, ordenarlos e imprimirlos en orden ascendente.
91) Cargar una vector con los nombres de los alumnos de este curso e imprimir en forma or-
denada alfabéticamente.
92) Cargar 2 vectores de 30 elementos cada uno con números enteros, ordenados de menor a ma-
yor. Se pide imprimir:
e) Todos los elementos (números) que están en el primer vector pero no están en el se-
gundo.
f) Los que están en ambos.
g) Los que están en el segundo únicamente.
MATRICES
93) Cargar por filas con datos numéricos una matriz de 20 filas y 5 columnas. Imprimirlo por
columna.
94) Cargar por columna con datos numéricos una matriz de 15 filas y 4 columnas. Imprimirlo
por fila.
95) Cargar una matriz de M x N elementos (M y N deberán ingresarse antes de crear la ma-
triz) con datos de tipo carácter.
96) Cargar un a matriz A(4,7) por columnas con los primeros números impares. Listarla por filas.
97) Ingresar números enteros a una matriz A(M,N). Determinar la cantidad de elementos con
valores impares leyéndola por columnas.
98) Cargar una matriz de 10 X 10 elementos y obtener el resultado de la suma de cada fila y de
cada columna.
Imprimir la cantidad de personas cuyas edades sean mayores de 50 años y las que tengan de 18 a
50 años.
100) Cargar una matriz de 2 x 50 elementos donde: A(1,J): tiene el nombre y A(2,J): la ca-
tegoría que puede ser A, B o C. Imprimir la cantidad de personas que tienen la categoría A, B
y C.
101) Cargar una matriz de 8 x 8 elementos A(8,8) y a partir de está, generar un vector V(k),
que contenga los elementos de A(I,J) mayores que un número ingresado al comienzo del algo-
ritmo.
102) Cargar una matriz de 10 x 10 elementos con número enteros e imprimir en este orden
los siguientes elementos.
103) Basados en la matriz del ejercicio anterior determinar tambien los mayore y menores valo-
res de cada caso antes desglosados.
104) Cargar una matriz de M x N elementos con números enteros y buscar e imprimir el mayor
elemento de cada fila.
105) Cargar una matriz de M x N elementos con números enteros y buscar e imprimir el menor
elemento de cada columna.