Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2
I. Conceptos Bsicos 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
Representacin de Algoritmos
4.
Contenido
Contenido
13/01/2013
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
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
Representacin de Algoritmos
Los lenguajes algortmicos son representaciones de los algoritmos en un contexto un poco ms formal y estructurado que los lenguajes naturales.
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
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
Contenido
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
Contenido
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
FIN
Contenido
Martn Nava Ortiz
Contenido
15
16
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.
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
Contenido
13/01/2013
17
18
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
Contenido
19
20
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
13/01/2013
21
22
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.
Se compone de mdulos. Cada mdulo se codifica utilizando las tres estructuras de control bsicas.
Contenido
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
Los valores de las variables una vez ejecutada la ltima instruccin son: num1 45 num2 72 suma 0
Contenido
13/01/2013
25
26
Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Ejemplos: a + ( b + 3 ) / c A > B
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:
Contenido
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.
Accin Mayor que Mayor o igual que Menor que Menor o igual que Igual Distinto
+ * / ^ MOD DIV
Contenido
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.
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.
Contenido
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
+ + + * +
b b 2 *b b b d
Contenido
13/01/2013
33
34
Ejercicios
Expresar utilizando los operadores aritmticos:
m + n n
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
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
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,
13/01/2013
37
38
Instrucciones de Entrada/Salida
Estas instrucciones permiten la transferencia de informacin entre los dispositivos perifricos y la memoria principal.
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
Contenido
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
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
Contenido
10
13/01/2013
41
42
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
NO
instruccin A
instruccin B
Contenido
Contenido
43
Pseudocdigo
Diagrama de Flujo
NO
SI instrucciones
Contenido
11