fundamentos de programacion - unidad 2 algoritmos
TRANSCRIPT
![Page 1: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/1.jpg)
Ingeniería en Sistemas ComputacionalesFundamentos de Programación
Unidad II: Algoritmos
Este material está desarrollado para la asignatura Fundamentos de Programación SCD-1008, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224
![Page 2: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/2.jpg)
• Algoritmo: Conjunto de pasos, procedimientos, o acciones que nos permiten alcanzar un resultado o resolver un problema.
• Muchas veces aplicamos los algoritmos de manera inadvertida, inconsciente, sobre todo cuando hemos aplicado la solución de un mismo problema muchas veces
FUNDAMENTOS DE PROGRAMACIÓN
![Page 3: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/3.jpg)
Etapas de la solución de un problema
FUNDAMENTOS DE PROGRAMACIÓN
![Page 4: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/4.jpg)
Características de los algoritmos
• Precisión• Determinismo (definido)• Finito
FUNDAMENTOS DE PROGRAMACIÓN
![Page 5: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/5.jpg)
FUNDAMENTOS DE PROGRAMACIÓN
![Page 6: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/6.jpg)
Pseudocódigo• Mezcla de lenguaje de programación y español (o ingles o
cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
• Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 7: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/7.jpg)
Diagramas de Flujo
• Es un esquema gráfico de un algoritmo. Muestra los pasos para alcanzar la solución del problema. Su correcta construcción permite que la programación sea fácil y rápido.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 8: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/8.jpg)
Símbolos para la construcción de un diagrama
Inicio y fin del diagrama
Entrada de datos (lectura)
Proceso de información
FUNDAMENTOS DE PROGRAMACIÓN
![Page 9: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/9.jpg)
Despliegue de información (impresora o pantalla)
Flechas utilizadas para marcar el flujo del diagrama
Decisión
FUNDAMENTOS DE PROGRAMACIÓN
![Page 10: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/10.jpg)
Estructura general de un diagrama de flujo
Inicio
Leer datos
Definir Variables
Procesar Datos
Desplegar Resultados
Fin
FUNDAMENTOS DE PROGRAMACIÓN
![Page 11: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/11.jpg)
Ejercicio inicial
• Diseñe el algoritmo para obtener el área de un circulo, hacer pseudocódigo y diagrama de flujo.
a = π * r2
FUNDAMENTOS DE PROGRAMACIÓN
![Page 12: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/12.jpg)
Ejercicio inicial
• Realice el algoritmo y diagrama de flujo que determine el valor absoluto de un número. No es posible en este caso utilizar condiciones.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 13: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/13.jpg)
Ejercicio
• Diseñe el algoritmo para obtener el área de un triangulo (Hacer pseudocódigo y diagrama)
a=(b*h)/2
FUNDAMENTOS DE PROGRAMACIÓN
![Page 14: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/14.jpg)
Ejercicio
• Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganará después de un mes si el banco paga a razón de 2% mensual.
• Hacer pseudocódigo y diagrama de flujo
FUNDAMENTOS DE PROGRAMACIÓN
![Page 15: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/15.jpg)
Ejercicio
• Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra.
• Hacer pseudocódigo y diagrama de flujo
FUNDAMENTOS DE PROGRAMACIÓN
![Page 16: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/16.jpg)
Ejercicio
• Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.
• Hacer pseudocódigo y diagrama de flujo que determine total de estudiantes y calcule los porcentajes correspondientes
FUNDAMENTOS DE PROGRAMACIÓN
![Page 17: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/17.jpg)
Ejercicio
• Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.
• Hacer pseudocódigo y diagrama de flujo utilizando fórmulas adecuadas que no requieran sumatorias.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 18: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/18.jpg)
Ejercicio
• Dada una cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato desconocido.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 19: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/19.jpg)
Ejercicio
• Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 20: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/20.jpg)
ESTRUCTURAS CONDICIONALES
FUNDAMENTOS DE PROGRAMACIÓN
![Page 21: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/21.jpg)
Tipos de Asignaciones
• Simples: Consiste en pasar un valor constate a una variable: (a=15)• Contador: Consiste en usarla como un verificador del numero de
veces que se realiza un proceso: (a=a+1)• Acumulador: Consiste en usarla como un sumador en un proceso:
(total=a1+a2+a3… )• De trabajo: Donde puede recibir el resultado de una operación
matemática que involucre muchas variables: (a=c+b*2/4)
FUNDAMENTOS DE PROGRAMACIÓN
![Page 22: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/22.jpg)
Estructuras de Condicionales
• Las estructuras condicionales comparan una variable o un valor contra otras variables o valores, para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa.
• La comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen dos tipos básicos, las condiciones simples y las condiciones múltiples:
FUNDAMENTOS DE PROGRAMACIÓN
![Page 23: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/23.jpg)
• Coniciones Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:Si <condición> entonces
Acción(es)Fin-si
FUNDAMENTOS DE PROGRAMACIÓN
![Page 24: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/24.jpg)
• Condiciones Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:
Si <condición> entoncesAcción(es) si noAcción(es)Fin-si
FUNDAMENTOS DE PROGRAMACIÓN
![Page 25: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/25.jpg)
Operadores Relacionales: • Se utilizan para establecer una relación entre dos valores.• Compara estos valores entre si y esta comparación produce un resultado de
certeza o falsedad (verdadero o falso).• Los operadores relacionales comparan valores del mismo tipo (numéricos o
cadenas)• Tienen el mismo nivel de prioridad en su evaluación.• Los operadores relacionales tiene menor prioridad que los aritméticos.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 26: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/26.jpg)
Operadores Relacionales:
> Mayor que< Menor que> = Mayor o igual que< = Menor o igual que< > Diferente= Igual
FUNDAMENTOS DE PROGRAMACIÓN
![Page 27: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/27.jpg)
Ejercicio:
1: Utilizando estructuras condicionales realice el algoritmo y diagrama de flujo que determine el valor absoluto de un número
FUNDAMENTOS DE PROGRAMACIÓN
![Page 28: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/28.jpg)
Ejercicio
2: Realizar algoritmo y diagrama de flujo que lea dos números y los imprima en forma ascendente
FUNDAMENTOS DE PROGRAMACIÓN
![Page 29: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/29.jpg)
Ejercicio:
3: Realizar algoritmo y diagrama de flujo que determine si un alumno aprueba o reprueba un curso, sabiendo que aprobará sí su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 30: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/30.jpg)
Ejercicio
4: En un almacén se hace un 20% de descuento a los clientes cuya compra es superior a $1000.00
¿ Cuál será la cantidad que pagara una persona por su compra?
FUNDAMENTOS DE PROGRAMACIÓN
![Page 31: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/31.jpg)
Ejercicio
5: Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 32: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/32.jpg)
Operadores Lógicos:
• Estos operadores se utilizan para establecer relaciones entre valores lógicos.
• Estos valores pueden ser resultado de una expresión relacional. Operadores Lógicos
And - YOr - ONot - Negación
FUNDAMENTOS DE PROGRAMACIÓN
![Page 33: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/33.jpg)
Operador AND
Operando 1 Operador Operando 2 Resultado V AND V V V AND F F F AND V F F AND F F
FUNDAMENTOS DE PROGRAMACIÓN
![Page 34: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/34.jpg)
Operador OR
Operando 1 Operador Operando 2 Resultado T OR T T T OR F T F OR T T F OR F F
FUNDAMENTOS DE PROGRAMACIÓN
![Page 35: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/35.jpg)
Operador NOT
Operador Operando Resultado NOT T F NOT F T
FUNDAMENTOS DE PROGRAMACIÓN
![Page 36: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/36.jpg)
Ejemplos
• Una persona recibe un bono de $200 en su trabajo si es casado y tiene hijos.
• La mercancía de temporada navideña entra en descuento del 40% siempre y cuando la venta se haga en el mes de diciembre y el inventario tenga menos de 10 piezas del producto vendido.
• El dispensador de agua de una veterinaria coloca un medio de agua si en la jaula se encuentra un perro o un gato, de lo contrario coloca un cuarto de litro de agua.
• Un paquete de correo no se entrega en el domicilio si este se encuentra vacío.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 37: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/37.jpg)
Ejercicio
6: Hacer algoritmo y diagrama de flujo que resuelva lo siguiente: una empresa de importaciones importa productos de diferentes países y debe pagar impuestos dependiendo del país de origen de cada producto:
Si el producto es originario de USA o Canadá no paga impuestos Si el producto es originario de otra parte del mundo paga un 20% de
impuestos
FUNDAMENTOS DE PROGRAMACIÓN
![Page 38: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/38.jpg)
Ejercicio7: Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes condiciones: • Si los ingresos mensuales del comprador son menores o iguales a
$8000 el enganche será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en 15 años.
• Si los ingresos del comprador son mayores de $8000 el enganche será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 10 años.
La empresa quiere obtener cuanto debe pagar un comprador por concepto de enganche y cuanto por cada pago mensual aplicando a cada pago mensual un interés del 14%.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 39: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/39.jpg)
Ejercicio
8: Hacer un programa que indique la denominación en cuanto a su edad de una persona según los siguientes criterios:
Cuando la edad es menor a 14, es un niño. Cuando la edad es de 14 a 22, es un adolecente. Cuando la edad es de 23 a 43, es un joven. Cuando la edad es de 44 a 64, es un adulto joven. Cuando la edad es de 65 a más es un adulto mayor.
FUNDAMENTOS DE PROGRAMACIÓN
![Page 40: Fundamentos de Programacion - Unidad 2 Algoritmos](https://reader035.vdocuments.site/reader035/viewer/2022082209/589c2d4a1a28ab65248b6555/html5/thumbnails/40.jpg)
9: Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:• Si trabaja 40 horas o menos se le paga $16.00 por hora.• Si trabaja mas de 40 horas se le paga $16.00 por cada una de las
primeras 40 horas y $20.00 por cada hora extra.• Además si el obrero tiene una antigüedad de 5 años o mayor y es
casado se le paga un bono del 5% sobre el sueldo semanal calculado.
FUNDAMENTOS DE PROGRAMACIÓN