Vous êtes sur la page 1sur 19

Apuntes de ALGORTMICA

UNIDAD 2 Representacin de algoritmos.

Curso 2009-2010

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Contenido
1. a) b) a) b) c) d) 2. 1. 2. 3. 4. Tipos bsicos de datos........................................................................................................... 3 Tipo simple ........................................................................................................................ 3 Operadores y expresiones................................................................................................. 6 Tipos de operadores...................................................................................................... 6 Funciones internas ........................................................................................................ 7 Operacin de asignacin. .............................................................................................. 8 Entrada y salida de informacin.................................................................................... 9

Sistemas de representacin de algoritmos ......................................................................... 10 Descripcin narrada ........................................................................................................ 10 Descripcin en Pseudocdigo ......................................................................................... 10 Diagramas N-S o de cajas ................................................................................................ 11 Diagramas de Flujo. ......................................................................................................... 13

Anexo A Especificacin de instrucciones en pseudocdigo. .................................................... 16 Definicin de algoritmo, variables y constantes ..................................................................... 16 Funciones y operaciones ......................................................................................................... 17 Estructuras de control ............................................................................................................. 18

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

1. Tipos bsicos de datos.


Definicin de dato Un DATO es un objeto o elemento que se trata a lo largo de las diversas operaciones y acciones que discurren durante la ejecucin de un algoritmo o programa. Caractersticas de un dato Debe tener un nombre nico y diferenciado del resto. Debe ser de un tipo el cual va a determinar las operaciones y valores que podr tomar ese dato. El valor de un dato podr variar o no a lo largo de las distintas operaciones y acciones que se ejecuten en el programa o algoritmo.

Tipos bsicos Existen dos tipos bsicos de datos: SIMPLES, sin ningn tipo de estructura y compuestos por un nico elemento. COMPUESTOS, con varios elementos y siguiendo una estructura determinada.

a) Tipo simple
Los datos de tipo simple ms importantes son: Numrico, que puede presentarse en dos formas: o Entero: no tiene componentes decimales o fraccionarios. Pueden ser positivos o negativos. (-5, 6, -100,) o Real: utilizan el punto decimal. Pueden ser positivos o negativos. (-0.08, 1.3,) Booleano o lgico. Solo pueden tomar los valores VERDADERO o FALSO. Se utiliza para representar alternativas a determinadas condiciones. (P.ej.: comprobar si un nmero entero es o no par)

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Caracteres y cadenas. Abarcan el conjunto finito y ordenado de caracteres que reconoce la computadora (letras, dgitos, caracteres especiales,) Una cadena de caracteres (string) es un conjunto de caracteres delimitados por una comilla (apstrofe) o por una comilla doble, segn el lenguaje de programacin utilizado. (P.ej.: Hola Mundo, 8 de octubre de 2009). La longitud de una cadena es el nmero de caracteres comprendidos entre los delimitadores de la misma. En algunos lenguajes de programacin se definen tipos especiales de fecha y hora e, incluso, se permiten aadir tipos nuevos o modificadores sobre tipos ya existentes. Otros tipos de datos simples son los siguientes: Subrango: se utiliza para definir un nuevo tipo a partir de un tipo simple ya conocido y declarado anteriormente. Restringe los valores a un intervalo determinado. Por ejemplo: el tipo NATURAL, que es un subrango comprendido por los nmeros enteros y positivos. (0, 1, 2,) Enumerado: es aquel que solo toma valores que se definen previamente de forma ordenada. Se debe explicitar todos los valores posibles que puede tomar este dato. Un ejemplo de este tipo es el siguiente: Dias_semana={lunes, martes, mircoles, jueves, viernes, sbado, domingo} Todos los tipos de datos vistos hasta este momento tienen un factor comn: sus valores estn ordenados. Un determinado valor siempre ser mayor, igual o menor que otro del mismo tipo, salvo que sea el primero o el ltimo de ellos . A este conjunto de tipos de datos les denominamos tipos ESCALARES orden establecido. o con

En los enteros y los reales la relacin de orden es trivial y evidente. En el tipo booleano se considera que FALSO < VERDADERO. Para el tipo enumerado, el primer valor enumerado en la declaracin del tipo es el que se considera con valor ms pequeo y el ltimo valor enumerado es el que se considera que tiene el valor ms elevado.

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Si, adems, es posible indicar la posicin que ocupa un determinado valor dentro del orden comentado anteriormente, a este tipo de datos se les denomina tambin ORDINALES. A excepcin de los nmeros reales, todos los tipos de dato vistos hasta ahora tambin entran dentro de este grupo. En todos ellos podemos establecer cul es el primer o ltimo de los valores, el precendente (anterior) y el sucesor (posterior) de un valor tomado. Constantes y variables Una caracterstica destacable de la programacin imperativa es el manejo directo de la parte de la memoria donde se almacenan los datos. Al programar, cuando hablamos de la memoria debemos imaginar un gran nmero de celdas, en cada una de las cuales se puede almacenar determinada informacin y recuperarla posteriormente. En lenguaje mquina, cada celda lleva asociada una direccin mediante la que podemos acceder a la informacin que contiene cada una de ellas. Para realizar la gestin de este conjunto de celdas en los lenguajes de programacin, incluido el lenguaje algortmico utilizado, se dispone de lo que se conoce como VARIABLES. Una VARIABLE es una celda de memoria con un IDENTIFICADOR, o nombre, asociado y que sirve para hacerle referencia. Adems, si se quiere delimitar de forma inicial las operaciones que se podrn efectuar con ellas, es necesario clasificarlas en tipos. El tipo de una variable indica la clase de contenido que puede almacenar y, por tanto, delimita las posibles operaciones que podemos efectuar con ella. La mayor parte de los lenguajes de programacin obligan a tener declaradas todas las variables a utilizar y a tener un tipo asignado. El contenido de una variable puede cambiar durante la ejecucin de un algoritmo o programa.

Si necesitamos mantener un valor fijo en memoria durante toda la ejecucin de un algoritmo o programa deberemos utilizar las CONSTANTES. Una CONSTANTE es lo mismo que una variable pero a la que no se permite alterar su contenido. En su declaracin, en lugar de especificar el tipo, se coloca el valor fijo a utilizar. El compilador es capaz de deducir el tipo de forma totalmente automtica. La ventaja de usar constantes es que en cualquier lugar donde quiera que se utilice la constante, basta nicamente con poner su nombre y luego el compilador lo sustituir por su valor.

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

b) Operadores y expresiones
Con los datos de un determinado tipo podremos realizar unas operaciones predefinidas. Para representar estas operaciones se utilizarn unos smbolos especiales que se denominan OPERADORES. Las combinaciones de operadores con sus correspondientes operandos, que pueden ser variables o constantes, nos dan lo que se denomina EXPRESIONES. A aquellas expresiones que cumplan una serie de condiciones determinadas se las conoce como EXPRESIONES CORRECTAS o bien definidas.

a) Tipos de operadores
1. Operadores aritmticos: son los que indican la ejecucin de una operacin con datos de tipo numrico, entero o real, y de los que se obtiene un resultado tambin numrico. Son los siguientes: a. + b. c. * d. / e. div f. mod Suma de datos de tipo entero o real. Resta de datos de tipo entero o real. Multiplicacin de datos de tipo entero o real. Divisin de datos de tipo entero o real, con resultado real. divisin entera de datos de tipo entero. Mdulo o resto de la divisin entera de datos de tipo entero.

2. Operadores lgicos: son los que indican la ejecucin de operaciones con datos de tipo booleano con resultado booleano. Son los siguientes: a. Y devuelve VERDADERO siempre que los dos valores comparados sean VERDADERO, y devuelve FALSO en el resto de los casos. b. O devuelve el valor FALSO siempre que los dos valores comparados lo sean y VERDADERO en el resto de supuestos. c. NO devuelve FALSO si el operando era VERDADERO y viceversa.

3. Operadores relacionales: son aquellos que permiten comparar dos valores determinados de un mismo tipo que tenga definido un orden. El resultado ser siempre de tipo booleano. Son los siguientes: a. = b. < c. > igual a. menor que mayor que

Centro Didctico

ALGORTMICA d. e. f. <>

Representacin de algoritmos menor o igual que mayor o igual que distinto que (se puede usar el signo )

UNIDAD 2

4. Operadores de orden: pueden utilizarse con datos de un tipo que tenga definido un orden previo. Los cuatro primeros devuelven un dato del mismo tipo que el operando y el ltimo devuelve un entero. Son todos operadores unarios y son los que a continuacin se muestran: a. pred(valor) retorna el valor predecesor/anterior en el tipo al valor del operando entre parentesis. b. suc(valor) retorna el valor sucesor/siguiente en el tipo al valor del operando entre parentesis. c. primero(tipo) d. ultimo(tipo) devuelve el valor del primer componente del tipo. devuelve el valor del ltimo componente del tipo.

e. orden(valor) devuelve la posicin ocupada por el valor especificado entre parentesis dentro del tipo del operando. Si tenemos una expresin con ms de un operador ser necesario saber el orden en el que se deben realizar las operaciones que representan. Existen las siguientes dos soluciones: Parentizar, es decir, utilizar los parentesis para dejar todo indicado de forma explicita. Utilizar el orden de precedencia definido, que suele ser el siguiente, de mayor a menor precedencia: 1. Operador de negacin NO. 2. Operadores multiplicativos: *, /, div, mod, Y(&&) 3. Operadores aditivos: +, -, O(||) 4. Operadores relacionales: =, <, >, , , Si los operadores tienen el mismo orden de precedencia, la expresin se evaluar siempre de izquierda a derecha.

b) Funciones internas
Las operaciones necesarias en los programas suelen exigir muy a menudo una determinada cantidad de operadores especiales, a mayores de los relacionados hasta ahora, denominados FUNCIONES INTERNAS, funciones incorporadas o funciones estndar. A continuacin ofrecemos una tabla con las ms usuales:

Centro Didctico

ALGORTMICA

Representacin de algoritmos Funcin abs(x) arctan(x) cos(x) exp(x) ln(x) log10(x) Descripcin Valor absoluto de x Arco tangente de x Coseno de x Exponencial de x Logaritmo neperiano de x Logaritmo decimal de x

UNIDAD 2

redondeo(x) Redondeo de x sen(x) cuadrado(x) raiz(x) trunc(x) Seno de x Cuadrado de x Raz cuadrada de x Truncar x

c) Operacin de asignacin.
La operacin de asignacin es la manera en que se le atribuye un valor a una variable y se representa mediante el signo . La operacin de asignacin tambin se denomina instruccin o sentencia de asignacin cuando se hace referencia a un lenguaje de programacin. El formato general de una operacin de asignacin es el siguiente: <nombre de la variable> <expresin o valor> El proceso de asignacin se realiza en dos fases: 1. Se evala la expresin de la parte derecha de la asignacin, obtenindose un nico valor. 2. Se asigna dicho valor a la variable situada a la izquierda de la asignacin. Puntos a tener en cuenta al utilizar esta operacin: En la parte izquierda solo puede haber una variable. La variable a la que se le asigna el valor pierde su valor almacenado anteriormente. El tipo de valor que se obtiene al evaluar la parte derecha de la asignacin tiene que ser el mismo que el tipo de la variable de la parte izquierda.

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

d) Entrada y salida de informacin.


Los clculos realizados por los ordenadores requieren normalmente una entrada de informacin necesaria para poder ejecutar las distintas operaciones que vayan a realizarse y que, posteriormente, se convertirn en resultados. Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operacin de LECTURA. Los datos de entrada se introducen mediante dispositivos de entrada (teclado, unidades de disco,). La salida puede aparecer en un dispositivo de salida (pantalla, impresora,). La operacin de salida se denomina ESCRITURA. Cuando trabajamos con algoritmos las acciones de lectura y escritura se representan con los formatos siguientes: leer (lista de variables de entrada) escribir(lista de variables de salida)

As, por ejemplo: leer (A, B, C) representa la lectura de tres valores de entrada que se asignan a las variables A, B, y C. escribir (Hola Mundo) muestra en la pantalla o por el dispositivo de salida pertinente el mensaje Hola Mundo. Nota: si no se especifica nada al respecto, el dispositivo de entrada por defecto es el teclado y el de salida, la pantalla.

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

2. Sistemas de representacin de algoritmos


Para describir y representar un algoritmo disponemos de varias posibilidades, que citamos a continuacin: 1. Descripcin narrada. 2. Descripcin en pseudocdigo. 3. Diagramas N-S o de cajas. 4. Diagramas de flujo o flujogramas.

1. Descripcin narrada
Este tipo de descripcin de un algoritmo est caracterizada porque sigue un proceso de ejecucin comn y lgico, describiendo textualmente paso a paso cada una de las tareas sencillas y simples a realizar dentro de una actividad determinada. Ejemplo de algoritmo para asistir a clases:

1. Levantarse 2. Baarse 3. Vestirse 4. Desayunar 5. Cepillarse los dientes 6. Salir de casa 7. Tomar el autobs 8. Llegar a ESI 9. Buscar el aula 10. Ubicarse en un asiento

2. Descripcin en Pseudocdigo
El pseudocdigo (Pseudo = falso) no es realmente un cdigo sino una imitacin y una versin abreviada de instrucciones reales para las computadoras. Es una tcnica para diseo de programas que permite definir las estructuras de datos, las operaciones que se aplicarn a los datos y la lgica que tendr el programa de computadora para solucionar un determinado problema. Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programacin. Se concibi para superar las dos principales desventajas de los diagramas de flujo: lento de crear y difcil de modificar sin un nuevo redibujo. Ejemplo: Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmtica.

algoritmo lee_variables leer (a, b, c, d) producto (a * b * c * d) suma (a + b + c + d)

10

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

media (a + b + c + d) / 4 escribir (producto, suma, media) falgoritmo

3. Diagramas N-S o de cajas


Son una herramienta que favorece la programacin estructurada y rene caractersticas grficas propias de diagramas de flujo y lingsticas propias de pseudocdigos. Constan de una serie de cajas contiguas que se leern siempre de arriba-abajo y sus estructuras lgicas son las siguientes: Estructura Secuencial

11

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

12

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

4. Diagramas de Flujo.
Son la representacin grfica de la solucin algortmica de un problema. Para disearlos se utilizan determinados smbolos o figuras que representan una accin dentro del procedimiento. Utilizan unos smbolos normalizados, con los pasos del algoritmo escritos en el smbolo adecuado y los smbolos unidos con flechas, denominadas lneas de flujo, que indican el orden en que los pasos deben ser ejecutados. Para su elaboracin se siguen ciertas reglas: Se escribe de arriba hacia abajo y de izquierda a derecha. Siempre se usan flechas verticales u horizontales, jams curvas. Evitar cruce de flujos. En cada paso expresar una accin concreta.

Secuencia de flujo normal en una solucin de problema Tiene un inicio. Una lectura o entrada de datos. El proceso de datos. Una salida de informacin. Un final.

Smbolos utilizados

Principio y fin: dentro del smbolo debe ir la palabra inicio o fin del algoritmo. Lnea de flujo: sirve para conectar los smbolos del diagrama e indicar el sentido de la secuencia de ejecucin de las acciones.

Smbolo de proceso: indica la accin que debe realizar el ordenador. En su interior se escribe la accin.

Entrada y salida: indica acciones de entrada y salida de datos. Dentro se coloca el tipo de accin a ejecutar (lectura o escritura)

Condicin: en su interior se coloca la condicin a evaluar. Permite representar estructuras selectivas y repetitivas.

13

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Condicin mltiple: permite representar estructuras de seleccin mltiple. Funciona de forma anloga a la condicin pero ofrece ms opciones de bifurcacin, en funcin del valor a evaluar.

Subproceso (subrutina o subprograma): en su interior se indica el nombre del subproceso al que se llamar. Conectores: se utilizan para continuar y unir el flujo de un diagrama cuando este se debe representar en varias hojas o en distinta ubicacin dentro de la misma hoja. Existen dos tipos de conectores: -En la misma hoja:

-En distinta hoja: Los conectores se colocan uno en el final y otro en el inicio del flujo que se ha interrumpido y en su interior se suele colocar una letra o un nmero que permite su identificacin. Comentario: se utiliza para dar mayor legibilidad al cdigo, aunque no se ejecuta. Pantalla: se utiliza cuando se desea mostrar datos mediante la pantalla. Teclado o entrada manual: se usa para especificar que la entrada de datos va a realizarse a travs del teclado del ordenador. Impresora: utilizado para expresar que la salida de resultados o datos se realizar mediante la impresora. Entrada/salida por disco: utilizado para especificar que los datos utilizados se leen/escriben mediante el uso de un soporte de disco magntico.

VENTAJAS DE USAR DIAGRAMAS DE FLUJO Rpida comprensin de las relaciones. Anlisis efectivo de las diferentes secciones del programa. Pueden usarse como modelos de trabajo en el diseo de nuevos programas o sistemas. Comunicacin con el usuario. Documentacin adecuada de los programas. Codificacin eficaz de los programas.

14

Centro Didctico

ALGORTMICA

Representacin de algoritmos Depuracin y pruebas ordenadas de programas

UNIDAD 2

DESVENTAJAS DE LOS DIAGRAMAS DE FLUJO Diagramas complejos y detallados suelen ser laboriosos en su planteamiento y diseo. Acciones a seguir tras la salida de un smbolo de decisin, pueden ser difciles de seguir si existen diferentes caminos. No existen normas fijas para la elaboracin de los diagramas de flujo que permitan incluir todos los detalles que el usuario desee introducir. Representando el ejemplo como diagrama de flujo tenemos:

15

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Anexo A Especificacin de instrucciones en pseudocdigo.


La relacin de instrucciones que se utilizar para la representacin y elaboracin de algoritmos mediante el uso de pseudocdigo se detalla a continuacin:

Definicin de algoritmo, variables y constantes


El cuerpo principal del algoritmo debe ir incluido entre las palabras claves algoritmo, que indica el inicio del mismo, acompaada del nombre del algoritmo y la palabra falgoritmo, que indica el fin de dicho algoritmo.

algoritmo <nombre_algoritmo> Instruccin1 Instruccin2 falgoritmo


A continuacin, lo primero que se debe declarar son las constantes que se vayan a utilizar en dicho algoritmo, todas ellas incorporadas y declaradas entre las palabras claves const, que indica el inicio de la declaracin de constantes y la palabra fconst que indica el fin de este grupo de declaraciones.

const identificador_1 = valor1 identificador_2 = valor2 fconst


El siguiente grupo de declaraciones hace mencin a la definicin de tipos creados por el usuario y se realiza dicha definicin entre las palabras claves tipo, que indica el inicio de la declaracin de tipos y la palabra ftipo que indica el fin de este grupo de declaraciones.

tipo identificador_1 = definicion1 identificador_2 = definicion2 ftipo

Por ltimo y antes de empezar con las instrucciones propias del algoritmo, se deben declarar las variables a utilizar, colocndolas entre las palabras claves var, que indica el inicio de la declaracin de variables y la palabra fvar que indica el fin de este grupo de declaraciones.

16

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

var identificador_1 = tipo1 identificador_2 = tipo2 fvar

De este modo, la estructura genrica de un algoritmo nos quedara as:

algoritmo <nombre_algoritmo> const identificador_1 = valor1 identificador_2 = valor2 fconst tipo identificador_1 = definicion1 identificador_2 = definicion2 ftipo var identificador_1 = tipo1 identificador_2 = tipo2 fvar Instruccin1 Instruccin2 falgoritmo

Funciones y operaciones
Operador asignacin

asignar a x el valor de y

xy
Las operaciones aritmticas se representan de la forma usual en matemticas.

Suma a + b

17

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

Producto a * b
Las operaciones complejas se representan del mismo modo:

res sen(a)
Estructuras de control
Secuencial: Las instrucciones se ejecutan de arriba abajo, una detrs de otra.

Instruccin1 Instruccin2
Selectiva:

si <condicin> entonces Instruccin1 Instruccin2 fsi


Selectiva doble:

si <condicin> entonces Instruccin1 sino Instruccin2 fsi


Selectiva mltiple:

si <condicin> entonces Instruccin1 sino si <condicin> entonces Instruccin2 sino si <condicin> entonces Instruccin3 sino InstruccinN fsi
Selectiva mltiple-casos (case, switch):

seleccionar <indicador>

18

Centro Didctico

ALGORTMICA

Representacin de algoritmos

UNIDAD 2

caso valor1 Instrucciones caso valor2 Instrucciones en otro caso Instrucciones fseleccionar
Iterativa bucle mientras:

mientras <condicin> hacer Instruccin1 Instruccin2 fmientras


Iterativa bucle repetir:

repetir Instruccin1 Instruccin2 hasta que <condicin>


Iterativa bucle para:

para <ndice valor inicial> hasta <valor final> [paso <valor_paso>] hacer Instruccin1 Instruccin2 fpara

19

Centro Didctico

Vous aimerez peut-être aussi