+ All Categories
Home > Documents > Estructura Elemental de Datos

Estructura Elemental de Datos

Date post: 21-Feb-2016
Category:
Upload: ing-ana-zakelj
View: 222 times
Download: 0 times
Share this document with a friend
Description:
Diseño de algoritmos
26
UNIDAD 4.- ESTRUCTURA ELEMENTAL DE DATOS. DISEÑO DE ALGORITMOS. Cátedra: Fundamentos de Informática Departamento Ciencias Básicas - 1 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.
Transcript
Page 1: Estructura Elemental de Datos

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

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

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.

Page 2: Estructura Elemental de Datos

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

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

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:

Page 3: Estructura Elemental de Datos

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

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

A=4 A=B

B=17

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)

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

Page 4: Estructura Elemental de Datos

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

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

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. Inicio

2. Ingresar A, B, C

3. S = A + B + C

4. P = S/3

5. Mostrar P

6. 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

Page 5: Estructura Elemental de Datos

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

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

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.

Page 6: Estructura Elemental de Datos

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

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

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.

Page 7: Estructura Elemental de Datos

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

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

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.

INICIO

A,B,C

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

P

FIN

Page 8: Estructura Elemental de Datos

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

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

PRUEBA DE ESCRITORIO

A B C S P

3 4 5 12 4

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:

INICIO

A,B,C

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

P

FIN

Page 9: Estructura Elemental de Datos

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

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

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

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.

Page 10: Estructura Elemental de Datos

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

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

o Negativo: Llevar a cabo el plan.

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 otras soluciones?

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

Page 11: Estructura Elemental de Datos

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

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

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 objetos-

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. PROGRAMA EQUIVALENTE Son aquellos programas que producen iguales transformaciones de datos, es decir que para las mismas entradas producen idénticas salidas.

INICIO

B, H

A = B * H

A

FIN

Page 12: Estructura Elemental de Datos

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

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

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

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

Page 13: Estructura Elemental de Datos

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

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

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

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.

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”

CL

Trabajo

Verdadero Falso

INICIO

B, H

A=B*H/2

A

FIN

Page 14: Estructura Elemental de Datos

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

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

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.

Datos X: identificador que indica el valor del número entero ingresado. Resultado Mensajes: “X es positivo” “X no es positivo” Condiciones Vinculantes Si (X > 0) entonces “X es positivo” caso contrario “X no es positivo”

CL

Trabajo

Verdadero Falso

Trabajo

INICIO

X

FIN

x>0

“X es positivo”

INICIO

X

FIN

x>0

“X es positivo” “X no es positivo”

Page 15: Estructura Elemental de Datos

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

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

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.

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”

CL1

Trabajo1

Verdadero Falso

CL2

Trabajo2

Verdadero Falso

Page 16: Estructura Elemental de Datos

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

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

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”

Page 17: Estructura Elemental de Datos

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

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

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

Page 18: Estructura Elemental de Datos

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

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

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.

N

C=1

C<=N

X

C=C+1

FIN SI

NO

Page 19: Estructura Elemental de Datos

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

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

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.

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.

SI

N

C=1

C<=N

X

S=0

S=S+X

C=C+1

S

FIN

Page 20: Estructura Elemental de Datos

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

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

Page 21: Estructura Elemental de Datos

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

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

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

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=1

CP=0

C<=N

X

C=C+1

X >0

CP=CP+1

CP

N

FIN

NO

SI

NO SI

Page 22: Estructura Elemental de Datos

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

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

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

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

Page 23: Estructura Elemental de Datos

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

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

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

C<=N

X

C=C+1

X>may

may=X

FIN

may

NO

SI

SI NO

Page 24: Estructura Elemental de Datos

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

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

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=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

Page 25: Estructura Elemental de Datos

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

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

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.

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<=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

Page 26: Estructura Elemental de Datos

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

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

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.

X!=0

S=S+X

FIN

X

X

NO

SI

S

S = 0


Recommended