Clase 1. Algoritmos y Programas Doc
description
Transcript of Clase 1. Algoritmos y Programas Doc
![Page 1: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/1.jpg)
Programación Estructurada
Dalton Noboa M.
Abril 2015
![Page 2: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/2.jpg)
Instructor
Dalton Noboa Macías. Profesor Titular de ESPOL. Magister en Sistemas de Información Gerencial. Diplomado Superior en Auditoría Informática Ingeniero en Estadística Informática Líneas Investigación
Algoritmia Procesos y Sistemas
Profesor en posgrado: Maestría en Optimización y Gestión Logística, y Maestría en Seguros y Riesgos Financieros.
Profesor en grado: ESPOL y USM. Coordinador Académico de Ing. Auditoría Contacto: [email protected] Telf: 2269590
![Page 3: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/3.jpg)
Objetivos de la Materia
El participante de la materia pueda: Comprender y aplicar los conceptos de
programación estructurada. Desarrollar algoritmos computacionales de
gestión y aplicación matemáticas en matlab.
Crear funciones computacionales específicas con aplicación matemática.
Desarrollar algoritmos de simulación de escenarios mediantes números aleatorios en matlab.
![Page 4: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/4.jpg)
Contenido
1. Algoritmos.2. Programación Estructurada
Estructuras Secuencias, Selectivas y Repetitivas3. Estructura de datos para almacenamiento
de registros. Arreglos Unidimensionales y Bidimensionales
4. Funciones computacionales – Funciones estándar y función recursiva.
5. Introducción a la Simulación: Generación de Números Aleatorios uniformente distribuidos.
![Page 5: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/5.jpg)
Bibliografía
Texto Guía: Fundamentos de Programación, Autor
Luis Joyanes 4ª edición. Texto de Consulta:
Cómo programar, Autor Deitel y Deitel, 2º edición
Referencias: Tutorial de Matlab, Autor Luís Rodríguez
Ojeda.
![Page 6: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/6.jpg)
Políticas de Calificación
Actividad PuntosTrabajo Autónomo 10
Prácticas(Laboratorio) 10
Asistencia y Participación en clases
10
Evaluaciones Parciales 10
Proyecto(Aplicación Computacional)
20
Evaluación Final (Examen)
40
![Page 7: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/7.jpg)
Políticas de Calificación
Los trabajos de desarrollo autonómo serán enviados de forma semanal, y se recibirán el primer día de clases de la siguiente semana.
La asistencia se controlará al inicio y luego del receso de las clases.
Prácticas serán desarrolladas individualmente.
Las evaluaciones parciales se realizaran de forma semanal el primer día de clases “Jueves”.
![Page 8: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/8.jpg)
ALGORITMO
Entrada Procesamiento Salida
![Page 9: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/9.jpg)
Algoritmo
Es una técnica aplicada en la resolución de problemas mediante una serie de pasos que tienen un orden lógico, precisos, definidos y finitos.[1]
Características de un algoritmo: Preciso: Indica el orden de realización de cada
paso. Definido: Si se aplica dos veces , obtiene el
mismo resultado o solución. Finito : Tiene un número determinado de
pasos[1] Fundamentos de Programación
![Page 10: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/10.jpg)
Resolución de un problema de forma computacional
RESOLUCIÓN PROBLEMA
Análisis del problema
Diseño del algoritmo
Resolución del problema con computadora
Definir el problema:¿Qué entradas se requieren?¿Cuál es la salida deseada?¿Qué método produce la salida deseada?Diseño:Aplicación de estructuras de control: Captura de datos, presentación resultados, cálculo, operaciones, decisiones e iteraciones.Aplicación estructuras almacenamiento de datos.
![Page 11: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/11.jpg)
Fases en la Resolución de problemas con computadoras:
Definición y análisis del Problema
Diseño de algoritmos
Codificación del programa
Depuración y verificación del programa
Documentación
Mantenimiento
![Page 12: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/12.jpg)
Estructura de un programa
ENTRADA PROCESO SALIDA
Representa los datos que se requieren:-Ingresados por usuario-Asignados -Generados por PC-Recuperados de Files
Procesamiento: Tratamiento que se le da a los datos.-Operación de cálculo-Condicionales-Simulaciones-Iteraciones
Distribución de resultados:-Presentación-Impresión-Almacenamiento
![Page 13: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/13.jpg)
Ejemplo 1:
Se desea obtener una tabla con las depreciaciones acumuladas y los valores reales de cada año de un automóvil comprado en $18000 en el año 2007, durante seis años siguientes suponiendo un valor de recuperación o rescate de $11000. Considere que depreciación “D” es:
![Page 14: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/14.jpg)
Análisis del Problema
Entrada: ¿Qué datos se requieren? Coste original Vida útil Valor de recuperación
Salida: ¿Qué resultado se espera? Depreciación anual, depreciación acumulada por
año, valor comercial del automóvil. Proceso: ¿Qué métodos produce la salida
esperada? Cálculo depreciación acumulada Cálculo del valor del automóvil en cada año.
![Page 15: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/15.jpg)
Tabla Depreciaciones:
Datos Entrada
ProcesoSalida Esperada
![Page 16: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/16.jpg)
Programas & Lenguaje de Programación
Tipos de Lenguajes de programación
![Page 17: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/17.jpg)
Representación de los algoritmos
Un algoritmo puede ser representado mediante: Pseudocódigo: Conjunto de instrucciones
escritas en lenguaje natural que permiten establecer ordenes para el computador.
Flujogramas(DFD): Representación gráfica de un algoritmo por medio del uso de símbolos y líneas.
Programa: Representación computacional de un algoritmo.
![Page 18: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/18.jpg)
Programa
Es la representación computacional de un algoritmo.
Se trata de un conjunto de instrucciones escrita en lenguaje de programación, mediante las cuales se le da orden al computador para que este realice ciertas tareas.
![Page 19: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/19.jpg)
Lenguaje de Programación Un lenguaje de programación es un conjunto de
reglas y sintaxis que sirven para escribir programas que permiten la comunicación usuario/maquina.
Programas especiales Traductores(compiladores) convierten las instrucciones escritas en lenguaje programación en instrucciones en lenguaje de maquina (0 y 1 bits).
Se clasifican: Lenguaje de Maquinas, Bajo Nivel y Alto Nivel.
![Page 20: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/20.jpg)
Tipos Lenguaje
Lenguaje Maquinas.- Son aquellos que están escritos en lenguajes directamente inteligibles por la maquina, son cadenas binarias(series de dígitos 1 y 0).
Lenguaje Bajo Nivel.- Son instrucciones escritas en códigos nemotécnicos, ejemplo: ADD, SUB, DIV.
Lenguaje Alto Nivel.- Son independiente de las maquinas. Se basan en reglas sintácticas similares a los lenguajes humanos. Ej: Read, Write, Open, etc.
![Page 21: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/21.jpg)
Compilación
Programa Fuente
CompiladorTraductor
Programa Objeto
Enlazador
Lenguaje ejecutable en
Lenguaje de maquina
Código escrito en el lenguaje programación
Código Resultado de la compilación
![Page 22: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/22.jpg)
Programación Estructurada
Estructuras de Control:- Secuenciales- Selectivas- Iterativas
![Page 23: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/23.jpg)
Estructuras de control
Las estructuras de control son métodos que permiten controlar el flujo de la ejecución de instrucciones o pasos de un algoritmo.
Todas las estructuras de control tienen un único punto de entrada y un único punto de salida.
Las estructuras de control se puede clasificar en : secuenciales, selectivas e iterativas.
En mayo de 1966, Bohm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras.
![Page 24: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/24.jpg)
Instrucciones
En programación una instrucción es una orden que se le da al computador para que ejecute.
Las instrucciones son establecidas por comandos y palabras reservadas del lenguaje de programación.
Se clasifican:Instrucción Basic
Entrada: Ingreso de datos var= inputbox(‘mensaje’);
Salida: Presentación de resultados
Msgbox(“mensaje”)
Asignación: Operación x=10a = b * h
Comandos Matemáticos Parte entera int(3.56) = 3Residuo 5 mod 2Raíz cuadrada sqr(4)=2Redondear round(#,dec)Potencia b^eExponencial exp(x)
![Page 25: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/25.jpg)
Variables
Una variable en un objeto de almacenamiento de datos en memoria principal.
Los valores pueden cambiar a lo largo de la ejecución de un algoritmos.
Toda variable debe tener un nombre asociado que lo define el programador. Ejemplo: X=6
Las variables deben ser del tipo de dato que se almacene en la misma.
![Page 26: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/26.jpg)
Estructuras de Control (1)
Secuenciales.- Son instrucciones de ejecución directa, las cuales siguen una a la otra. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.
Acción 1
Acción 2
Acción 3
Selectivas.- Es aquella donde se evalúa una condición y en función del resultado de la misma realiza una operación u otra.
Condición
Acción 2
Acción 1Si
No
Múltiple
Simple
![Page 27: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/27.jpg)
Estructuras de Control (2) Repetitivas.-Son aquellas que repiten una
secuencia de instrucciones un número determinado de veces se denominan bucles.
![Page 28: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/28.jpg)
Flujograma
Objetivos:Desarrollo de la lógica en la resolución de problemas mediante aplicación de algoritmos.
![Page 29: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/29.jpg)
DFD
X
X 12
Entrada: Instrucción aplicada para la captura de datos (ingreso de valores) por parte del usuario. El almacenamiento de estos valores se los realiza en los objetos denominados variables (Ej: X)
Salida: Instrucción aplicada para presentación de resultados por pantalla. El mensaje puede estar formado de texto y valores de variables. (Ej: El promedio es 7.59)
Proceso: Instrucción aplicada para realizar la asignación de valores en las variables. Estos pueden provenir de la aplicación de formulas matemáticas. (Ej: x y + 3 )
Inicio/Fin: Instrucción aplicada para indicar el inicio de la secuencia de pasos y la culminación de los mimos.
![Page 30: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/30.jpg)
DFD
Decisión: Instrucción aplicada para la toma de decisiones y direccionar el flujo de ejecución de las instrucciones respectivas. (Es conocido como el condicional)
Ciclo Mientas: Estructura aplicada para controlar la repetición de instrucciones sujeto a la verificación de una condición. En el caso de cumplirse la misma(Verdad) se vuelve a ejecutar, caso contrario (Falso) finaliza.)
Ciclo Para: Estructura aplicada para controlar la repetición de instrucciones sujeto a un número finito de iteraciones.
![Page 31: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/31.jpg)
Ejemplo 2
Lea las tres dimensiones de un bloque rectangular. Encuentre las tres diagonales de sus caras diferentes.
![Page 32: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/32.jpg)
Estructuras selectivas
Son conocidas como condicionales Se clasifican en:
Condicional Simple( máximo dos opciones)
Condicional Múltiple (varias opciones) Condicional Simple: Se evalúa una
condición y se la califica como verdadero o falso.
![Page 33: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/33.jpg)
Condicional Simple
La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica. Si <condición> Entonces <instrucciones que se realizan por Condición Verdadera> Sino <instrucciones que se realizan por Condición Falsa> FinSi
La condición debe ser una expresión lógica, que al ser evaluada retorna Verdadero o Falso.
La cláusula Entonces debe aparecer siempre, pero la clausula Sino puede no estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente.
![Page 34: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/34.jpg)
Condicional Múltiple
Si anidado.- Expresa un condicional simple dentro otro condicional.
![Page 35: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/35.jpg)
Ejemplo 3
Cierta Institución Financiera para otorgar un préstamo hipotecarios requiere que sus clientes cumplan con los siguientes criterios:
1. La cuota mensual no debe exceder del 35% de los ingreso neto mensual(Ingresos – Gastos mensuales).
2. Monto del préstamo no sea mayor del 80% de la tasación del bien inmueble de garantía.
![Page 36: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/36.jpg)
Ejemplo 4
Solicite al usuario un número de 4 cifras y determine si es un número de valor simétrico (De derecha a izquierda como de izquierda a derecha representa el mismo valor), ejemplo 2112.
![Page 37: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/37.jpg)
Ejemplo 5
Se dice que el cuadrado de cualquier número terminado en 5 se forma como el producto de las decenas y (decenas+1), añadiendo a la derecha del resultado el 25. Si el número es menor que 100 se calcula fácilmente con la tabla de multiplicar como se muestra en los ejemplos:
1) 252, la decena es 2 multiplicado por 3 que es la (decena +1), se añade a la derecha 25 y su resultado es 625.2) 852 se calcularía como 8×9=72, añadiendo el complemento el resultado es 7225.
![Page 38: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/38.jpg)
Ejemplo 6
En un circuito eléctrico hay tres interruptores, los cuales pueden estar en estado cerrado(1) o abierto(0). Para que un equipo funcione, se requiere que al menos dos estén cerrados. Si los datos son el estado de los interruptores, determine si el equipo funcionará.
En un circuito eléctrico hay tres interruptores, los cuales pueden estar en estado cerrado(1) o abierto(0). Para que un equipo funcione, se requiere que al menos dos estén cerrados. Si los datos son el estado de los interruptores, determine si el equipo funcionará.
![Page 39: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/39.jpg)
Ejemplo 7
Considerando el ejemplo 2, determine la base con diagonal de menor distancia y determine si pudiera atravesar por un orificio circular de diámetro dado.
![Page 40: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/40.jpg)
Ejemplo 8
Cierta Casa Comercial ha establecido como política de descuento un % asociado al monto de la venta antes de impuesto.
Inicio Fin % Descuento
0 150
150 300 5
300 500 10
500 En adelante 15
Escriba un DFD que se utilice para determinar el valor total a pagar en una transacción de venta de producto. Considere el cálculo del descuento e IVA.
![Page 41: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/41.jpg)
Ejercicio 1
Fracción Básica
Exceso Hasta
Impuesto a la Fracción Básica
%Impuesto a la
fracción excedente
0 10180 0 10180 12970 0 5%12970 16220 140 10%16220 19470 465 15%19470 En Adelante 855 25%
Para el cálculo del Impuesto a la Renta se ha definido la siguiente tabla, considerando Fracción Básica es resultado de Ingresos – Gastos en el año.Escriba un DFD que permita determinar el Impuesto a la Renta dado los datos de ingresos y gastos anuales.
![Page 42: Clase 1. Algoritmos y Programas Doc](https://reader035.fdocument.pub/reader035/viewer/2022062305/55cf8e24550346703b8ef2a4/html5/thumbnails/42.jpg)
Referencias Bibliográficas
Texto Guía: Fundamentos de Programación, Autor
Luis Joyanes 4ª edición.