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