2 - Apunte Diagrama DE Bloques Algoritmos PDF

Title 2 - Apunte Diagrama DE Bloques Algoritmos
Author Humberto Sanchez
Course Elementos de Programación
Institution Universidad Nacional de Salta
Pages 20
File Size 653 KB
File Type PDF
Total Downloads 2
Total Views 139

Summary

DIAGRAMA DE BLOQUES ALGORITMOS
Una de las herramientas utilizadas para diseñar algoritmos se conoce como Diagramas de Bloques. Un diagrama de bloques es una representación gráfica para un algoritmo. Se dice que el diagrama es de bloques “estructurado” porque constituye una estructura, es decir...


Description

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

UNIDAD 2 ALGORITMOS Una de las herramientas utilizadas para diseñar algoritmos se conoce como Diagramas de Bloques. Un diagrama de bloques es una representación gráfica para un algoritmo. Se dice que el diagrama es de bloques “estructurado” porque constituye una estructura, es decir, un conjunto ordenado y autónomo de elementos interdependientes cuyas relaciones están reguladas por leyes. Estos elementos se denominan “bloques”. Los componente son elementos con una finalidad precisa y única, que combinados con otro, o con otros varios, forma un cuerpo compuesto. Un componente está formado por al menos un bloque. Bloque de entrada de datos Se simboliza:

Componente Entrada_Simple msj . idd Donde msj es una cadena de caracteres que constituye el mensaje, cuya finalidad es esclarecer el dato de ingreso e idd es el identificador utilizado para almacenar el dato. Bloque de salida de resultados Se simboliza:

Componente Salida_Simple La salida simple se presenta de alguna de las siguientes formas:

msj, idd

idd, msj

msj

Donde msj es una cadena de caracteres que constituye el mensaje, cuya finalidad es esclarecer el dato de salida e idd es el identificador utilizado para almacenar el dato.

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2010 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

Ejemplo 1: Dado NOM el nombre de una persona, mostrar un mensaje de salida que contenga la palabra “Bienvenido” y a continuación el nombre NOM. Nota: considere un espacio en blanco entre el mensaje de bienvenida y el nombre. Sugerido 1: Dado un número entero N, mostrar un mensaje de salida que contenga “Opuesto:” y a continuación el resultado de calcular (-1)*N. Nota: considere un espacio en blanco entre el mensaje y el número. Observación: pueden presentarse algunos casos en que la Salida Simple combine varios idd con varios msj. Ejemplo 2: Dado P el nombre de una persona y D su número de documento, mostrar un mensaje de salida que contenga la palabra “Sr./a ”, a continuación el nombre P, seguido de “ DNI: “ y finalmente el número de documento. Sugerido 2: Dado el nombre P de una persona y el nombre H de otra, mostrar dos mensajes de salida, el primero con el siguiente formato: nombre de la persona P “es padre de” nombre de la persona H. El segundo con el formato nombre de la persona H “es hijo de” nombre de la persona P. Ejemplo 3: Dados dos números reales, correspondientes al valor de x e y respectivamente, mostrar el punto de coordenadas (x,y). Sugerido 3: Dado un número N, mostrar su valor absoluto usando la notación de barras verticales laterales. Ejemplo: si N = -2 debe mostrarse -2 = 2. Nota: considere un espacio en blanco antes y después del signo igual. Bloque de asignación Se simboliza:

Componentes de asignación Se definirán tres componentes de asignación, cada uno de estos componentes tienen la finalidad de asociar un identificador con un dato. El dato puede ser expresado en forma literal (una constante), tener asociado otro identificador (una variable que almacena su valor en la memoria RAM) o bien provenir del resultado de un cálculo (una expresión). El identificador que recibe el valor se denomina “variable” y debe colocarse a la izquierda del signo “=”. A su derecha se coloca la constante, variable o expresión que le proporciona el valor a asignar. Observación: todos los identificadores que intervienen en la expresión de la derecha, deben tener previamente, un valor almacenado en la memoria. Componente Asignación_Constante Se presenta de la siguiente forma idd = cte Donde idd es el identificador de la variable que recibe el valor de la constante cte, por ejemplo:

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2010 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

PI = 3,14 Componente Asignación_Variable Se presenta de la siguiente forma idd1 = idd2 Donde idd1 es el identificador de la variable que recibe el valor almacenado en idd2, por ejemplo: A = PI Componente Asignación_Expresión Se presenta de la siguiente forma idd = exp Donde idd es el identificador de la variable que recibe el resultado de la operación aritmética o lógica exp. Ejemplos: Area_circ = PI * R ^ 2

Reg = ((P1>59 ∨ RP1>59) ∧ (P2>59 ∨ RP2>59)) Ejemplo 4: Dado un número real R, mostrar el área del círculo de radio R. Sugerido 4: Dado el valor del lado de un cuadrado, mostrar el perímetro y el área del mismo. Algunas funciones aritméticas Es muy usual que los algoritmos contengan expresiones aritméticas en las que aparecen funciones definidas a través de operadores. Así como el operador + tiene la función de sumar los operandos sobre los cuales actúa, presentaremos a continuación algunos operadores aritméticos de uso frecuente. Función resto de la división Notación: MOD Es una función matemática, incorporada en la mayoría de los lenguajes de programación que calcula el resto de la división entera entre dos números, dividendo y divisor, ambos enteros. En este contexto se lo utilizará como operador binario, cuidando que tanto dividendo como divisor sean enteros y estableciendo que el resultado también es un número entero. Ejemplos: 17 MOD 3 = 2; ya que 3 está contenido 5 veces en 17 y sobran 2, que es el resto.

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

7 MOD 9 = 7; ya que 9 está contenido 0 veces en 7; por lo que sobran 7. Importante: recordar que los operandos deben ser números enteros. Función cociente entero de la división Notación: DIV Es una función matemática, incorporada en la mayoría de los lenguajes de programación que calcula el cociente de la división entera entre dos números, dividendo y divisor, ambos enteros. En este contexto se lo utilizará como operador binario, cuidando que tanto dividendo como divisor sean enteros y estableciendo que el resultado también es un número entero. Ejemplos: 17 DIV 3 = 5; ya que 3 está contenido 5 veces en 17. 7 DIV 9 = 0; ya que 9 está contenido 0 veces en 7. 12 DIV 4 = 3; ya que 4 está contenido 3 veces en 12. Importante: recordar que los operandos deben ser números enteros. Función parte entera Notación: [ ] Esta función matemática calcula la parte entera de un número real (se debe tener presente que el conjunto de los números enteros está incluido en el conjunto de los números reales). Ejemplos: [5,234] = 5 [-6] = -6 [3 * 4,3 + 12,45] = 25 Función valor absoluto Notación: | | Esta función matemática calcula el valor absoluto de un número real (se debe tener presente que el conjunto de los números enteros está incluido en el conjunto de los números reales). Ejemplos: |-5,234| = 5,234 |-6| = 6 |-3 * 4,3 - 12| = 24,9 Estos operadores se combinan de forma análoga a otros conocidos. Por ejemplo: (7 MOD 9) + (17 DIV 3) – [|-6,15|] = 6

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

Bloque de alternativa Se simboliza: Si

No

Componente Alternativa_Si/Sino Se presenta de la siguiente forma: pro Si

No

tsi

tno

La funcionalidad de este componente consiste en evaluar la proposición lógica, pro. Si su valor de verdad es verdadero, se ejecutarán las tareas tsi y no ejecutará las tareas tno. Si su valor de verdad es falso, se ejecutarán las tareas tno, y por lo tanto, no se ejecutarán las tareas tsi. Este componente se utiliza cada vez que debe seleccionarse la ejecución de sólo uno de entre dos grupos de tareas, tsi y tno, conforme a la evaluación de la condición booleana pro. Ejemplo 5: Dado un número natural X, mostrarlo acompañado de un mensaje que indique si X es par o impar. Sugerido 5: Dado un número X, mostrarlo acompañado de un mensaje que indique si X es o no un número entero. Ejemplo 6: Dados dos números naturales A y B, mostrar la diferencia entre el mayor de ellos y el menor de los mismos, indicando también cuál es el mayor y cuál es el menor. Sugerido 6: Dado el valor del lado de un cuadrado, mostrar un mensaje que indique si el área del cuadrado es mayor o no al valor de su perímetro. Ejemplo 7: Dados dos números, el entero B y el entero positivo E, se desea mostrar el resultado de calcular la potencia de base B y exponente E. Si B = 0 y E = 0 no se puede efectuar el cálculo y deberá mostrarse el mensaje “Resultado indeterminado”. Sugerido 7: Dados dos números naturales A y B, si B es divisor de A, mostrar el cociente entero A/B y en caso contrario, mostrar el resto de la división. Componente Alternativa_Si Se presenta de la siguiente forma: pro

Si

No

tsi

La funcionalidad de este componente consiste en ejecutar el grupo de tareas tsi sólo en caso de que el valor de verdad de la proposición lógica pro sea verdadero. En caso de

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

que el valor de verdad pro sea falso, este componente no prevé la ejecución de ninguna tarea. Ejemplo 8: Se desea mostrar la suma de dos números enteros, pero en caso de que dicha suma resulte negativa, además de mostrar el valor de la suma, se desea mostrar el mensaje “Resultado negativo”. Sugerido 8: Dados los valores reales X e Y correspondientes al punto de coordenadas (X,Y), tal que (X,Y) no es el origen de coordenadas (0,0); mostrar la distancia del punto (X,Y) al origen de coordenadas y el mensaje “El punto (X,Y) está sobre uno de los ejes”, si esto ocurre. Nota: en el mensaje deben reemplazarse los valores de los datos de entrada X e Y. Anidamiento de estructuras Los componentes definen procesos elementales construidos a través de una estructura de bloques. Esta estructura admite contener en su interior otras estructuras, sean éstas de su misma especie o de otra especie. Por ejemplo, el componente Alternativa Si/Sino admite que las tareas tsi y/o tno sean a su vez una estructura conformada por componentes de Alternativa y/o componentes de otra especie, tales como Entrada_Simple, Salida_Simple o componentes de Asignación. Alternativas anidadas: los ejemplos 9 y 10 se pueden resolver anidando componentes de Alternativa. Ejemplo 9: Dado un número entero X, mostrarlo acompañado de un mensaje que indique si X es negativo, cero o positivo. Sugerido 9: Dados 3 números correspondientes a la longitud de los lados de un triángulo, mostrar un mensaje indicando si es equilátero, isósceles o escaleno. Mostrar posteriormente el valor del perímetro del mismo. Ejemplo 10: Dados tres números enteros, mostrar el mayor de ellos. Sugerido 10: Dados tres números enteros, mostrarlos en orden ascendente. Bloque de ciclo Se simboliza:

Componente Ciclo_Incondicionado Se presenta de la siguiente forma:

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

vc = ini .. (pas) .. fin rango Este componente es utilizado cada vez que se requiere repetir un grupo de tareas, denominado rango, una cantidad predefinida de veces. Cada repetición se denomina técnicamente, iteración. La variable vc es la variable controladora del ciclo, comienza con un valor inicial, ini, y se incrementa en el valor pas por cada iteración en el que ejecuta el grupo de tareas rango. Las iteraciones finalizan cuando vc supera el valor final fin. Nota: es importante destacar que en el rango del ciclo ninguna de las variables: vc, ini, fin ni pas deben cambiar su valor. El valor del incremento, pas, puede ser positivo o negativo. Si pas es positivo, ini debe ser menor o igual que fin para que el ciclo itere al menos una vez. Si pas es negativo, ini debe ser mayor o igual que fin para que el ciclo itere al menos una vez. Cuando pas vale 1 el componente presenta la siguiente forma: vc = ini .. fin rango Ejemplo 11: Dados tres números naturales A, B y M; con A < M < B; mostrar todos los naturales múltiplos de M comprendidos en el intervalo [A,B] Sugerido 11: Dado un número natural N mostrar todos los naturales menores a N que resulten ser divisores de N. Componente Entrada_Incondicionada Se presenta de la siguiente forma: msj, cant vc = 1 .. cant …

msj, idd …

Su funcionalidad consiste en realizar en forma repetitiva el ingreso de una cantidad cant preestablecida de valores. La característica destacada es que los cant valores denominados idd, son sometidos al mismo proceso. Ejemplo 12: Dados N números naturales, mostrar los resultados de su raíz cuadrada para aquellos que sean cuadrados perfectos. Suponer que al menos hay un número natural que es cuadrado perfecto. Sugerido 12: Dados N números naturales, mostrar los resultados de su logaritmo en base 10. En un caso de prueba, si uno de los números naturales es 529 entonces debe

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

mostrarse log(529) = 2,723455. Nota: la salida debe contener como argumento de “log()” el número natural que se está procesando. Componente Ciclo_Condicionado Se presenta de la siguiente forma: pro rango Este componente es utilizado cada vez que se requiere repetir un grupo de tareas, denominado rango, una cantidad no establecida de veces. Cada repetición se ejecuta si la proposición booleana pro es verdadera. La siguiente tabla resume los elementos de los ciclos describiendo los aspectos característicos de incondicionados y condicionados. Elementos de los ciclos INICIALIZACIÓN: es la asignación inicial de la variable que controla la repetición del ciclo.

Incondicionado vc = ini La variable que controla el ciclo es vc, la cual se inicializa con el valor ini en la cabecera del ciclo. La condición para iterar es: vc < fin, si pas > 0 ó vc > fin, si pas < 0

CONDICIÓN: es la proposición booleana cuyo valor de verdad indica si debe ejecutarse o no el rango. Cada iteración del ciclo está sujeta a esta condición.

MODIFICACIÓN: es la alteración de la variable que controla la iteración. Esta modificación ocurrirá por efecto de una asignación sobre ella o una

Condicionado Inicialización de la/s variable/s que participa/n en la proposición booleana pro. La condición para iterar es: pro = verdadero Cuando pro = falso no se ejecuta el rango, dando el ciclo por terminado.

Observaciones:  Un ciclo itera 0, 1 o mas veces.  Para evitar infinitas iteraciones (ciclo infinito), debe cuidarse que la condición del mismo se evalúe falsa en algún momento. Es decir, en el ciclo incondicionado, se debe prever que los valores de ini, fin y pas sean tales que, la variable controladora del ciclo, vc, tome un valor fuera del rango definido por ini y fin. En el caso del ciclo condicionado, debe cuidarse que al menos una variable de la proposición pro modifique su valor dentro el rango de modo que pro resulte falso. Es la alteración por efecto de la siguiente asignación automática: vc = vc + pas

Es la modificación de al menos una de las variables que participa en pro, por efecto de una asignación a dicha variable o entrada de un nuevo valor sobre el

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018

--------------------------------------------------------------------------------------------------------------------------------------------------------------

entrada de dato bajo ese identificador. RANGO: es el conjunto de tareas elementales que se repite.

identificado de dicha variable. Dentro del rango no se debe modificar vc, ini, pas ni fin.

Dentro del rango debe modificarse al menos una de las variables que participa en pro.

Ejemplo 13: Dado un número natural K (K>2), mostrar el resultado de A*B mientras sea menor que K. Los números A y B son los naturales, iniciando con A=1 y B=2 y prosiguiendo con A=B+1 y B el sucesor de A.

Universidad Nacional de Salta - Facultad de Ciencias Exactas Carreras: Licenciatura en Análisis de Sistemas – Tecnicatura Universitaria en Programación Cátedra: ELEMENTOS DE PROGRAMACIÓN Año 2018 ---------------------------------------------------------------------------------------------------------------------------------------------------------------

Sugerido 13: Dado un número natural K, y un número natural F, mostrar el resultado de (P-Q) mientras sea menor que K, donde: E

P=(-1) *E*F E+1

Q=(-1)

*(E+1)*F

E = 0, 1, ...

Componente Entrada_Condicionada Se presenta de la siguiente forma: msj, idd idd.. …

msj, idd Su funcionalidad consiste en realizar en forma repetitiva el ingreso de una cierta cantidad no establecida de valores. La característica destacada es que todos los valores denominados idd, comparten al menos una propiedad en común y que, para detener el ingreso de los mismos, el usuario ingresará un valor idd que no cumpla con dicha propiedad, con la intención de detener el ingreso. Este último valor es denominado “bandera de fin de ingreso”. Por ejemplo, se ingresan números naturales, sin contar con la cantidad de números que deben ingresarse. Todos estos datos comparten la propiedad de ser naturales. La bandera de fin de ingreso debe ser entonces, un número no natural. En el componente se ingresa un primer valor para idd que se somete a la proposición booleana pro en la cabecera del ciclo. Si el valor de idd cumple con la propiedad, será procesado en el rango del ciclo, para luego, ingresar dentro del mismo otro valor idd, como última tarea del rango. Este nuevo valor se analiza inmediatamente en la proposición booleana pro. En caso de cumplir con la propiedad se procesa en el rango como dato válido, y en caso de no cumplir, se entiende como “bandera de fin de ingreso” provocando la finalización de las iteraciones del ciclo. Ejemplo 14: Dada una cierta cantidad de números naturales, mostrar los resultados de su raíz cuadrada para aquellos que sean cuadrados perfectos. Supon...


Similar Free PDFs