Professional Documents
Culture Documents
3 UNIDAD III LGICA ESTRUCTURADA: ESTRUCTURAS SECUENCIALES Objetivo: Aprender a utilizar las estructuras Secuenciales en el diseo de Solucin de problemas
INTRODUCCIN En la unidad anterior hemos aprendido a utilizar la metodologa para disear un algoritmo, y escribirlo en forma narrada. Ahora, estudiaremos la forma correcta de utilizar las estructuras secuenciales y representarlas mediante el uso de flujogramas. La correcta construccin de un esquema de una solucin es sumamente importante, porque a partir del mismo se escribe un programa en algn lenguaje de programacin. En esta unidad empezaremos a estructurar (o formar) nuestro mtodo para resolver problemas, con la metodologa propuesta en la Unidad II, de tal forma que todos podamos solucionar problemas y que comprendamos las soluciones de otros. I. LGICA ESTRUCTURADA: Es una tcnica de programacin, que nos ayuda a disear sistemticamente algoritmos libres de errores y que al ejecutarlos (o seguirlos) se obtenga la informacin requerida en el problema. Un algoritmo correcto es aquel que no tiene errores y adems hace lo que se espera que haga; es decir, que genere resultados correctos. Debemos recordar que un algoritmo consiste en un conjunto de pasos que se deben obedecer al pie de la letra para solucionar el problema, la tcnica de Lgica Estructurada consiste en resolver los problemas, o disear algoritmos, con nicamente tres posibles acciones: 1. Secuenciacin: Se obedece una orden tras otra, sin ninguna consideracin adicional. 2. Seleccin: Se elige una entre dos o ms alternativas posibles para obedecer. 3. Repeticin: Se repiten una o varias rdenes, las veces que sea necesario.
IAI-115
Ciclo I -2008
A stas posibles acciones se les conoce como Estructuras Lgicas de Control, ya que nos indican qu hacer en cada paso del algoritmo y cmo hacerlo. Las estructuras lgicas de control se dividen en: Secuenciacin Si_ Entonces_sino Mientras Seleccionar caso Desde_hasta Hacer hasta que
Fundamentales
Derivadas
Esas estructuras lgicas de control las iremos viendo una a una a nivel de diagrama de flujo y en cdigo de programacin (lenguaje C) II. DIAGRAMAS DE FLUJO O FLUJOGRAMA: 2.1 Definicin: Un DIAGRAMA DE FLUJO es una representacin visual o grfica de un algoritmo; est constituido bsicamente por una serie de bloques y flechas, cada uno de los cuales representa una operacin en particular y que estn normalizados por el Instituto Norteamericano de Normalizacin (ANSI). Ya que el Diagrama de Flujo permite visualizar la sucesin lgica de las operaciones de un proceso, debe expresar al menos: a) Los medios para entregar los datos al procesador (acciones de entrada) b) Los datos de salida requeridos (acciones de salida) c) Los pasos lgicos y aritmticos para resolver el problema (acciones de proceso). Las ventajas de la utilizacin, de Diagramas de Flujo son: a) Permiten expresar y comunicar un algoritmo en forma sencilla. b) Resultan de mucha utilidad en la planeacin, permitindonos, aclarar y comunicar la lgica a alguien ajeno al problema que se desea resolver. c) Permiten cierto grado de normalizacin en el diseo de soluciones, y d) Son flexibles, permiten hacer modificaciones. 2.2. Smbolos de los Diagramas de Flujo: Actualmente, se han desarrollado un gran nmero de smbolos estandarizados para facilitar la comunicacin; sin embargo, los ms usados son los siguientes: Smbolo Nombre Terminal Funcin
Representa el inicio o final del algoritmo.
IAI-115
Ciclo I -2008
Salida impresa
Entrada de datos
Indica que se alimentar con datos el algoritmo. Representa cualquier tipo de clculo matemtico o asignacin. Representan el orden o secuencia en el que se realizan las operaciones. Representa el punto donde se necesita tomar una decisin. (Proceso lgico).
Decisin
Conector
Representa una interrupcin en el diagrama de flujo, marca el punto donde se suspende el flujo y donde contina, en la misma pgina.
Conector de pgina
Similar al anterior, pero este comunica dos partes de un flujograma dibujadas en distintas pginas.
Salida grfica
Comentario
Expresa adicional.
una
explicacin
Repeticin
IAI-115
Ciclo I -2008
2.3
Reglas para la construccin de Diagramas de flujo (Flujogramas)1 Todo diagrama de flujo debe tener un inicio y un final. Las flechas de flujo del diagrama deben ser rectas, verticales y horizontales, y no deben cruzarse. Forma correcta
Todas las flechas de flujo deben estar conectadas al menos a un bloque del flujograma. El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha. Es necesario que cuando el diagrama de flujo es complejo, se utilicen comentarios que ayuden a comprenderlo. Si el diagrama de flujo requiere ms de una hoja para su construccin, se deben utilizar los conectores adecuados y enumerar las pginas convenientemente. No puede llegar ms de una flecha a un mismo bloque o smbolo.
No vlido
Vlido
2.4
IAI-115
Ciclo I -2008
Inicio Para efectuar el proceso, se recorre el Diagrama de Flujo desde su smbolo de inicio hasta llegar al smbolo de fin; la extensin de ese recorrido se denomina RANGO DEL DIAGRAMA. El proceso debe ser detallado utilizando los bloques o smbolos de la seccin 2.2, stos se pueden clasificar dentro de 3 tipos de estructuras: Estructuras Secuenciales Estructuras Selectivas Estructuras Repetitivas
Proceso
Fin
Nos dedicaremos por el momento a las estructuras secuenciales o bloques bsicos de secuenciacin. III. ESTRUCTURAS SECUENCIALES: 3.1 Bloques de Entrada de datos: El bloque de entrada de datos en un Diagrama de Flujo tendr bsicamente la forma siguiente:
Dentro del bloque deber aparecer: una sola variable, o una lista de variables separadas por comas correspondientes a los datos que se debern leer. Por ejemplo:
Ventas, Salario
Estos bloques deben ser interpretados como una instruccin para ejecutar los siguientes pasos: Leer los datos de entrada Asignar esos datos a las variables Ventas y Salario. 3.2 Bloques de Salida de Datos: El bloque de salida de datos en un Diagrama de Flujo, tendr bsicamente la forma siguiente:
IAI-115
Ciclo I -2008
Dentro del bloque debern aparecer los datos a imprimir o desplegar, separados por comas. Estos datos pueden ser: una o ms variables, una o ms constantes, o tambin mensajes entrecomillados o cadenas alfanumricas; adems,se pueden combinar constantes, variables y comentarios. Por ejemplo:
El precio es:, P
A, B, C
Estos bloques imprimen en orden de aparicin: 1. En papel, la frase El precio es: y seguidamente el valor asociado a la variable P 2. En papel: los valores asociados a las variables A,B.C 3. En pantalla: la palabra Nombre y el valor (o palabra) asociada a la variable Nom y la palabra Apellidos y el valor almacenado en la variable Ap. Al ejecutar, seguir u obedecer un bloque de salida de datos se realizan los siguientes pasos: 1. Escribir o imprimir los mensajes o comentarios que aparecen dentro del bloque, son los que estn entrecomillados. 2. Extraer de la memoria los valores asociados a las variables e imprimirlos. 3.3 Bloques de Asignacin: La instruccin de asignacin que aparece dentro de un bloque de asignacin tendr alguna de las siguientes formas:
Variable
Expresin
Variable = Expresin
IAI-115
Ciclo I -2008
Una Expresin es un conjunto de datos que se relacionan por medio de operadores; recordemos que los datos pueden ser constantes y/o variables, y que los operadores representan una accin matemtica como suma, resta, etc. La expresin que aparece al lado derecho de la flecha o signo = puede ser: a. Una constante: A 6.4 A = 6.4 Se le asigna el valor de 6.4 a A b. Una variable: D K D=K Se almacena el valor asociado a K, en D M 5 * (D+1) + A M = 5 * (D+1) +A Se ejecuta el clculo y el resultado se asigna a M
c. Un clculo:
Los tres anteriores son ejemplos de expresiones aritmticas, ya que solo realizan clculos matemticos. No son vlidas 5*(D+1) + A = M
3=5
El efectuar una instruccin de asignacin involucra los siguientes pasos: a. Se deben extraer de la memoria los valores actuales de las variables que aparezcan al lado derecho de la flecha. b. Si la expresin del lado derecho de la flecha o signo = involucra un clculo, ste deber ser evaluado. c. Finalmente, se asigna el valor de esta expresin a la variable que aparece al lado izquierdo de la flecha. No se debe olvidar que la asignacin es destructiva, cada vez que se asigna un nuevo valor a una variable, el valor anterior se destruye. 3.3.1 Operadores Aritmticos Los operadores aritmticos son signos que nos indican un clculo, como suma o multiplicacin, entre otros; a continuacin se presentan los que utilizaremos en esta asignatura, su representacin puede variar, de acuerdo al lenguaje de programacin que se utilice. La simbologa utilizada en los siguientes ejemplos esta basada en la sintaxis del Lenguaje de Programacin C: Operacin Cambio de Signo Multiplicacin Divisin Suma Resta Smbolo * / + Tipo de resultado Entero o real Entero o real real Entero o real Entero o real Ejemplo - (-2)=2 3*A A/B A+3 B2
IAI-115
Ciclo I -2008
Entero
7%2=1
2 3 cociente
3.3.2. Jerarqua. Las expresiones aritmticas que implican ms de un operador son evaluadas dependiendo de la jerarqua de los operadores. Operador
(Cambio de signo) -
*, /,% +, -
3.3.3. Reglas de jerarqua 1- Se ejecuta primero el operador de ms alta jerarqua. 2- Operadores que tienen igual jerarqua s evalan de izquierda a derecha. 3- Si existen expresiones encerradas entre parntesis, stas se evalan primero. 4- Si la expresin tiene parntesis, al evaluarlos se mantiene dentro de ellos la jerarqua y se ejecutan de izquierda a derecha. 5- Si existen parntesis anidados se evalan primero los parntesis ms internos. Ejemplo: Paso 1)
(7 * (10 - 5) % 3) * 4 + 9 5
Paso 2)
(7 * 5 % 3) * 4 +9 35
Paso 3)
(35 % 3) * 4 +9 2
Paso 4)
2 * 4 +9 8
Paso 5)
8 + 9 17
El resultado de la expresin es 17
IAI-115
Ciclo I -2008
3.3.4. Funciones Existen una serie de funciones que nos ayudan a efectuar clculos. En el lenguaje de programacin C, las ms utilizadas son las siguientes: Funcin abs (x) sqrt (X) sin (x) cos (x) tan (x) exp (X) log (X) log10 (X) pow (x,a) Descripcin Proporciona el valor absoluto de X Devuelve la raz cuadrada de X Devuelve el seno de x Devuelve el coseno de X Devuelve la tangente des X Devuelve el exponencial de X Devuelve el logaritmo natural de X (base e) Devuelve el logaritmo decimal de X (base 10) Devuelve el resultado de la potenciacin, donde x es la base y a es el exponente
3.3.5.
Jerarqua Total Nombre Parntesis Funciones Cambio de Signo Multiplicacin, divisin, Residuo de divisin Sumas y restas Prioridad Mayor
Operacin
()
*, /,% +, -
Menor
Nota: Los parntesis no son operadores, son signos de agrupacin y nos sirven para indicarnos que se debe realizar primero, es decir rompen la jerarqua para que se evale primero lo que est contenido dentro de stos.
IV. EJEMPLO DEL DISEO DE UN FLUJOGRAMA SIGUIENDO LA METODOLOGA PARA RESOLVER PROBLEMAS. Enunciado del problema: Escriba un algoritmo (y represntelo en un diagrama de flujo) que permita calcular la hipotenusa de un tringulo rectngulo si se conocen sus catetos.
IAI-115
Ciclo I -2008
Catetos del tringulo II. Anlisis del problema: C1: C2: H: H= C2 a. Definicin de Variables de salida: NOMBRE H TIPO Real
Hipotenusa
C1
C22
b. Definicin de Variables de Entrada: NOMBRE C1 C2 TIPO Real Real DESCRIPCIN Representa la longitud del cateto uno Representa la longitud del cateto dos
c. Restricciones: C1>0 y C2>0, para que pueda existir el tringulo. d. Proceso: X= Z= pow (C1, 2); X + Y; Y = pow (C2, 2) H = sqrt(Z)
e. Definicin de Variables de proceso: NOMBRE X Y TIPO Real Real DESCRIPCIN Almacena el cuadrado del cateto uno (C1) Almacena el cuadrado del cateto dos (C2)
IAI-115
10
Ciclo I -2008
Real
f. Definicin de Constantes: No se requieren, en este caso III. Diseo de la solucin: Flujograma Inicio
C1, C2
X = pow(C1, 2)
Y = pow(C2, 2)
Z=X+Y
H = sqrt ( Z )
C1, C2, La
hipotenusa es:,
Fin
Milagro 2008
IAI-115
11
Ciclo I -2008