Issuu on Google+

UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. UNIDAD 4.- 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 del alumno, reforzando las conductas logradas mediante la Unidad 1.TEMAS: 4.1. Tipos elementales de datos: constantes y variables. 4.2. La operación de asignación y operación de transferencia. 4.3. Contadores, acumuladores, banderas. 4.4. Concepto y definición de algoritmo. 4.5. Su representación gráfica: el diagrama de flujo lógico. 4.6. Símbolos utilizados. 4.7. Ventajas de la diagramación. 4.8. Prueba de escritorio. 4.9. Pautas básicas para el diseño general de un algoritmo. 4.10. El diseño descendente. 4.11. El teorema fundamental de la programación estructurada. 4.12. Estructuras: secuencial, de selección y repetición.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 1


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 2.1. TIPOS ELEMENTALES DE DATOS: CONSTANTES Y VARIABLES El nombre que reciben los datos se denominan identificadores. Las constantes y variables son nombradas a través de identificadores. Las constantes reciben un valor al inicio del programa y el mismo no cambia durante el transcurso del programa. Las variables contienen valores que pueden cambiar durante la ejecución del programa. 2.2. LA OPERACIÓN DE ASIGNACIÓN Y OPERACIÓN DE TRANSFERENCIA 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 =, <=. Ejemplo: A=3 A = “d” 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 se realizan transferencias unidireccionales se pierde siempre un valor, por lo cual se necesita indefectiblemente de una variable auxiliar, de tal manera de realizar las siguientes operaciones:

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 2


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. A 1

B

4

17

A 3

17

A=4 B=17

17

A=B

A

B

4

17

B

4 Aux

Aux

2

4

A

B

17

4 3°

4 Aux

4 Aux

AUX=A

B=AUX AHORA: A=17 B=4

2.3. CONTADORES, ACUMULADORES, BANDERAS Todas éstas son tipos de variables. CONTADOR Cuenta vueltas o ciclos de repetición para poder comparar con los ciclos que se realizan. Posee en general la siguiente sintaxis: IDENTIFICADOR = IDENTIFICADOR + CONSTANTE C=C+1 ACUMULADOR Suma una determinada cantidad de valores. Sirve para acumular valores en forma progresiva, reteniendo siempre el último valor o resultado de ese proceso de acumulación. Posee en general la siguiente sintaxis: IDENTIFICADOR = IDENTIFICADOR + VARIABLE S=S+X BANDERA Es aquella que el programador utiliza para hacer posible el proceso de la solución en aquellos casos que sea necesario desviar convenientemente el flujo de la solución. En general se le da un valor inicial, el cual cambia después de una determinada condición: IDENTIFICADOR = CONSTANTE (VALOR INICIAL)

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 3


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 2.4. CONCEPTO Y DEFINICIÓN DE ALGORITMO CONCEPTO: Proceso de metodización del proceso heurístico. 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. 2. 3. 4. 5. 6.

Inicio Ingresar A, B, C S=A+B+C P = S/3 Mostrar P Fin

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

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 4


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 4. Mostrar C 5. Fin El algoritmo anterior no es un algoritmo informático 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.5. 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 es variable y debe ajustarse a un patrón definido previamente. 2.6. SÍMBOLOS UTILIZADOS Existen diferentes símbolos utilizados en la diagramación, de los cuales podemos destacar cinco símbolos básicos con los cuales se puede representar prácticamente cualquier algoritmo informático por muy complejo que éste sea.

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 los valores iniciales que deberá recibir el proceso. Esto se hace asignándoles letras o nombres de variables para cada uno de los valores y anotando estas letras en el interior de la figura. Este símbolo siempre deberá tener al menos una conexión entrante (generalmente del inicio) y una de salida.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 5


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 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 instrucción o pregunta que pueda ser evaluada como cierta o falsa y que determine 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 los positivos siempre que esto sea posible. 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á la variable con el resultado final o el mensaje que represente el resultado del algoritmo. 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: 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.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 6


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. INICIO

A,B,C

S=A+B+C P=S/3 P

FIN

2.7. 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. 2.8. 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.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 7


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. INICIO

PRUEBA DE ESCRITORIO

A,B,C

A

B

C

S

P

3

4

5

12

4

S=A+B+C P=S/3 P

FIN

2.9. PAUTAS BÁSICAS PARA EL DISEÑO GENERAL DE UN ALGORITMO 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. 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:

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 8


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS.

1. Comprender el problema. 1.1. ¿Cuáles son los input? 1.2. ¿Cuáles son los output deseados? 1.3. ¿Cuál o cuáles serían las condiciones vinculantes? 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. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8.

Encontrar conexiones entre los input y los output ¿Puede derivarse algo del uso de determinados input? Tal vez sea útil introducir algún problema auxiliar. Tratar de hacer una buena suposición. ¿Vió antes este problema? ¿Conoce Usted algún problema similar? Mirar lo desconocido. Tal vez convenga simplificar el problema tratando de acercarnos a la solución.

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. Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 9


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. o Negativo: Llevar a cabo el plan.

4. Mirar hacia atrás 4.1. 4.2. 4.3. 4.4.

Revisar lo hecho y preguntarnos si podemos mejorar el plan. ¿Podríamos usar esta solución en otras soluciones? ¿Puede usted controlar los resultados? En base a los estudios anteriores se podrían derivar los resultados en forma diferente?

2.10. 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. 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:  E 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 del aseguramiento de la calidad total. 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.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 10


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS.  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.11. EL TEOREMA FUNDAMENTAL DE LA PROGRAMACIÓN ESTRUCTURADA La técnica de la programación estructurada tiende a elaborar sus programas en forma modulas, lo cual posee dos ventajas:  Parcializar el estudio de la solución del problema, resolviendo el tema que plantea un determinado módulo.  Trabajar en equipo. Pero el correr de los tiempos exige que se avance rápidamente; es así que en la década de los 90 se habla de la programación orientada a objetosPROGRAMA 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

PROGRAMA EQUIVALENTE Son aquellos programas que producen iguales transformaciones de datos, es decir que para las mismas entradas producen idénticas salidas.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 11


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. INICIO

INICIO

A, B,C

A,B,C

S=A+B+C P=S/3

PROGRAMAS EQUIVALENTES

P=(A+B+C)/3

P

P

FIN

FIN

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 o razonamiento. 3. Razonamiento Top-Down o Diseño Descendente.

2.12. 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. Trabajo1

Trabajo2

Trabajo3

Ejemplo 1: Introduzca la altura y la base de un triángulo, encuentre y muestre el área del mismo. Datos B: identificador que indica la base del triángulo. Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 12


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. H: identificador que indica la altura del triángulo. Resultado A: identificador que indica el valor del área del triángulo. Condiciones Vinculantes Fórmula del área: A = B * H / 2

INICIO

B, H

A=B*H/2

A

FIN

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 Verdadero

Falso

CL Trabajo

Esta estructura presenta trabajo por una sola rama, generalmente por la rama cuyo resultado de la condición lógica es verdadero.

Ejemplo 1: Introduzca un número entero e indique si el mismo es positivo. Datos X: identificador que indica el valor del número entero ingresado. Resultado Mensaje que indica “X es positivo”

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 13


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. Condiciones Vinculantes Si (X > 0) entonces “X es positivo” INICIO

X

x>0 “X es positivo”

FIN

 Estructura de Selección Doble Verdadero

Falso

CL Esta estructura presenta trabajo por ambas ramas.

Trabajo

Trabajo

Ejemplo 1: Introduzca un número entero e indique si el mismo es positivo o no lo es. Datos X: identificador que indica el valor del número entero ingresado. Resultado Mensajes: “X es positivo” “X no es positivo” INICIO

Condiciones Vinculantes Si (X > 0) entonces “X es positivo” caso contrario “X no es positivo”

X

x>0 “X no es positivo”

“X es positivo”

FIN

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 14


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS.  Estructura de Selección Múltiple Falso

Verdadero CL1

Falso

Verdadero

Trabajo1

CL2

Trabajo2

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. 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. Resultado Mensajes: “I cuadrante” “II cuadrante” “III cuadrante” “IV cuadrante” Condiciones Vinculantes Condiciones para determinar a qué cuadrante pertenece el punto (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”

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 15


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS.

INICIO

X, Y

X>0 X<0

Y>0 “I cuadrante”

Y<0

Y>0

“IV cuadrante”

“II cuadrante”

Y<0 “III cuadrante”

FIN

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

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”

FIN

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 16


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS.

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, que son las que trataremos en el presente trabajo práctico. 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.

CL

No

Si Trabajo

 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 é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.

Trabajo en CL

Si

No

Trabajo

CL Si

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 17

No


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 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 SE 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. N

C=1 NO C<=N SI

FIN

X

C=C+1

Ejemplo 2: Introduzca N números enteros y muestre la suma de los mismos. Datos N: identificador que indica la cantidad de números a ingresar. Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 18


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. X: identificador que indica a cada uno de los números. Resultado S: identificador que indica la suma de los valores introducidos. 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. S=0

N

C=1

C<=N SI S X

S=S+X C=C+1

FIN

Ejemplo 3: Introduzca N números enteros y muestre el promedio de los mismos. Datos N: identificador que indica la cantidad de números a ingresar. X: identificador que indica a cada uno de los números. Resultado P: identificador que indica el promedio de los valores introducidos.

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 19


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 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.

S=0

N

C=1

N O

C<=N SI X

S=S+X C=C+1

N O

N!=0

SI

P=S/N ‘No se puede realizar la división por cero’

P

FIN

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 20


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. Ejemplo 4: Introduzca N números enteros y muestre la cantidad de números positivos ingresados. Datos N: identificador que indica la cantidad de números a ingresar. X: identificador que indica a cada uno de los números. Resultado CP: identificador que indica la cantidad de números positivos introducidos. 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 positivo:

N>0

N

C=1 CP=0 NO

C<=N SI

CP

X FIN NO

X >0

SI

CP=CP+1

C=C+1

Ejemplo 5: Introduzca N números enteros y muestre el porcentaje de números positivos ingresados. Datos N: identificador que indica la cantidad de números a ingresar. Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 21


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. X: identificador que indica a cada uno de los números. Resultado P: identificador que indica el porcentaje de números positivos introducidos. 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 NO

C<=N SI

X SI NO

X >0 CP=CP+1

C=C+1

N O

N>0

SI P=CP*100/N P

FIN

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 22


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. Ejemplo 6: Introduzca N valores enteros y positivos, determine el mayor de ellos. Datos N: identificador que indica la cantidad de números a ingresar. X: identificador que indica a cada uno de los números. Resultado may: identificador que indica el mayor valor. 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 NO

C<=N SI

may X FIN NO

X>may

SI

may=X

C=C+1

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 23


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 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. Datos N: identificador que indica la cantidad de números a Ingrese. X: identificador que indica a cada uno de los números. Resultado may: identificador que indica el mayor valor Condiciones Vinculantes Comparaciones del valor may con cada uno de los números ingresados. N C=1

NO

C<=N NO SI

N!=0

X

NO NO

X>may

C == 1 SI

SI

may

SI

may=X

FIN

may=X

C=C+1

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. Datos Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 24


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. N: identificador que indica la cantidad de números a Ingrese. X: identificador que indica a cada uno de los números. Resultado may: identificador que indica el mayor valor pos: posición que indica el mayor valor 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=1 N

NO

C<=N

NO

SI

SI N!=0

X

NO

may,pos

SI C==1

NO

X>may

SI

FIN

may:=X pos:=C;

may:=X pos:=C;

C:=C+1

2. PROBLEMAS DONDE NO SE CONOCE LA CANTIDAD DE VECES QUE SE REPITE EL CICLO. 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

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 25


UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. 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. Dato X: identificador que indica a cada uno de los números. Resultado S: Suma de los valores ingresados Condiciones Vinculantes Fórmula del acumulador, para incrementar el valor ingresado. S=0 X NO X!=0 SI S S=S+X

X

FIN

Cátedra: Fundamentos de Informática – Departamento Ciencias Básicas - 26


Estructura Elemental de Datos