Está en la página 1de 7

Unidad 1.

Análisis de algoritmos.

Ejercicios de algoritmos,
Lenguaje natural
Pseudocódigo
Diagramas de flujo

Ing. Leonardo R. L. Estructura de datos Pág. 1


Algoritmos.
Ejemplo.
Cálculo de la suma y producto de dos números.
Análisis, Lenguaje natural.
La suma S de dos números es S = A + B y el producto P es P = A * B.
Pseudocódigo.
Inicio
leer (A)
leer (B)
S ←A + B
P ←A * B
escribir ( S, P)
fin

Diagrama de flujo.

Ing. Leonardo R. L. Estructura de datos Pág. 2


Ejemplo.
Supongamos que se proporciona una secuencia de números, tales como
5302440023602
Y deseamos contar e imprimir el número de ceros de la secuencia
El algoritmo es muy sencillo, ya que sólo basta leer los números de izquierda a derecha, mientras se cuentan
los ceros. Utiliza como variable la palabra NÚMERO para los números que se examinan y TOTAL para el
número de ceros encontrados.
Los pasos a seguir:
Análisis, Lenguaje natural.
1. Establecer el TOTAL a cero.
2. ¿Quedan más números a examinar?
3. Si no quedan números, imprimir el TOTAL y finalizar.
4. Si existen más números, ejecutar los pasos 5 al 8.
5. Leer el siguiente número y dar su valor a la variable NÚMERO.
6. Si NÚMERO = 0, incrementar TOTAL en 1.
7. Si NÚMERO <> 0, no modificar TOTAL.
8. Retomar el paso 2.
Peudocódigo.
inicio
total ←0
mientras ( númerosAExaminar > 0 ) hacer
leer numero
si ( numero = 0 ) entonces total ← total + 1
fin_mientras
imprimir total
fin
Diagrama de flujo.

Ing. Leonardo R. L. Estructura de datos Pág. 3


Ejemplo.

Diseñar un algoritmo para resolver una ecuación de segundo grado.


Una ecuación de segundo grado se describe algebraicamente como:
ax2 bx c 0
Y las soluciones o raíces de la ecuación son:

b b2 4ac b b 2 4ac
x1 y x2
2a 2a
Para que la ecuación de segundo grado tenga solución es preciso que el discriminante sea mayor o igual que
0.
El discriminante de una ecuación de segundo grado es:
D b2 4ac
Por consiguiente,
b b
Si D = 0, entonces x1 y x2 , por lo tanto ambas raíces son iguales
2a 2a
Si D < 0, entonces ambas raíces no tienen solución real.

Análisis, Lenguaje natural.


1. Inicio
2. Introducir los coeficientes A, B y C
2
3. Cálculo del discriminante D = B – 4AC
4. Comprobar el valor de D.
a. Si D es menor que 0, visualizar un mensaje de error.
b. Si D es igual a 0, se obtienen dos raíces iguales X1 = X2 = -B / 2A
c. Si D es mayor que 0, se calculan las dos raíces X1 y X2
5. Imprimir las raíces
6. Fin del algoritmo

Pseudocódigo.
Inicio
variables,
reales: a, b, c, D
leer a, b, c
D←(b*b)–4*a*c
si D < 0 entonces
imprimir “no tiene raíces reales”
si D = 0 entonces
imprimir -B/2ª
si no
X1 ← (-B + D) / 2A
X2 ← (-B - D) / 2A
Imprimir X1 , X2
Fin_si
Fin

Ing. Leonardo R. L. Estructura de datos Pág. 4


Diagrama de flujo.

Ejemplo.
Se desea obtener la nomina semanal –salario neto- de los empleados de una empresa cuyo trabajo se paga
por horas y del modo siguiente:
Las horas inferiores o iguales a 35 horas se pagan a una tarifa determinada que se debe introducir
por teclado al igual que el número de horas y el nombre del trabajador.
Las horas superiores a 35 se pagarán como extras a un predio de 1.5 horas normales,
Los impuestos a deducir a los trabajadores varían en función de su salario mensual,
o Salario menor o igual a 20.000, libre de impuestos
o Los siguientes 15.000, al 20 por 100
o El resto, al 30 por 100
Análisis,
1. Inicio
2. Leer nombre, horas trabajadas, tarifa horaria.
3. Verificar si horas trabajadas <= 35, en cuyo caso
a. Salario bruto = horas trabajadas * tarifa horaria,
b. En caso contrario, Salario bruto = 35 * horas trabajadas + ( ( horas trabajadas – 35 ) * 1.5 *
tarifa )
4. Cálculo de impuestos
a. Si salario bruto <= 20000, entonces impuestos = 0
b. Si salario bruto > 20000 y <= 35000 , entonces impuestos = ( ( salario bruto – 20000 ) *
0.20
c. Si salario bruto > 35000, entonces impuestos = ( ( 15000 * 0.20) + ((salario – 35000) * 0.30
))

Ing. Leonardo R. L. Estructura de datos Pág. 5


5. Cálculo del salario neto
a. Salario neto = salario bruto - impuestos
6. Imprimir nombre, horas trabajadas, tarifa horaria, salario bruto, impuestos, salario neto
7. Fin

Pseudocódigo

Inicio
Declaración de variables
String: nombre
reales: horas, tarifa, salarioBruto, salarioNeto, impuestos
Leer nombre, horas, tarifa
si ( horas <= 35 ) entonces
salarioBruto ← horas * tarifa
si_no
salarioBruto ← ( 35 * tarifa ) + ( horas -35) * 1.5 * tarifa
fin_si
si salarioBruto <= 20000 entonces
impuestos ← 0
si_no
si ( salarioBruto > 20000 ) y ( salarioBruto <= 35000 ) entonces
impuestos ← ( salarioBruto – 20000 ) * 0.20
si_no
impuestos
fin_si
fin_si
salarioNeto ← salarioBruto – impuestos
imprimir nombre, horas, tarifa, salarioBruto, impuestos, salarioNeto
fin

Ing. Leonardo R. L. Estructura de datos Pág. 6


Diagrama de flujo.

Ing. Leonardo R. L. Estructura de datos Pág. 7

También podría gustarte