Logo Studenta

Unidad_2 - DFD

¡Este material tiene más páginas!

Vista previa del material en texto

UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 1 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS . DISEÑO DE ALGORITMOS . 
 
OBJETIVOS : 
� Que el alumno comprenda el concepto de dato y las nociones básicas más importantes 
para la construcción de algoritmos, la forma de realizar cálculos y la noción de acción. 
� Que el alumno comience a formularse y resolver problemas, diseñando las estrategias 
correspondientes de manera clara, sistémica y por sobre todo sencilla, mediante el diseño 
de algoritmos. 
� Que el alumno logre aumentar la capacidad de reflexión, reforzando las conductas 
logradas mediante la Unidad 1.- 
 
TEMAS: 
2.1. La operación de asignación y de transferencia. 
2.2. Contadores, acumuladores, banderas. 
2.3. Concepto y definición de algoritmo. 
2.4. Su representación gráfica: el diagrama de flujo lógico. 
2.5. Símbolos utilizados. 
2.6. Ventajas de la diagramación. 
2.7. Prueba de escritorio. 
2.8. Pautas básicas para el diseño general de un algoritmo. 
2.9. El diseño descendente. 
2.10. El teorema fundamental de la programación estructurada. 
2.11. Estructuras: secuencial, de selección y repetición. 
 
 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 2 
 
2.1. LA OPERACIÓN DE ASIGNACIÓN Y OPERACIÓN DE TRANSFEREN CIA 
 
ASIGNACIÓN 
 La operación de asignación es la conocida del álgebra y por la cual una variable o constante 
recibe un valor. 
 El operador de asignación puede ser =, ←. 
 
Ejemplos: 
 A = 3 o A ← 3 
 A = “d” o A ← “d” 
 A = FALSO o A ← FALSO 
 
TRANSFERENCIA 
 La operación de transferencia es aquella por la cual se asigna valores a una variable. 
 Se clasifica en: 
���� Transferencia Unidireccional: Es aquella por la cual se asigna valor a una variable pero en 
un solo sentido. 
 
Ejemplo: 
A = 4 (operación de asignación) 
B = A (operación de transferencia por la cual B recibe el valor de A, ahora B también tiene 
el valor 4.) 
 
���� Transferencia Bidireccional: operación por la cual se intercambian los valores de dos 
variables en ambos sentidos. 
 
Ejemplo: 
A=4 
B=17 
 
La idea es intercambiar los valores de las variables de tal forma que: 
A=17 
B=4 
 
Si este intercambio se realiza con transferencias unidireccionales, tendríamos dos 
posibilidades: asignar primero el valor de B a A y luego el valor de A a B; o asignar primero 
el valor de A a B y luego el valor de B a A. En ambos casos se pierde siempre un valor, ya 
que al asignar el valor de una variable a la otra se borra el valor de la primera para que 
tome el valor de la segunda. Por lo cual se necesita indefectiblemente de una variable 
auxiliar, de tal manera que se realicen las siguientes operaciones: 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 3 
 
 
 
 
 
 
 A=4 A=B 
 B=17 
 
 
 
 
 
 
 AUX=A B=A UX 
 AHORA: A=17 
 B=4 
 
2.2. CONTADORES, ACUMULADORES , BANDERAS 
 Son variables auxiliares que se introducen en los problemas para permitir o facilitar su 
solución, de tal modo que entran en la categoría de Datos Variables Secundarios. 
 
CONTADOR 
Es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada 
iteración o ciclo de un proceso repetitivo. Se utiliza con frecuencia para contar la cantidad de 
veces que se debe repetir una tarea. 
Posee en general la siguiente sintaxis: 
IDENTIFICADOR = IDENTIFICADOR + CONSTANTE 
 
Por ejemplo: C = C + 1 
 
ACUMULADOR 
Es una variable cuyo valor se incrementa o decrementa en una cantidad variable en cada 
iteración o ciclo de un proceso repetitivo. Se utiliza con frecuencia para sumar una 
determinada cantidad de valores. 
 
Posee en general la siguiente sintaxis: 
IDENTIFICADOR = IDENTIFICADOR + VARIABLE 
 
Por ejemplo: S = S + X 
4 17 
A B 
Aux 
1 
4 17 
 4 1° 
A B 
Aux 
2 
 17 17 
4 
2° 
A B 
Aux 
3 
 17 4 
4 3° 
A B 
Aux 
4 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 4 
BANDERA 
Es una varible que puede cambiar de valor varias veces a lo largo de la ejecución de un 
proceso y que permite comunicar información de una parte a otra del mismo. En general toma 
un valor inicial y luego, de acuerdo al flujo del proceso de solución, va cambiando de valor; de 
tal modo que luego, según el valor que va tomando, permite desviar dicho flujo. 
Por ejemplo: 
IDENTIFICADOR = CONSTANTE1 (VALOR INICIAL) 
Si ocurre un suceso: IDENTIFICADOR = CONSTANTE2 
Si ocurre otro suceso: IDENTIFICADOR = CONSTANTE3 
 
2.3. CONCEPTO Y DEFINICIÓN DE ALGORITMO 
CONCEPTO: 
Proceso de metodización del plan heurístico de solución del problema. 
 
DEFINICIONES: 
� Método o procedimiento en que establece la secuencia de pautas a cumplir para realizar un 
determinado trabajo. 
� Conjunto de instrucciones que permiten obtener una salida (output) específica partiendo de 
una entrada (input) conocida. 
 
Según Donald Knuth (científico de computación), para que sea considerado un algoritmo 
informático debe cumplir las siguientes condiciones: 
1) SECUENCIAL : “Los pasos deben tener un orden perfectamente definido”. 
2) DEFINIDO: "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a 
llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso". 
3) GENERAL : “Al encararse la solución de un problema, ésta debe desarrollarse para la 
generalidad de los casos que pueden presentarse dentro del ámbito de validez de esa 
solución”. 
4) FINITO: "Un algoritmo siempre debe terminar después de un número finito de pasos". 
 
Ejemplo 1 : 
Realice el algoritmo para el siguiente enunciado: 
 
Ingresar tres valores enteros, calcule y muestre el promedio. 
 
1. Inicio 
2. Ingresar A, B, C 
3. S = A + B + C 
4. P = S/3 
5. Mostrar P 
6. Fin 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 5 
 
Ejemplo 2 : 
Indique si el siguiente algoritmo es o no un Algoritmo Informático: 
 
Ingresar dos valores enteros, calcule y muestre el cociente entre ambos valores. 
 
1. Inicio 
2. Ingresar A, B 
3. C = A/B 
4. Mostrar C 
5. Fin 
 
 El algoritmo anterior no es un algoritmo informáti co porque no cumple las condiciones 
de ser: 
� General: no cumple para la generalidad del universo de datos (B=0). 
� Definido: cuando B toma el valor cero, el resultado no está definido. 
 
 
2.4. SU REPRESENTACIÓN GRÁFICA : EL DIAGRAMA DE FLUJO LÓGICO 
Es un esquema para representar gráficamente un algoritmo. 
Se basan en la utilización de diversos símbolos para representar operaciones específicas. 
Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de 
flechas para indicar la secuencia de operación. 
Para hacer comprensibles los diagramas a todas las personas, los símbolos se someten a una 
normalización; es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario 
podía tener sus propios símbolos para representar sus procesos en forma de Diagrama de flujo. 
Esto trajo como consecuencia que sólo aquel que conocía sus símbolos, los podía interpretar. 
La simbología utilizada para la elaboración de diagramas de flujo se estandarizó a nivel 
mundial mediante la Organizacipon Internacional de Estándares (International Standards 
Organization) con la Norma ISO 1028 – Information Processing Flowchart Symbols - del año 1973 y 
en nuestro país el Instituto Argentino de Racionalización de Materiales con la Norma IRAM 36002 – 
Procesamiento Electrónico de Datos, Símbolos para la Representación Gráfica - del año 1975. 
 
2.5. SÍMBOLOS UTILIZADOS 
Existen diferentes símbolos utilizados en la diagramación, de los cuales podemos destacarcinco símbolos básicos mediante los que se puede representar cualquier algoritmo informático por 
muy complejo que éste sea. 
 
 
 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 6 
Estos símbolos son los siguientes: 
Símbolo Descripción 
 
Inicio / Terminación. Este símbolo se utiliza para señalar el comienzo así 
como el final de un diagrama. Tradicionalmente se colocan las palabras 
“INICIO” ó “FIN” dentro de la figura para hacerlo más explícito. 
Es el único símbolo que solamente tiene una conexión (flecha) ya sea de 
salida, en el de inicio, o de entrada, para el de fin. 
 
 
 
Entrada de datos. En este símbolo se indican la lectura de las variables 
primarias, dándole los valores iniciales que deberán recibir en el proceso. 
Esto se hace colocando los identificadores de dichas variables en el interior 
de la figura. El trapecio normalmente se utiliza para entrada por teclado y el 
paralelogramo para cualquier dispositivo de entrada. 
Este símbolo siempre deberá tener al menos una conexión entrante 
(generalmente del inicio) y una de salida. 
 
Proceso de datos. Este símbolo lo utilizaremos para señalar operaciones 
matemáticas, aritméticas o procesos específicos que se realicen con 
nuestros datos. 
La manera de anotar dichos procesos, puede ser mediante una descripción 
breve de la operación o mediante una asignación de dicha operación hacia 
una variable como por ejemplo: R = A + B 
Este símbolo siempre deberá tener al menos una conexión de entrada y una 
de salida. 
 
Decisión. Este símbolo nos representa una decisión. En su interior se anota 
una expresión lógica o pregunta que pueda ser evaluada como cierta o falsa 
y que determinará el flujo del programa. 
Este símbolo es el único que puede contener dos salidas y en cada una de 
las salidas se suele poner un rótulo de “si/no” indicando con esto cual de 
ellas se tomará según el resultado de la evaluación de la decisión. 
Es una buena práctica de diagramación utilizar siempre el mismo lado para 
el “si” siempre que esto sea posible, normalmente a la derecha. 
 
 
 
Desplegado de información. Este símbolo se utiliza para mostrar un 
resultado, el cual puede representar la solución al problema que se pretende 
resolver y que fue conseguida a través del resto del diagrama. 
Dentro de su interior se anotará el identificado del resultado o un valor 
constante que represente el mismo, acompañado de un mensaje aclaratorio. 
El primer símbolo se usa habitualmente para salida impresa y el otro para 
salida por monitor o pantalla. Este símbolo siempre deberá tener al menos 
una conexión de entrada y una de salida. 
 
En la diagramación, también contamos con una serie de símbolos auxiliares que no 
intervienen en el proceso del algoritmo, pero que pueden ser útiles para ayudarnos a dar claridad a 
nuestros diagramas, algunos de ellos son los siguientes: 
 
 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 7 
Símbolo Descripción 
 
Conector . Este símbolo se utiliza para indicar un salto dentro del diagrama. Se utiliza con el 
propósito de facilitar la disposición plana de un diagrama y evitar el cruce excesivo de líneas 
a través del mismo. 
Este conector va asociado a un conector “gemelo” y junto con él, representa una puerta de 
entrada y de salida para el flujo del diagrama, es decir que cuando una flecha termina en un 
conector marcado con la letra “A”, se continuará el diagrama a partir de otro conector 
marcado con la misma letra tal como si se tratara de una línea continua ininterrumpida. 
 
Conector de página . Este conector es idéntico en funcionamiento que el anterior, pero su 
forma pentagonal lo distingue y nos indica que debemos buscar el “gemelo” en una página 
distinta de la actual. Este conector lleva asociado una especie de salto entre páginas. 
 
Ejemplo : 
Realice el diagrama de flujo para el siguiente enunciado: 
 
Ingresar tres valores enteros, calcule y muestre el promedio. 
 
 
 
 
 
 
 
 
 
 
 
 
2.6. VENTAJAS DE LA DIAGRAMACIÓN 
� Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro 
humano reconoce fácilmente los dibujos. 
� De uso: Facilita su empleo. 
� De destino: Permite la correcta identificación de actividades. 
� De comprensión e interpretación: Simplifica su comprensión. 
� De simbología: Disminuye la complejidad y accesibilidad. 
� De diagramación: Se elabora con rapidez y no requiere de recursos sofisticados. 
 
 
 
INICIO 
A,B,C 
S=A+B+C 
P=S/3 
P 
FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 8 
2.7. PRUEBA DE ESCRITORIO 
La prueba de escritorio es una herramienta útil para entender que hace un determinado 
algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de 
ejecutarlo. 
Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se 
debe llevar registro de los valores que va tomando cada una de las variables involucradas en el 
mismo. 
La prueba de escritorio es una tabla en la cual en la primera fila se colocan todos los 
identificadores de las variables y constantes y a continuación se completa con los valores que 
toma cada una de ellas. 
 
Ejemplo : 
Realice la prueba de escritorio para el diagrama de flujo que responde al siguiente enunciado: 
 
Ingresar tres valores enteros, calcule y muestre el promedio. 
 
 
 
PRUEBA DE ESCRITORIO 
A B C S P 
3 4 5 12 4 
 
 
 
 
 
 
 
2.8. PAUTAS BÁSICAS PARA EL DISEÑO GENERAL DE UN ALGORITM O 
 Los principios de George Polya, nos llevan al conocimiento de una técnica ordenada para el 
conocimiento y comprensión de los problemas. 
 No existe un método para la resolución de problemas en forma metódica o mecánica, sin 
embargo los principios de este matemático brindan una serie de pautas para conducir nuestro 
pensamiento durante el proceso de solución de un problema, disponiendo así de un método 
heurístico para la resolución de problemas. 
ENUNCIADO GENERAL DE LOS PRINCIPIOS DE GEORGE POLYA 
1. Comprender el problema. 
2. Elaborar un plan. 
INICIO 
A,B,C 
S=A+B+C 
P=S/3 
P 
FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 9 
3. ¿Es un problema de computadora? 
o Afirmativo: Instrumentar el plan. 
o Negativo: Llevar a cabo el plan. 
4. Mirar hacia atrás. 
Gráficamente: 
 
1. Comprender el problema. 
1.1. ¿Cuáles son los output deseados? 
1.2. ¿Cuáles son los input necesarios? 
1.3. ¿Cuál o cuáles serían las condiciones vinculantes entre los output y los input? 
1.4. Dibujar una figura representativa esquematizando el enunciado del problema. 
1.5. Introducir una notación adecuada, a usar durante el desarrollo resolutivo del problema. 
1.6. Separar clara y adecuadamente las distintas partes del problema. 
2. Elaborar un Plan 
2.1. Encontrar conexiones entre los input y los output 
2.2. ¿Puede derivarse algo del uso de determinados input? 
2.3. Tal vez sea útil introducir algún problema auxiliar. 
2.4. Tratar de hacer una buena suposición. 
2.5. ¿Vió antes este problema? 
2.6. ¿Conoce Usted algún problema similar? 
2.7. Mirar lo desconocido. 
2.8. Tal vez convenga simplificar el problema tratando de acercarnos a la solución. 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 10 
3. ¿Es un problema de computadora? 
Revisar si cumple con las condiciones para que el algoritmo sea considerado informático: 
Secuencial – Definido – Finito – General. 
o Afirmativo: Instrumentar el plan, elaborando el algoritmo correspondiente. 
o Negativo: Llevar a cabo el plan utilizando otros medios. 
 
4. Mirar hacia atrás 
4.1.Revisar lo hecho y preguntarnos si podemos mejorar el plan. 
4.2. ¿Podríamos usar esta solución en otros problemas? 
4.3. ¿Puede usted controlar los resultados? 
4.4. En base a los estudios anteriores se podrían derivar los resultados en forma diferente? 
 
2.9. EL DISEÑO DESCENDENTE 
También denominado diseño Top-Down, o de arriba hacia abajo, ya que se refiere a ver una 
gran imagen del sistema y luego de explotarla en partes o subsistemas pequeños, tal como, se 
muestra en la siguiente figura. Esta forma de razonar la solución de un problema forma parte de las 
Técnicas de Programación Modular. 
El diseño descendente permite que el analista de sistemas logre primero los objetivos 
organizacionales generales. Luego, el analista se mueve para dividir el sistema en subsistemas y 
sus requerimientos. 
El diseño descendente es compatible con la manera de pensar sobre los sistemas en general. 
Cuando el analista de sistemas emplea un enfoque descendente, esta pensando acerca de las 
interdependencias de los subsistemas, tal como es en la organización existente. 
 
 
 
 
 
 
 
Dentro de las ventajas de la utilización de un enfoque descendente en el diseño de sistemas, 
se encuentra: 
� Evitar el caos originado al tratar de diseñar el sistema "en un solo paso". Como la planeación y 
la implementación de sistemas de información es increíblemente compleja. 
� Posibilidad de contar con grupos de analistas de sistemas trabajando por separado pero 
simultáneamente en subsistemas independientes, pero necesarios. Esto puede ahorrar una gran 
cantidad de tiempo. El trabajo de grupos integrados par el diseño subsistemas es 
particularmente conveniente para la búsqueda de asegurar la calidad total. 
 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 11 
Existen ciertos inconvenientes en el diseño descendente que el analista de sistemas debe 
mantener en mente. 
� Riesgo de que el sistema se divida en subsistemas "incorrectos". Se debe prestar atención a la 
necesidad dé la superposición y la distribución de los recursos, de tal forma que una 
participación de subsistemas tenga sentido en el esquema global del sistema. Además, es 
importante que cada subsistema se integre dé manera correcta al sistema. 
� Una vez que se realizan las divisiones en subsistemas, sus interfaces pueden descuidarse o 
simplemente ignorarse. La responsabilidad para lograr la adecuada interrelación debe quedar 
bien detallada. 
 
El enfoque descendente proporciona al grupo de sistemas una clara división establecida de los 
usuarios en fuerzas de tareas para los subsistemas. 
Los grupos asignados a las tareas establecidos por esta manera pueden tener una función 
doble, tal y como los círculos de control de calidad de los sistemas informáticos para la 
administración. 
 
 
2.10. EL TEOREMA FUNDAMENTAL DE LA PROGRAMACIÓN ESTRUCTURA DA 
 La técnica de la programación modular posee dos ventajas fundamentales: 
� Parcializar el estudio de la solución del problema, resolviendo el tema que plantea un 
determinado módulo. 
� Trabajar en equipo. 
 
Con el objetivo de formalizar la representación de cada módulo definiremos los siguientes 
conceptos, dentro de las Técnicas de Programación Estructurada: 
 
PROGRAMA 
Es un conjunto ordenado de instrucciones que permiten transformar los datos de entrada en datos 
de salida. 
 
PROGRAMA PROPIO 
Es aquel que posee un solo punto de entrada y uno de salida para controlar el programa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
INICIO 
B, H 
A = B * H 
A 
FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 12 
PROGRAMA EQUIVALENTE 
Son aquellos programas que producen iguales transformaciones de datos, es decir que para las 
mismas entradas producen idénticas salidas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
TEOREMA FUNDAMENTAL DE LA PROGRAMACIÓN ESTRUCTURADA 
 
“Todo programa propio puede ser sustituido por un programa equivalente que tenga 
únicamente como estructuras lógicas las siguientes estructuras básicas: 
1. Secuencial, 
2. Condicional, de Decisión o Selección, 
3. Repetición o Iteración” 
 
La Filosofía de la Programación Estructurada se basa en 3 pautas fundamentales: 
 
1. Estructuras Básicas. 
2. Recursos abstractos. 
3. Razonamiento Top-Down o Diseño Descendente. 
 
 
2.11. ESTRUCTURAS: SECUENCIAL, DE SELECCIÓN Y REPETICIÓN 
 
ESTRUCTURA SECUENCIAL 
Representa una secuencia simple de problemas de evaluación, se representa esquemáticamente 
usando bloques convencionales de procesos de datos. 
 
 
 
 
 
 
 
 
Trabajo1 
Trabajo2 
Trabajo3 
INICIO 
A, B,C 
S=A+B+C 
P=S/3 
P 
FIN 
INICIO 
A,B,C 
P=(A+B+C)/3 
P 
FIN 
PROGRAMAS 
EQUIVALENTES 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 13 
Ejemplo 1 : 
Introduzca la altura y la base de un triángulo, encuentre y muestre el área del mismo. 
 
Resultado 
A: identificador que indica el valor del área del triángulo. 
 
Datos 
B: identificador que indica la base del triángulo. 
H: identificador que indica la altura del triángulo. 
 
Condiciones Vinculantes 
Fórmula del área: A = B * H / 2 
 
 
 
 
 
 
 
 
 
 
 
ESTRUCTURA DE SELECCIÓN 
Su uso es evidente en los casos en los cuales se necesita bifurcar la solución por dos caminos 
alternativos de acuerdo a alguna condición lógica. 
 
Las estructuras de selección pueden ser: 
 
1. Selección Simple 
2. Selección Doble 
3. Selección Múltiple 
 
 
� Estructura de Selección Simple 
 
 
 
 
Esta estructura presenta trabajo 
por una sola rama, generalmente 
por la rama cuyo resultado de la 
condición lógica es verdadero. 
 
 
 
 
 
CL 
Trabajo 
Verdadero Falso 
INICIO 
B, H 
A=B*H/2 
A 
FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 14 
Ejemplo 1 : 
Introduzca un número entero e indique si el mismo es positivo. 
 
Resultado 
Mensaje que indica “X es positivo” 
 
Datos 
X: identificador que indica el valor del número entero ingresado. 
 
Condiciones Vinculantes 
Si (X > 0) entonces “X es positivo” 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
� Estructura de Selección Doble 
 
Esta estructura presenta 
trabajo por ambas ramas. 
 
 
Ejemplo 1 : 
Introduzca un número entero e indique si el mismo es positivo o no lo es. 
 
Resultado 
Mensajes: 
“X es positivo” 
“X no es positivo” 
 
Datos 
X: identificador que indica el valor del número entero ingresado. 
 
CL 
Trabajo 
Verdadero Falso 
Trabajo 
INICIO 
X 
FIN 
x>0 
“X es positivo” 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 15 
Condiciones Vinculantes 
Si (X > 0) entonces “X es positivo” 
 caso contrario “X no es positivo” 
 
 
 
 
 
 
 
 
 
 
� Estructura de Selección Múltiple 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
La estructura de selección múltiple presenta condiciones lógicas anidadas, es decir que por 
una o por varias ramas existen también otras condiciones lógicas. Este es un ejemplo de una 
estructura de selección múltiple. 
 
Ejemplo 1 : 
Introduzca las coordenadas de un punto en el plano, e indique a qué cuadrante pertenece dicho 
punto. 
 
Resultados 
Mensajes: 
“I cuadrante” 
“II cuadrante” 
“III cuadrante” 
“IV cuadrante” 
 
Datos 
X: identificador que indica el valor de la abscisas del número ingresado. 
Y: identificador que indica el valor de las ordenadas del número ingresado. 
 
 
CL1 
Trabajo1 
Verdadero Falso 
CL2 
Trabajo2 
Verdadero Falso 
INICIO 
X 
FIN 
x>0 
“X es positivo” “X no es positivo” 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 16 
Condiciones Vinculantes 
(X > 0) and (Y > 0) ⇒ “I cuadrante”(X < 0) and (Y > 0) ⇒ “II cuadrante” 
(X < 0) and (Y < 0) ⇒ “III cuadrante” 
(X > 0) and (Y < 0) ⇒ “IV cuadrante” 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Toda estructura de selección múltiple que se abre a lo ancho puede ser representada por una 
estructura más simple pero cuyas condiciones lógicas serán expresiones compuestas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
INICIO 
X, Y 
“I cuadrante” 
X>0 and Y>0 
FIN 
“II cuadrante” 
X<0 and Y>0 
“III cuadrante” 
X<0 and Y<0 
“IV cuadrante” 
X>0 and Y<0 
INICIO 
X, Y 
X>0 
FIN 
Y>0 
Y<0 
“IV 
cuadrante” 
“I 
cuadrante” 
X<0 
Y>0 
Y<0 
“ III 
cuadrante” 
“II 
cuadrante” 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 17 
CL 
Trabajo 
No 
Si 
CL 
Trabajo 
Si 
No 
ESTRUCTURA DE REPETICIÓN O ITERACIÓN 
El manejo de la vida diaria nos hace repetir determinadas operaciones, como por ejemplo para 
encontrar el resultado de la multiplicación de 2x3 se debe sumar 2 veces el número 3 ó 3 veces el 
número 2. Es en estos casos en los cuales tienen su aplicación estas estructuras. 
Las estructuras de iteración y las reglas de funcionamiento de cada una de ellas son: 
1. Estructura While do 
2. Estructura Repeat Until 
 
 
� Estructura While 
� La expresión lógica se evalúa antes de la ejecución del bucle. Si la condición es verdadera 
se ejecuta las acciones incluidas en el bucle, caso contrario el control pasa a la sentencia 
siguiente al lazo. 
� Si la expresión lógica no se cumple cuando se ejecuta el bucle por primera vez, el conjunto 
de acciones del lazo no se ejecuta nunca. 
� Mientras la expresión lógica se cumpla el bucle se ejecuta. 
 
 
 
 
 
 
 
 
 
 
 
� Estructura Repeat Until 
� La expresión lógica se evalúa luego de ejecutarse todas 
las sentencias del bucle. 
� Si la expresión lógica es falsa, se repite el bucle 
ejecutándose nuevamente todas las acciones incluidas en 
él. 
� Si la expresión lógica es cierta, se interrumpe la 
ejecución del bucle y se transfiere el control a la 
sentencia siguiente a Until. 
 
 
 
Esta estructura tiene su correspondiente en Lenguaje C, es 
la estructura Do while . Con la diferencia que en ella siempre 
se ejecuta el trabajo y se repite el mismo si la condición es 
verdadera. 
 
 
 
 
 
CL 
Trabajo 
Si 
No 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 18 
Dentro de los problemas que se pueden resolver con estas estructuras encontramos: 
1. Problemas donde se conoce la cantidad de veces que se repite el ciclo. 
Generalmente N. 
2. Problemas donde NO se conoce la cantidad de veces que se repite el ciclo. 
3. Problemas de generación de valores. 
 
 
1. PROBLEMAS DONDE SE CONOCE LA CANTIDAD DE VECES QUE S E REPITE EL CICLO . 
 
Ejemplo 1 : 
Introduzca N números enteros. 
 
Se tratará de determinar en este problema cuáles son los datos y cuáles los resultados. En este 
caso particular se poseen datos pero no resultados, ya que no se especifica un trabajo con ellos. 
 
 
 
Para tener en cuenta : Cuando se utiliza en el enunciado de un problema alguna de las 
siguientes palabras: “introduzca”, “ingrese”, o “cargue”, se hace referencia a los datos del 
mismo; mientras que cuando se expresa “muestre”, “averigüe”, “de a conocer”, “obtenga”, o 
“se necesita saber”, estamos señalando cuáles son los resultados requeridos. 
 
Datos 
N: identificador que indica la cantidad de números a Ingrese. 
X: identificador que indica a cada uno de los números. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ejemplo 2 : 
Introduzca N números enteros y muestre la suma de los mismos. 
 
Resultado 
S: identificador que indica la suma de los valores introducidos. 
N 
C=1 
C<=N 
X 
C=C+1 
FIN SI 
NO 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 19 
 
Datos 
N: identificador que indica la cantidad de números a ingresar. 
X: identificador que indica a cada uno de los números. 
 
 
Cabe señalar que al diagrama del punto anterior lo único que se agrega es una variable 
acumulador. 
 
Variable ACUMULADOR : este tipo de variable debe ser inicializada con el valor neutro de 
la operación en la que intervenga: 0 (cero) si se intenta sumar ó 1 (uno) si se pretende 
acumular sucesivos productos. 
Expresiones generales en la que interviene: 
S:=S+X, donde S es la variable acumulador de la suma y X es la variable numérica que 
modifica el valor de S. 
F:= F*X donde F es la variable acumulador del producto y X es la variable que modifica el 
valor de F. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ejemplo 3 : 
Introduzca N números enteros y muestre el promedio de los mismos. 
 
Resultado 
P: identificador que indica el promedio de los valores introducidos. 
 
Datos 
N: identificador que indica la cantidad de números a ingresar. 
X: identificador que indica a cada uno de los números. 
SI 
N 
C=1 
C<=N 
X 
S=0 
S=S+X 
C=C+1 
S 
FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 20 
 
Condiciones Vinculantes 
 
Las condiciones vinculantes son aquellas acciones necesarias de realizar con los datos 
que brinda el problema para conseguir los resultados esperados. Algunas de estas 
operaciones pueden ser evaluaciones o decisiones. 
 
En nuestro caso particular, las condiciones vinculantes son dos: 
1) realizar la suma de los números ingresados y luego 
2) realizar el cociente entre la suma y N para obtener el promedio aritmético, previa 
verificación que N sea distinto de 0 (cero), ya que en este caso se produciría un error de 
tipo lógico. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
N 
C=1 
C<=N 
X 
C=C+1 
S=0 
 
S=S+X 
P=S/N 
P 
 N!=0 
‘No se puede 
realizar la 
división por 
cero’ 
N
O 
N
O 
SI 
SI 
 FIN 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 21 
 
Ejemplo 4 : 
Introduzca N números enteros y muestre la cantidad de números positivos ingresados. 
 
Resultado 
CP: identificador que indica la cantidad de números positivos introducidos. 
 
Datos 
N: identificador que indica la cantidad de números a ingresar. 
X: identificador que indica a cada uno de los números. 
 
En este caso se solicita determinar la cantidad de números positivos, por lo tanto es 
necesario introducir una variable contador para este propósito. Esta variable se incrementará 
en una unidad cada vez que se ingrese un número positivo. 
 
Condiciones Vinculantes 
 
Condición lógica para saber si un número N es posit ivo: N>0 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ejemplo 5 : 
Introduzca N números enteros y muestre el porcentaje de números positivos ingresados. 
 
Resultado 
P: identificador que indica el porcentaje de números positivos introducidos. 
C=1 
CP=0 
C<=N 
X 
C=C+1 
X >0 
CP=CP+1 
CP 
N 
FIN 
NO 
SI 
NO SI 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 22 
 
Datos 
N: identificador que indica la cantidad de números a ingresar. 
X: identificador que indica a cada uno de los números. 
 
Condiciones Vinculantes 
Para calcular porcentajes siempre este debe ser con respecto a algo, en este caso nos piden 
sobre los números positivos, para la cual se debe acumular por un lado estos números y 
contar la cantidad de ellos; para tal fin se deben introducir dos variables una acumulador y otra 
contador. 
La fórmula del porcentaje se consigue con una regla de tres simple en donde se considera que 
la Cantidad Total de Valores N es el 100%, mientras que el porcentaje solicitado se calcula con 
respecto al valor de la variable contador. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
N 
C=1 
 
CP=0 
 
C<=N 
X 
C=C+1 
FIN 
X >0 
CP=CP+1 
P 
P=CP*100/N 
SI 
SI 
NO 
NO 
N > 0 
SI N
O 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 23 
 
Ejemplo 6 : 
Introduzca N valores enteros y positivos , determine el mayor de ellos. 
 
Resultado 
may: identificador que indica el mayor valor. 
 
Datos 
N: identificador que indica la cantidad de números a ingresar. 
X: identificador que indica a cada uno de los números. 
 
Condiciones Vinculantes 
Para poder encontrar el mayor valor se puede realizar de dos formas: 
a) Como es este caso se conoce el rango de los números pues se sabe que son enteros y 
positivos, se puede asignar a la variable mayor el menor valor posible dentro del rango de 
esos números (0 cero) ya que cualquier valor posterior será mayor al valor asignado 
inicialmente. 
 
b) Cuando no conocemos el rango de valores de los números el procedimiento correcto es 
asignar el primer valor ingresado a la variable mayor, para que a partir de ella se puedan 
comenzar a realizar las comparaciones. 
 
En este punto se realizará el procedimiento indicado en a) ya que se conoce el rango de los 
números. 
 
De igual forma se puede encontrar el menor de los N valores ingresados. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
N 
C=1 
may=0 
C<=N 
X 
C=C+1 
X>may 
may=X 
FIN 
may 
NO 
SI 
SI NO 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 24 
 
Ejemplo 7 : 
Introduzca N valores y determine el mayor de ellos. 
 
En este caso que sería el punto b) explicado en el ejercicio anterior, no se conoce el rango de 
validez de los valores por lo que se asigna el primer valor ingresado a la variable mayor. 
 
Resultado 
may: identificador que indica el mayor valor 
 
Datos 
N: identificador que indica la cantidad de números a Ingrese. 
X: identificador que indica a cada uno de los números. 
 
Condiciones Vinculantes 
Comparaciones del valor may con cada uno de los números ingresados. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
C=1 
 
C<=N 
X 
C=C+1 
FIN 
C == 1 
may 
X>may 
may=X 
N!=0 
SI NO 
NO SI 
NO 
SI 
SI 
NO 
N 
may=X 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 25 
 
Ejemplo 8 : 
Introduzca N valores y determine el mayor de ellos y en qué posición se encuentra. 
 
En este caso lo único que hay que agregar al diagrama anterior es una variable que indique en 
posición ingresó el mayor valor, lo cual está indicado por la variable contadora C. 
 
 
Resultado 
may: identificador que indica el mayor valor 
pos: posición que indica el mayor valor 
 
Datos 
N: identificador que indica la cantidad de números a Ingrese. 
X: identificador que indica a cada uno de los números. 
 
Condiciones Vinculantes 
Comparaciones del valor may con cada uno de los números ingresados, conservando el mayor 
valor y la posición en que ingresa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
C<=N 
X 
C:=C+1 
C = = 1 
may:=X 
pos:=C; 
X>may 
may:=X 
pos:=C; 
SI NO 
NO SI 
SI 
FIN 
may,pos 
N!=0 
NO 
SI NO 
N 
C = 1 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 26 
 
 
2. PROBLEMAS DONDE NO SE CONOCE LA CANTIDAD DE VECES QUE SE REPITE EL CI CLO. 
 
Ejemplo 1 : 
Introduzca una cantidad no determinada de valores, cuyo final está determinado por el valor cero, y 
determine la suma de ellos. 
 
En este caso los valores se introducen pero al no conocerse la cantidad de valores que se 
deben Ingrese no se puede poner un contador para que gobierne el corte de control del ciclo de 
iteración ya que no tenemos N (que era la cantidad de valores) con quien comparar; por lo cual 
este corte de control es gobernado por una condición de negación a la dada en el ciclo mientras 
se utiliza una estructura While. En este ejemplo la condición de corte será: X<>0. 
 
Resultado 
S: Suma de los valores ingresados 
 
Dato 
X: identificador que indica a cada uno de los números. 
 
Condiciones Vinculantes 
Fórmula del acumulador, para incrementar el valor ingresado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
X!=0 
S=S+X 
FIN 
X 
X 
NO 
SI 
S 
S = 0 
UNIDAD 2.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 
Cátedra: Algoritmos y Estructuras de Datos – Departamento Sistemas - 27 
 
3. PROBLEMAS DE GENERACIÓN DE VALORES . 
 
Ejemplo 1 : 
Genere los números impares menores a 100 y dé a conocer la suma de ellos. 
 
En este caso los valores no se introducen se generan de acuerdo a una determinada fórmula 
que se da en el enunciado del problema o que es ya conocida, como en este caso donde se 
sabe que se comienza con el número 1 y los demás se generan sumándole el valor 2 (dos) al 
número anterior. Además se conoce la cantidad de valores que se deben generar por lo que se 
puede poner un contador para que gobierne el corte de control del ciclo de iteración. En este 
ejemplo la condición de corte será: C<=100. 
 
Resultado 
S: Suma de los valores generados. 
 
Dato 
No se poseen datos pues no se ingresa ninguna variable, todos los valores deben ser 
generados. 
 
Condiciones Vinculantes 
Se comienza con el contador C=1 y se lo incrementa de a dos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
C:=1 
S:=0 
C<=1
S=S+C 
C=C+2 
S 
FIN

Continuar navegando

Materiales relacionados

230 pag.
MATLAB_PROGRAMACION

UNIP

User badge image

Maria Alejandra Tamayo Medina

48 pag.
UNIDAD 1 - Denii Amaya

User badge image

Desafío COL y ARG Veintitrés

22 pag.
Diseño de algoritmos mediante diagramas de Nassi

SIN SIGLA

User badge image

Edson Ezequiel Andy Jipa