programación: algoritmos

35

Upload: angel-vazquez-patino

Post on 13-Jan-2017

138 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Programación: algoritmos

Programación 1: Algoritmos

Docentes de Programación

Editado por Angel Vázquez-Patiñ[email protected]

Departamento de Ciencias de la Computación

Universidad de Cuenca

15 de septiembre de 2016

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 1 / 35

Page 2: Programación: algoritmos

Overview

1 Objetivos

2 Concepto de Algoritmo

3 Concepto de Variable

4 Representación de un Algoritmo

5 Importancia de Documentar un Algoritmo

6 Pruebas de Escritorio

7 Actividades

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 2 / 35

Page 3: Programación: algoritmos

Objetivos

Introducir los conceptos más importantes relacionados conalgoritmos

Desarrollar algoritmos representados por pseudocódigo ydiagramas de �ujo

Realizar el seguimiento de un algoritmo y validar su resultado

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 3 / 35

Page 4: Programación: algoritmos

Algoritmo

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 4 / 35

Page 5: Programación: algoritmos

Algoritmo

De�nición

Especi�cación rigurosa de la secuencia de pasos (instrucciones) arealizar para alcanzar un resultado deseado en un tiempo �nito.

Resumiendo

Secuencia �nita de pasos que permiten resolver un problema

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 5 / 35

Page 6: Programación: algoritmos

Algoritmo

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 6 / 35

Page 7: Programación: algoritmos

Algoritmo - Ejemplo

Pasos que se deben seguir para cambiar la llanta de un vehículoconsiderando que tiene sólo 2 tuercas

Entrada: Llanta de repuesto, gata, llave de tuercas

Salida: Llanta cambiada

Proceso:

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 7 / 35

Page 8: Programación: algoritmos

Algoritmo - Ejemplo

Inicio1 Ubicar la gata debajo del carro2 Accionar la gata3 Colocar la llave de tuerca sobre la tuerca 14 Girar hasta a�ojarla y retirar5 Colocarla la llave de tuerca sobre la tuerca 26 Girar hasta a�ojarla y retirar7 Retirar la llanta defectuosa8 Tomar la llanta de repuesto y ubicarla en el lugar9 Tomar la tuerca 1 y colocarla10 Tomar la llave de tuercas y ajustarla11 Tomar la tuerca 2 y colocarla12 Tomar la llave de tuercas y ajustarla13 Bajar y sacar la gata

FinA. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 8 / 35

Page 9: Programación: algoritmos

Algoritmo - Ejemplo

Desarrollar los pasos que se deben seguir para resolver los siguientesalgoritmos:

Algoritmo para calcular la pendiente de una rectam = y2−y1

x2−x1Algoritmo para resolver la fórmula de la ecuación de segundogrado x = −b±

√b2−4ac2a

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 9 / 35

Page 10: Programación: algoritmos

Algoritmo - Ejemplo Pendiente de un Recta

m = y2−y1x2−x1Entrada: x1, y1, x2, y2Salida: m

Proceso:

Inicio1 Leer la coordenada x12 Leer la coordenada y13 Leer la coordenada x24 Leer la coordenada y25 Calcular y = y2 − y16 Calcular x = x2 − x17 Dividir y/x8 Mostrar el resultado de dividir y/x

FinA. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 10 / 35

Page 11: Programación: algoritmos

Características de un Algoritmo

Entrada: de�nir lo que necesita el algoritmo como datos deentrada

Salida: de�nir el resultado deseado

Finito: el algoritmo termina en un número �nito de pasos

Correcto: realiza lo que se supone que se debe hacer. Lasolución es correcta

Efectividad: cada instrucción se completa en tiempo �nito

General: debe ser lo su�cientemente general como paracontemplar todos los casos de entrada

El programador debe preguntarse

Mi solución cumple con estas características?

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 11 / 35

Page 12: Programación: algoritmos

Concepto de Variable

Variable

Es una estructura de dato que puede cambiar su valor según lasituación deseada.

Nombre de Variable

Se puede usar números y letras pero siempre comienza con unaletra

Se puede utilizar mayúsculas y minúsculas, por convención seusan minúsculas.

En algunos lenguajes de programación es válido el subguión.

En la mayoría de lenguajes esta totalmente prohibido el uso detildes.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 12 / 35

Page 13: Programación: algoritmos

Representación de una Variable

De�nición de la variable llamada indice con un valor numérico de 5

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 13 / 35

Page 14: Programación: algoritmos

Representación de una Variable

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 14 / 35

Page 15: Programación: algoritmos

Algoritmo - Ejemplo Pendiente de un Recta - con

Variables

m = y2−y1x2−x1Entrada: x1, y1, x2, y2Salida: mProceso:

Inicio1 Leer la coordenada x1=⇒ Leer x1 = valor entero2 Leer la coordenada y1=⇒ Leer y1 = valor entero3 Leer la coordenada x2=⇒ Leer x2 = valor entero4 Leer la coordenada y2=⇒ Leer y2 = valor entero5 Calcular y = y2 − y1=⇒y = y2− y16 Calcular x = x2 − x1=⇒x = x2− x17 Dividir el resultado de y/x=⇒m = y/x8 Mostrar el resultado de dividir y/x=⇒ Mostrar m

FinA. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 15 / 35

Page 16: Programación: algoritmos

Representación de una Variable - Ejemplo

Pendiente de un Recta - con Variables

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 16 / 35

Page 17: Programación: algoritmos

Variables - Actividades en Clase

Realizar un algoritmo que calcule el área de un círculo

Realizar un algoritmo que calcule el perímetro y área de untrapecio

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 17 / 35

Page 18: Programación: algoritmos

Tipos de Datos que Almacenan las Variables

Tipo de Dato

Un tipo de dato es una restricción impuesta para lainterpretación/manipulación/representación de datos.

Al de�nir un tipo de dato lo que se está indicando es la clase devalores que pueden tomar sus elementos e implícitamente lasoperaciones que se pueden realizar sobre ellos.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 18 / 35

Page 19: Programación: algoritmos

Tipos de Datos

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 19 / 35

Page 20: Programación: algoritmos

Tipos de Datos: Numéricos

Conjunto de los valores numéricos que pueden representarse endos formas: enteros y reales

Enteros, los elementos de este tipo pueden ser :.....,−3,−2,−1, 0, 1, 2, 3, .....Reales, representa números decimales. Los elementos de estetipo pueden ser : 5,4,−2,3, 7,34353, .........

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 20 / 35

Page 21: Programación: algoritmos

Tipos de Datos: Lógico

Llamado también booleano, es un dato que puede tomar un valor deentre dos posibles:

verdadero (true)

falso (false)

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 21 / 35

Page 22: Programación: algoritmos

Tipos de Datos: Carácter

Este conjunto de elementos está establecido y normalizado por unestándar llamado ASCII (American Standard Code for InformationInterchange), el cual establece cuáles son los elementos y el orden deprecedencia entre los mismos. Los elementos son las letras, númerosy símbolos especiales disponibles en el teclado de la computadora yalgunos otros elementos grá�cos.ASCII no es el único, pero es el más utilizado internacionalmente.

Letras minúsculas: 'a', 'b', 'c', ............,'y', 'z'

Letras mayúsculas: 'A', 'B', .......'Y', 'Z'

Dígitos: '0','1',..........'8', '9'

Caracteres especiales: ' !', '@', .........' %'

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 22 / 35

Page 23: Programación: algoritmos

Representación de un Algoritmo

Un algoritmo se puede representar mediante diagramas de �ujo opseudocódigo.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 23 / 35

Page 24: Programación: algoritmos

Diagrama de Flujo

Descripción grá�ca de un algoritmo.

Están conformados por �guras conectadas por �echas.

Para ejecutar un proceso descrito por un diagrama de �ujo secomienza por el INICIO y se siguen las �echas de �gura a �gura,ejecutándose las acciones indicadas por cada �gura y terminandopor el FIN.

Cada �gura indica una acción especí�ca a ejecutar.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 24 / 35

Page 25: Programación: algoritmos

Símbolos de los Diagramas de Flujo

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 25 / 35

Page 26: Programación: algoritmos

Diagrama de Flujo de un algoritmo para calcular la

pendiente de una recta

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 26 / 35

Page 27: Programación: algoritmos

Pseudocódigo

El pseudocódigo (falso lenguaje) es una descripción de alto nivelcompacta e informal del principio operativo de un programainformático o algoritmo.

Utiliza convenciones estructurales de un lenguaje deprogramación real

Diseñado para la lectura humana, no para máquina

Es una forma de representación sencilla de utilizar y de manipular

Facilita el paso del programa al lenguaje de programación

Es independiente del lenguaje de programación a utilizar

Facilita la solución del problema y la codi�cación del programa

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 27 / 35

Page 28: Programación: algoritmos

Pseudocódigo: estándar a utilizar

PSeint

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 28 / 35

Page 29: Programación: algoritmos

Pseudocódigo del algoritmo para calcular la

pendiente de una recta

Algoritmo pendienteRecta

Leer x1

Leer y1

Leer x2

Leer y2

y <- y2�y1

x <- x2�x1

m <- y/x

Escribir m

FinAlgoritmo

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 29 / 35

Page 30: Programación: algoritmos

Actividades

De�nir el diagrama de �ujo y pseudocódigo para los siguientesproblemas:

Dado el lado de un cuadrado encontrar el perímetro y el área, ymostrar el resultado.

Se lee por el teclado del computador distintas cantidades dearroz, azúcar y fréjol. Calcular el valor total si se conoce que lalibra de arroz tiene un costo de $3, la libra de azúcar un costo de$4 y la libra de fréjol un costo de $8. Tomar en consideraciónque el IVA es del 14%.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 30 / 35

Page 31: Programación: algoritmos

Pruebas de Escritorio

Herramienta útil para entender qué hace un algoritmo y veri�car sicumple con la especi�cación para la cual fue pensado.

Se puede considerar una ejecución a mano del algoritmo, por lo tantodebe llevar el registro de los valores que va tomando cada una de lasvariables involucradas en el mismo.

Se lo puede realizar por medio de una matriz cuyas columnasrepresentan a todas las variables involucradas en el proceso.

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 31 / 35

Page 32: Programación: algoritmos

Prueba de Escritorio

Consejos para la prueba de escritorio

Incluir todas las variable en la matriz de prueba

Seguir el �ujo del programa estrictamente

Escoger diferentes datos de entrada para validar todas lasopciones del algoritmo

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 32 / 35

Page 33: Programación: algoritmos

Prueba de Escritorio

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 33 / 35

Page 34: Programación: algoritmos

Actividades

Lectura obligatoria. De Giusti, A., 2001. Algoritmos, datos yprogramas con aplicaciones en Pascal, Delphi y Visual Da Vinci,1st ed. Pearson Educación, Buenos Aires, Argentina.Subcapítulos 2.1, 2.2, 2.3 y 3.1.

Ejercicios: Programación Secuencial del documento ubicado enhttps://goo.gl/X0UTxi

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 34 / 35

Page 35: Programación: algoritmos

Preguntas

A. Vázquez-Patiño (UCuenca) Capítulo 2 15 de septiembre de 2016 35 / 35