Você está na página 1de 22

UNIDAD N II

ALGORITMOS Y DIAGRAMAS ESTRUCTURADOS

Un sistema de computacin no es capaz de realizar clculos o manipular datos por si slo, debemos darle rdenes exactas, paso a paso, es decir, un programa, que consista de instrucciones ordenadas y agrupadas en forma lgica. Cada programa atiende a un proyecto que debe planificarse con el objeto de llegar a la solucin del problema planteado, y para ello deben usarse los poderes de la lgica. El diseo de un programa, o su lgica de programacin deben ser determinados antes de escribir el programa, por lo que se hace necesario atender a un enfoque o tcnica que permita lograr con xito lo propuesto.

PASOS PARA RESOLVER UN PROBLEMA MEDIANTE EL USO DE UN COMPUTADOR:

1.- Descripcin del problema: Es la definicin exacta de lo que se necesita hacer, para ello se requiere leer el enunciado cuantas veces sea necesario, hasta entenderlo completamente. Implica entender claramente el alcance y la delimitacin del mismo, de manera que el problema a resolver no sea otro distinto. 2.- Anlisis del problema: Se contempla en esta etapa, analizar varios componentes: a) Enfocar la naturaleza del problema ubicndolo en su tipologa, usuarios, alcance, cobertura, restricciones, influencia de variables externas como: normativas, decisiones gubernamentales, etc. b) Determinar claramente con qu datos de entrada se dispone para la solucin del problema. c) Aclarar y determinar la informacin o resultados que se soliciten. 3.- Planificacin de la Solucin: En esta actividad es donde radica la mayor parte de la dificultad para solucionar un problema, el resto de las etapas bsicamente se circunscriben a la adaptacin para que un computador ejecute lo ordenado. Implica disear la lgica general y detallada del programa, y el uso de una tcnica como herramienta, es fundamental. Dos de las tcnicas mas comunes son las de elaborar un proceso en seudocdigo(ALGORITMO) y la elaboracin de un diagrama estructurado o de flujo. El seudocdigo representa la lgica en instrucciones, en nuestro lenguaje, semejantes a las del programa, slo que ste no tiene principios de sintaxis o reglas para formular instrucciones. El uso de enunciados o formas permitirn describir las actividades de procesamiento y sus relaciones, clculos, manipulacin de datos, operaciones lgicas, entradas y salidas. Esta tcnica tambin se conoce como DISEO DE ALGORITMOS. Los diagramas de flujo o los estructurados se usan para ilustrar grficamente, mediante smbolos que representan estructuras preestablecidas, la lgica del programa. Con esta tcnica se logra una mejor visualizacin de los procesos y de la secuencia de los pasos a seguir.

Material Recopilado y Diseado por Armando Carrero

4.- Prueba de Escritorio: Llamada tambin corrida en fro , consiste en hacer un seguimiento manual, utilizando lpiz y papel, de los pasos que se definieron en el seudocdigo o en el diagrama estructurado y comprobar, con unos pocos datos, si el resultado que se obtiene es el esperado. 5.- Codificacin del programa: Se trata aqu de escribir las instrucciones o enunciados, planificados en el seudocdigo, en un lenguaje de alto nivel como BASIC, FORTRAN, COBOL PASCAL, o C, etc., generando as un listado que atiende a las reglas y sintaxis propias del lenguaje. Con este proceso se obtiene el programa fuente, que no es ejecutable directamente por la mquina. 6.- Transcripcin y Compilacin: La transcripcin es el proceso de introducir al computador, cada una de las instrucciones del programa codificado, usando el teclado conjuntamente con un editor, que en algunos casos es propio del entorno del lenguaje de programacin o que puede ser un procesador de texto. La Compilacin es la conversin de las instrucciones de alto nivel (programa fuente) a instrucciones a nivel de mquina y se hace mediante la ejecucin de un programa de software llamado compilador o interprete . Las instrucciones obtenidas son llamadas programa objeto , que es el ejecutable por la mquina. 7.- Prueba y Depuracin: Consiste en someter a prueba el programa, incluso con datos para los que ya se conozcan los resultados. Esto permitir determinar posibles errores, que pueden ser de dos tipos: error de sintaxis, que trata sobre alguna violacin de las reglas para la escritura del lenguaje seleccionado; o error lgico que obedece a una falla en la lgica de programacin, estos son los ms difciles de detectar pues el programa aparentar estar trabajando bien en el sentido que se ejecuta y genera resultados, sin embargo la salida ser incorrecta. La depuracin es el proceso de eliminar estos errores 8.- Documentacin y Mantenimiento: La documentacin es parte del proceso de programacin que debe contener una descripcin del programa, un diseo modular, un diagrama de flujo o estructurado un listado del programa codificado con comentarios internos y una sesin que simule la interaccin usuario-mquina. Debido a que los requerimientos y los procedimientos cambian, los programas deben actualizarse peridicamente, de modo que el sistema este vigente de acuerdo a las exigencias del usuario y de las organizaciones. Aunque la elaboracin de un programa en un lenguaje de alto nivel es slo una etapa, por cierto de gran importancia, en el desarrollo de software de alta calidad, iniciaremos nuestro estudio a partir del paso No. 2. Omitiremos el estudio de la primera etapa, motivado a que la solucin de problemas es un tema muy amplio, un arte que crece a travs de un proceso muy largo de educacin y de experiencia, de all que la madurez y la habilidad para razonar se ir ampliando como producto natural del desarrollo.

Material Recopilado y Diseado por Armando Carrero

DISEO DE ALGORITMOS

La experiencia dice que, en la mayora de los casos, los programadores que se encaminan a realizar un proyecto de computacin sin tener una formulacin clara del diseo, terminan descubriendo que se les haba olvidado algn detalle preliminar, adems de que la lgica en los programas rearreglados se vuelve ms confusa. Por ello se hace hincapi en la planificacin previa al desarrollo, siendo el principal apoyo de esta planeacin el diseo de algoritmos . Posiblemente, ste termino resulte nuevo para algunos, sin embargo todos los das ejecutamos procesos algortmicos, por ejemplo: realizar una multiplicacin, calcular el promedio de una cantidad de valores, efectuar una llamada telefnica o preparar una receta de cocina. Analicemos ahora una actividad tpica de nuestro quehacer, como lo es, la reposicin de un neumtico de un automvil, considerando los pasos de mayor importancia 1.- Encender luces de emergencia. 2.- Asegurar el auto para que no se ruede. 3.- Buscar herramientas, incluyendo el neumtico de repuesto. 4.- Aflojar tuercas. 5.- Colocar el gato y suspender el automvil 6.- Quitar las tuercas. 7.- Retirar el neumtico desinflado. 8.- Colocar el neumtico de repuesto. 9.- Colocar tuercas 10.- Descender el auto. 11.- Ajustar tuercas. 12.- Guardar herramientas, incluyendo el neumtico desinflado. 13.- Liberar el auto. 14.- Apagar luces de emergencia A este procedimiento se le conoce como un algoritmo, de modo que es posible que aunque no hayamos escrito alguno, de seguro lo hemos ejecutado o lo hemos visto ejecutar, por lo tanto el tema no ser totalmente nuevo.

CONCEPTOS BSICOS : Que es un Algoritmo? : Es una secuencia de pasos ordenados lgicamente, necesarios para llevar acabo una tarea especfica, como la solucin de un problema matemtico. Caractersticas de los Algoritmos: Un buen algoritmo debe poseer las siguientes cualidades: 1. Debe ser finito, es decir, el proceso debe terminar despus de una cantidad determinada de pasos. Un algoritmo no puede ser abierto. 2. Cada paso debe ser definido, preciso, esto es, nada se debe dejar a la aventura ni presentar ambigedades, pues los resultados no deben depender de quien est siguiendo el proceso.

Material Recopilado y Diseado por Armando Carrero

3. Debe ser lo suficientemente flexible y general como para tener en cuenta todas la alternativas que puedan presentarse. 4. Puede tener cero o ms entradas de datos. El primer caso puede ocurrir en aquellos procesos matemticos en donde los valores se pueden auto generar internamente. 5. Debe poseer por lo menos una salida de informacin. Lo contrario indicara que no se obtiene resultado alguno. 6. Ser ptimo, por lo que se deben minimizar la utilizacin de recursos como : tiempo, espacio, horas-hombre, mquina ; sin que los resultados se vean alterados.

Concepto de Variable:
A que llamaremos Variable?: Se trata de un lugar de almacenamiento, donde se guardaran los valores que correspondan a: los datos de entrada, informacin de salida o cualquier valor intermedio que participe en el proceso. Una variable se compone de dos partes: su nombre y su valor. El nombre, es una combinacin de caracteres (letras, nmeros, smbolos especiales) y se refiere a una localidad de almacenamiento en la memoria principal y el valor trata sobre el dato numrico o alfanumrico que ser almacenado en la localidad a la que hace referencia el nombre. As, podemos figurar el concepto de variable en el siguiente esquema:

Valor

Etiqueta

Nombre de la Variable

Por ejemplo: Ejemplo 1 Ejemplo 2

Nombre de variable Valor Almacenado

Nombres Luis Jimnez

Edad 32

En sentido figurado, diremos que el nombre de una variable se refiere a la etiqueta que le colocamos a un depsito y el valor asignado a la variable sera el producto que almacenaremos en ese depsito.

Material Recopilado y Diseado por Armando Carrero

Tipos de Valores:
Es necesario determinar el tipo de valor para la cual se ha de crear la variable, ya que se debe definir o declarar antes de usarse. A continuacin estudiemos los tipos de datos que normalmente existen.

Numricos:

Enteros: Todos aquellos datos que se correspondan con valores numricos enteros, por ejemplo: Nota definitiva de una asignatura, edad de una persona, cantidad de personas. Reales: Valores que estn compuestos de un nmero entero y una parte decimal, ejemplo: Longitud de un cuerpo, sueldo de un empleado, velocidad de un mvil.

Cadena: Se trata de aquellos valores compuestos de caracteres, dgitos y otros smbolos, ejemplo: direccin de una empresa, nombre de una persona, profesin, cedula de identidad.

Un Carcter: Se trata de un caso especial de aquellas cadena compuesta de un nico carcter, por ejemplo: el sexo, la nacionalidad, estado civil. Lgicos: Aquellos datos que se representan nicamente con los valores: Falso Verdadero.

Concepto de Constante: Que es una Constante?: Se trata, tambin, de un lugar de almacenamiento, con la diferencia que
el valor almacenado no cambia en el proceso, es decir, son todos aquellos valores que no varan en el transcurso de la ejecucin de un algoritmo. A este lugar se le asigna un nombre, al igual que en las variables, as:

Valor Fijo Nombre de la constante

Estos valores pueden ser cifras numricas o cadenas de caracteres. Ejemplo:

2.7172

200

U.N.E.T

Material Recopilado y Diseado por Armando Carrero

ENUNCIADOS O HERRAMIENTAS PARA ESCRIBIR UN ALGORITMO EN SEUDOCODIGO

En el desarrollo de algoritmos se utilizan enunciados, que representan una instruccin o etapa del proceso, que luego puede ser traducido para que el computador pueda entenderlo y ejecutarlo. Consiste en usar un lenguaje no formal, que permite describir y representar en una forma casi personal, las instrucciones que servirn de base para el programa fuente. Esa informalidad es lo que deriva el nombre de SEUDOCODIGO.

Partes de un Algoritmo: Encabezamiento


Definicin de Variables INICIO Algoritmo Promedio DEFINIR C1, C2, Prome : REAL ESCRIBIR Ingrese la primera cantidad LEER C1 ESCRIBIR Ingrese la segunda cantidad LEER C2 Prome ( C1 + C2 ) 2 ESCRIBIR El promedio es = , Prome FIN .

Cuerpo del Algoritmo


(Pasos o Etapas)

Como se observa, cada una de las etapas inicia con una palabra que indica una accin. La ejecucin del algoritmo debe hacerse de arriba hacia abajo, sin obviar ningn paso, hasta llegar al final. A continuacin se describe y se explica el funcionamiento de los enunciados o herramientas que se usarn en la construccin de algoritmos en forma de seudocdigo.

1.- Enunciado de Iniciacin: El primer paso de todo algoritmo es el que indica el comienzo. La palabra a ser utilizada para este fin es INICIO. Forma: Ejemplo: INICIO del algoritmo nombre del algoritmo

INICIO del algoritmo Nmina

2.- Enunciado de Terminacin: Se usa para indicar la finalizacin de un algoritmo. La palabra a ser utilizada para este fin es FIN. Forma: Ejemplo: FIN del algoritmo FIN nombre del algoritmo

FIN del algoritmo Nmina

Material Recopilado y Diseado por Armando Carrero

3.- Enunciado de Definicin: Para declarar o definir los nombres de las variables a ser usadas en el algoritmo, y el tipo de dato a almacenar, la palabra a ser utilizada para tal fin es DEFINIR. Se supone que se han determinado que datos, de entrada, proceso o salida se requieren manipular, puesto que se ha realizado la etapa de anlisis. Forma : Ejemplos : DEFINIR nombre(s) de la(s) variable(s) : tipo de valor DEFINIR DEFINIR DEFINIR Nombre, Cdula Nota, Edad Sueldo : CADENA : ENTERO : REAL

4.- Entrada de datos: Para dar entrada a los datos establecidos en la etapa de anlisis y almacenarlos en las variables respectivas, se usan dos formas: la forma interna y la externa. Se debe entender que todo algoritmo se alimenta de datos y que luego de procesarlos, genera informacin, as lo explica el siguiente grafico:

Datos

Algoritmo

Informacin

Por lo tanto el suministro de datos en forma interna o externa, se refiere al algoritmo. A.-Para la entrada externa, el algoritmo espera a que el usuario suministre los valores requeridos para ser guardados en la variable respectiva, declarada previamente y qu. Para ello se usa el Enunciado de Lectura. La palabra a ser utilizada para tal fin es LEER. Forma: Ejemplos: LEER nombre(s) de la(s) variable(s) LEER LEER Nombre Cdula, Nota

Hasta tanto, el usuario no suministre un valor, la ejecucin del algoritmo no avanzara a la etapa siguiente. Luego de almacenado, la variable guardara dicho valor, que ser utilizado cada vez que se haga referencia a la variable; hasta que una nueva entrada sustituya el anterior valor. B.- Para la entrada interna, el algoritmo asigna valores a la variable, sin que el usuario intevenga en tal accin. Para este proceso se utiliza el Enunciado de Asignacin. El smbolo a ser utilizado es una flecha dirigida hacia la izquierda . Forma: Ejemplos: Nombre de la variable Sueldo U Total Ed P Valor o expresin 85000 Universidad Nacional del Tchira Sueldo + Bono Edad A 7

Material Recopilado y Diseado por Armando Carrero

A La flecha ( ) indica, que el valor o el resultado de la expresin de la derecha, se asignar a la variable ubicada en la izquierda. Conviene aclarar que muchos autores utilizan en vez de ste smbolo, el de la igualdad ( = ). Sin embargo consideramos que su uso puede crear confusin por cuanto ser utilizado, posteriormente, para otro tipo de operacin. El valor asignado puede ser una constante(numrica o alfanumrica) o el resultado de una expresin u el valor contenido en otra variable. Cuando se trate de cadena de caracteres, o de un carcter, estas deben ir entre comillas simples, as la diferencia entre los dos ltimos ejemplos es la siguiente: A la variable P se le asignara el carcter A, mientras que a la variable W se le asignara el valor que contenga la variable A.

Reglas Para La Construccin De Enunciados De Asignacin: a.- Toda variable que aparezca al lado derecho de una asignacin, debe poseer un valor definido, de lo contrario la asignacin no se podr ejecutar. b.- En una asignacin, la variable de la izquierda, es la nica que recibe un valor o cambia de valor en caso de tenerlo con anterioridad. c.- Las variables que aparecen a la derecha de una asignacin, conservan su valor despus de ejecutarse la instruccin. d.- Si la variable del lado izquierdo aparece tambin en el lado derecho, sta debe poseer un valor previo por encontrarse en la derecha, pero cambiar de valor por encontrarse en la izquierda. Ejemplos : Asignacin A A A B + C B + C A+B + C Condicin B y C deben poseer valores previos. Ejm. B vale 10 y C vale 5. A la variable A se le asigna 15 (10 + 5), mientras que B y C mantienen sus valores 10 y 5 respectivamente. A la variable A se le asigna 30 ( 15 + 10 + 5). Considerando que la asignacin del ejemplo anterior precediera a sta.

TIPOS DE EXPRESIONES: Aritmticas, Lgicas y Relacionales. EXPRESIONES ARITMETICAS: Aquellas expresiones matemticos, en donde los trminos estn relacionados mediante operadores aritmticos. OPERADOR + OPERACIN Suma Resta Multiplicacin Divisin Potencia ensima Raz ensima Parte entera 8

( )n n [ ]

Material Recopilado y Diseado por Armando Carrero

. . en general, todos aquellos operadores(smbolos) que se usan en asignaturas como: fsica, matemticas, qumica y otras asignaturas EXPRESIONES LOGICAS: Aquellas expresiones matemticos, en donde los trminos estn relacionados mediante operadores lgicos: la conjuncin, la disyuncin y la negacin. OPERADOR OPERACIN Conjuncin Disyuncin Negacin

lgico v lgico

Conjuncin: La conjuncin de dos proposiciones(operandos), es cierta si y solo si ambas proposiciones son ciertas. Considerando que los operandos deben poseer slo valores lgicos, entonces surgen, nicamente, cuatro posibles combinaciones, manifestadas en las conocidas tablas de la verdad. Consideremos la expresin: A B ^ C (B y C son Operandos con valores lgicos) B FALSO FALSO VERDADERO VERDADERO C FALSO VERDADERO FALSO VERDADERO Valor asignado a A FALSO FALSO FALSO VERDADERO

Este tipo de expresin tiene mltiples aplicaciones en el desarrollo de algoritmos, por ejemplo para verificar si un estudiante es posible candidato a formar parte del equipo de bsquet, cuyas condiciones sean que se cumplan las siguientes dos condiciones: edad mnima 15 aos y estatura mnima 1.75 m Disyuncin: La disyuncin de dos proposiciones(operandos), es cierta si al menos una de las proposiciones lo es. Considerando que los operandos deben poseer slo valores lgicos, entonces surgen, nicamente, cuatro posibles combinaciones, manifestadas en las conocidas tablas de la verdad. Consideremos la expresin: P R v S (R y S son Operandos con valores lgicos) R FALSO FALSO VERDADERO VERDADERO S Valor asignado a P FALSO FALSO VERDADERO VERDADERO FALSO VERDADERO VERDADERO VERDADERO

Este tipo de expresin, tambin tiene mltiples aplicaciones en el desarrollo de algoritmos, por ejemplo: para seleccionar de un conjunto de piezas elaboradas, aquellas que cumplan cualquiera de las dos siguientes proposiciones:

Material Recopilado y Diseado por Armando Carrero

peso mximo 450 gramos

longitud mnima 45 cm

Negacin: La negacin de una proposicin (operando) cierta es falsa y la negacin de una proposicin (operando) falsa es cierta. Esta disposicin se manifiesta, tambin, en las conocidas tablas de la verdad. Consideremos la expresin: W K (K es un Operando con valor lgico) K FALSO VERDADERO Valor asignado a W VERDADERO FALSO

Su utilidad, al escribir algoritmos, se requiere cuando es necesario invertir el valor de una variable tipo lgica, como veremos en el caso donde se usen variables centinela o suich.

EXPRESIONES RELACIONALES: Aquellas expresiones, en donde los trminos estn relacionados mediante operadores de relacin. OPERADOR > < = <> K 5 Edad = 21 OPERACIN Mayor que Mayor o igual que Menor que Menor o igual que Igual Diferente

Ejemplo:

M Res

En cualquier caso debe tenerse en cuenta que el valor resultado en una expresin relacional, ser un valor lgico, por lo tanto en los ejemplos anteriores se asignara el valor verdadero a las variables M y Res si se cumple que el valor de la variable K es mayor o igual a 5 y si el valor almacenado en la variable Edad es igual a 21, en los casos contrarios entonces se asignara el valor Falso.

JERARQUIA DE OPERADORES: Cul ser el valor asignado a la variable X, en la siguiente expresin?

12 +

10 16 ?

Material Recopilado y Diseado por Armando Carrero

10

Por supuesto que solo uno de ellos ser el valor asignado, para ello es necesario respetar la jerarqua entre los operadores, que sigue siendo la misma que se ha aprendido en el estudio de las matemticas. Niveles de Jerarqua 1 2 3 4 5 6 Operador

+ > = , , rst , , , < , ,

7 v Si en una expresin, aparecen operadores con el mismo nivel de jerarquita, se deben ejecutar de izquierda a derecha, el que primero aparezca en la expresin. Si se desea romper la jerarqua de un operador mas fuerte que otro, se puede utilizar el signo de agrupacin ( ). 5.- Enunciado de Escritura: Se usa para darle salida a la informacin sobre los resultados esperados al ejecutar el algoritmo. La palabra ESCRIBIR indicar que se deben mostrar los valores asignados a las variables indicadas o los mensajes a que se haga referencia. Forma : ESCRIBIR nombre(s) de la(s) variable(s), constantes, mensajes o expresin Ejemplos : ESCRIBIR ESCRIBIR ESCRIBIR ESCRIBIR Nombre, Edad, Sueldo Nombre del Empleado : , Nombre Edad : , Edad, Sueldo : , Sueldo, Bolvares Suma Total : , Valor1 + Valor2

6.- Enunciado de Toma de Decisin: Bsicamente ste enunciado se utiliza para tomar una accin cuando se tiene la posibilidad de dos alternativas. Esta situacin se presenta cuando se requiere hacer una comparacin con el objeto de conocer una circunstancia en particular ya sea para ejecutar un proceso distinto o para obviar otras instrucciones. Por ejemplo, suponga que un estudiante slo puede estudiar una de las tres siguientes asignaturas: ingles, matemticas o fsica. Un proceso para determinar cul de las tres estudiar, un alumno cualquiera, sera: Si, entonces que te rinda el tiempo Estudiars Matemticas? Si, entonces saludos a Einstein No, Estudiars Fsica? No, very well.

Material Recopilado y Diseado por Armando Carrero

11

Como se observa, mediante este procedimiento, se puede llegar a conocer lo que har el estudiante. Todo enunciado de decisin, generalmente, slo permite como respuestas, dos alternativas; en este caso SI o NO, aunque tambin pueden expresarse con CIERTO o FALSO, o con las palabras ENTONCES o CASO CONTRARIO. En la elaboracin del seudocodigo utilizaremos el formato siguiente: Forma: SI (variable, expresin o comparacin) ENTONCES Enunciado(s) CASO CONTRARIO Enunciado(s) FIN DEL SI

Como funciona la toma de decisin? La palabra SI, evala lo que se encuentra a continuacin, como si se tratara de una pregunta. La variable, expresin o comparacin deben dar como respuesta dos posibles valores Cierto o Falso. Si la respuesta es CIERTO, entonces se ejecutaran los enunciados o instrucciones que se encuentren a continuacin de la palabra ENTONCES y luego el proceso se transfiere al FIN DEL SI ; si la respuesta es FALSO, slo se ejecutaran los enunciados o instrucciones que se encuentren a continuacin de la palabra CASO CONTRARIO y luego el proceso se transfiere al FIN DEL SI. Ejemplo: Suponga que a un empleado, se le debe determinar la cantidad a retener de su sueldo, para efectos de impuestos. Si el empleado gana Bs. 375000 o ms la retencin debe ser el 15% de su sueldo, pero si gana menos solamente se le retiene el 10 %. Hacer un planteamiento para determinar el monto de la retencin de un empleado. SI Sueldo es mayor o igual a 375000 Bs. ENTONCES Calcular Sueldo x 0,15 CASO CONTRARIO Calcular Sueldo x 0,10 FIN DEL SI Se debe entender que Sueldo es el nombre de una variable a la que se la ha asignado un valor previamente.

Material Recopilado y Diseado por Armando Carrero

12

Tomas de decisin anidadas: Muchos casos exigen que una de las instrucciones a ejecutar dentro del ENTONCES o del CASO CONTRARIO sea otra toma de decisin, lo que implica introducir una toma dentro de otra. Ejemplo: Suponga que el impuesto a retener al empleado, atiende a la siguiente norma: Si el empleado gana Bs. 375000 o ms la retencin debe ser el 15% de su sueldo, si gana menos de 375000 pero ms de 200000 la retencin debe ser del 12 % y si el sueldo es de Bs. 200000 o menos solamente se le retiene el 10 %. Hacer un planteamiento para determinar el monto de la retencin del empleado. SI Sueldo es mayor o igual a 375000 Bs. ENTONCES Calcular Sueldo x 0,15 CASO CONTRARIO SI Sueldo es mayor a 200000 Bs. ENTONCES Calcular Sueldo x 0,12 CASO CONTRARIO Calcular Sueldo x 0,10 FIN DEL SI FIN DEL SI 7.- Enunciado de Repeticin: Algunos procesos requieren que un determinado conjunto de instrucciones se ejecuten nuevamente, citemos el ejemplo con que se inicio el tema de algoritmos y consideremos que se necesita hacer lo mismo con los cuatro neumticos del automvil. 1.- Encender luces de emergencia. 2.- Asegurar el automvil. 3.- Buscar herramientas, incluyendo el neumtico de repuesto. 4.- Aflojar tuercas. 5.- Colocar el gato hidrulico y suspender el automvil Repetir 6.- Quitar las tuercas. cuatro veces 7.- Retirar el neumtico desinflado. 8.- Colocar el neumtico de repuesto. 9.- Colocar tuercas 10.- Descender el auto. 11.- Ajustar tuercas. 12.- Guardar herramientas, incluyendo el neumtico desinflado. 13.- Liberar el auto. 14.- Apagar luces de emergencia

Material Recopilado y Diseado por Armando Carrero

13

Observamos que basta con repetir los pasos 4 al 11, cuatro veces para lograr el objetivo. Es decir, que no es necesario escribir nuevamente: Aflojar tuercas, Colocar el gato ........., Ajustar tuercas, para el segundo, tercer y cuarto neumtico, lo que hara demasiado extenso el algoritmo. Estos enunciados, llamados tambin: ciclos, bucles o lazos, sirven para repetir grupos de sentencias ya sea un nmero fijo de veces o hasta que una condicin se satisfaga. Existen tres tipos de enunciados de repeticin: Tipo 1: Repeticin de un nmero determinado de veces. Forma: HAGA DESDE variable COMIENZO enunciado(s) FIN DEL HAGA DESDE Como funciona el ciclo HAGA DESDE? 1.- Le asigna un valor inicial a una variable, denominada variable control. 2.- Compara el valor de la variable con el valor final. 3.- Si el valor de la variable control no supera el valor final, se ejecuta el o los enunciados que se encuentren entre el COMIENZO y el FIN DEL HAGA DESDE, luego E se incrementa en una unidad (automticamente) y se repite el paso No. 2, para determinar si se ejecutan de nuevo. 4.- Si el valor de la variable control supera el valor final, se detiene el proceso de repeticin, continundose con el enunciado que sigue al FIN DEL HAGA DESDE. Se le conoce como ciclo automtico, por la caracterstica de la variable control. Ejemplo : Supongamos que se desea calcular el impuesto a los 35 empleados de una empresa, siguiendo el mismo procedimiento del ejemplo anterior. En el ejemplo anterior, el proceso se hizo para un empleado. Ahora basta con introducir ese conjunto de instrucciones dentro de la forma del HAGA DESDE. HAGA DESDE E 1 HASTA 35 COMIENZO LEER Sueldo SI Sueldo es mayor o igual a 375000 Bs. ENTONCES Calcular Sueldo x 0,15 CASO CONTRARIO Calcular Sueldo x 0,10 FIN DEL SI FIN DEL HAGA DESDE valor inicial HASTA valor final

Ciclo

Material Recopilado y Diseado por Armando Carrero

14

Conviene aclarar que el proceso anterior tiene algunos detalles que en el futuro sern mejorados, sin embargo se trata en este caso de exponer el uso del ciclo HAGA DESDE. La variable E, que es la denominada variable control, toma el valor inicial de 1, que al compararse con 35, resulta menor, por lo tanto se entra al ciclo, es decir se lee un sueldo y se calcula un impuesto. Luego la variable E se incrementa a 2, se compara con 35,....... y as sucesivamente hasta ejecutar 35 veces el procedimiento, finalmente cuando E se incremente a 36, se detiene la ejecucin del ciclo y el control del algoritmo continuar en la instruccin siguiente al FIN DEL HAGA DESDE. Caractersticas: 1.- La restriccin que se tiene para usar este enunciado, es que se debe conocer antes el nmero de veces a repetir las instrucciones, situacin que no siempre es comn. 2.- El incremento de la variable control se hace en forma automtica. 3.- El valor inicial debe ser menor o igual al valor final para que el ciclo se ejecute una vez por lo menos. 4.- El ciclo se repetir [(valor final - valor inicial ) + 1] veces.

Tipo 2: Repeticin mientras una condicin sea verdadera. Forma : Ciclo MIENTRAS condicin HACER COMIENZO enunciado(s) FIN DEL MIENTRAS

Como funciona el ciclo HAGA MIENTRAS? 1.- Evala la condicin, que puede ser una variable o expresin que arroje uno de los valores: CIERTO o FALSO. 2.- Si el valor devuelto es CIERTO, se entra a ejecutar los enunciados que se encuentren entre el COMIENZO y el FIN DEL MIENTRAS, y luego se retorna al paso No. 1, para determinar si se ejecutan de nuevo. 3.- Si el valor devuelto es FALSO, se detiene la ejecucin del ciclo y el proceso pasa a ejecutar el enunciado que se encuentre luego del FIN DEL MIENTRAS.

Ejemplo : Sigamos usando el ejemplo del caso anterior a fin de observar las diferencias y semejanzas entre los distintos ciclos. Supongamos que se desea calcular el impuesto a los 35 empleados de una empresa, siguiendo el mismo procedimiento del ejemplo anterior.

Material Recopilado y Diseado por Armando Carrero

15

MIENTRAS Hay empleados? HACER COMIENZO LEER Sueldo SI Sueldo es mayor o igual a 375000 Bs. ENTONCES Calcular Sueldo x 0,15 CASO CONTRARIO Calcular Sueldo x 0,10 FIN DEL SI FIN DEL MIENTRAS Mientras la respuesta a la pregunta Hay empleados?, sea CIERTO, se estarn ejecutando los enunciados del ciclo. Cuando ya no haya empleados, la respuesta ser FALSO se detendr la ejecucin de los enunciados y el control del algoritmo continuar en la instruccin siguiente al FIN DEL HAGA MIENTRAS. Caractersticas: 1.- Es posible que el ciclo se ejecute cero o ms veces; cero veces si el resultado de la condicin resulta FALSO la primera vez que se evala. 2.- El usuario tiene la facultad de repetir o detener el ciclo, cuando lo crea conveniente. 3.- En el ciclo debe existir una instruccin que permita modificar el valor de la condicin a fin de detener la repeticin, de lo contrario se puede generar un ciclo infinito, es decir que nunca termina, situacin que debe evitarse. 4.- Su uso se recomienda cuando no se conoce con anticipacin cuantas veces se tiene que ejecutar el bucle. Es uno de los dos bucles conocidos como ciclo condicional, debido a que la repeticin o no del cuerpo depende de la veracidad o falsedad de una condicin.

Tipo 3 : Repeticin hasta que una condicin sea verdadera. Forma: Ciclo REPITA enunciado(s) HASTA QUE condicin

Material Recopilado y Diseado por Armando Carrero

16

Como funciona el ciclo REPITA HASTA?

1.- Se ejecutan los enunciados que se encuentran entre el REPITA y el HASTA QUE. 2.- Luego se evala la condicin, que puede ser una variable o expresin que arroje uno de los valores: CIERTO o FALSO. 3.- Si el valor devuelto es FALSO, se vuelven a ejecutar los enunciados que se encuentren entre el REPITA y el HASTA QUE, repitiendo el paso No. 2, para determinar si se ejecutan de nuevo. 4.- Si el valor devuelto es CIERTO, se detiene la ejecucin del ciclo y el proceso pasa a ejecutar el enunciado que se encuentre luego del HASTA QUE.

Ejemplo: Usando el ejemplo del caso anterior. Calcular el impuesto a los 35 empleados de una empresa, siguiendo el mismo procedimiento.

REPITA LEER Sueldo SI Sueldo es mayor o igual a 375000 Bs. ENTONCES Calcular Sueldo x 0,15 CASO CONTRARIO Calcular Sueldo x 0,10 FIN DEL SI HASTA QUE No hay ms empleados? Al entrar al REPITA se leer un sueldo se calcular el impuesto respectivo, luego el HASTA QUE evala la respuesta a la pregunta No hay ms empleados ?, si es FALSO, se entiende que quedan empleados y se estarn ejecutando los enunciados del ciclo. Cuando ya no haya empleados, la respuesta ser CIERTO y se detendr la ejecucin del bucle ;luego el control del algoritmo continuar en la instruccin siguiente al HASTA QUE. Caractersticas: 1.- El ciclo se ejecutar por lo menos una vez, pues la condicin se evala al final, es decir despus de ejecutar los enunciados. 2.- El usuario tiene la facultad de repetir o detener el ciclo, cuando lo crea conveniente. 3.- En el ciclo debe existir una instruccin que permita modificar el valor de la condicin a fin de detener la repeticin, de lo contrario se puede generar un ciclo infinito, es decir que nunca termina, situacin que debe evitarse. 4.- Su uso se recomienda cuando no se conoce con anticipacin cuantas veces se tiene que repetir el bucle, pero que al menos se debe ejecutar una vez.. Es el segundo de los dos bucles conocidos como ciclo condicional.

Material Recopilado y Diseado por Armando Carrero

17

COMPARACION ENTRE LOS CICLOS HAGA MIENTRAS Y REPITA HASTA CICLO HAGA MIENTRAS CICLO REPITA HASTA

1.- La condicin se verifica al principio, antes de 1.- La condicin se verifica al final, despus que ejecutarse el bucle. el cuerpo del bucle se ha ejecutado. 2.- El cuerpo de enunciados se ejecuta, mientras 2.- El cuerpo de enunciados se ejecuta, mientras la condicin sea verdadera. la condicin sea falsa. 3.- El bucle se detiene cuando la condicin 3.- El bucle se detiene cuando la condicin se resulte falsa. satisfaga, es decir que resulte verdadera. 4.- Es posible que el ciclo nunca se ejecute. 5.- El cuerpo del ciclo debe contener una instruccin que permita que la condicin tome el valor falso a fin de detener el ciclo y evitar as un bucle infinito. 4.- El ciclo se ejecuta por lo menos una vez. 5.- El cuerpo del ciclo debe contener una instruccin que permita que la condicin tome el valor verdadero a fin de detener el ciclo y evitar as un bucle infinito.

Material Recopilado y Diseado por Armando Carrero

18

PASOS A SEGUIR EN LA ELABORACIN DE ALGORITMOS 1.- Leer el enunciado del problema, hasta entender y comprender lo solicitado. 2.- Determinar claramente los datos de entrada suministrados. 3.- Precisar la informacin o resultados solicitados. 4.- Definir los clculos y/o comparaciones que se necesitan para lograr la solucin final. 5.- Tomar en cuenta las condiciones y restricciones impuestas en el enunciado.

ACUMULADOR Y CONTADOR EN EL DISEO DE ALGORITMOS Se trata de dos variables, de importancia considerable en la solucin de problemas.

ACUMULADOR: Este trmino viene de acumular, sumar cantidades. En muchas ocasiones se deben obtener sumas totales de valores, que se asocian a una variable, a esa variable se le conoce como un acumulador. La forma general de un acumulador es: Nombre de la variable Acumulador Nombre de la variable Acumulador + Valor

Ejemplo : Considerando que llamemos TOTAL a la variable acumulador y que deseamos acumular los valores de la variable PESO, el enunciado quedara representado de la siguiente forma : TOTAL TOTAL + PESO

Si recordamos el aparte d de las reglas para la construccin de enunciados de asignacin, debemos entender que al ejecutarse la expresin anterior, el valor que posee la variable TOTAL de la derecha se suma con el que tiene la variable PESO y el resultado se deposita en la variable TOTAL de la izquierda. Normalmente se identifica a la variable TOTAL de la derecha como aquella que posee el valor actual y la de la derecha la que tendr el valor nuevo, de all que aunque se escriban igual se refieren a distintos valores. Su uso en los procesos donde se requiera calcular promedios, porcentajes y otras operaciones es de gran utilidad.

CONTADOR: Termino asociado con la actividad de contar, al que se le asigna un nombre de variable. Se trata de un caso particular del concepto de acumular, pues en este caso se trata de ir acumulando de uno en uno. La forma general de una variable acumulador es: Nombre de la variable Contador Nombre de la variable Contador + 1

Ejemplo : Disear una expresin que permita contar los empleados a los que se le ha calculado el impuesto. Emp Emp + 1 19

Material Recopilado y Diseado por Armando Carrero

Inicializacin de Variables: Atendiendo al aparte d de las reglas para la construccin de enunciados de asignacin, una variable contador o acumulador debe poseer un valor previo a la ejecucin de la expresin, es decir, cuando se trata de contar o sumar valores normalmente comenzamos en cero, por lo tanto, se requiere que dichas variables sean inicializadas. Se entiende por inicializar una variable, darle un valor mediante una sentencia de asignacin, as, las variables diseadas en los ejemplos anteriores deben inicializarse como se muestra a continuacin: Ejemplo: Emp . . Emp 0 TOTAL . . TOTAL 0

Emp + 1

TOTAL +

PESO

Ejercicio No 1: Escriba un algoritmo que asigne a las variables B y C los valores de 10 y 5 respectivamente, los sume y el resultado lo asigne a la variable A. Como salida se deben mostrar los valores de B, C y A. INICIO del Algoritmo Suma DEFINIR B, C, A B 10 C 5 A B + C ESCRIBIR B, C ESCRIBIR A FIN del Algoritmo Suma Ejercicio No 2 : Escriba un algoritmo que permita darle entrada a dos valores diferentes, los compare y decida cul es mayor. INICIO del Algoritmo Mayor DEFINIR M, N LEER M LEER N SI M es mayor a N ENTONCES ESCRIBIR : El mayor es : , M CASO CONTRARIO ESCRIBIR : El mayor es : , N FIN DEL SI FIN del Algoritmo Mayor

Material Recopilado y Diseado por Armando Carrero

20

Ejercicio No. 3: Supongamos que se desea calcular el impuesto a 45 empleados de una empresa, siguiendo el siguiente procedimiento: Si el empleado gana mensualmente Bs. 575000 o ms la retencin debe ser el 7% de su sueldo, pero si es menor slo debe ser del 5 %. Disear un algoritmo para determinar el impuesto a retener a cada empleado. La empresa dispone de los nombres, cdula de identidad y el sueldo mensual de cada empleado. La salida debe mostrar los datos de cada empleado y el impuesto a retener. DATOS DE ENTRADA: Nmero de Empleados. Nombres del Empleado, Cdula de Identidad y Sueldo mensual. CONDICIONES: Si Sueldo mensual es 575000 Bs. o ms, el impuesto a retener es del 7%. Si Sueldo mensual es menos de 575000 Bs. el impuesto a retener es del 5%. DEFINICION DE VARIABLES: Nombre de la Variable Descripcin Observacin

Nombres CI Sueldo E Impu Contador

Nombres del Empleado Cdula de Identidad Sueldo mensual Variable Control Impuesto a Retener Contador de Empleados

Datos Conocidos Datos Conocidos Datos Conocidos Usada en el ciclo HAGA DESDE Informacin Solicitada Usada en los ciclos HAGA MIENTRAS y REPITA HASTA

a) Usando el tipo de ciclo HAGA DESDE INICIO del Algoritmo Impuestos DEFINIR Nombres, CI, Sueldo, E, Impu HAGA DESDE E 1 HASTA 45 COMIENZO LEER Nombres, CI, Sueldo SI Sueldo es mayor o igual a 575000 Bs. ENTONCES Impu Sueldo x 0,07 CASO CONTRARIO Impu Sueldo x 0,05 FIN DEL SI ESCRIBIR : Nombres, CI, Impu FIN DEL HAGA DESDE FIN del Algoritmo Impuestos

Material Recopilado y Diseado por Armando Carrero

21

b) Usando el tipo de ciclo REPITA MIENTRAS INICIO del Algoritmo Impuestos DEFINIR Nombres, CI, Sueldo, Contador, Impu Contador 0 REPITA MIENTRAS Contador sea menor a 45 COMIENZO LEER Nombres, CI, Sueldo SI Sueldo es mayor o igual a 575000 Bs. ENTONCES Impu Sueldo x 0,07 CASO CONTRARIO Impu Sueldo x 0,05 FIN DEL SI ESCRIBIR : Nombres, CI, Impu Contador Contador + 1 FIN DEL HAGA MIENTRAS FIN del Algoritmo Impuestos

c) Usando el tipo de ciclo REPITA HASTA INICIO del Algoritmo Impuestos DEFINIR Nombres, CI, Sueldo, Contador, Impu Contador 0 REPITA LEER Nombres, CI, Sueldo SI Sueldo es mayor o igual a 575000 Bs. ENTONCES Impu Sueldo x 0,07 CASO CONTRARIO Impu Sueldo x 0,05 FIN DEL SI ESCRIBIR : Nombres, CI, Impu Contador Contador + 1 HASTA QUE Contador sea mayor o igual a 45 FIN del Algoritmo Impuestos

Material Recopilado y Diseado por Armando Carrero

22

Você também pode gostar