13
14/1/19 Ing. Roberto Martínez Román - [email protected] 1 Algoritmos RESOLVIENDO PROBLEMAS ROBERTO MARTÍNEZ ROMÁN - [email protected] 1 Libro en línea ¿Cuál es el objetivo del libro? Roberto Martínez Román - [email protected] 2

Algoritmos - Tec...Algoritmo Es 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

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

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