Algoritmos - Tec...Algoritmo Es un método para resolver un problema mediante una serie de pasos...
Transcript of Algoritmos - Tec...Algoritmo Es un método para resolver un problema mediante una serie de pasos...
14/1/19
Ing. Roberto Martínez Román [email protected] 1
AlgoritmosRESOLVIENDO PROBLEMAS
ROBERTO M ARTÍNEZ ROM ÁN - RM ROM AN@ITESM .M X 1
Libro en línea
¿Cuál es el objetivo del libro?
Roberto Martínez Román - [email protected] 2
14/1/19
Ing. Roberto Martínez Román [email protected] 2
Tareas que hace la computadora
Las tareas que pueden hacer las computadoras son:
a) Leer/escribir datos (dispositivos externos como teclado, pantalla)b) Operaciones aritméticas (suma, resta, multiplicación, división)c) Comparar datos (>, <, >=, <=, !=, ==)d) Leer/almacenar datos de la memoria (números, cadenas)
Roberto Martínez Román - [email protected] 3
AlgoritmoEs un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos.
Una receta para resolver un problema
Roberto Martínez Román - [email protected] 4
14/1/19
Ing. Roberto Martínez Román [email protected] 3
Carácterísticas
Característica SignificadoPreciso Indica claramente el orden de ejecución de los pasos.
Definido Si se sigue dos o más veces con los mismos datos, se
obtiene el mismo resultado.
Finito Después de un cierto número de pasos, el algoritmo
termina.
Característica SignificadoDetallado Las instrucciones se pueden ejecutar por el procesador.
Efectivo Datos correctos. Rendimiento óptimo.
Comportamiento
específicoUna sola tarea.
Roberto Martínez Román - [email protected] 5
• Diagramas de flujo.
Representación de algoritmos
• Pseudocódigo.
1. Leer cantidad2. Leer precio3. Calcular total ← cantidad * precio4. Imprimir total
Roberto Martínez Román - [email protected] 6
14/1/19
Ing. Roberto Martínez Román [email protected] 4
Programa
El programa es la implementación, en algún lenguaje de programación, del algoritmo.
# Ejemplo de programa en Python
cantidad = int(input("Cantidad: "))
precio = int(input("Precio: "))
total = cantidad * precio
print("El total a pagar es: ",total)
Roberto Martínez Román - [email protected] 7
Lenguajes de programación
Sirven para escribir las instrucciones que le damos a una computadora para que realice cierta tarea.
Roberto Martínez Román - [email protected] 8
14/1/19
Ing. Roberto Martínez Román [email protected] 5
Programación
Es un proceso mental complejo, dividido en varias etapas.
La finalidad de la programación, es comprender con claridad el problema que se pretende resolver por medio de la computadora; y entender también, con detalle, cuál será el procedimiento mediante el cual el procesador llegará a la solución deseada.
Roberto Martínez Román - [email protected] 9
La tarea de programar consiste en definir, cada vez con mayor precisión, acercamientos que resuelvan el problema de manera virtual, es decir, se efectúan una especie de "experimentos mentales" sobre el problema a resolver.
El resultado de tales experimentos constituye una descripción de los pasos necesarios para encontrar la solución. (algoritmo)
Programación (cont.)
Roberto Martínez Román - [email protected] 10
14/1/19
Ing. Roberto Martínez Román [email protected] 6
Resolviendo problemas
Entender con claridad el problema
Determinar los pasos que se deben seguir para resolver
el problema
Leer bien el texto/documento y resolver cualquier duda que tengas
Generar un algoritmo
Roberto Martínez Román - [email protected] 11
Resuelve el siguiente problema
Un estudiante realiza cuatro exámenes en el semestre, los cuales tienen las siguientes ponderaciones:
Examen 1, 40%
Examen 2, 20%
Examen 3, 10%
Examen 4, 30%
Escribe un algoritmo para calcular la calificación final del alumno.
Roberto Martínez Román - [email protected] 12
14/1/19
Ing. Roberto Martínez Román [email protected] 7
Fases para resolver un problema
Problema EspecificaciónAnálisis AlgoritmoProgramación
Pruebas
Programa
Codificación
Pruebas
Uso yMantenimiento
Compilar
Programaejecutable
Interpretar
Ejecutar
Pruebas
Roberto Martínez Román - [email protected] 13
AnálisisConsiste en entender completamente el problema.
Debes encontrar:1. Datos de entrada (lo que conocemos)2. Datos de salida (resultados)3. Relación entrada/salida. Cómo transformamos los
datos de entrada en los datos de salida.
Análisis
Roberto Martínez Román - [email protected] 14
14/1/19
Ing. Roberto Martínez Román [email protected] 8
ProgramaciónConsiste en diseñar la solución del problema. El resultado es un algoritmo, la receta que indica cómo resolver el problema.
CodificaciónSe traduce el algoritmo a un lenguaje de programaciónconcreto. El resultado es un programa.
Programación e implementación
Roberto Martínez Román - [email protected] 15
CompilarSe traduce todo el programa a un lenguaje ejecutable por el CPU.
IntérpreteSe traduce el programa línea por línea y la ejecuta el CPU.
Ejecución
Roberto Martínez Román - [email protected] 16
14/1/19
Ing. Roberto Martínez Román [email protected] 9
Diseño de pruebas
Las pruebas que se hacen a un algoritmo o programa, deben incluir valores o datos que sean:
Correctos.
Incorrectos.
Frontera (límite).
Roberto Martínez Román - [email protected] 17
1: Problema.Escribir un programa que lea un valor entero y que imprima el doble.
2: Análisis.
Entradas: El valor a calcular (numero)Salidas: El doble del valor leído (resultado)
Relación E/S: resultado = 2*numero3: Programación. El algoritmo espaso 1. Leer numero.paso 2. Calcular resultado = numero * 2
paso 3. Mostrar resultado.
Ejemplo
Roberto Martínez Román - [email protected] 18
14/1/19
Ing. Roberto Martínez Román [email protected] 10
La actividad de análisis permite encontrar los elementos del siguiente diagrama.
Procesoresultado = 2 * numero
Entradanumero
Salidaresultado
Ejemplo
Roberto Martínez Román - [email protected] 19
EjercicioResuelve el siguiente problema.
◦ Un conductor que frecuentemente viaja de una ciudad a otra, registró el tiempo que le llevó el último viaje y la distancia recorrida. Quiere saber la velocidad promedio de viaje. ¿Puedes ayudarle?
Roberto Martínez Román - [email protected] 20
14/1/19
Ing. Roberto Martínez Román [email protected] 11
Ejercicio (en equipo)Una empresa vende terrenos de forma trapezoidal, como se muestra en la figura.
Escribe un algoritmo que ayude a calcular el área total del terreno y el costo del mismo. El costo por metro cuadrado es de $3,450.
Las unidades de a, b y c son metros.
a
b
c
Sube la solución a github en el proyecto
Ejercicios
Roberto Martínez Román - [email protected] 21
Ejercicio
Resuelve el siguiente problema escribiendo el algoritmo en pseudocódigo.
◦ Un cliente en una tienda compra 3 artículos cuyo precio no incuye IVA. Escribe un programa que ayude a calcular el subtotal de la compra, el impuesto (16% de IVA) y el total con impuesto.
◦ Sube la solución a Github.
Roberto Martínez Román - [email protected] 22
14/1/19
Ing. Roberto Martínez Román [email protected] 12
Libro
¿Cuál es la habilidad más importante a desarrollar en el semestre?
Roberto Martínez Román - [email protected] 23
Ejercicio
Resuelve el siguiente problema de lógica.
◦ De cuatro corredores de atletismo se sabe que C ha llegado inmediatamente detrás de B, y D ha llegado en medio de A y C. ¿Puedes calcular el orden de llegada?
Roberto Martínez Román - [email protected] 24
14/1/19
Ing. Roberto Martínez Román [email protected] 13
Representación de algoritmos
1. Pseudocódigo.a) Es un lenguaje informal sin reglas de sintaxis.b) No es para la computadora, es para el programador.c) Una vez que el algoritmo está terminado, se traduce a un
lenguaje de programación.
INICIAleer distancialeer tiempovelocidad ç distancia / tiempoimprimir velocidad
TERMINA
Roberto Martínez Román - [email protected] 25
Representación de algoritmos
2. Diagramas de flujo.a) Es una herramienta gráfica que muestra los pasos del
algoritmo.b) Algunos símbolos básicos son:
a) Óvalo. Inicio y fin del algoritmo.b) Paralelogramo. Entrada/salida.c) Rectángulo. Procesamiento o asignación.d) Rombo. Condición.
Roberto Martínez Román - [email protected] 26