Diagramas de-flujo.

22
Algoritmos y Programación Por: Uriel López Martínez [email protected] Marzo del 2012

Transcript of Diagramas de-flujo.

Page 1: Diagramas de-flujo.

Algoritmos y

Programación

Por: Uriel López Martínez

[email protected]

Marzo del 2012

Page 2: Diagramas de-flujo.

Objetivos

Planeamiento y solución de Problemas

Algoritmo

Datos y Tipos de Datos

Constantes y Variables

Tipo de Operaciones

Precedencia de Operadores

Diagramas de Flujo

Contenido

Page 3: Diagramas de-flujo.

Objetivos

Comprender los conceptos básicos para el

análisis de problemas.

Comprender las diferentes operaciones para

solucionar problemas.

Manejar adecuadamente las estructuras básicas

de un diagrama de flujo.

Page 4: Diagramas de-flujo.

Planeamiento y solución de

problemas La solución de un problema representado en un

programa de computadora consta de 2 etapas fundamentales:

Fase de Solución:

Concentra la atención en el diseño de un algoritmo que resuelva el problema propuesto.

En esta fase se analiza el problema, requiriendo concentración, imaginación y creatividad.

Page 5: Diagramas de-flujo.

Se debe identificar que tipo de información se

necesita obtener y que dudas hay en el

problema para obtener una mejor solución.

Fase de Construcción:

Una vez formulado un algoritmo adecuado, se

entrara en los detalles de implementación de

este algoritmo en algún lenguaje de

programación.

Page 6: Diagramas de-flujo.

Un problema bien definido es resultado de un

análisis exhaustivo y requiere una descripción

precisa de las especificaciones de entrada y

salida para poder conseguir una solución

efectiva y eficaz.

Problema

Solución:

Algoritmo

Solucion del Problema:

Programa

Fase de solución

Fase de construcción

Paso Difícil

Page 7: Diagramas de-flujo.

Algoritmo

Se define como una secuencia ordenada de pasos carente de ambigüedades que lleva a la solución de un problema.

Las características de un algoritmo son:

Ordenado (los pasos deben estar ordenados).

Definido ( varios algoritmos para un mismo problema deben arrojar el mismo resultado).

Finito (debe terminar en algún momento).

Page 8: Diagramas de-flujo.

Un algoritmo esta constituido por 3 partes:

Entrada: Es la información dada al algoritmo.

Proceso: Son los cálculos necesarios.

Salida: Son los resultados dadas por el algoritmo.

Como ejemplo se diseñara un algoritmo para cambiar un foco quemado del techo de una habitación. Se comienza por identificar las tareas más importantes hacer ejecutadas y disponerla en el orden en que serán ejecutadas.

Page 9: Diagramas de-flujo.

Proceso:

1. Retirar el foco quemado.

2. Colocar el foco nuevo.

Normalmente estos pasos son incompletos, por consiguiente detallaremos mas esos dos pasos anteriores

Proceso:

1. Situar una escalera debajo del foco.

2. Elegir el foco remplazante.

3. Subir la escalera hasta alcanzar el foco.

4. Girar en sentido antihorario hasta que el foco este suelto.

5. Colocar el nuevo foco en el mismo lugar.

Page 10: Diagramas de-flujo.

6. Girar el foco en sentido horario hasta que ajuste.

7. Bajar la escalera.

Pero podemos ver que varios de los pasos de este

algoritmo implican operaciones mas detalladas , por

ejemplo:

Proceso:

1. Situar la escalera debajo del foco.

2. Elegir un posible remplazante . Si la potencia no es

igual ala antigua, repetir lo siguiente hasta que la

potencia sea igual ala antigua :

2.1. Descartar el foco elegido

2.2. Elegir uno nuevo

Page 11: Diagramas de-flujo.

3. Repetir el sgte. procedimiento hasta que se alcance

el foco quemado.

3.1. Subir un peldaño tras otro de la escalera.

4. Repetir el sgte. procedimiento hasta que el foco

este suelto.

4.1. Girar el foco en sentido antiorario.

5. Colocar el nuevo foco en el mismo lugar.

6. Repetir el sgte. procedimiento hasta que el foco

este ajustado

6.1.Enroscar el foco en sentido horario

7. Bajar de la escalera.

Aquí aparecen 2 conceptos importantes:

Page 12: Diagramas de-flujo.

El concepto de decisión y el concepto de repetición.

La decisión permitirá elegir que camino seguir según una condición dada, en el ejemplo visto si la potencia del foco es la misma se saltara al paso 3 sino se entrara en un ciclo repetitivo hasta encontrar una potencia igual ala del anterior foco.

La repetición es un ciclo que se repite una y otra vez hasta cumplir una cierta condición.

Muchas personas no comprenden la necesidad de realizar un algoritmo y saltan de frente ala codificación del programa pensando que así ahorraran tiempo, esto parece razonable pero no es así, la experiencia demuestra que el proceso de solución de un problema con las 2 fases enunciadas simplifican la solución y reduce el tiempo.

Page 13: Diagramas de-flujo.

Datos Tipos de datos

Datos: Los algoritmos están diseñados para manipular datos. Los datos pueden ser las cifras de ventas mensuales de un supermercado, la nómina del personal de una empresa ó la fecha de nacimiento de los alumnos de un salón.

Tipos de datos: Todos los datos tienen un tipo asociado a ellos q determina el conjunto de todos los posibles valores q un dato puede tener. Los distintos tipos se representan en forma diferente en la computadora y puede ser simple ó estructurada. Los datos simples también son conocidos como datos primitivos y se clasifican en numéricos, caracteres, y lógicos

Page 14: Diagramas de-flujo.

1. Tipos Numérico: Los datos numéricos pueden representarse como números enteros y números reales.

Los enteros corresponden a los números que no tienen componente fraccionario (decimales), pueden ser (-) ó (+) los sgts. son ejemplos de datos enteros: 13, -6, 8988, 24

Los Reales son números de parte entera y parte decimal q tienen siempre un punto decimal, los sgtes. son ejemplos de números reales: 36.7; -9.54; 0.0; 9.0; 0.1

2. Tipo Carácter: Esta formado por todos los caracteres o símbolos de los q dispone la computadora.

Page 15: Diagramas de-flujo.

Caracteres alfabéticos mayúsculas A,B,C,D,...Z.

Caracteres alfabéticos minúsculas a,b,c,d,…z.

Caracteres dígitos 0,1,2,…,9.

Caracteres especiales $,%,-,+,>,?

Un dato tipo carácter es un solo carácter.

Los caracteres se organizan en cadenas. Una cadena de caracteres una secuencia de caracteres, por ejemplo: Maria 1957 07-08-2008

3. Tipo Lógico: Los datos de tipo lógico ó booleano pueden tomar solo dos valores posibles

True (verdadero) ó false (falso).

Page 16: Diagramas de-flujo.

Constantes y Variables

En todo programa de computadora existen algunos

elementos con un determinado valor. Estos elementos

pueden ser constantes ó variables.

Constantes: Las const son objetos cuyo valor

permanece invariable a lo largo de ejecución del

programa, ejemplos: pi=3.14154 e=2.71828

utilizara un nombre (identificador) cada vez q se

necesite usarlo.

Variables: Las variables son objetos q pueden

cambiar su valor mediante la ejecución de un

programa, utilizaran un nombre para identificarlo.

Page 17: Diagramas de-flujo.

Tipo de Operaciones

Aritmeticas

^ Potenciación: 2^3=8

* Multiplicación: 2*3=6

/ División: 7/2 = 7.0/2 = 7/2.0 = 7.0/2.0 =3.5

div División entera: 7 div 2=3

mod Resto de division entera: 7 mod 2=1

Relacionales

= Igual

!= ó <> Distinto

>= Mayor igual que

Page 18: Diagramas de-flujo.

<= Menor igual que

> Mayor

< Menor

Lógicas:

no negación

y conjunción

o disyunción

Asignación: La operación asignación es una manera muy elemental de especificar que una variable debe tener un valor dado. Se denota como para indicar que el valor situado a su derecha se almacena en la variable situada a la izquierda. Por ejemplo:

A 3 significa ala variable A se le asigna el valor 3.

Page 19: Diagramas de-flujo.

El operación de asignación es una operación

destructiva porque remplaza el valor de una variable

por un nuevo valor cuando se ejecuta el algoritmo

(programa).

A 16

A -27

A 9

La variable tiene 16 como valor inicial, al ejecutarse

las dos instrucciones siguientes la variable A guardara

el valor 9.

Page 20: Diagramas de-flujo.

Otras Operaciones:

ABSC(x): arroja el valor absoluto de un entero ó real.

ABSC(15)=15, ABSC(-69)=69

SQR(x): arroja x*x de un entero o real .

SQR(5)=25

SQRT(x): arroja la raiz cuadrada de un entero o real >=0.

SQRT(81)=9

TRUNC(x): Arroja el mayor entero T, se debe cumplir que T<=x, por ejemplo:

TRUNC(3.2)=3 TRUNC(-4.5)=-4

ROUND(x):Arroja el mayor entero T, tal que se cumpla T<=X+0.5

ROUND(3.2)=3

Page 21: Diagramas de-flujo.

Reglas de evaluación de

expresiones Primero se evalúan todas las subexpresiones entre

paréntesis. Las subexpresiones con paréntesis anidados se evalúan de adentro hacia fuera.

Segundo se evaluara la prioridad de las siguientes operaciones:

*, /, div, mod

+, -

Los operadores en una misma expresión o subexpresion con igual nivel de prioridad (*, /) se evaluaran de izquierda a derecha.

Page 22: Diagramas de-flujo.

Diagramas de Flujo

Es una representación grafica de la solución de un

problema y por ende de un algoritmo

Es una técnica que describe gráficamente los pasos

que tienen los algoritmos.

Algunos elementos esenciales del mismo son:

El comienzo del algoritmo.

Las operaciones.

La secuencia en que se realiza.

El final del algoritmo.