Algoritmos y Ejercicios de Programación
Algoritmos y Ejercicios de Programación
.C
DD
EJEMPLOS Y EJERCICIOS
LA
FI
ALGORITMIA
Ejercicio No: 1
Desarrolle un algoritmo que permita leer dos valores distintos, determinar cual de los dos valores es el
mayor y escribirlo.
OM
Pseudocódigo Diagrama de Flujo
1. Inicio
Inicio
2. Inicializar variables: A = 0, B = 0
.C
valores distintos “Introduzca dos
valores
4. Leer los dos valores distintos”
DD
5. Asignarlos a las variables A y B
6. Si A = B Entonces vuelve a 3
porque los valores deben ser A, B
distintos
Si
7. Si A>B Entonces A=B
LA
9. Fin_Si
B “Es el mayor” A “Es el mayor”
10. Fin
Fin
Ejercicios propuesto:
a. Realizar un algoritmo que permita leer dos valores, determinar cual de los dos valores es el
menor y escríbalo
b. Realizar un algoritmo que sume dos números.
Ejercicio No: 2
Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C
respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que
los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de
OM
que se detecte la introducción de valores iguales.
1. Inicio
Inicio
2. Inicializar las variables A, B y C
3. Leer los tres valores
4.
yC
.C
Almacenar en las variables A, B
Si
DD
A > B y A >C
6. Escribir A “Es el mayor”
12. Fin_Si
Fin
13. Fin_Si
14. Fin
Ejercicios propuestos:
Ejercicio No: 3
Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10,
es decir, 1 + 2 + 3 + …. + 10.
OM
Pseudocódigo Diagrama de Flujo
1. Inicio
.C
N= 0, Suma = 0
5. Si N = 10 Entonces
No
6. Escribir Suma N = 10
LA
8. Fin_Si
8. Fin
FI
Fin
Ejercicios propuestos:
a. Desarrolle un algoritmo que realice la sumatoria de los números enteros múltiplos de 5, comprendidos
entre el 1 y el 100, es decir, 5 + 10 + 15 +…. + 100. El programa deberá imprimir los números en
cuestión y finalmente su sumatoria
b. Desarrolle un algoritmo que realice la sumatoria de los números enteros pares comprendidos entre el 1
y el 100, es decir, 2 + 4 + 6 +…. + 100. El programa deberá imprimir los números en cuestión y
finalmente su sumatoria
c. Desarrolle un algoritmo que lea los primeros 300 números enteros y determine cuántos de ellos son
impares; al final deberá indicar su sumatoria.
Ejercicio No: 4
Determinar la hipotenusa de un triángulo rectángulo conocidas las longitudes de sus dos catetos.
Desarrolle el algoritmo correspondiente.
OM
1. Inicio
Inicio
.C
4. Almacenarlo en la variable CatA y
CatB
CatA, CatB
7. Fin
LA
Fin
FI
Ejercicio propuestos:
Ejercicio No: 5
Desarrolle un algoritmo que permita determinar el área y volumen de un cilindro dado su radio (R) y
altura (H).
OM
1. Inicio
2. Declaración de variables: R = 0, H = 0
.C
3. Leer el valor de Radio (R) y Altura (H)
7. Fin
LA
FI
Ejercicio:
Ejercicio No: 6
Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si dicho número es par o impar.
OM
Pseudocódigo Diagrama de Flujo
1. Inicio
2. Declaración de variables: N
Inicio
.C
3. Leer un número
N=0
4. Asignarlo a la variable N
8. Fin_Si
LA
9. Fin
Fin
FI
Ejercicios propuesto:
a. Complete el algoritmo con la instrucción o instrucciones necesarias.
b. Desarrolle un algoritmo que le permita determinar de una lista de números:
b.1. ¿Cuántos están entre el 50 y 75, ambos inclusive?
b.2. ¿Cuántos mayores de 80?
b.3. ¿Cuántos menores de 30?
El algoritmo debe finalizar cuando n (el total de números de la lista), sea igual a 0.
Ejercicio No: 7
Desarrolle un algoritmo que permita convertir calificaciones numéricas, según la siguiente tabla:
A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1 hasta el 9. Se asume que la nota está
comprendida entre 1 y 20.
OM
1. Inicio Inicio
2. Declaración de variables:
NuevaNota =”A”
NuevaNota = Carácter
.C
4. Si Nota>=19 OR Nota<=20 Entonces Si
Fin
Fin
Archivo?
5. NuevaNota= “A”
No
6. Si no (De lo contrario) Si
DD
Nota>=19 OR NuevaNota = “A”
Nota<=20
7. Si Nota>=16 OR Nota<=18 Entonces
No
8. NuevaNota= “B”
Si
Nota>=16 OR NuevaNota = “B”
Nota<=18
9. Si no (De lo contrario)
LA
No
10. Si Nota>=13 OR Nota<=15 Entonces
Si
Nota>=13 OR NuevaNota = “C”
11. NuevaNota= “C” Nota<=15
Ejercicio propuesto:
a. Realiza el mismo algoritmo utilizando Mientras (While); también hazlo utilizando En Caso (Case)
Ejercicio No: 8
Desarrolle un algoritmo que permita leer dos números y ordenarlos de menor a mayor, si es el caso.
OM
1. Inicio
Inicio
2. Declaración de Variables:
A = 0, B = 0, Temporal = 0
A=0, B=0, Temporal = 0
3. Leer A y B
.C
A, B
4. Si A<B Entonces
Si
5. Asignar a Temporal = B A>B
6. Asignar a B = A No
DD
Temporal = B Si
7. Asignar a A = Temporal
8. Si no (De lo contrario)
B=A
9. Fin_Si
LA
A = Temporal”
10 Escribir “Orden = “, A, B
11. Fin
“Orden = “ A , B
FI
Fin
Ejercicio Propuesto:
a. Desarrolle un algoritmo que permita realizar la escritura de los primeros 100 números naturales
utilizando la estructura Mientras (While).
Ejercicio No: 9
Desarrolle un algoritmo que permita leer un valor entero positivo N y determinar si es primo o no.
OM
1. Inicio
2. Declaración de variables:
Inicio
J = 2, S =0
3. Leer N
J =2, S = 0
4. Mientras J<= N / 2 hacer
N
.C
5. Si N / J =0
No >
6. S=S+1
7. J=J+1 J= N/
8. Fin_Si 2
DD
9. Fin del ciclo mientras <=
Si
10. Si S = 0 Entonces N/J=0
No Si
11. Escribir N “es primo” S=S+1 N/J=0
N, “no es N, “es
primo” primo”
13. Escribir N “no es primo” J=J+1
14. Fin_Si
Ejercicio propuesto:
Ejercicio No: 10
Tanto el Pseudocódigo como el Diagrama de flujo presentan errores; encuéntrelos y corrijalos. Realice un
algoritmo que calcule el monto a pagar por el servicio de estacionamiento, teniendo en cuenta que por la
primera hora de estadía se tiene una tarifa de 1000 bolívares y las restantes tienen un costo de 600 bolívares.
Se tiene como datos: hora de entrada, hora de salida (formato militar), iniciada una hora se contabiliza como
hora total.
OM
Pseudocódigo Diagrama de Flujo
1. Inicio Inicio
2. Declaración de Variables
HE = 0 (Hora Entrada)
HS = 0 (Hora Salida) HE = 0, HS = 0
.C
Pago = 0 Pagor = 0
3. Leer Datos: HE, HS
4. HoraEstadia = HS – HE HE, HS
DD
5. HoraFracción = HoraEstadia–HoraEstadia
HoraEstadia = HS – HE
Fraccion =
6. Si HoraEstadia>= 1 Entonces
Si
9. Fin_SI
Fraccion>=1
10. Hora Restante = HoraEstadia – 1 Si
No HoraEstadia=HoraEstadia +1
11. Pago = 1000 + (HoraRestante * 600)
FI
12. De lo contrario
HorasRestante=HoraEstadia - 1
13. Pago = 1000
14. Imprimir resultado
Pago = 1000 + (Horas Restantes * 600)
15. Fin
“Paga”, Pago
Fin
Ejercicio propuesto:
a. Realice un algoritmo que determine el pago a realizar por la entrada a un espectáculo donde se pueden
comprar sólo hasta cuatro entrada, donde al costo de dos entradas se les descuenta el 10%, al de tres
entrada el 15% y a la compra de cuatro tickets se le descuenta el 20 %.
Ejercicio No: 11
Realice un algoritmo que a partir de proporcionarle la velocidad de un automóvil, expresada en
kilómetros por hora, proporcione la velocidad en metros por segundo.
OM
1. Inicio
2. Declaración de Variables:
Vel = 0
.C
4. Versal = (Vel * 1000) / 3600
5. Imprimir resultado
DD
6. Fin
LA
FI
Ejercicio propuesto:
a. Desarrolle un algoritmo que lea la velocidad en metros por segundo y la convierta a kilómetros por
hora.
Ejercicio No: 12
Desarrolle un algoritmo que permita calcular Promedio de Notas; finaliza cuando N = 0.
OM
1. Inicio
2. Declaración de Variables:
Inicio
N = 0, Promedio = 0, Acumula= 0
5.
6.
.C
Cuenta = Cuenta + 1
Acumula = Acumula + N
N
N <>0
No
DD
7. Fin Mientras
Si
8. Promedio = Acumula/Cuenta
Cuenta = Cuenta + 1
9. Imprimir “Promedio:”; Promedio
Retorno
“Promedio: ”, Promedio
Fin
Ejercicio propuesto:
Ejercicio No: 13
Desarrolle un algoritmo para la empresa Constructora Tecnovivir Casas C.A., que le permita calcular e
imprimir la nómina para su cancelación a un total de 50 obreros calificados a quienes debe cancelar por
horas trabajadas. La hora trabajada se pautó en 30.000 Bolívares.
OM
Pseudocódigo Diagrama de Flujo
Inicio
1. Inicio
Numero_Obreros=50, Total_nomina=0,
2. Declaración de Variables: Numero_Horas_Trabajadas=0
Numero_Obreros =50
Numero_Hora_Trabajadas = 0
Titulos
Total_nomina = 0
4. Leer Datos
.C
3. Imprimir líneas de títulos de la nómina
5. Mientras Numero_Obreros>0
Datos
No
DD
Número_Obreros >0
6. Salario = Numero_Hora_Trabajada * 30
7. Total_nómina= Totalnómina + Salario
8. Numero_Obreros = Numero_Obreros - 1 Si
9. Imprimir Registro
10. Leer Datos Salario = Numero_Hora_Trabajada * 30000
11. Fin_Mientras
LA
13. Fin
Numero_Obreros = Numero_Obreros - 1
FI
Registro
Datos
Retorno
“Total:”, Total_nomina
Fin
Ejercicios propuestos:
a. ¿Qué pasaría si no se decrementa al número de obreros en uno?
b. Realice el mismo algoritmo utilizando la herramienta FOR,
c. Realice el mismo algoritmo utilizando la herramienta REPEAT.
Ejercicio No: 14
Desarrolle un algoritmo que funcione como caja registradora,
OM
1. Inicio
Inicio
2. Declaración de Variables:
Sub_total=0,Total = 0
Subtotal = 0, Total = 0
3. Ingrese “Código de Producto y
Precio:” Codigo_Producto,
Precio
.C
4. Almacenar Codigo_Producto, Precio
Titulos
5. Imprimir líneas de títulos del recibo
de pago
DD
No
6. Mientras Código_Producto <> “ “ Código_Producto<>” “
Código_Producto,
Precio:” Precio
10. Fin_Mientras
Código_Producto,
11. IVA = Subtotal * 0,15 Precio
FI
Fin
Ejercicios propuestos:
Ejercicio No: 15
Desarrolle un algoritmo que permita determinar a partir de un número de días, ingresado por pantalla, ¿Cuántos
años, meses, semanas y días; constituyen el número de días proporcionado utilizando la estructura Mientras o
While.
OM
Pseudocódigo Diagrama de Flujo
Años=0, Meses= 0,
Semanas=0, Dias=0
.C Num_dias
Dias = Num_dias
DD
Si
Mientras Años = Años+ 1 Dias
Dias > 365
Retorno
Dias = Dias - 365
No
LA
Dias, “ Dïas”
Fin
Ejercicios propuestos:
Ejercicio No: 16
Determine el resultado del siguiente diagrama de flujo, realice el pseudocódigo. Elabore su enunciado.
OM
Elabore el Inicio
pseudocódigo
BC=0, BV= 0, BD=0,
BC2=0, BM=0
.C C=N
Si
DD
BC = BC + 1 C Retorno
N >= 50000
C = C - 50000
No
Si
BV = BV +1
N >= 20000
C = C - 20000 C Retorno
No
LA
Si
BD = BD +1 C Retorno
N >= 10000
C = C - 10000
No
No Si
BC2 = BC2 +1 C Retorno
N >= 5000
C = C - 5000
FI
No
Si
BM = BM +1 C Retorno
N >= 1000
C = C - 1000
No
Resto = C
Fin
Enunciado:
Bibliografía
OM
Barcons Gloria T (1991): Cardivillo Carlos J y Ramírez Jesús Alberto, Computación II,
Universidad Nacional Abierta, Caracas.
.C
Brassard G. y Bratley P(2000): Fundamentos de Algoritmia, Prentice may.