Vous êtes sur la page 1sur 11

13/01/2013

2
I. Conceptos Bsicos de Algoritmos

Diseo de algoritmos I. Conceptos Bsicos de Algoritmos


Diseo de Algoritmos

PROGRAMACIN ESTRUCTURADA
PRE-ES | Ingeniera Mecatrnica | 2013 Martn Nava Ortiz
Contenido

CONTENIDO
1. Representacin de Algoritmos a. b. 2. 3. Pseudocdigo Diagrama de Flujo

I. Conceptos Bsicos de Algoritmos

Programacin Estructurada Entidades primitivas para el desarrollo de algoritmos a. b. Variables Expresiones

Representacin de Algoritmos

4.

Tipos de instrucciones a. b. c. d. Asignacin Entrada/Salida Selectiva Repetitiva


Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

Contenido

Contenido

13/01/2013

Proceso de Diseo de un Programa


Resolucin del problema Inicio Implementacin

Representacin de Algoritmos
La forma ms natural de expresar un algoritmo es mediante frases y palabras del lenguaje cotidiano. En el extremo opuesto se encuentra la codificacin del algoritmo mediante un lenguaje de programacin.
Traduccin del algoritmo a C++ Prueba Programador

Lenguaje natural Pseudocdigo y diagramas de flujo Lenguaje de programacin Lenguaje mquina

Anlisis del Problema

Diseo del Algoritmo

Prueba de Escritorio

Entre la libertad, flexibilidad y ambigedad de los lenguajes naturales y la precisin, rigidez y limitaciones de expresividad de los lenguajes de programacin se encuentran los lenguajes algortmicos

Programa funcionando
Contenido
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

Computadora

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Proceso de diseo de un programa


Lenguaje natural

Representacin de Algoritmos
Los lenguajes algortmicos son representaciones de los algoritmos en un contexto un poco ms formal y estructurado que los lenguajes naturales.

Obtener la base y la altura Multiplicar el valor de la base por la altura.

Pseudocdigo INICIO b = 0, h = 0, A = 0 LEER b, h A = b * h IMPRIMIR El rea es: , A FIN

Lenguaje de Programacin de Alto Nivel #include <stdlib.h> #include <iostream> using namespace std; int main(){ int b=0, h=0, A=0; cin >> b; cin >> h; A = b * h; cout << El rea es: << prom ; return 0; }
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

Contenido

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

10

Representacin de Algoritmos
Ventajas de los lenguajes algortmicos: Sirven de puente entre la forma humana de resolver problemas y su resolucin mediante programas de computadora. Presentan cierta independencia de los lenguajes de programacin particulares, por lo tanto estn libres de sus limitaciones y as los algoritmos escritos en ellos pueden ser traducidos indistintamente a cualquier lenguaje de programacin.

Lenguajes algortmicos
Las representaciones de los algoritmos desarrollados en este curso sern: a) Pseudocdigo b) Diagramas de flujo

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

11

12

a) Pseudocdigo
El pseudocdigo es una manera de escribir algoritmos de forma poco estricta (con una sintaxis relajada) o estructuras de datos poco detalladas, pero intentando acercar las ideas del algoritmo a estructuras y sintaxis parecidas a las de los lenguajes de alto nivel en los que habremos de implementar estos algoritmos. En otras palabras, los algoritmos escritos en pseudocdigo ayudan al programador a pensar un programa, antes de intentar escribirlo en el lenguaje de programacin.

a) Pseudocdigo (cont.)
El pseudocdigo utiliza palabras reservadas para representar las acciones sucesivas (similares a sus homnimos en los lenguajes de programacin). Las palabras reservadas que utilizaremos en nuestro pseudocdigo sern: INICIO, FIN, LEER, IMPRIMIR, SI, SINO y MIENTRAS Las reglas generales para desarrollar nuestros algoritmos sern las siguientes: Todos los algoritmos comienzan por la palabra INICIO y terminan con la palabra FIN. Todas las variables debern ser declaradas e inicializadas al comienzo del algoritmo. Un grupo de sentencias (instrucciones) relacionado guardan la misma vertical. Si se necesita un nuevo grupo de sentencias se tabula a la derecha. Un grupo de sentencias va entre llaves {...}. Es importante recordar que nicamente la estructura condicional y la repetitiva son las que tienen relacionados grupos de sentencias. Lgicamente una sentencia simple aislada no necesita llaves.
I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

13

14

b) Diagrama de flujo
Es la representacin grfica del conjunto de instrucciones (pasos) que conforman un algoritmo.
INICIO r, h base = PI * r * r volumen = base * h volumen

b) Diagrama de flujo. Smbolos


Los smbolos grficos utilizados han sido normalizados (ANSI).Los ms frecuentemente utilizados son:
Terminal Se usa para indicar el inicio o fin del diagrama. Proceso Cualquier tipo de operacin que se pueda originar como cambio de valor, operaciones aritmticas, etc. Entrada / Salida Se usa para indicar el ingreso o salida de datos Salida Se utiliza para mostrar datos.
I. Conceptos Bsicos de Algoritmos

FIN
Contenido
Martn Nava Ortiz

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

15

16

b) Diagrama de flujo. Smbolos


NO

b) Diagramas de Flujo. Reglas de diseo


Las siguientes son las reglas generales que se deben seguir para la creacin de diagramas de flujo:

SI

Decisin Indica operaciones lgicas o de comparacin de datos y en funcin de su resultado se determina cual de los distintos caminos alternativos se seguir.

Conector Sirve para enlazar dos partes cualesquiera de un diagrama, usando uno en la salida y otro en la entrada.

Los diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.

Lnea de Flujo Indica el sentido de ejecucin de las operaciones

Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la direccin en que fluye la informacin de procesos, se deben de utilizar solamente lneas de flujo horizontal o verticales (nunca diagonales).

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

17

18

b) Diagramas de Flujo. Reglas de diseo (cont.)


1 Se debe evitar el cruce de lneas, si quisiera separar el flujo del diagrama a un sitio distinto, se puede realizar utilizando los conectores. Se debe tener en cuenta que slo se debern utilizar conectores cuando sea estrictamente necesario. 1

b) Diagramas de Flujo. Reglas de diseo (cont.)

Todo texto escrito dentro de un smbolo debe ser legible y preciso, evitando el uso de muchas palabras.

A>15

?
No deben quedar lneas de flujo sin conectar

?
I. Conceptos Bsicos de Algoritmos

Aunque todos los smbolos pueden tener ms de una lnea de entrada, se recomienda colocar un conector que rena todas estas entradas y despus mediante una lnea continuar el flujo. Esto a excepcin del smbolo final. Solamente los smbolos de decisin pueden y deben tener ms de una lnea de flujo de salida.

Contenido

Martn Nava Ortiz

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

19

20

I. Conceptos Bsicos de Algoritmos

Programacin Estructurada
La programacin estructurada es un estilo de programacin en el cual, la estructura de un programa se hace tan clara como sea posible, utilizando tres estructuras:
Secuencial

Programacin Estructurada

Estructuras
Repeticin Seleccin

Estos tres tipos de estructuras de control pueden combinarse para producir programas.

Contenido

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

21

22

Caractersticas de un Programa Estructurado

I. Conceptos Bsicos de Algoritmos

Puede leerse de arriba hacia abajo lo que hace que el programa sea ms fcil de leer y comprender por otros programadores facilitando as su mantenimiento.

Entidades primitivas para el desarrollo de algoritmos

Se compone de mdulos. Cada mdulo se codifica utilizando las tres estructuras de control bsicas.

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

23

24

Variables
Se le llama variable a una zona de la memoria principal donde es posible guardar un dato, y a la cual se hace referenciada mediante un nombre o identificador. La computadora asigna a cada variable una direccin de memoria. Cuando se haga referencia a esa variable, la computadora siempre ir a esa direccin. Es aconsejable que el nombre que se le de a la variable tenga relacin con el dato que representa a fin de que permita recordar al programador la naturaleza de la informacin que contiene.

Variables . Declaracin
El valor de una variable puede ser modificado durante la ejecucin del algoritmo o programa En siguiente algoritmo se ejemplifica esta propiedad de las variables.
Los valores de las variables una vez ejecutada esta instruccin son: = = = = = 0 , num2 = 0, suma = 0 45 72 num1 + num2 0 num1 45 num2 72 suma 117

Para definir las variables es necesario: Definir su nombre (identificador) El valor que tomar inicialmente (inicializacin) El tipo de dato. Numrico, alfanumrico, booleano, etc.
Contenido
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

INICIO num1 num1 num2 suma suma FIN

Los valores de las variables una vez ejecutada la ltima instruccin son: num1 45 num2 72 suma 0

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

25

26

Variables. Reglas para formar un identificador


Debe comenzar con una letra (A-Z, maysculas o minsculas) y no deben contener espacios en blanco. Letras, dgitos y caracteres como el guin bajo ( _ ) estn permitidos despus del primer carcter. La longitud de identificadores puede ser de varios caracteres. El nombre del identificador debe dar una idea del valor que contiene. Identificadores definidos Correctamente Nombre de variable cal1 Calficacion_1 C1 CP
Contenido
Martn Nava Ortiz

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Ejemplos: a + ( b + 3 ) / c A > B

Identificadores definidos Incorrectamente Nombre de variable 1cal Calficacion 1 $costo$ Numero#


I. Conceptos Bsicos de Algoritmos

Cada expresin genera un valor que se determina tomando los valores de las variables y constantes implicadas, y la ejecucin de las operaciones sealadas. Una expresin consta de operadores y operandos.

Segn sea el tipo de datos que manipulan, las expresiones se clasifican en:

Aritmticas Relacionales Lgicas

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

27

28

Expresiones (cont.)
Operadores Aritmticos
Las expresiones aritmticas se utilizan como en la notacin matemtica tradicional. El resultado de una expresin de este tipo puede ser almacenado en una variable y usado en una comparacin. Operador Accin Resta Suma Multiplicacin Divisin Real Potencia Residuo de la divisin Divisin Entera
Martn Nava Ortiz

Expresiones (cont.)
Operadores Relacionales o Condicionales
Se utilizan para formar expresiones booleanas, es decir, expresiones que al ser evaluadas producen un valor booleano: verdadero o falso.

Operador Ejemplo x = 5 - 3 x = 2 + 3 x = 2 * 3 x = 6 / 2 x = 3 ^ 2 x = 5 MOD 2 x = 5 DIV 2 Resultado 2 5 6 3 9 1 2


Contenido
Martn Nava Ortiz

Accin Mayor que Mayor o igual que Menor que Menor o igual que Igual Distinto

> >= < <= = <>

+ * / ^ MOD DIV
Contenido

I. Conceptos Bsicos de Algoritmos

I. Conceptos Bsicos de Algoritmos

13/01/2013

29

30

Expresiones (cont.)
Operadores Lgicos
Combinan sus operandos de acuerdo con las reglas del algebra de Boole con el fin de producir un nuevo valor que se convierta en el valor de la expresin. Esto es, producen un resultado booleano, siendo sus operandos tambin valores lgicos.

Expresiones. Orden de evaluacin de operadores


Las expresiones que tengan dos o ms operadores requieren reglas matemticas que permitan determinar el orden de las operaciones, dichas reglas son de prioridad o precedencia y son: Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen parntesis anidados, los mismos se resuelven de adentro hacia fuera. Las operaciones aritmticas dentro de una expresin siguen el orden de prioridad:
Operador exponencial Operadores * y / (multiplicacin y divisin) Operadores + y - (suma y resta)

Operador

Accin Produce un valor Verdadero cuando ambos operandos tienen valor de verdad Verdadero, y Falso en cualquier otro caso. Produce un resultado con valor Falso cuando ambos operadores tienen valores falsos; y Verdadero en cualquier otro caso. Invierte el valor de verdad del operando.

O NO
Contenido

En el caso de coincidir operadores de igual jerarqua en una expresin encerrada entre parntesis, el orden de prioridad se resuelve de izquierda a derecha.

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

31

32

Ejercicios
Indicar el valor de cada una de las siguientes variables: x x x x = = = = (2 + 3) (2 + 3) (2 + 3) 2 ^ 2 + * 6 / 4 DIV 4 3 2 * (5 MOD 2)

Ejercicios
Calcular el valor de cada una de las siguientes asignaciones de variables: a) a b c b a = = = = = 3 0 a + b a + b b + 20 b) a b c d a b c d = = = = = = = = 1 4 a a c c a b

Si a = 6, b = 2, c =3, indicar el resultado final de las siguientes expresiones: a- b + c (a * c) MOD c c ^ b + c * b


Contenido
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

+ + + * +

b b 2 *b b b d

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

13/01/2013

33

34

Ejercicios
Expresar utilizando los operadores aritmticos:
m + n n

I. Conceptos Bsicos de Algoritmos

Tipos de Instrucciones
m + n / p p r/s

m + 4 p - q

c r t 100
Contenido
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

Contenido

35

36

Instrucciones bsicas
Como se ha mencionado, un algoritmo es un conjunto de acciones que se han de ejecutar para la resolucin de un problema. A cada una de estas acciones se le denomina Instruccin o Sentencia. Un conjunto de instrucciones forma un programa. Las instrucciones se deben escribir y luego almacenar en memoria en el mismo orden en que han de ejecutarse, es decir, en secuencia. Las instrucciones bsicas que se pueden implementar en un algoritmo son soportadas en la mayora de los lenguajes de programacin. La clasificacin ms comn de estas instrucciones es la de la derecha:
Contenido
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

Instrucciones de Asignacin
Cualquier operacin aritmtica que se desea realizar es llamada con este nombre.

Asignacin

Tienen dos etapas:

1 2

La ejecucin de la operacin, que implica la obtencin de un resultado. Una transferencia para almacenar en un espacio de la memoria el resultado obtenido.

Selectivas

Entrada / Salida

La forma general para las instrucciones de asignacin es:

b
Repetitivas

a = b

a = b

donde: a es el nombre de una variable donde se almacena el resultado de b es una expresin aritmtica. (vase expresiones)
Contenido
Martn Nava Ortiz

b,

I. Conceptos Bsicos de Algoritmos

13/01/2013

37

38

Instrucciones de Entrada/Salida
Estas instrucciones permiten la transferencia de informacin entre los dispositivos perifricos y la memoria principal.

Instrucciones de Entrada/Salida (cont.)


Ejemplos de uso de las instrucciones de entrada/salida

Entrada

En la memoria principal slo pueden guardarse valores mediante su almacenamiento en variables. Por eso, cualquier operacin de entrada lleva implcita la asignacin del valor introducido en una variable de memoria a la que se deber hacer referencia cuando se necesite.

Entrada
a, b, c

LEER a, b, c Aqu se leen 3 valores distintos y se almacenan en las variables en el orden respectivo

Salida

Salida

Permiten la visualizacin o impresin de los valores almacenados en variables, cadenas de texto, o resultados de expresiones.

Resultado: , a

IMPRIMIR Resultado:, a Aqu se muestra un letrero en pantalla (entre comillas), seguido del valor de la variable a (sin comillas)

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

39

40

Instrucciones Selectivas
Realizan una seleccin de las acciones o instrucciones a ejecutar, es decir, dependiendo de si se cumple o no una determinada condicin, se ejecutan o no, un determinado grupo de instrucciones. Estas instrucciones se ejecutan una nica vez. Ejemplo:
INICIO a = 0, b =0 LEER a,b SI ( a > b ) { IMPRIMIR El Mayor es A } SI NO { IMPRIMIR El Mayor es B } FIN
Contenido

Instrucciones Selectivas ( Seleccin Simple )


nicamente si se cumple la condicin se realiza el conjunto de instrucciones entre las llaves. Posteriormente, se haya o no cumplido con la condicin, se ejecutar la siguiente instruccin (si la hay) que se encuentre despus de esta estructura.
Pseudocdigo Este algoritmo lo que permite es imprimir un letrero que identifica al numero mayor entre los dos ledos. Diagrama de Flujo

SI (Condicin) ENTONCES
Si el valor de a es mayor que el de b se realiza la instruccin entre el primer par de llaves, de lo contrario se ejecuta la instruccin dentro del segundo par de llaves. Lgicamente slo se ejecuta una de ellas.

SI

Condicin

{ instrucciones }
instrucciones

NO

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

10

13/01/2013

41

42

Instrucciones Selectivas ( Seleccin Doble )


Si se cumple la condicin se ejecuta el primer bloque de instrucciones. Si no se cumple, se ejecutan las instrucciones del segundo bloque. nicamente un bloque se ejecuta en esta estructura.
Pseudocdigo Diagrama de Flujo

Instrucciones Repetitivas
Permiten la iteracin o repeticin de secuencias de instrucciones un nmero dado de veces. Ejemplo:
INICIO i = 0 Este algoritmo imprime la serie de nmeros enteros de uno en uno dentro del rango 0 a 100. El bloque de instrucciones dentro del par de llaves se ejecutar mientras la condicin se cumpla. En este caso utilizamos un contador que indica en que vuelta vamos, por lo tanto, este se debe actualizar en cada iteracin (i = i + 1) Cuando el valor de la variable i alcanza el valor de 100, este ya no se actualiza ni se imprime, ahora se ejecuta la instruccin fuera de las llaves.
Martn Nava Ortiz I. Conceptos Bsicos de Algoritmos

SI (Condicin) ENTONCES { instruccin A } SI NO { Instruccin B }

SI

Condicin

NO

instruccin A

instruccin B

MIENTRAS ( i < 100 ) { i = i + 1 IMPRIMIR i } IMPRIMIR Termin FIN

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

Contenido

43

Instrucciones Repetitivas (cont.)


Las instrucciones del cuerpo del ciclo se repiten mientras se cumpla una determinada condicin.

Pseudocdigo

Diagrama de Flujo

MIENTRAS (Condicin) { instrucciones }


Condicin

NO

SI instrucciones

Contenido

Martn Nava Ortiz

I. Conceptos Bsicos de Algoritmos

11