Download Descarga - Ingeniería en Sistemas Computacionales

Document related concepts
no text concepts found
Transcript
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:
x1
b
b2 4ac
y
2a
x2
b
b 2 4ac
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,
Si D = 0, entonces x1
b
y x2
2a
b
, por lo tanto ambas raíces son iguales
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.
6.
7.
Cálculo del salario neto
a. Salario neto = salario bruto - impuestos
Imprimir nombre, horas trabajadas, tarifa horaria, salario bruto, impuestos, salario neto
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