programación básica unidad 2: algoritmos y diagramas de flujo

34
Fecha: 13/04/14 Diap. 1 Unidad 2: Algoritmos y Diagramas de Flujo. Por: Lic. Edgar Hernández García Instituto Tecnológico Superior de Zacapoaxtla División de Ingeniería Mecatrónica Programación Básica Unidad 2: Diseño de Algoritmos

Upload: edgar-hernandez-garcia

Post on 22-May-2017

240 views

Category:

Documents


2 download

TRANSCRIPT

Fecha: 13/04/14 Diap. 1

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Programación Básica

Unidad 2: Diseño de Algoritmos

Fecha: 13/04/14 Diap. 2

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Conceptos● Sistema: Conjunto de dispositivos que se relacionan con el fin de realizar una

tarea.

● Proceso: Conjunto de actividades desarrolladas con el fin de desarrollar una tarea específica.

● El proceso consta de componentes a saber:

Entrada: Es la parte del proceso que se encarga de recibir los datos que serán usados en el mismo.

Procesamiento: Parte fundamental del proceso en la que los datos de entrada son “trabajados” para obtener información (o datos de salida).

Salida: Parte del proceso en la que la información obtenida es presentada.

● ¿Cuál sería el proceso que se sigue para realizar una suma?

Fecha: 13/04/14 Diap. 3

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Definición

● Un algoritmo es un conjunto ordenado y finito de pasos usados en la solución de un problema o en la realización de una tarea.

● Un algoritmo está relacionado con los procesos, incluso consta de las mismas tres etapas: Entrada, Proceso, Salida.

● Los lenguajes algorítmicos entonces proporcionan metodologías para la representación de problemas para posteriormente expresarlos en algún (cualquier) lenguaje de programación en una computadora.

Fecha: 13/04/14 Diap. 4

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Características● Un algoritmo correctamente estructurado debe:

– Ser preciso, debe indicar el orden de realización de forma específica.

– Estar definido, si se ejecuta el mismo algoritmo varias veces debe obtenerse el mismo resultado cada vez.

– Ser finito, debe terminar el proceso en un determinado momento.

● Ejercicio 1: Elabore el algoritmo que permita calcular el promedio de cuatro números.

● Ejercicio 2: Elabore el algoritmo para ayudar a una persona a cruzar la calle (en un cruce con semáforos).

Fecha: 13/04/14 Diap. 5

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Datos

● Un dato es una secuencia de símbolos (letras, números, etc.) que representan un valor y que por sí mismos no tienen un significado.

● Otro concepto propio de la computación es el sentido formal de la palabra Información, que en pocas palabras es el proceso que se hace de los datos.

● Por razones prácticas los datos con los que trabaje una PC deben estar bien definidos, razón por la cual los datos deben estar clasificados en rangos de valores que definen las operaciones que se pueden realizar con ellos. Cada tipo de rango define un Tipo de Dato.

Fecha: 13/04/14 Diap. 6

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Tipos de Datos

● Datos numéricos: Los que sólo pueden contener números, que en la mayoría de los casos serán enteros y decimales. Las variables que representen datos deberán representarse simplemente con su nombre: A, X1, edad, etc.

● Datos alfanuméricos: Son los que trabajan expresamente con letras y números, es decir caracteres. Denotaremos a las variables alfanuméricas con un signo de pesos ($) precediendo a la variable: $nombre, $Y2,etc.

● Datos lógicos: Sólo permiten almacenar valores de verdad (V o F), los cuales generalmente son devueltos por una condición o pregunta.

Fecha: 13/04/14 Diap. 7

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Operaciones

● Las operaciones se deberán realizar a través de operadores.

● Operadores aritméticos

● Operadores relacionales

● Operadores lógicos

● Operador asignación: ←

Fecha: 13/04/14 Diap. 8

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Constantes, variables y expresiones

● Los datos pueden almacenar información variable o constante. La variable es un objeto (dato en la memoria de la computadora) que puede cambiar de valor durante la ejecución o funcionamiento de un programa. Las constantes representan datos cuyo valor no cambia a lo largo de la ejecución o funcionamiento de un programa.

● Las expresiones se componen de operandos y operadores.

Fecha: 13/04/14 Diap. 9

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Ejemplos de expresiones

● A continuación citamos algunos ejemplos de expresiones, obtenga los valores correspondientes:

Fecha: 13/04/14 Diap. 10

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Ejercicios

1.- Elabore los siguientes algoritmos:

a) Que tenga por entrada una variable numérica que represente una cantidad en grados cenígrados (°C) y la convierta a su equivalente en grados farenheit (°F). Recuerde °F=1.8°C+32.

b) Que acepte como entrada una variable numérica que represente la edad de una persona e indique mediante un mensaje si dicha persona puede o no votar.

c) Que en su entrada acepte una cantidad numérica que indique un valor en dólares y que lo convierta a pesos mexicanos. Considere un dólar=9.5 pesos.

d) Que tome por entrada tres variables numéricas que representen las calificaciones de un alumno. El algoritmo debe calcular el promedio de dicho alumno e indicar mediante un mensaje si su promedio es aprobatorio o no.

Fecha: 13/04/14 Diap. 11

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Algoritmos: Ejercicios (Cont.)

2.- Suponga los siguientes valores para las variables indicadas:

A←3, B←5, C←10, D←1 y encuentre el valor de las expresiones siguientes:

● (A+B/2-1)-(B↑2)*2 _______

● (A↑2+B↑2) ↑(1/2) _______

● C-D*5/A+4↑2*4 _______

● (C-5)=B _______

● 8-10%2+C _______

● 4*C-B _______

● (A/2+3*C-(4*B/(C-B)*7) )↑3 _______

Fecha: 13/04/14 Diap. 12

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Programación Básica

Unidad 2: Diagramas de Flujo

Fecha: 13/04/14 Diap. 13

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Definiciones

● Un diagrama de flujo es la representación gráfica de un algoritmo, por lo que cada parte de un algoritmo tiene una representación en un diagrama de flujo.

● Lo mismo que los algoritmos, los diagramas de flujo son aplicables a cualquier lenguaje de programación.

● Los diagramas de flujo a veces hacen más claro el proceso de un algoritmo, pero a cambio requieren de espacio para ser dibujados.

Fecha: 13/04/14 Diap. 14

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Simbología básica● Equivalencias con algoritmos

● Para indicar el inicio y el fin de un diagrama se usan como símbolos óvalos.

● Entre cada símbolo deberá ir una flecha indicando la dirección del flujo lógico de procesamiento.

Fecha: 13/04/14 Diap. 15

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Implementación de Diagramas de Flujo a partir de Algoritmos

● Ejemplo 1: Elaborar un diagrama de flujo que lea dos valores numéricos, calcule su suma e imprima el resultado en pantalla.

Fecha: 13/04/14 Diap. 16

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Implementación de Diagramas de Flujo a partir de Algoritmos

● Ejemplo 2: Diseñar un diagrama de flujo que lea tres datos numéricos, calcule su promedio e imprima el resultado en pantalla.

Fecha: 13/04/14 Diap. 17

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Reglas para la construcción de Diagramas de Flujo

1. Todo diagrama debe tener un principio y un fin.

2. Las líneas de conexión siempre deben ser rectas, y si es posible que sean sólo verticales y horizontales (no deben cruzarse ni estar inclinadas). Así mismo, se deben usar los conectores sólo en casos estrictamente necesarios.

3. Las líneas que enlazan símbolos entre si deben estar todas conectadas.

4. Se deben dibujar todos los símbolos de modo que se pueda seguir el proceso visualmente de arriba abajo (diseño top down) y de izquierda a derecha.

5. Realizar un diagrama claro y estructurado procurando que la parte central del diagrama sea la parte central de la hoja de papel.

6. Evitar la utilización de terminología específica de un lenguaje de programación.

7. En las operaciones lógicas recurrir preferentemente a la lógica positiva y que a la lógica negativa.

Fecha: 13/04/14 Diap. 18

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ventajas y Desventajas● Ventajas:

– Rápida comprensión de las relaciones.

– Análisis efectivo de las diferentes secciones del programa.

– Documentación adecuada de los programas.

– Codificación eficaz de los programas.

– Depuración y pruebas ordenadas de los programas.

● Desventajas:

– Los diagramas complejos y detallados suelen ser laboriosos en planteamiento y elaboración.

– No existen normas fijas para la elaboración de diagramas de flujo que permitan incluir todos los detalles que el usuario desea introducir.

Fecha: 13/04/14 Diap. 19

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Pseudocódigo● El pseudocódigo es la escritura en “lenguaje natural” de la

codificación de un diagrama de flujo y/o algoritmo de un programa, como un acercamiento al código real de lenguaje de programación.

Fecha: 13/04/14 Diap. 20

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejercicios

1. Desarrollar el diagrama de flujo que lea una cantidad en pesos y que la convierta en dólares (suponiendo que el dólar = $ 10).

2. Hacer diagrama de flujo que lea una cantidad en °C y que la convierta en ° K y ºF (ºC=ºK-273, ºC=(ºF-32)/1.8).

3. Hacer diagrama de flujo que lea los lados de A, B de un triángulo y que calcule e imprima la hipotenusa.

4. Hacer diagrama de flujo capaz de resolver una ecuación de segundo grado.

Fecha: 13/04/14 Diap. 21

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Control de flujo en un diagrama

● Los diagramas de flujo vistos hasta ahora se ejecutan incodicionalmente de forma lineal, es decir, se ejecutan de arriba hacia abajo.

● En ocasiones será necesario controlar ese flujo del proceso, para lo cual usaremos un bloque especial, al que llamaremos bloque condicional.

Fecha: 13/04/14 Diap. 22

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 1

● Diseñar el diagrama de flujo de un programa que pregunte la edad y decida si el usuario puede votar o no.

Fecha: 13/04/14 Diap. 23

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 2

● Diseñar el diagrama de flujo en el que se lea un número, se verifique si es mayor a 1000, en cuyo caso deberá mostrar en pantalla el cuadrado del número, y si no que muestre el cubo del número.

Fecha: 13/04/14 Diap. 24

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 3

● Realizar un diagrama de flujo en el que se lean dos números y se pruebe la propiedad de tricotomía.

Fecha: 13/04/14 Diap. 25

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 4

● Diseñe el diagrama de flujo en el que se lea un número y se pruebe si es par o no, el diagrama debe indicarlo con los mensajes respectivos.

Fecha: 13/04/14 Diap. 26

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Estructuras iterativas● Las estructuras iterativas son procesos que se repiten un determinado

número de veces, por lo que también se llaman bucles.

● A cada repetición se le llama iteración.

● El proceso consta de una entrada, que puede estar compuesta de varias instrucciones; y una salida que se realizará dada una condición (sea que se cumpla o no).

● Las iteraciones que se ejecutan indefinidamente se llaman bucles infinitos

● En la realidad siempre se buscará realizar bucles finitos, los cuales deben contar con las siguientes partes:

– Preparación y arranque.

– Cuerpo.

– Modificación.

– Control de la condición.

Fecha: 13/04/14 Diap. 27

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Estructura “Mientras-repetir”

● Esta clase de bloque analiza una condición en primer término, mientras ésta se cumpla se realiza un conjunto de instrucciones (proceso) de manera repetitiva, en caso contrario el ciclo se termina.

Fecha: 13/04/14 Diap. 28

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Estructura “Hacer-hasta”

● En este caso se realiza una primera vez el proceso, luego se analiza la condición y si ésta no se cumple se realiza un proceso repetitivo, en caso contrario se finaliza el ciclo.

Fecha: 13/04/14 Diap. 29

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ciclos automáticos

● En ésta clase de bucles existe una variable “interna” que se encarga de “contar” cuántas veces se ha realizado cada iteración, de tal forma que se puede elegir una cantidad de inicio y una cantidad de fin de ciclo.

Fecha: 13/04/14 Diap. 30

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 1● Diseñar el diagrama de flujo que lea hasta 10 datos

numéricos (es decir que solicite 10 datos) y obtenga su promedio.

Inicio

Suma 0i

i<=10

prom suma suma+datoi i+1

datoprom suma/10

Fin

SÍNO

Fecha: 13/04/14 Diap. 31

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 2● Diseñar un diagrama de flujo que imprima visualmente

números pares de 2 hasta 200

Fecha: 13/04/14 Diap. 32

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 3● Generar un diagrama de flujo que solicite un número entero

positivo y que cuente (e imprima visualmente) de uno en uno hasta el número dado.

Fecha: 13/04/14 Diap. 33

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejemplo 4● Generar el diagrama de flujo que permita calcular la media

aritmética de n números.

Fecha: 13/04/14 Diap. 34

Unidad 2: Algoritmos y Diagramas de Flujo.Por: Lic. Edgar Hernández García

Instituto Tecnológico Superior de ZacapoaxtlaDivisión de Ingeniería Mecatrónica

Ejercicio

● Elabore el diagrama de flujo que solicite un número entero positivo N, y que imprima visualmente la secuencia de números primos menores o iguales que N.