Está en la página 1de 36

UNIVERSIDAD NACIONAL DE SAN MARTIN / FACULTAD DE INGENIERIA DE SISTEMAS E INFORMTICA

ALGORITMOS
Instrucciones, reglas bien definidas.
Ing. Kemy Valera Valles

12

ALGORITMOS

CONTENIDO DE LA UNIDAD
I. II. SISTEMAS DE PROCESAMIENTO DE INFORMACIN ...................................................................3 LENGUAJES DE PROGRAMACIN ...............................................................................................6 2.1 2.2 Lenguajes de programacin ...........................................................................................6 Clasificacin de los Lenguajes de programacin: .......................................................6 Lenguaje Maquina. .....................................................................................................6 Lenguaje de Bajo Nivel (Ensamblador). ......................................................................6 Lenguaje de Alto Nivel. ...............................................................................................6

2.2.1 2.2.2 2.2.3 III. 3.1 3.2 3.3 IV. 4.1 4.2 4.3 4.4 4.5 4.6 V.

ALGORITMOS..........................................................................................................................7 Definicin de Algoritmos .................................................................................................7 Caractersticas de los Algoritmos ..................................................................................7 Lenguajes Algortmicos.................................................................................................10 METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR EL COMPUTADOR......................10 Definicin del Problema ................................................................................................11 Anlisis del Problema ....................................................................................................11 Diseo del Algoritmo .....................................................................................................11 Implementacin del Algoritmo ......................................................................................12 Documentacin ..............................................................................................................14 Mantenimiento ................................................................................................................15

TIPO DE DATOS .........................................................................................................................15 5.1 Tipos de Datos Simples ................................................................................................15 Datos Numricos ......................................................................................................15 Datos Alfanumricos (string) ....................................................................................16 Datos Lgicos ............................................................................................................16

5.1.1 5.1.2 5.1.3 5.2

Tipos de Datos Estructurados ......................................................................................16 Arreglos ....................................................................................................................16

5.2.1 VI. 6.1

Identificadores .....................................................................................................................17 Constantes......................................................................................................................17


Pg. 1

Ing. Kemy Valera Valles.

ALGORITMOS

6.2

Variables .........................................................................................................................17 Clasificacin de las Variables ....................................................................................17

6.2.1 6.3

Sentencia de Asignacin ..............................................................................................18 Reglas de Asignacin ................................................................................................19

6.3.1 VII. VIII. 8.1 8.2

Expresiones ..........................................................................................................................19 Operadores y Operandos .....................................................................................................20 Operadores .....................................................................................................................20 Tipos de Operadores.....................................................................................................20 Operadores Aritmticos ...........................................................................................20 Operadores Relacionales ..........................................................................................21 Operadores Lgicos ..................................................................................................22

8.2.1 8.2.2 8.2.3 8.3 IX. 9.1 X.

Escritura de Frmulas ...................................................................................................23 Operaciones de Entrada y Salida (I/O) de Datos ...................................................................23 Programacin Interactiva ..............................................................................................24

Tcnicas para la formulacin de algoritmos .............................................................................25 10.1 Diagrama de Flujo .........................................................................................................25 Recomendaciones para el diseo e diagrama de flujo..............................................27 Cualidades de los diagramas de flujo. .......................................................................27

10.1.1 10.1.2 10.2

Pseudocdigo.................................................................................................................27 Ventajas de utilizar el Pseudocdigo a un diagrama de flujo....................................27

10.2.1 10.3 XI. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 XII.

Diagramas estructurados (Nassi-Schneiderman) .....................................................28 Tcnicas para la formulacin de algoritmos .........................................................................28 Estructura de seleccin sientonces. (if) ..................................................................29 La estructura de seleccin si/no (if/else) ....................................................................29 Sentencias selectivas anidadas ...................................................................................30 Sentencias de seleccin segn sea (Case) ...............................................................30 Sentencia Mientras..hacer (while) ...............................................................................31 La Sentencia Repetir..hasta .........................................................................................32 Sentencia Para (For) .....................................................................................................33 Bibliografa ...........................................................................................................................34

Ing. Kemy Valera Valles.

Pg. 2

ALGORITMOS

I.

SISTEMAS DE PROCESAMIENTO DE INFORMACIN


Una definicin antigua de computadora es: <<una mquina o aparato electrnico capaz de ejecutar operaciones repetitivas muy complejas a altas velocidades>>. Ahora bien, sta definicin no describe las modernas computadoras. stas son ms que una mquina de ejecutar operaciones aritmticas. De hecho, los trminos procesador de datos y sistemas de procesamiento (tratamiento) de la informacin se utilizan con frecuencia en lugar de computadora (ordenador, en la jerga informtica usual).

Ing. Kemy Valera Valles.

Pg. 3

ALGORITMOS

En el uso diario, datos e informacin son esencialmente sinnimos. Sin embargo, los informticos suelen hacer una diferencia: datos se refiere a la representacin de un hecho, concepto o entidad real (los datos pueden tomar diferentes formas: por ejemplo, palabras escritas o habladas, nmeros y dibujos); informacin implica datos procesados y organizados.

Un sistema en general se define como conjunto de componentes conectados e interactivos, que tienen un propsito y una unidad total. Sistema de procesamiento de informacin es un sistema que transforma datos brutos en informacin organizada, significativa y til.

La figura muestra los tres componentes de un sistema de proceso de la informacin: entrada, salida y procesador. El procesador, que puede ser bastante complicado, se representa por una simple caja y puede aceptar datos llamados entrada, y esta entrada se transforma entonces para producir una informacin denominada salida o resultados. Basados en este esquema, muchos dispositivos u organismos pueden ser considerados sistemas de procesamiento de la informacin. Un termostato que controla la temperatura de un edificio es un sistema de procesamiento de la informacin. La entrada es la temperatura media y la salida es una seal que controla la caldera del aire acondicionado. El corazn de un animal o un ser humano es un sistema complejo de procesamiento de la informacin. Existen dos conceptos importantes a considerar en los sistemas de
Ing. Kemy Valera Valles. El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico o clase de problemas, se denomina algoritmo. En otras palabras, un algoritmo es una frmula para la resolucin de un problema. Para realizar un proceso se le debe suministrar al procesador un algoritmo adecuado. Por ejemplo, al cocinero debe drsele una receta, al pianista la partitura y as sucesivamente, considerando al cocinero y al pianista como procesadores. Cuando el procesador es una computadora, el algoritmo ha de expresarse de una forma que recibe el nombre de programa. Un programa se escribe en un lenguaje de programacin y a la actividad de expresar un algoritmo en forma de programa se le denomina programacin. Cada paso en algoritmo est expresado por medio de una Pg. 4 instruccin en el programa. Por consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora.

ALGORITMOS

procesamiento de la informacin: hardware y software: Hardware es el conjunto de componentes fsicos de una computadora equipo fsico. Software es el conjunto de programas que funcionamiento de una computadora equipo lgico. controlan el

EL hardware de una computadora se compone de: 1. La Unidad Central de Proceso, UCP (Central Processing Unit, CPU). La UCP es el conjunto de circuitos electrnicos capaces de ejecutar algunos clculos sencillos como suma o multiplicacin de nmeros. La potencia de una computadora depende completamente de la velocidad y fiabilidad de la UCP. 2. Memoria central. La informacin procesada por la UCP se almacena normalmente en la memoria central hasta que se terminan los clculos. Los programas de computadora se almacenan tambin en la memoria central. 3. Dispositivos de almacenamiento secundario (memoria auxiliar). Diferentes dispositivos, tales como discos y cintas magnticas, se usan para almacenar grandes cantidades de informacin. Para ser procesados por la UCP, los datos se almacenan en dispositivos de almacenamiento auxiliar y luego tienen que llevarse a la memoria central.

4. Perifrico o dispositivos de entrada/salida (E/S). Estos dispositivos permiten al usuario comunicarse con la computadora. Un sistema de computadoras puede tener diferentes dispositivos perifricos conectados a ella. En la prctica, una instalacin grande de computadora puede tener diferentes UCP, cada una con su propia memoria central compartida, una variedad de dispositivos de almacenamiento secundario y perifricos localizados en diferentes partes de un mismo edificio o diferentes edificios e incluso diferentes ciudades o pases.

Ing. Kemy Valera Valles.

Pg. 5

ALGORITMOS

II.
2.1

LENGUAJES DE PROGRAMACIN
Lenguajes de programacin
Es un conjunto de smbolos, caracteres y reglas (programas) que les permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin.

2.2

Clasificacin de los Lenguajes de programacin:


Los lenguajes de programacin de dividen en:

2.2.1 Lenguaje Maquina.


Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en Lenguaje Maquina se expresan en trminos de la unidad de memoria ms pequea el bit (digito binario 0 o 1).

2.2.2 Lenguaje de Bajo Nivel (Ensamblador).


En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas. Los lenguajes de bajo nivel son ms fciles de utilizar que los lenguajes mquina, pero, al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador (assembly language). Las instrucciones en lenguaje ensamblador son conocidas como nemotcnicos (mnemonics). Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB, DIV, etc: en espaol, SUM, RES, DIV, etc. Una instruccin tpica de suma sera: ADD M, N, P

2.2.3 Lenguaje de Alto Nivel.


Los lenguajes de programacin de alto nivel (Basic, Pascal, Cobol, Fortran, etc.) son aquellos en que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y la comprensin del programa.
Ing. Kemy Valera Valles. Pg. 6

ALGORITMOS

III.
3.1

ALGORITMOS
Definicin de Algoritmos
La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. En la vida diaria cada uno de nosotros disea y realiza algoritmos para solucionar los problemas cotidianos, es as que al levantarnos de la cama ya tenemos en la mente una serie de pasos que debemos seguir para llegar al sitio de estudio o al sitio de trabajo. Una vez en el sitio de estudio, tenemos en nuestra mente una serie de tareas que debemos realizar en unos horarios ya definidos.

3.2

Caractersticas de los Algoritmos


Las caractersticas ms relevantes de los algoritmos son: Finito : Un algoritmo debe siempre terminar despus de un nmero finito de pasos. Definido : Cada paso de un algoritmo debe ser definido en forma precisa, estableciendo las acciones que van a efectuar clara y rigurosamente en cada caso. Entradas : El algoritmo tiene cero o mas entradas, es decir cantidades que se entregan inicialmente al algoritmo antes de su ejecucin. Salidas : Un algoritmo tiene una o ms salidas, es decir cantidades que tienen una relacin especifica respecto a las entradas.

Efectivo : Generalmente, tambin se espera que un algoritmo se efectivo. Esto significa que todas las operaciones a ser realizadas en el algoritmo deben ser lo suficientemente bsicas de modo que puedan en principio ser llevadas a cabo en forma exacta y en un periodo de tiempo finito por una persona usando lpiz y papel (rutear).
Pg. 7

Ing. Kemy Valera Valles.

ALGORITMOS

En la prctica, para evaluar un buen algoritmo se considera el tiempo que requiere su ejecucin, esto puede ser expresado en trminos del nmero de veces que se ejecuta cada paso. Otros criterios de evaluacin pueden ser la adaptabilidad de algoritmo al computador, su simplicidad y elegancia, etc. Algunas veces se tienen varios algoritmos para solucionar el mismo problema, y se debe decidir cual es el mejor. Esto ultimo conduce al Anlisis de Algoritmos. Dado un algoritmo es determinar sus caractersticas de desempeo. Ejemplos: Ejemplo 1 Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido. Redactar el algoritmo correspondiente. Los pasos del algoritmo son: 1. 2. 3. 4. Inicio. Leer el pedido. Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido 5. Fin Ejemplo 2 Determinar el mayor de 3 nmeros. Los nmeros ser X, Y y Z. 1. Inicio. 2. Se compara X con Y y se determina quien es mayor. 3. Se compara el mayor Anterior con Z y se determina quien es mayor. 4. El nmero mayor es el Mayor Anterior. 5. Fin. Ejemplo 3 Se desea disear un algoritmo para saber si un nmero es primo o no. Un nmero es primo si solo puede dividirse por si mismo y por la unidad (es decir no tiene ms divisores que l mismo y la unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc, no son primos ya que son divisibles por nmeros distintos en a ellos y a la unidad. As, 9 es divisible por 3, 8 lo es por 2, etc.

Ing. Kemy Valera Valles.

Pg. 8

ALGORITMOS

El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2, 3, 4, etc. 1. Inicio. 2. Poner X igual a 2 (X = 2, X, variable que representa a los divisores del nmero que se busca N). 3. Dividir N por X (N / X). 4. Si el resultado de N / X es entero, entonces N no es un nmero primo y bifurcar1 al punto 7; en caso contrario continuar el proceso. 5. Suma 1 a X (X = X + 1). 6. Si X es igual a N, entonces N es un nmero primo en caso contrario bifurcar al punto 3. 7. Fin.

Ejemplo 4 Realizar la suma de todos los nmeros pares entre 2 y 1000. El problema consiste en sumar 2 + 4 + 6 + 8 +... + 1000. Utilizaremos las palabras SUMA Y NUMERO (variables, sern denominadas mas tarde) para representar las sumas sucesivas (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), etc. La solucin se puede escribir con el siguiente algoritmo: 1. 2. 3. 4. Inicio. Establecer SUMA a 0. Establecer NMERO a 2. Sumar NUMERO A SUMA .El resultado ser el nuevo valor de la suma (SUMA) 5. Incrementar NUMERO 2 unidades. 6. El NUMERO =< 1000 bifurca al paso 4; en caso contrario, escribir el ultimo valor de SUMA y terminar el proceso. 7. Fin. Ejercicios Propuestos: 1. Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara despus de un mes si el banco paga a razn de 2% mensual.

Una bifurcacin (fork en ingls), en el mbito del desarrollo de software, es la creacin de un proyecto en una direccin distinta de la principal u oficial tomando el cdigo fuente del proyecto ya existente. Comnmente se utiliza el trmino ingls. Como resultado de la bifurcacin se pueden llegar a generar proyectos diferentes que cubren necesidades distintas aunque similares. El trmino tambin puede ser usado para representar la ramificacin de cualquier trabajo. Un ejemplo de bifurcacin es la Enciclopedia Libre escindida de la Wikipedia en espaol. Ing. Kemy Valera Valles. Pg. 9

ALGORITMOS

2. Un vendedor recibe un sueldo base ms un 10% extra por comisin de sus ventas, el vendedor desea saber cuanto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su sueldo base y comisiones. 3. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deber pagar finalmente por su compra. 4. Un alumno desea saber cual ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificacin del examen final. 15% de la calificacin de un trabajo final. 5. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 6. Realizar un algoritmo que calcule la edad de una persona.

3.3

Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explicita un proceso, estos lenguajes algortmicos pueden ser: Grficos : Es la representacin grafica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos : Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocdigo).

IV.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR EL COMPUTADOR

Ing. Kemy Valera Valles.

Pg. 10

ALGORITMOS

Aunque el proceso de disear programas es un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. La resolucin de problemas con computadoras se puede dividir en tres fases: - Anlisis del problema - Diseo del algoritmo - Resolucin del algoritmo en la computadora El anlisis y el diseo del algoritmo requieren la descripcin del problema en subproblemas a base de refinamientos sucesivos y una herramienta de programacin: - Diagrama de flujo - Diagrama N-S - Pseudocdigo Durante la tercera etapa se implementa este algoritmo en un cdigo escrito en un lenguaje de programacin, reflejando las ideas obtenidas en las fases de anlisis y diseo.

4.1

Definicin del Problema


Esta fase esta dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca o entienda del todo no tiene mucho caso continuar con la siguiente etapa, fase o paso. Al final de definir el problema tambin se puede listar los objetivos del programa a realizar.

4.2

Anlisis del Problema


Dado que se busca una solucin al problema previamente definido se precisan especificaciones de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: Qu entradas se requieren? (cantidad y tipo) Cul es la salida deseada? (cantidad y tipo) Qu mtodo produce la salida deseada? Una recomendacin muy practica es el que nos pongamos en un lugar de computador y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

4.3

Diseo del Algoritmo


Fase de diseo se determina como hace el programa la tarea solicitada.

Ing. Kemy Valera Valles.

Pg. 11

ALGORITMOS

Los mtodos utilizados para el proceso del diseo se basan en el conocido divide y vencers. Es decir la resolucin de un problema complejo se realiza dividiendo el problema en subproblemas y a continuacin dividir estos subproblemas en otros de nivel mas bajo, hasta que sea implementada una solucin en la computadora. Este mtodo se conoce tcnicamente como diseo descendente (top-down) o modular. Cada programa bien diseado consta de un programa principal (el mdulo de nivel mas alto) que llama a subprogramas (mdulos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas. Los mdulos pueden ser planeados, codificados, comprobados y depurados independientemente y a continuacin combinarlos entre s. Este proceso implica la ejecucin de estos pasos hasta que el programa se ha terminado: Programar un mdulo comprobar el mdulo Si es necesario, depurar el mdulo Combinar el mdulo, con el resto de los otros mdulos El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente. Es importante mencionar que el algoritmo resultante debe poseer las siguientes caractersticas: Poseer un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser flexible, soportando la mayora de variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin.

4.4

Implementacin del Algoritmo


Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos: Codificacin Compilacin y ejecucin Verificacin y Depuracin

Codificacin: Es la escritura en un lenguaje de programacin de la representacin de un algoritmo. Dado que el diseo del algoritmo es independiente del lenguaje de programacin utilizado en su implementacin, el cdigo puede ser escrito con igual facilidad en un lenguaje o en otro. Compilacin y ejecucin: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el
Ing. Kemy Valera Valles. Pg. 12

ALGORITMOS

teclado y almacenarlo posteriormente en un disco. Esta operacin se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco. El programa fuente debe ser traducido a lenguaje mquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prcticamente de la compilacin. Si al compilar el programa fuente se presentan errores (errores de compilacin), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se presenten ms errores, obtenindose el programa objeto, el cual todava no es ejecutable directamente. Al ya no existir errores en el programa fuente se debe instruir al sistema operativo para que efectu la fase de montaje o enlace, del programa fuente con las libreras del programa del compilador. Este proceso de montaje produce un programa ejecutable. Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre. Suponiendo que no existen errores durante la ejecucin (errores en tiempo de ejecucin), se obtendr la salida de resultados Verificacin y depuracin: Es el proceso de ejecucin del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada, valores extremos de entrada que comprueben los lmites del programa y valores de entrada que comprueben aspectos especiales del programa. Estos determinarn si el programa contiene errores o no. Los mtodos de pruebas son: a. Chequeo de Escritorio: El programador se sienta frente a un escritorio y corrige una impresin del programa. Revisa el listado lnea por lnea en busca de errores de sintaxis y lgica. Prueba manual de datos de muestra: Se corre el programa en forma manual aplicando datos tanto correctos como incorrectos para comprobar que funciona correctamente. Intento de Traduccin: El programa corre en una computadora usando un programa traductor para convertirlo a lenguaje de mquina. Para ello debe estar ya libre de errores de sintaxis, de lo contrario sern identificados por el programa de traduccin. Prueba de datos de muestra en la computadora:

b.

c.

d.

Ing. Kemy Valera Valles.

Pg. 13

ALGORITMOS

Despus del intento de traduccin y corregidos los errores de sintaxis, se procede a buscar errores de lgica utilizando diferentes datos de muestra. e. Prueba por un grupo selecto de usuarios potenciales: Esto se conoce como prueba beta. Se trata por lo general del paso final en la prueba de un programa. Usuarios potenciales ponen a prueba el programa y ofrecen retroalimentacin.

Al ejecutar un programa se pueden producir tres tipos de errores: a. Errores de Compilacin: Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programacin, suelen ser errores de sintaxis. b. Errores de Ejecucin: Se producen por instrucciones que la computadora puede comprender pero no ejecutar. En estos casos se detiene la ejecucin del programa y se imprime un mensaje de error. Ejemplo de esto puede ser una divisin por cero. c. Errores Lgicos: Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo, son ms difciles de detectar puesto que el programa puede funcionar y no producir errores de compilacin ni de ejecucin pero regresar resultados incorrectos. En este caso se debe regresar a la fase de diseo, modificar el algoritmo, cambiar el programa fuente y compilar y depurar una vez ms.

4.5

Documentacin
Es la gua o comunicacin escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos y diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar programa o para facilitar futuras modificaciones (mantenimiento). La importancia de la documentacin debe ser destacada por su influencia en la etapa final, ya que programas pobremente documentados son difciles de leer, mas difciles de depurar y casi imposibles de mantener y modificar. La documentacin se divide en tres partes: Documentacin Interna. (Para Programadores) Documentacin Externa. (Para Analistas) Manual del Usuario. (Para Usuarios y Operadores)

Ing. Kemy Valera Valles.

Pg. 14

ALGORITMOS

Interna y externa. La documentacin interna es la contenida en lneas de comentarios. La documentacin externa incluye anlisis, diagramas de flujo y/o pseudocdigos, manuales de usuarios con instrucciones para ejecutar el programa y para interpretar los resultados. Manual del usuario, describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado. Si el Manual del usuario presenta la solucin de problemas operativos del programa entonces tambin puede estar dirigido a Operadores del sistema. La documentacin es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Estos cambios se denominan mantenimiento del programa. Adems es de buena costumbre para todo buen programador, dejar comentado su cdigo, esto es para que el futuro programador pueda darle mantenimiento fcilmente a el programa, o incluso, si es el mismo creador quien debe darle mantenimiento.

4.6

Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin del programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

V.

TIPO DE DATOS
Los diferentes objetos de informacin con los que un programa trabaja se denominan datos. Todos los datos tienen un tipo asociados con ellos que nos servir para poder conocer con que informacin trabajaremos. Es decir, cuando ingresemos el sueldo de un trabajador necesitamos que este contenga decimales, o al solicitar la edad de una persona est tiene que estar con nmeros enteros, etc. Adems la suma entre caracteres no tiene sentido. La asignacin de tipos a los datos tiene dos objetivos principales: Detectar errores de operaciones aritmticas en los programas. Determinar como ejecutar las operaciones.

5.1

Tipos de Datos Simples

5.1.1 Datos Numricos


Permite representar valores escalares de forma numrica. Dentro de este tipo se puede hacer mencin de los tipos enteros, reales o de coma flotante, y de los exponenciales.
Ing. Kemy Valera Valles. Pg. 15

ALGORITMOS

5.1.2 Datos Alfanumricos (string)


Es una secuencia de caracteres alfanumricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar nmeros como alfanumricos, pero estos pierden su propiedad matemtica, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.

5.1.3 Datos Lgicos


Los tipos lgicos solamente pueden tomar los valores verdadero o falso, ya que representan el resultado de una comparacin entre otros datos (numricos o alfanumricos).

5.2

Tipos de Datos Estructurados

5.2.1 Arreglos
Son un conjunto finito de valores escalares, ordenados y consecutivos, denominado conjunto de ndices del vector, en otro conjunto D de datos variables de un mismo tipo, conjunto base del vector. I I1 I2 I3 I4 . . . In D d1 d2 d3 d4 . . . dn

Un arreglo es una estructura de datos que almacena bajo el mismo nombre (Variable) a una coleccin de datos del mismo tipo. Los arreglos se caracterizan por: - Almacena los datos en posiciones continuas de memoria. - Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia es esos elementos es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento dentro del archivo. Los tipos de arreglos son: - Vectores (Unidimensionales). - Matrices (Bidimensionales).

Ing. Kemy Valera Valles.

Pg. 16

ALGORITMOS

VI.

Identificadores
Representan los nombres de los objetos de un programa (constantes, variables, tipos de datos, procedimientos, funciones, etc.). Es una secuencia de caracteres que puede ser de cualquier longitud, aunque tiene ciertas reglas que hay que seguir, las cuales son: 1. Debe comenzar con una letra (A a Z, maysculas o minsculas) y no puede contener espacios en blanco. 2. Letras, dgitos y caracteres subrayados ("_") estn permitidos despus del primer carcter. En sntesis un identificador es un mtodo para nombrar a las celdas de memoria en la computadora, en lugar de memorizarnos una direccin de memoria. Se utilizan para nombrar variables, constantes, procedimientos y funciones.

6.1

Constantes
Las constantes son valores que no pueden cambiar en la ejecucin del programa. Recibe un valor en el momento de la compilacin del programa y este no puede ser modificado. Ejemplo: Pi = 3.141592

6.2

Variables
Las variables son valores que se pueden modificar durante la ejecucin de un programa. Al contrario de las constantes estas reciben un valor, pero este valor puede ser modificado durante la ejecucin o la compilacin del programa. Ejemplo: rea = pi * radio ^ 2

6.2.1 Clasificacin de las Variables


Por su contenido Numricas: son aquellos en las cuales se almacenan valores numricos, positivos o negativos, es decir almacenan nmeros del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: IGV = 0.19 pi = 3.1416 costo = 3000

Ing. Kemy Valera Valles.

Pg. 17

ALGORITMOS

Lgicas: son aquellas que solo pueden tener dos valores (verdadero o falso) estos representan el resultado de una comparacin de otros datos. Alfanumricas (string): Esta formada por caracteres alfanumricos (letras, nmeros y caracteres especiales). Caracteres alfabticos (A, B, C,. . ., Z) (a, b, c,. . ., z), Caracteres numricos (1, 2,. . ., 9, 0), Caracteres especiales (+ , , * , / , ^ , . , ; . < , >, $ , . . . ). Ejemplo: Letra = a apellido = Lopez direccion = Av. Libertad # 456

Por su uso: De trabajo: Variables que reciben el resultado de una operacin matemtica completa y que se usan normalmente dentro de un programa. Ejemplo: Suma = a + b / c Contadores: Se utilizan para llevar el control del nmero de ocasiones en que se realiza una operacin o se cumple una condicin. Con los incrementos generalmente de uno a uno. Ejemplo: C=C+1 Acumuladores (sumadores): forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente. Ejemplo: Sumador = Sumador + Variable.

6.3

Sentencia de Asignacin
Se utiliza para asignar o almacenar valores a variables o constantes. Es una operacin que sita un valor determinado en una posicin de memoria. Se demuestra en pseudocdigo con el smbolo (Una flecha apuntando hacia el identificador, donde se desea guardar el valor.). Variable expresin El tipo de expresin debe ser del mismo tipo que el de la variable, en caso contrario en la fase de compilacin se producira un error de tipos. Aunque a la fecha existen lenguajes de programacin con una potente herramienta para la conversin de datos (tal es el caso de Visual Basic), no es recomendable asignar valores de un tipo diferente a variables de otro tipo.

Ing. Kemy Valera Valles.

Pg. 18

ALGORITMOS

La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constante a una variable (a = 15). Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a = a + 1). Acumulador: Consiste en usarla como en un sumador en un proceso (a = a + b). De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a = c + b * 2 / 4).

6.3.1 Reglas de Asignacin


1. Una variable en el lado derecho de una sentencia de asignacin debe tener un valor antes de que la sentencia de asignacin se ejecute. Hasta que un programa le da un valor a una variable, esa variable no tiene valor. Por ejemplo: Si x no tiene un valor antes de ejecutar y <- x+1, se producir un error lgico. 2. En la izquierda de una sentencia de asignacin solo pueden existir variables. Por consiguiente no es valido lo siguiente: Valor_Neto - Tasas <- 34015. Adems hay que recordar que la operacin de asignacin es una operacin destructiva debido a que el valor almacenado en una variable se pierde o se destruye y se sustituye por el nuevo valor en la sentencia de asignacin.

VII.

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: A + (B + 3)/C Cada expresin toma un valor que se determina tomando lo valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las expresiones en: Aritmticos. Relacionales. Lgicos.

Ing. Kemy Valera Valles.

Pg. 19

ALGORITMOS

VIII. Operadores y Operandos


8.1 Operadores
Son elementos que se relacionan de forma diferente los valores de una o ms variables y/o constantes. Es decir, los operadores nos permiten manipular los valores.

8.2

Tipos de Operadores

8.2.1 Operadores Aritmticos


Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes). Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Operando (Operador) Operando

Valor (Constante o Variable)


Operador + * / ^ Mod Significado Suma Resta Multiplicacin Divisin Exponenciacin Mdulo

Ejemplos: Expresin 7/2 12 mod 7 4+2*5 Resultado 3.5 5 14

Prioridad de los operadores Aritmticos Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan de a dentro a fuera, el parntesis ms interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden. 1. ^, Exponenciacin.
Ing. Kemy Valera Valles. Pg. 20

ALGORITMOS

2. *,/, mod, Multiplicacin, divisin y modulo. 3. +, -, suma y resta. Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplos: 23*2/5 3.5+5.09-14.0/40 2.1*(1.5+3.0*4.1) = 9.2 = 5.09 = 28.98

Ejemplos no resueltos 4+2*5 3+5*(10-(2+4)) 3 + 6 * 14 8+7*3+4*6 -4 * 7 + 2 ^ 3 / 4 5 (2 * (1+1)) 2 * 1 + (4*3 4)

repta. : 14 repta. : 23 repta. : 87 repta. : 53 repta. : -31 repta. : 10

Evalu la siguiente expresin para los valores

a=2, b=3, c=1, d=4 (a * (b+c)) 2 * a + (4*c d) d (b * (a + c)) 2 * b + (4 * f d) Para examen: a) A % B + C / D 6 b) A + 2 * (3 + B) c) 3 * (A % (B / C)) + 5 d) 6 * 5 / 10 * 2 + 10 e) (6 * 5 )/ (10 * 2) + 10 f) (6 * 5) /( 10 * 2 + 10) g) (6 * 5) / (10 * (2 + 10)) h) A * B / C * D B*A-B*B/4*C b) (A * B) / 3 * 3 c) (((B + C) / 2 * A + 10) * 3 * B) 6 3*A-4*B/A%2 4/2*3/6+6/2/1/5%2/4*2
repta. : 0 repta. : 31

8.2.2 Operadores Relacionales


Se utilizan para establecer una relacin entre dos valores. Compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numricos o cadenas). Tienen el mismo nivel de prioridad en su evaluacin.
Pg. 21

Ing. Kemy Valera Valles.

ALGORITMOS

Los operadores relacionales tienen menor prioridad que los aritmticos.


Operador < > <= >= = <> Significado Menor que Mayor que Menor o igual que Mayor o igual que Igual a Distinto a, diferente de

Ejemplos lgicos: Si A = 10

B = 20

C = 30 Falso Verdadero Falso Verdadero

A+B>C AB<C AB=C A*B<>C

Ejemplos no lgicos: A <B <C 10 < 20 < 30 T < 30 (no es lgico por que tiene diferentes operandos)

8.2.3 Operadores Lgicos


Estos operadores se utilizan para establecer relaciones entre valores lgicos y pueden ser resultado de una expresin relacional.
Operador And Or Not Significado Y O Negacin

Operando 1 V V F F V V F F

Operador AND AND AND AND OR OR OR OR NOT NOT

Operando 2 V F V F V F V F V F

Resultado V F F F V V V F F V

Ejemplo: Si A = 10

B = 20

C = 30

Ing. Kemy Valera Valles.

Pg. 22

ALGORITMOS

(A < B) (10 < 20) V

AND (B < C) AND (20 < 30) AND V V

Prioridad de los operadores Lgicos Primero es NOT luego AND y al ltimo OR. Prioridad de los operadores en General 1. 2. 3. 4. 5. () ^ *, /, Mod, Not. +, -, AND. >, <, >=, <=, <>, =, OR.

Ejemplo: Si A = 10

B = 12

C = 13

D = 10

1. ((A>B) OR (A<C))AND((A=C)OR(A>=B)) F V F F V F F

8.3

Escritura de Frmulas
Las frmulas matemticas se deben escribir en formato lineal. Esto obliga al uso frecuente de parntesis que indiquen el orden de evaluacin correcto de las operaciones.

IX.

Operaciones de Entrada y Salida (I/O) de Datos


Los datos se pueden almacenar en memoria de tres formas diferentes: asociados con constantes, asignados a una variable con una sentencia de asignacin o una sentencia de lectura. Siendo el ltimo el ms indicado si se desea manipular diferentes datos cada vez que se ejecuta el programa. Adems la lectura de datos permite asignar valores desde dispositivos hasta archivos externos en memoria, esto se denomina operacin de entrada o lectura. Algunos ejemplos de dispositivos teclado, monitor, mouse, etc. de entrada y salida, son:

La operacin de entrada en pseudocdigo se representa de la siguiente manera: Leer (lista de variables) A medida que se realizan clculos en el programa, se necesitan visualizar los resultados. Est se conoce como operacin de escritura o salida.
Ing. Kemy Valera Valles. Pg. 23

ALGORITMOS

Esta operacin se representa en pseudocdigo de la siguiente manera: Escribir (lista de variables, Mensaje") En la instruccin de salida se pueden incluir adems mensajes de texto y variables. Con lo que hemos visto hasta aqu podemos ya realizar un pequeo ejemplo, el clsico "Hola Mundo", en pseudocdigo. Algoritmo Ejemplo Escribir ("Hola Mundo") Fin Esto imprimir en pantalla la frase 'Hola Mundo'.

9.1

Programacin Interactiva
En la programacin interactiva el usuario del programa puede interactuar con el programa e introducir datos mientras se ejecuta el programa. Al objeto de facilitar esta entrada de datos, la computadora debe indicar al usuario el momento en que debe introducir los datos. Para ello se deben visualizar mensajes interactivos con indicaciones al usuario.
Ejemplo: Suma de dos nmeros ingresados por el usuario Algoritmo Suma Variables numero1,numero2,total escribir('Introduce el primer nmero:') leer(numero1) escribir('Introduce el segundo nmero:') leer(numero2) escribir('El total es: ',numero1 + numero2) Fin Esto debe visualizar en pantalla lo siguiente:

Introduce el primer nmero: 89 Intro presionado por el usuario Introduce el segundo nmero 1 Intro presionado por el usuario El total es: 90

Ing. Kemy Valera Valles.

Pg. 24

ALGORITMOS

X.

Tcnicas para la formulacin de algoritmos


Las dos herramientas utilizadas comnmente para desarrollar algoritmos son: Diagrama de Flujo. Pseudocdigo.

10.1 Diagrama de Flujo


Un diagrama de Flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grafica de como deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI).

Indica el inicio y el final de nuestro diagrama de flujo. Puede representar tambin una parada o interrupcin programada que sea necesario realizar en un programa. Indica la entrada y salida de datos. Cualquier tipo de introduccin de datos en la memoria desde los perifricos Entrada, o registro de la informacin procesada en un perifrico, Salida) Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica. Cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria. Operaciones aritmticas, de transferencia, etc. Indica un proceso manual se va ejecutar en contraste con el rectngulo, que indica proceso automtico.

Ing. Kemy Valera Valles.

Pg. 25

ALGORITMOS

Smbolo de decisin indica la realizacin de una comparacin de valores. Indica operaciones lgicas o de comparacin entre datos normalmente dos y en funcin del resultado de la misma determina cual de los distintos caminos alternativos de programa se debe seguir; normalmente tiene dos salidas respuesta si o no. Se utiliza para representar los subprogramas. Llamada a subrutina o a un proceso predeterminado. Una subrutina es un modulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determina y regresa, al terminar, al programa principal. Conector dentro de pgina. Representa la continuidad del diagrama dentro de la misma pgina. Sirve para enlazar dos partes cualesquiera de un ordinograma a travez de un conector en la salida y otro conector en la entrada. Se refiera a la conexin en la misma pgina del diagrama. Conector fuera de pgina. Representa la continuidad del diagrama en otra pgina. Indica la salida de informacin por la computadora. Indica la salida de informacin por la pantalla o monitor.

Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones.

Teclado. Se utiliza en ocasiones en lugar de E/S.

Pantalla

Ing. Kemy Valera Valles.

Pg. 26

ALGORITMOS

Disco magntico

Disquete o disco flexible.

10.1.1 Recomendaciones para el diseo e diagrama de flujo


Se deben usar solamente lneas de flujos horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sean necesarios. No deben quedar lneas de flujo sin conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.

10.1.2 Cualidades de los diagramas de flujo.


Sencillez en su construccin. Claridad en su compresin. Normalizacin en su diseo. Flexibilidad en sus modificaciones.

10.2 Pseudocdigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar.

10.2.1 Ventajas de utilizar el Pseudocdigo a un diagrama de flujo


Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.

Ing. Kemy Valera Valles.

Pg. 27

ALGORITMOS

10.3 Diagramas estructurados (Nassi-Schneiderman)


El diagrama estructurado N-S tambin conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la siguiente forma: Inicio Accion1 Accion2 ... Fin Ejemplo: Inicio Leer Nombre, Hora, Precio Calcular Salario = Horas * Precio Calcular Impuesto = Salario * 0.15 Calcular Neto = Salario Impuesto Escribir Nombre, Impuesto, Neto Fin

XI.

Tcnicas para la formulacin de algoritmos


Por lo regular en un programa los enunciados son ejecutados uno despus del otro, en el orden en que aparecen los escritos. Esto se reconoce como ejecucin secuencial. Sin embargo, existen enunciados que le permiten al programador especificar que el enunciado siguiente a ejecutar pueda ser otro diferente al que se sigue en secuencia. Esto se conoce como transferencia de control. Todos los programas pueden ser escritos en trminos de solo tres estructuras de control: Estructura de Secuencia. Estructura de Seleccin, Condicional o de Alternativa. Estructura de Repeticin, bucle o Cclica.

Ing. Kemy Valera Valles.

Pg. 28

ALGORITMOS

11.1 Estructura de seleccin sientonces. (if)


Dado que las expresiones lgicas toman el valor verdadero y falso, se necesita una sentencia de control para la toma de decisiones, cuando se desea ejecutar una accin si una expresin es verdadera o falsa. Para ello utilizaremos la sentencia de seleccin if (si), el enunciado en pseudocdigo es el siguiente: Si(Expresin lgica: simple o compuesta) Accin a ejecutar. Fin_si Cuando la expresin lgica contenida por los parentesis es verdadera, se ejecutan las instrucciones dentro de la estructura de seleccin, cuando es falsa, el programa ignora la estructura y se sigue ejecutando la instruccin siguiente a la estructura de control.

11.2 La estructura de seleccin si/no (if/else)


La estructura de seleccin Si ejecuta una accin indicada solo cuando la condicin es verdadera, de lo contrario la accin es pasada por alto. La estructura de seleccin si/sino (en algunos textos de programacin puede aparecer como si/de_lo_contrario) permite que el programador especifique la ejecucin de una accin distinta cuando la condicin es falsa. Por ejemplo, el enunciado en seudocdigo: Si (nota >= 60) Entonces Escribir (Aprobado) Sino (de lo contrario) Escribir (No aprobado) Fin_Si Imprime "Aprobado", si la calificacin del alumno es mayor o igual a 60, e imprime "No aprobado" si la calificacin es menor que 60. En
Ing. Kemy Valera Valles. Pg. 29

ALGORITMOS

cualquiera de los casos, despus de haber impreso alguno de los mensajes, el programa ejecutar el enunciado siguiente al si.

11.3 Sentencias selectivas anidadas


Dentro de las sentencias que figuran dentro de una sentencia if, pueden colocarse tambin otras sentencias selectivas. De esta manera: Supongamos que deseamos imprimir en pantalla la nota de un alumno, clasificndolo en "aprobado", "no aprobado", y "deficiente". El algoritmo quedara de esta manera. si (nota >= 60) entonces escribir ("aprobado") sino si (nota < 60) and (nota >= 30) entonces escribir ("no aprobado") sino si (nota < 30) entonces escribir ("deficiente") fin_si fin_si fin_si. Es muy importante que se tilize un buen sangrado en cada sentencia selectiva, para que sea mas legible el cdigo, y adems que se comente el cdigo, para que no te pierdas si llevas escritas varias lineas, y tambin por si alguna otra persona, desea actualizar tu cdigo.

11.4 Sentencias de seleccin segn sea (Case)


Esta sentencia se utiliza para elegir entre diferentes alternativas. Esta se compone de varias sentencias simples, cuando se ejecuta, una y solo una de las sentencias simples se selecciona y ejecuta. La sintaxis es la siguiente: segn sea (selector) hacer caso1, caso2,..: sentencia1 .... : ..... caso1n, caso2n,.: sentencian sino sentencia opcional fin_segn El valor de selector debe ser un tipo ordinal, y los valores constantes deben tener el mismo tipo que el selector. Se pueden utilizar sentencias if anidadas, pero la sentencia segn sea es mas legible.

Ing. Kemy Valera Valles.

Pg. 30

ALGORITMOS

Vamos a realizar en seudocdigo el ejemplo anterior, pero esta vez utilizando la sentencia segn-sea. segun sea (nota) hacer 100..60: escribir ("aprobado") 59..30: escribir ("reprobado") 29..0: escribir ("deficiente") Si te das cuenta, he omitido la clausula sino del algoritmo, esta es opcional y se puede omitir.

11.5 Sentencia Mientras..hacer (while)


La estructura repetitiva mientras es aquella en la que el nmero de iteraciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condicin. Por esta razn a estos bucles se les denomina bucles condicionales. La sintaxis es la siguiente: Mientras (condicion) hacer sentencias fin_mientras

Cuando la sentencia mientras se ejecuta, el primer paso es la evaluacin de la expresin lgica. Si se evala a falso, ninguna accin se realiza y el programa prosigue en la siguiente sentencia despus del bucle. Si la expresin lgica se evala a verdadera, entonces se ejecuta las sentencias contenidas dentro del cuerpo del bucle y se evala de nuevo la expresin. Este proceso se repite mientras que la expresin lgica sea verdadera. Despus de cada iteracin, la expresin lgica se evala y se verifica de nuevo, y si es verdadera, el bucle se repite de nuevo; si cambia de verdadera a falsa, la sentencia mientras finaliza y el programa prosigue en la siguiente sentencia del programa. Calcular la suma de una lista de nmeros enteros ingresados por el usuario.

Ing. Kemy Valera Valles.

Pg. 31

ALGORITMOS

Algoritmo Sumar Variables contador, num, sum, N: enteros Inicio Escribir ("Este programa suma numeros") Escribir ("Cuantos numeros desea sumar") Leer (N) Escribir ("Ingrese los numeros:") contador <-- 0 suma <-- 0 Mientras (contador < N) hacer Leer (num) suma <-- suma + num contador <-- contador + 1 fin_mientras Escribir ("La suma de los",N,"numeros es",suma) Fin. Al implementar este cdigo en un lenguaje de programacin, por ejemplo: Pascal, este sera el resultado, en pantalla, al ejecutarlo. Este programa suma nmeros Cuntos numeros desea sumar 3 Teclee los numeros enteros: 864 La suma de los 3 numeros es 18

11.6 La Sentencia Repetir..hasta


Una variante de la sentencia mientras, es la sentencia repetir. Una de las caractersticas de la sentencia mientras es que la condicin lgica se evala al principio de cada iteracin. En particular, si la condicin es falsa cuando la sentencia comienza, entonces el bucle no se ejecuta nunca. La sentencia repetir..hasta especifica un bucle condicional que se repite hasta que la condicin se hace verdadera. Despus de cada iteracin el cuerpo del bucle evala la condicin. Si la condicin es verdadera, el bucle se termina y se sale de l, ejecutndose la siguiente sentencia. Si la condicin es falsa el bucle se repite. El seudocdigo es el siguiente: repetir sentencias hasta (expresin lgica)

Ing. Kemy Valera Valles.

Pg. 32

ALGORITMOS

Veamos un ejemplo: Volvamos a realizar el ejemplo anterior, donde se desea obtener la suma de tres nmeros ingresados por el usuario. Para acortar, solo colocar la parte donde se efectua la suma Escribir ("Cuntos numeros desea ingresar") leer (Total_num) contador <-- 0 suma <-- 0 repetir leer (num) suma <-- suma + numero contador <-- contador + 1 hasta (contador = Total_num)

11.7 Sentencia Para (For)


En numerosas ocasiones se desea un bucle que se ejecute un nmero deseado de veces, y cuyo nmero de iteraciones se conozca por anticipado. Para este tipo de aplicaciones se tiliza la sentencia para. La sentencia para requiere que conozcamos por anticipado el nmero de veces que se ejecutan las sentencias del interior del bucle. El seudocdigo es el siguiente: Desde cont <-- valor inicial hasta valor final hacer sentencias fin_desde

Ing. Kemy Valera Valles.

Pg. 33

ALGORITMOS

Al ejecutarse la sentencia para (o desde) la primera vez, el valor inicial se asigna a cont, que se denomina variable de control, y a continuacin se ejecuta la sentencia del interior del bucle. Al llegar al final del bucle se verifica si el valor final es mayor que el valor inicial; en caso negativo se incrementa el valor de la variable de control en uno y se vuelven a ejecutar todas las sentencias del interior del bucle, hasta que la variable de control sea mayor que el valor final, en cuyo momento se termina el bucle. Veamos un ejemplo prctico de para Desde i <-- 1 hasta 10 hacer escribir (i) fin_desde En pantalla, este sera el resultado 1 2 3 4 5 6 7 8 9 10 Reglas 1. Las variables de control, valor inicial y valor final deben ser todas del mismo tipo, pero el tipo real no esta permitido. Los valores inicial y final pueden ser tanto expresiones como constantes. 2. Es ilegal intentar modificar el valor de la variable de control, valor inicial y el valor final dentro del bucle.

Al igual que en las sentencias de seleccin, las sentencias repetitivas se pueden anidar.

XII.

Bibliografa
SEARCHING: AN ALGORITHMIC TOUR. R. Baeza-Yates, en Encyclopedia of Computer Science and Technology 37, dirigido por Allen Kent y James G. Williams. Marcel Dekker, Inc., 1997. ALGORITHMICS: THEORY AND PRACTICE. G. Brassard y P. Bratley. Prentice-Hall, 1988, (segunda edicin), 1995.

Ing. Kemy Valera Valles.

Pg. 34

ALGORITMOS

INTRODUCTION TO

ALGORITHMS. T. Cormen, C. Leiserson y R. Rivest,

MIT Press, 1991. ALGORITHMS AND DATA STRUCTURES. G. Gonnet y R. Baeza-Yates. Addison-Wesley, (segunda edicin), 1991.
HANDBOOK OF

PRACTICE. D. Knuth, en Theoretical Computer Science, vol. 90, 1991.


THEORY AND

ALGORITHMS: A CREATIVE APPROACH. U. Manber, Addison-Wesley, 1989.


INTRODUCTION TO

WHAT? AN INTRODUCTION TO ANALYSIS OF ALGORITHMS. G. Rawlins, Computer Science Press, 1991.


COMPARED TO

Ing. Kemy Valera Valles.

Pg. 35

También podría gustarte