MANUAL DE ALGORITMOS
INSTITUCIÓN EDUCATIVA: My. PNP. “Félix Tello Rojas”
ÁREA: Educación Para el Trabajo
PROFESORA: Nérita Tarrillo Dávila
ALUMNOS: Salazar Aurich, Bruno Zurita Tejada, Paul Moreto Selene Días Valdés, Angie Hernández Helera, Jean Pierre
AÑO y SECCIÓN: 4° “A”
DEDICATORIA:
Este presente Manual a presentar va dedicado a nuestra Profesora Nerita Tarrillo Dávila, encargada del área de del área de “Educación Para el Trabajo”; ya que todas sus enseñanzas trasmitidas en clase hicieron posible la creación de este Manual. Esperamos que este manual sea de su agrado y puedan satisfacer las necesidades de los lectores.
Índice: 1: INTRODUCCION DE ALGORITMOS Definiciones de un algoritmo Historia Características Medios de expresión Propiedades Elaboración de un algoritmo Clasificación de los algoritmos 2: VARIABLES, DATOS, OPERADORES Y EXPRESIONES: Variables y constantes Características de variables Clasificación Tipo de datos Expresiones Operando y Operadores Propiedades de los operadores 3: PSEDOCODIGOS: Concepto Aplicación Características Partes Ventajeas Desarrollo
Actividades 4: DIAGRAMA DE FLUJO DE DATOS: Concepto Representación Complementos Recomendaciones de su uso Ventajas Errores Símbolos Características Niveles Conexiones Componentes Ejemplo 5: SOLUCIONANDO PROBLEMAS CON DFD: Introduccion Problemas 6. INTEGRANDO APRENDIZAJES I 7: CREANDO DFD CON EL SOFTWARE FREE DFD ¿Qué es el Programa Free DFD? Ventana principa Barra de menú Barra de botones Selectivas
SESIÓN 8: ESTRUCTURAS CONDICIONALES Conceptos Tipos Ejemplos 9: INTEGRANDO NUESTROS APRENDIZAJES II 10 . Bibliografía
1. Definiciones de un Algoritmo: •En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Pero el responder que es un algoritmo podrĂa tener varios conceptos. En general, no existe ningĂşn consenso
definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales. Un algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
Un algoritmo se define como un conjunto de instrucciones para resolver un problema. En otros términos, un algoritmo es una sola prescripción determinante de un proceso de cálculo que, partiendo de diversos datos iniciales, conduce en todos los caos al resultado que le corresponde.
Algoritmo, se puede definir como una secuencia de instrucciones que representan un orden para llegar a la solución de un determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema.
En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos: Tiempo secuencial. Un algoritmo funciona en tiempo de paso a paso, definiendo así una serie de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto. Cada estado computacional puede ser definido formalmente utilizando una composición de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual. Además: Un algoritmo de transforma en una herramienta de computadora cuando se han preparado instrucciones adecuadas para que la computadora pueda llevarlos a cabo. Estas instrucciones deberán
comunicarse a la computadora en un lenguaje que pueda “entenderse”, tal lenguaje de conocer como lenguaje de programación.
2. Historia del Algoritmo: La palabra ALGORITMO originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos árabes, se evolucionó a la palabra latina, derivación de Al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas. El término proviene del matemático árabe Al’Khwarizmi, que escribió un tratado sobre los números. Este texto se perdió, pero su versión latina, Algoritmi de Numero Indorum, sí se conoce. El trabajo de Al’Khwarizmi permitió preservar y difundir el conocimiento de los griegos (con la notable excepción del trabajo de Diofanto) e indios, pilares de nuestra civilización. Rescató de los griegos la rigurosidad y de los indios la simplicidad (en vez de una larga demostración, usar un diagrama junto a la palabra Mira). Sus libros son intuitivos y prácticos y su principal contribución fue simplificar las matemáticas a un nivel entendible por no expertos. En particular muestran las ventajas de usar el sistema decimal indio, un atrevimiento para su época, dado lo tradicional de la cultura árabe.
La exposición clara de cómo calcular de una manera sistemática a través de algoritmos diseñados para ser usados con algún tipo de dispositivo mecánico similar a un ábaco, más que con lápiz y papel, muestra la intuición y el poder de abstracción de Al’Khwarizmi. Hasta se preocupaba de reducir el número de operaciones necesarias en cada cálculo. Por esta razón, aunque no haya sido él el inventor del primer algoritmo, merece que este concepto esté asociado a su nombre. Los babilonios que habitaron en la antigua Mesopotania, empleaban unas pequeñas bolas hechas de semillas o pequeñas piedras, a manera de “cuentas” y que eran agrupadas en carriles de caña. Más aún, en 1.800 A.C. un matemático babilónico inventó los algoritmos que le permitieron resolver problemas de cálculo numérico. En 1850 A.C., un algoritmo de multiplicación similar al de expansión binaria es usado por los egipcios. La teoría de las ciencias de la computación trata cualquier objeto computacional para el cual se puede crear un buen modelo. La investigación en modelos formales de computación se inició en los 30’s y 40’s por Turing, Post, Kleene, Church y otros. En los 50’s y 60’s los lenguajes de programación, compiladores y sistemas operativos estaban en desarrollo, por lo tanto, se convirtieron tanto en el sujeto como la base para la mayoría del trabajo teórico. El poder de las computadoras en este período estaba limitado por procesadores lentos y por pequeñas cantidades de memoria. Así, se desarrollaron teorías (modelos, algoritmos y análisis) para hacer un uso eficiente de ellas. Esto dio origen al desarrollo del área que ahora se conoce como “Algoritmos y Estructuras de Datos”. Al mismo tiempo se hicieron estudios para comprender la complejidad inherente en la solución de algunos problemas. Esto dió origen a lo que se conoce como la
jerarquía de problemas computacionales y al área de “Complejidad Computacional”. Pero en todos los casos debe considerarse que los algoritmos no trabajan con objetos del mundo real, sino con representaciones, abstracciones de éstos. Por ello para designarlos se utilizan variables, símbolos o codificaciones.
3. Características de un Algoritmo: Un algoritmo es bastante complejo en su estructura, las características fundamentales que debe cumplir todo algoritmo sin excepción son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser eficiente, Deben ocupar la mínima memoria y minimizar el tiempo de ejecución
Un algoritmo debe ser finito, el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos.
Un algoritmo debe ser legible, el texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
Un algoritmo debe definir tres partes: Entrada, Proceso y Salida. Ejemplo: el algoritmo de receta de cocina se tendrá:
Entrada: ingrediente y utensilios.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato (por ejemplo, Pollo al horno)
4. Medios de Expresión de un Algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles:
1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. 3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones. También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
5. Propiedades de un Algoritmo Las propiedades de un algoritmo son puntos guía a seguir para su elaboración. Sus propiedades son:
A) Enunciado del Problema: El enunciado del problema debe de ser claro y completo. Es importante que conozcamos exactamente lo que deseamos que haga el computador. Mientras esto no se comprenda, no tiene caso pasar a la siguiente etapa. 1. ENUNCIADOS PARA EL DESARROLLO DE ALGORITMOS Para representar un algoritmo existen muchas formas, entre ellas están: el seudocódigo ó algoritmo. Para el desarrollo de un seudocódigo se utiliza enunciados, donde cada uno ellos representan una instrucción para el computador,
cuando sé este ejecutando un programa.
1.1 ENUNCIADO DE ASIGNACIÓN: Es una acción ó proceso por el cual se le asigna un valor (constante ó variable) ó el resultado de una operación (expresión) a una variable. Los enunciados de asignación se utilizan generalmente para cambiarle de valor a una variable ó definirla. Definir una variable consiste en asignarle ó darle por primera vez un valor, y puede hacerse de dos maneras: Por medio de una lectura de datos ó utilizando un enunciado de asignación.
COMPOSICIÓN:
EJEMPLO: VARIABLE = VARIABLE VARIABLE = EXPRESION VARIABLE = CONSTANTE PAGO = SALARIO BRUTO RESULTADO = ( A + B + C ) / 68 BONIFICACION = 7890 Debe tenerse en cuenta que la parte de la izquierda de un enunciado de asignación siempre va y debe de ir una variable. La flecha izquierda significa asignación e indica que el valor de la parte derecha de un enunciado ( variable, expresión ó constante) se le asigna a la parte de la izquierda ( variable). Sin embargo también se utiliza el signo igual para indicar asignación.
COMPOSICIONES POSIBLES DE UN ENUNCIADO DE ASIGNACIÓN: 1. Toda variable que aparezca al lado derecho de un enunciado de asignación debe estar definida. B = 25 C = B+30 T=89 Q=34 + T
2. En un enunciado de asignación la variable de la izquierda es la única que cambia de valor cuando con anterioridad tiene un valor asignado. PAGO = 2000 DEUDA = 500 PAGO = DEUDA + 3500 T = 90 Q = 78 T =Q + 67 3. Las variables que aparecen en la parte derecha de un enunciado de asignación conservan su valor después de ejecutarse el enunciado. A = 60 B = A + 70 Q = 78 L = 45 RESULTADO = Q + L
4. Si la variable de la parte izquierda del enunciado se encuentra también al lado derecho esta variable cambia de valor por aparecer en la izquierda. A = 20 B=2 A = A+B CONT = 0 CONT = CONT +1 1.2. ENUNCIADO DE DECISIÓN: En el desarrollo de un algoritmo la mayoría de las veces se vera abocado a situaciones de excepción, agrupación o comparación con el objetivo de aclarar o conocer algunas circunstancias en particular. Para que el algoritmo sea flexible y general se deben tener en cuenta todas las posibilidades o alternativas que puedan presentarse en un momento dado. De aquí la necesidad de hacer comparaciones y tomar decisiones. Básicamente los enunciados de decisión se utilizan para tomar una acción o conocer el estado de alguna situación en especial.
COMPOSICIÓN DE UN ENUNCIADO DE DECISIÓN Enunciado: SÍ ( VARIABLE VS VARIABLE) ENTONCES
Enunciados SINO Enunciados FIN SÍ COMO FUNCIONA EL ENUNCIADO DE DECISIÓN El enunciado de decisión consta básicamente de cuatro partes: La primera es la palabra SI seguida de una condición entre paréntesis ( expresión relacional ó lógica) Variable Vs. Variable, la segunda es la palabra ENTONCES seguida de los enunciados a realizar si se cumple la condición, la tercera es la palabra SINO seguida de los enunciados a realizar si no se cumple la condición y la cuarta son las palabras FIN-SI que indica la finalización del enunciado de decisión.
ENUNCIADOS DE DECISION ANIDADOS Un enunciado de decisión se considera anidado cuando dentro de este se genera otra decisión y así sucesivamente. Existe múltiples formas de realizar o establecer parámetros, de acuerdo a la formulación del problema. Veamos algunos ejemplos Ejemplo 1 : SI ( CONDICION 1) ENTONCES SI ( CONDICION 2 ) ENTONCES SI ( CONDICION 3 )
ENTONCES ENUNCIADO ( S ) SINO ENUNCIADO ( S ) FIN-SI SINO ENUNCIADO ( S ) FIN-SI SINO ENUNCIADO ( S) FIN-SI NOTA : El último SI que se abre es el primero que se cierra. El primer SI que se abre es el último que se cierra. 1.3. ENUNCIADO DE LECTURA El enunciado de lectura se utiliza simplemente para introducir datos que van a utilizar en la solución del algoritmo. Consta de la palabra LEA y a continuación se relacionan en forma de lista las variables a leer separadas por comas así:
LEA VAR1, VAR2, VAR3,…………VARN 1.4. ENUNCIADO DE ESCRITURA Se utiliza para informar resultados que se esperaban obtener al ejecutarse el algoritmo. Consta de la palabra imprima seguida de las listas de variables separadas por comas, así:
IMPRIMA VAR1, VAR2, VAR3,…VARN
B) Análisis de la Solución General: Entendido el problema, para resolverlo es preciso analizar:
Los datos de entradas que nos suministran. El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.
Los datos o resultados que se esperan.
Áreas de trabajo, fórmulas y otros recursos necesarios.
Definir condiciones si las hay
Algunas preguntas elementales serán las siguientes:
- ¿Cuáles serán los datos de entrada?.
- ¿Qué datos se piden de salida?.
- ¿Qué apariencia (formato) tendrán los datos?.
- ¿Cuántas veces se deben repetir los procesos?.
- ¿Hay que hacer suposiciones?.
- ¿Pueden aparecer condiciones especiales de error?
4.3 Diferentes alternativas de solución: Analizando el problema, posiblemente tengamos varias formas de resolverlo. Lo importante es determinar cuál es la mejor alternativa: la que produce los resultados esperados en el menor tiempo y costo. Después de la definición del problema y del análisis de los datos de entrada, el proceso continúa con el análisis de las alternativas de solución. Por lo general, la solución de un problema puede alcanzarse por distintas vías. Es útil tratar de plantear la mayor cantidad de
alternativas posibles de solución, pues de esta forma las probabilidades aumentan a favor de encontrar la vía correcta. Se debe destacar que no es conveniente extender demasiado el número de alternativas, pues si el número de éstas es demasiado alto, se presentará una mayor dificultad para elegir la mejor de todas, que es en definitiva el objetivo del proceso.
Elección de una alternativa: Después de tener todo el repertorio de alternativas, es necesario pasar a otra etapa: la elección de la mejor entre todas las posibilidades. Esta fase es muy importante porque de la elección realizada depende el avance final hasta la solución. La orientación hacia delante supone la irreversibilidad si la decisión es acertada o una "reversibilidad onerosa", pues si la decisión no es acertada, es necesario retroceder, lo que afecta la "optimidad" del proceso. Por lo tanto, es necesario que cada alternativa sea bien analizada para que la toma de decisiones sea bien justificada. Deberás elegir la alternativa que sea la más adecuada para la solución del problema, tomando en cuenta las características del problema y las características que deberá tener la solución, así como los elementos, datos o información con la que cuentas.
Desarrollo de la solución Después de decidir cuál es la mejor alternativa de todas, se llega a la etapa de la solución. En esta fase, a partir de los datos relacionados con la alternativa seleccionada, se aplican las operaciones necesarias para solucionar el problema. La
selección de los procesos también debe ser determinada en función de la optimidad, es decir, las operaciones deben llegar a la solución por el camino más corto para garantizar la mayor eficiencia en el funcionamiento. Si la alternativa es la óptima, llevará a la solución deseada que fue prevista en la identificación del problema.
Evaluación de la solución Luego de haber desarrollado la solución queda aún una etapa, que es la evaluación. En los procesos industriales a este procedimiento se le llama control de la calidad y consiste en determinar que la solución obtenida 'es lo que se esperaba conseguir comprobando que el resultado sea correcto. En esta fase se deben "pulir" los procesos ya realizados y tratar de llevarlos a un grado mayor de optimidad, pues el algoritmo más eficiente en la solución de un problema es el que llega a su objetivo final con la mayor economía de procedimientos que sea posible. A continuación, puedes observar un ejemplo de la aplicación de la metodología a la solución de un problema simple. Es importante saber que los problemas complejos también se resuelven con esta estructura.
5. Elaboración de un Algoritmo:
Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo la elaboración de un algoritmo a través de un problema. Se recomienda tomar en cuenta cada una de las propiedades de un algoritmo, ya que de ahí se inicia el proceso de elaboración.
Ejemplo 1: Supongamos que se necesita calcular e imprimir el área de un triángulo cuya base y altura se suministrarán en un disco.
Procedimiento: Escribir correctamente el enunciado del problema. “Calcular e imprimir el área de un trapecio cuya base mayor, base menor y altura se suministrarán de un disco”.
I.
Análisis:
1. ¿Qué se quiere? Calcular el área de un Trapecio ¿Cómo se quiere? Se quiere calcular a través de una fórmula. Área del Trapecio = (Base Mayor + Base Menor) x Altura 2 ¿Qué deseo obtener? Imprimir el área del Cuadrado y suministrar los resultados en un disco 2. Solución: Variables utilizadas en esta solución: De Lectura
Base Mayor
Para almacenar
- El valor correspondiente a la
Menor Altura
base mayor del rombo. -El valor correspondiente a la base menor del rombo. - El valor correspondiente a la
altura del cuadrado.
II.
Buscar Diferentes Alternativas de Solución al Resultado del Problema. Ejemplo: El problema pide imprimir el área del Rombo como resultado, un disco.
Algoritmo: Problema para calcular el área de un rombo. Ejemplo 2: Se necesita calcular e imprimir el perímetro de un cuadrado cuyo lado se suministrará en un disco. Procedimiento: Escribir correctamente el enunciado del problema. “Calcular e imprimir perímetro de un cuadrado cuyo lado se suministrará en un disco”. III.
Análisis: 2. ¿Qué se quiere? Calcular el perímetro de un cuadrado ¿Cómo se quiere? Se quiere calcular a través de una fórmula. Perímetro del Cuadrado = 4 x Lado
¿Qué deseo obtener? Imprimir el Perímetro del Cuadrado y suministrar los resultados en un disco 2. Solución: Variables utilizadas en esta solución:
De Lectura
Lado
Para almacenar
- El valor correspondiente al lado del cuadrado.
IV.
Buscar Diferentes Alternativas de Solución al Resultado del Problema. Ejemplo: El problema pide imprimir el área del cuadrado como resultado, un disco.
Algoritmo: Problema para calcular el área de un cuadrado
6. Clasificación de los Algoritmos: Algoritmo computacional:
Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x.
Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalación de un equipo de sonido.
Algoritmo cualitativo: Un
algoritmo
es
cualitativo
cuando
en
sus
pasos
o
instrucciones no están involucrados cálculos numéricos. Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un tesoro.
1. Variables y Constantes 1.1. Variables: ¿Qué es una variable? Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo. Son todos aquellos valores que pueden o no cambiar en el transcurso de un algoritmo. Usualmente son introducidas como datos. Existen variables simples y variables suscritas (arreglos). Son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud: Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.
Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos. El nombre de una variable se sujeta a las reglas que existen en el lenguaje para formar un identificador. Un identificador debe iniciar con una letra A-Z, seguida cero ó más letras A-Z, _ (guión bajo) y dígitos 0-9 Declaración Variables: Antes de la primer sentencia debe declarar las variables indicando tipo-dato seguido de uno o más identificadores separados por coma. Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.
Toda variable se compone de dos partes esenciales: su nombre y su valor.
¿Qué es el nombre de una variable? Es el conjunto de caracteres, letras y números. Con los cuales se determina un valor en un momento determinado.
Otro concepto de Variables: Son características, cualidades, propiedades, atributos de hechos, fenómenos, procesos, seres
vivos, y son observables, medibles cualitativa como cuantitativamente y susceptibles de adoptar distintos valores.
1.2. Constantes: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído. Son todos aquellos valores que no cambian en el transcurso de un algoritmo y son introducidos en el momento de utilizarse. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. En determinados casos se pueden presentar que el valor de una variable no cambie en el transcurso de un algoritmo; pero por este hecho no se considera constante, sigue siendo una variable, por que puede cambiar su valor y las constantes no lo pueden hacer.
Ejemplo: Área del Círculo = pi * radio ^ 2 Las variables son: el radio y el área La constate es : pi
2. Características de las Variables: Las variables son observables y no imaginables. Las variables son cambiantes porque asumen diferentes valores, categorías, ubicación. Las variables son medibles cuantitativamente como cualitativamente. Las variables tienen un referente conceptual porque emanan del conocimiento teórico, de la realidad.
Se caracteriza primordialmente por tener un límite definido de tipo de datos, es decir que solo puede guardar los datos que le sea asignados ya sean numéricos, lógicos o alfanumericos, etc. Además: Para los nombres de variable se aplican las siguientes normas: El nombre debe comenzar por una letra. Los nombres de variable no pueden terminar en punto. No se pueden utilizar espacios en blanco ni caracteres especiales. Cada nombre de variable debe ser único; no se permiten duplicados. Los nombres de variable se pueden definir combinando de cualquier manera caracteres en mayúsculas y en minúsculas, esta distinción entre mayúsculas y minúsculas se conserva en lo que se refiere a la presentación.
3. Clasificación de las Variables:
A) Por su contenido:
Variables Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: iva = 0.15 pi = 3.1416 costo = 2500
Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos.
Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y caracteres especiales).
b) Por su uso:
Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: Suma = a + b /c
Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno.
Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.
4. Tipo de Datos: Debido a que las variables contienen o apuntan a valores de tipos determinados, las operaciones sobre las mismas y el dominio de sus propios valores están determinadas por el tipo de datos en cuestión. Algunos tipos de datos usados:
Tipo de dato lógico.
Tipo de dato entero.
Tipo de dato de coma flotante (real, con decimales).
Tipo de dato carácter.
Tipo de dato cadena
Tipo de Dato Lógico: El tipo de dato lógico o booleano es en computación aquel que puede representar valores de lógica binaria, esto es 2 valores, valores que normalmente representan falso o
verdadero. Se utiliza normalmente en la programación, estadística, electrónica, matemáticas(Álgebra booleana), etc. Para generar un dato o valor lógico a partir de otros tipos de datos, típicamente, se emplean los operadores relacionales (u operadores de relación), por ejemplo: 0 es igual a falso y 1 es igual a verdadero. Tipo de Dato Entero: Un tipo de dato entero en computación es un tipo de dato que puede representar un subconjunto finito de los números enteros. El número mayor que puede representar depende del tamaño del espacio usado por el dato y la posibilidad (o no) de representar números negativos. Los tipos de dato entero disponibles y su tamaño dependen del lenguaje de programación usado así como la arquitectura en cuestión. Tipo de Dato de Coma Flotante (real, con decimales): La representación de coma flotante (en inglés floating point, ‘punto flotante’) es una forma de notación científica usada en los CPU,GPU, FPU, etc, con la cual se pueden representar números reales extremadamente grandes y pequeños de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritméticas. Tipo de Dato Carácter: Es una unidad de información que corresponde aproximadamente con un grafema o con una unidad o símbolo parecido, como los de un alfabeto o silabario de la forma escrita de un lenguaje natural. Un ejemplo de carácter es una letra, un número o un signo de puntuación. Tipo de Dato Cadena: En programación, una cadena de caracteres, palabra, ristra de caracteres o frase(string en inglés) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto análogas a una frase o a una oración. En general, una cadena de caracteres es una sucesión de caracteres(letras, números u otros signos o símbolos). Un caso especial de cadena es la que contiene cero caracteres, a esta cadena se la llama cadena vacía; en teoría de autómatas es común denotar a la misma por medio de la letra griega .
5. Expresiones: Una expresión es una combinación de variables, constantes y literales de tipos compatibles entre sí, estos elementos están combinados mediante operadores válidos; la expresión más simple está formada por un único elemento (variable, literal o constante) sin ningún operador. Es posible tener expresiones aritméticas (combinando expresiones de tipo entero y/o real), expresiones lógicas (combinando expresiones de tipo logico) y expresiones de tipo caracter. A continuación se muestran algunas expresiones típicas: 2 * pi * r v * t (a>5) and (a<10) “Sub” + “cadena” Toda expresión tiene asociada un tipo que se corresponde con el tipo del valor que devuelve la expresión cuando se evalúa, por lo que habrá tantos tipos de expresiones como tipos de datos. Habrá expresiones numéricas y lógicas. Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3) / c Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas. Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:
Aritméticas
Relacionales Lógicas.
6. Operadores y Operandos: Los operadores son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Un operando es un valor (un argumento) con el cual la instrucción, nombrada por un mnemónico, opera. El operando puede ser un registro,
una dirección de memoria, una constante literal, o una etiqueta.
A) Operadores Aritméticos Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.
Tipos de Operadores Aritméticos: + * / mod
Suma Resta Multiplicación División Modulo (residuo de la división entera)
Ejemplos: Expresión
Resultado
7 / 2
3.5
12 mod 7
5
4 + 2 * 5
14
B) Operadores Relacionales Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas).
Tipos de operadores Relacionales:
> Mayor que < Menor que > = Mayor o igual que < = Menor o igual que < > Diferente = Igual
Ejemplos: Si a = 10, b = 20, c = 30 a + b > c
Falso
a - b < c
Verdadero
a - b = c
Falso
a * b < > c
Verdadero
Ejemplos no l贸gicos: a<b<c 10 < 20 < 30 T > 5 < 30
(no es lógico porque tiene diferentes operandos)
C) Operadores Lógicos: Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional. Tipos de operadores Lógicos And Y Or O Not Negación
Ejemplo: Para los siguientes ejemplos T significa verdadero y F falso.
Operador Not Operador Not Operando
Resultado
T
F
F
T
Operador And Operador And Operando1
Operador
Operando2
Resultado
T
AND
T
T
T
F
F
F
T
F
F
F
F
Operador Or Operador Or Operand o1
Operad or
Operand o2
Resulta do
T
Or
T
T
T
F
T
F
T
T
F
F
F
7. Prioridad de los Operadores A) Prioridad de los Operadores Aritméticos: Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero. Dentro de una misma expresión los operadores se evalúan en el siguiente orden:
1. ^ Exponenciación 2. *, /, mod Multiplicación, división, modulo. 3. +, - Suma y resta. Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.
Ejemplos: 4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
B) Prioridad de los Operadores Relacionales : Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tiene menor prioridad que los aritméticos.
C) Prioridad de los Operadores Lógicos: 1. Not 2. And 3. Or
D) Prioridad de los Operadores en General: 1. 2. 3. 4. 5.
() ^ *, /, Mod, Not +, -, And >, <, > =, < =, < >, =, Or
Ejemplos: Sea: a = 10 b = 12 c = 13 d =10
1. Conceptos de Pseudocódigos El pseudocódigo (o falso lenguaje) es una descripción informal1 de alto nivel de un algoritmo informático de programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programación verdadero , pero que está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código de lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. A veces, es considerado como un “Boceto” de lo que posteriormente será programado, y hasta es utilizado para poder difundir un diseño o una estructura de un programa, utilizándose algunas palabras en Lenguaje de Programación, pero predominando más que nada las que se utilizan en forma coloquial, de uso cotidiano. Se trata entonces de un “Paso Previo” a la utilización del Software de Programación, sin tener un formato o una composición que debe
ser seguida indefectiblemente, sino que se trata de realizar un diseño general, que a veces hasta es más exacto de lo que posteriormente será volcado en el Lenguaje de Alto Nivel. En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal. En programación, lenguaje artificial e informal útil para programadores para el desarrollo de algoritmos. No es un lenguaje de programación verdadero y, por lo tanto, no puede ser compilado y ejecutado. Sí existen algunos intérpretes que ejecutan pseudocódigos, pero especialmente con fines didácticos, por ejemplo el programa PSeInt, que permite aprender fácilmente programación usando pseudocódigo en español. En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal.
El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de
programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.
2. Aplicación: Un programador que tiene que aplicar un algoritmo específico, sobre todo uno desfamiliarizado, generalmente comienza con una descripción en pseudocódigo, y luego "traduce" esa descripción en el lenguaje de programación meta y lo modifica para que interactúe correctamente con el resto del programa. Los programadores también pueden iniciar un proyecto describiendo la forma del código en pseudocódigo en el papel antes de escribirlo en su lenguaje de programación. La finalidad de la utilización entonces de un Pseudocódigo está ligada simplemente a la agilización, entonces, ya que no tiene que tener en cuenta su utilización las distintas Normativas y Reglamentaciones que tiene en cuenta un Lenguaje de Programación determinado o la aplicación que se utiliza para programar y posterior compilación (es decir, no tiene en cuenta la utilización de un Lenguaje de Alto Nivel)
3. Características de los Pseudocódigos: Las principales características de este lenguaje son: 1. Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX, Maruga Script, Seudocódigo o PSeInt. Otros Ides de consideración son Inter-P y Algor) 2. Es una forma de representación sencilla de utilizar y de manipular. 3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a utilizar. 5. Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en pseudocódigo debe permitir la descripción de: 1. Instrucciones primitivas. 2. Instrucciones de proceso. 3. Instrucciones de control. 4. Instrucciones compuestas. 5. Instrucciones de descripción.
4. Partes de un Pseudocódigo:
Estructura a seguir en su realización: 1. Cabecera. Programa. Módulo. Tipos de datos. Constantes. Variables.
2. Cuerpo. Inicio. Instrucciones. Fin.
5. Ventajas de los Pseudocódigos Los pseudocódigos presentan los siguientes beneficios: 1. Ocupan mucho menos espacio en el desarrollo del problema. 2. Permite representar de forma fácil operaciones repetitivas complejas. 3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal. 4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programación, éstos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo). 6. Mejora la claridad de la solución de un problema. La ventaja del pseudocódigo es que en su uso en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa.
6. Desarrollo de un Algoritmo con pseudocódigos: Calcular e imprimir el área de un triángulo, cuya base y altura son ingresadas por teclado. Análisis: Imprimir el Área del triángulo Área del Triángulo = Base x Altura 2 Base = b → ℝ Datos
Altura = h → ℝ Área = a → ℝ Variables
Desarrollo: Inicio DeclaraciĂłn de Variables:
b, h, a es real
Ingreso de Datos:
Ingresar â&#x20AC;&#x153;La base es:â&#x20AC;?, b Ingresar â&#x20AC;&#x153;La altura es:â&#x20AC;?, h
CĂĄlculo:
a= (b*h)/2
Mostrar Resultado:
Mostrar â&#x20AC;&#x153;El ĂĄrea del triĂĄngulo es:â&#x20AC;?, a Fin
7. Actividades: 1. DiseĂąa un algoritmo para hallar en ĂĄrea de un cĂrculo.
AnĂĄlisis: Hallar el ĂĄrea de un cĂrculo Ă rea del CĂrculo = đ??&#x2026; x radio2 Radio = Ă rea
=
r
â&#x2020;&#x2019; â&#x201E;?
a â&#x2020;&#x2019; â&#x201E;?
Desarrollo: Inicio
DeclaraciĂłn de Variables: r, a es real Ingreso de Datos:
Ingresar â&#x20AC;&#x153;El radio del cĂrculo es:â&#x20AC;?, r
CĂĄlculo:
a= đ?&#x153;&#x2039;*r^2
Mostrar resultado:
Mostrar â&#x20AC;&#x153;El ĂĄrea del cĂrculo es:â&#x20AC;?, a Fin
2. DiseĂąa un algoritmo correspondiente a un programa que pida por teclado dos nĂşmeros enteros y muestre su suma, resta, multiplicaciĂłn.
AnĂĄlisis: Hallara la Suma, Resta y MultiplicaciĂłn de Dos NĂşmeros Enteros. Suma = NĂşmero 1 + NĂşmero 2 Resta = NĂşmero 1 â&#x20AC;&#x201C; NĂşmero 2 MultiplicaciĂłn = NĂşmero 1 x NĂşmero 2 NĂşmero 1
=
a
â&#x2020;&#x2019; â&#x201E;¤
NĂşmero 2
=
b
â&#x2020;&#x2019; â&#x201E;¤
Suma
=
s
â&#x2020;&#x2019; â&#x201E;¤
Resta
=
r
→ ℤ
Multiplicación = m → ℤ
Desarrollo: Declaración de Variables: Ingreso de datos:
a, b, s, r, m es real Ingresar “El Número 1 es:”, a Ingresar “El Número 2 es:”, b
Calculo:
s=a+b r=a–b m=a*b
Mostrar resultado:
Mostrar “La Suma de los Números es:”, Mostrar “La Resta de los Números es:”, r Mostrar “La Multiplicación de los Números o
es:”, m
Fin
1. Conceptos de Diagrama de Flujo de Datos:
Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados.
El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.
Es una serio de pasos ordenados para solucionar un problema haciendo uso de símbolos, cada símbolo conectado mediante una flecha de flujo. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. (DFD). Los diagramas de flujo de datos son un tipo de herramienta de modelado, permiten modelar todo tipo de sistemas, concentrándose en las funciones que realiza, y los datos de entrada y salida de esas funciones. El diagrama de flujo de datos es un modelo que describe los flujos de datos o tuberías, los procesos que cambian o transforman los datos en un sistema, las entidades externas que son fuente o destino de los datos (y en consecuencia los límites del sistema) y los almacenamientos o depósitos de datos a los cuales tiene acceso el sistema, permitiendo así describir el movimiento de los datos a través del sistema.
En síntesis, el Diagrama de Flujo de Datos describe: Los lugares de origen y destino de los datos (los límites del sistema),
Las transformaciones a las que son sometidos los datos (los procesos internos),
Los lugares en los que se almacenan los datos dentro del sistema, y
Los canales por donde circulan los datos.
2. Representación de un DFD: Un sistema puede representarse empleando varios diagramas de flujos de datos, cada flujo de datos puede representar una parte "más pequeña" del sistema. Los DFD permiten una partición por niveles del sistema. El nivel más general se representa con un DFD global llamado diagrama de contexto.
El diagrama de contexto DFD representa a todo el sistema con una simple burbuja o proceso, las entradas y salidas de todo el sistema, y las interacciones con los terminadores.
3. Complementos de DFD: Los DFD suelen servir para comprender fácilmente el funcionamiento de un sistema. De todas maneras, no es la única herramienta para diagramar sistemas, es más, se debe complementar con otras herramientas para agregar comprensión y exactitud al DFD. Otras herramientas que se complementan con los DFD son los diccionarios de datos, las especificaciones de procesos, los diagramas de entidad relación, los diagramas de transición de estados, etc.
4. Recomendaciones para el diseño de Diagramas de Flujo: Es una herramienta de uso sencillo e intuitivo que permite resolver de manera gráfica algoritmos que pueden fácilmente transcribirse a algún lenguaje de programación, aquí te brindamos algunas recomendaciones para su diseño:
Se deben usar solamente líneas de flujos horizontales y/o verticales.
Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores sólo cuando sea necesario. No deben quedar líneas de flujo sin conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
5. Ventajas de Usar Diagramas de Flujo: Rápida comprensión de las relaciones. Análisis efectivo de las diferentes secciones del programa. Pueden usarse como modelos de trabajo en el diseño de nuevos programas o sistemas. Comunicación con el usuario. Documentación adecuada de los programas. Codificación eficaz de los programas. Depuración y pruebas ordenadas de programas.
6. Errores: Un diagrama de flujo, puede tener tipos de errores diferentes: DE FORMA: Se genera por no seguir las reglas establecidas, puede hacer el diagrama difícil interpretación, confundir el diagrama y hasta convertirlo en errado en cuanto ser lógica. DE LÓGICA: Son errores de estructura del diagrama en cuanto al arden puede ser de distinta gravedad, desde dejar de mostrar el resultado. O falta un cálculo hasta un error que determine que un programa nunca llegue a su fin. DE OBJETIVO: Es cuando un diagrama de flujo esta correcto en cuanto a su estructura y forma pero no soluciona el problema propuesto sino otro. Una vez terminado el diagrama de flujo, es necesario asegurarse de que funcione correctamente cumpliendo el objetivo fundamental, las condiciones específicas y las excepciones del problema propuesto a esto se le llama generalmente "corrida en frio" prueba de escritorio. Para ellos e selecciona algunos datos (creadas por el programador para fines de la prueba) que cubran todos los casos posibles en todas las condiciones. Tomando estos datos se recorre el diagrama de flujo símbolo a símbolo siguiendo la orden de cada uno de ellos, todo esto se
hará a un lado del diagrama o en una hoja aparte dándole valores a variables y ejecutando operación que se indique
5. Símbolos Usados en los Algoritmos:
6. Características de los DFD: Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término. Las siguientes son acciones previas a la realización del diagrama de flujo:
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
7. Niveles: Diagrama de Contexto: Nivel 0 En el diagrama de contexto se caracterizan todas las interacciones que realiza un sistema con su entorno (entidades externas), estas pueden ser otros sistemas, sectores internos a la organización, o factores externos a la misma. Se dibuja un sólo proceso que representa al sistema en cuestión y se escribe su nombre en dicha burbuja como un sustantivo común más adjetivos. De él solamente parten los flujos de datos que denotan las interrelaciones entre el sistema y sus agentes externos, no admitiéndose otros procesos ni almacenamientos en el dibujo. Resulta de gran utilidad para los niveles posteriores de análisis como herramienta de balanceo. Y es conocido como el Diagrama de Flujo de Datos DFD de Nivel "0".
Diagrama de Nivel Superior: Nivel 1 En el diagrama de nivel superior se plasman todos los procesos que describen al proceso principal. En este nivel los procesos no suelen interrelacionarse directamente, sino que entre ellos debe existir algún almacenamiento o entidad externa que los una. Esta regla de construcción sirve como ayuda al analista para contemplar que en un nivel tan elevado de abstracción (DFD Nivel 1) es altamente probable que la información que se maneja requiera ser almacenada en el sistema aunque no esté especificado por un Requisito funcional, siendo en realidad un requisito no-funcional.
Diagrama de Detalle o Expansión: Nivel 2 En un diagrama de nivel 2 o mayor, comienzan a explotarse las excepciones a los caminos principales de la información dado que aumenta progresivamente el nivel de detalle. De aquí en adelante se permiten los flujos entre procesos. El DFD (Diagrama De Flujo De Datos) nivel 2 puede considerarse el máximo para ser validado en forma conjunta con el usuario dado que en los niveles posteriores el alto grado de complejidad del diagrama puede resultar de muy difícil lectura para personas ajenas al equipo de sistemas. También se recomienda el diagrama de nivel superior.
8. Conexiones entre los elementos de un DFD: Conexiones prohibidas
ENTIDAD - ENTIDAD
ALMACÉN - ALMACÉN
ENTIDAD - ALMACÉN
Conexiones permitidas
ENTIDAD - PROCESO
PROCESO - PROCESO
PROCESO - ALMACÉN
1) Proceso-Proceso: La conexión directa entre dos procesos es válida si la información es síncrona; sino, se necesita un almacén temporal que guarde los datos del proceso origen (así el proceso destino captura los datos cuando los necesite). 2) Proceso-Almacenes: Hay tres tipos de conexión entre procesos y almacenes: 2.1 Flujo de consulta: El proceso usa la información que hay en el almacén para: Utilizar los valores de uno o más atributos de una ocurrencia de almacén.
Comprobar si los valores de los atributos seleccionados cumplen unos criterios determinados. 2.2 Flujo de actualización: El proceso va a alterar la información guardada en el almacén para: Crear una nueva ocurrencia del almacén. Borrar una o más ocurrencias del almacén.
Modificar el valor de algún atributo.
2.3 Flujo de diálogo: Representa un flujo de consulta y un flujo de actualización que no tienen relación directa. Ej. Sistema de gestión de peticiones de libros: cuando el usuario realiza la petición de libro, el proceso consulta el almacén “libros” para ver si se encuentra disponible. Si no está disponible, se rechaza la petición; si está disponible, el proceso actualiza el almacén para indicar que tiene un ejemplar menos. Estas dos gestiones se pueden representar mediante un flujo de diálogo, pues no tienen relación directa. 3) Almacén ↔ Entidad Externa: La conexión entre entidad externa y almacén sólo es posible con almacenes externos al sistema y que aparecen únicamente en el diagrama de contexto.
9. Componentes: A) Procesos: Función que transforma los flujos de datos de entrada en uno o varios flujos de datos de salida. Regla de conservación de datos: El proceso genera los flujos de datos de salida a partir de los flujos de datos de entrada + información local al proceso. Error de conservación de datos al proceso no le llegan todos losdatos necesarios para generar los datos de salida. Pérdida de información: El flujo de datos o algún componente suyo muere dentro del proceso (i.e., no se utiliza para generar los flujos de salida). Representación: En el interior del círculo se incluye un número y un nombre breve y representativo de la función que representa. Ambos deben ser únicos en el conjunto de DFD del sistema. B) Almacenes de Datos: Es la información del sistema almacenada de forma temporal. Representación: Dentro de las dos líneas paralelas se pone un nombre representativo sobre el tipo de datos que contiene. Un almacén se puede representar varias veces dentro de un DFD si así se aumenta su legibilidad. El almacén se sitúa en el nivel más alto donde sirva como conexión entre dos o más procesos, y se representarán en los niveles inferiores.
Almacén local: Aquel que sólo tiene conexión con un proceso no debe de aparecer en ese nivel sino en el DFD que especifique dicho proceso. Estructura: Si la estructura de los datos almacenados es de tipo registro o similar, el almacén tiene estructura simple y su contenido se define en el diccionario de datos. Si su estructura es más compleja, su contenido se representa mediante un diagramaE/R. C) Entidades Externas: Son los generadores o consumidores de información del sistema, no perteneciendo al mismo. Los flujos queparten o llegan a ellas definen la interfaz entre el sistema y el mundo exterior. No se representa en un DFD los posibles flujos de información entre entidades externas. TRUCO: si necesito representar conexión entre entidades externas realmente pertenecen al sistema y, por lo tanto, no son entidades externas. Una entidad externa se puede representar varias veces dentro de un DFD si así se aumenta su legibilidad. Generalmente sólo aparecen en el diagrama de contexto (DFD demayor nivel). D) Flujo de Datos: Es el camino por el que viajan los datos y que conecta el resto de componentes del DFD. Representación: Flecha con la dirección del flujo de datos. Nombre representativo, de forma que todos los flujos de datos deben de llevar nombre excepto los de entrada/salida a un almacén de estructura simple (pues se
sobreentiende que la estructura del flujo de datos es igual a la del almacĂŠn).
10. Ejemplo con Diagramas de Flujo de Datos. Elaborar un DFD que te permita calcular e imprimir el ĂĄrea de un cuadrado.
Inicio
b, h, a es real
Ingresar b y h
a=b*h
Mostrar a
Fin
1. Introducción: Para la solución de diversos problemas que se presentan en nuestras vidas se necesita de los Algoritmos que es una serie de pasos organizados que describe el proceso que se debe seguir. Los algoritmos pueden representarse a través de Pseudocódigos y Diagramas de Flujo de Datos. En esta sesión trabajaremos los Diagramas de Flujos de Datos (DFD). Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.
2. Problemas: a) Desarrollar un diagrama de flujo de datos que permita realizar las cuatro operaciones con dos números ingresados por teclado. ANALISIS
INICIO
Suma: S Restar: R Multiplicar: M Dividir: D
N1, N2, S,R,M, D, son enteros
Leer: N1, N2
S= N1 + N2 R= N1-N2 M= NI*N2 D=N1/N2
Mostrar: S,R,M,D
FIN
b) Desarrollar un DFD que nos permita cambiar una cantidad de soles a dólares.
ANALISIS:
S= soles T= total en dólares
INICIO
S,t son reales
Leer: S
T= S / 2.659
Mostrar T
FIN
b) Desarrollar un DFD que nos permita hallar la suma de dos números:
INICIO ANALISIS:
S= Suma T= Total
S,T son reales
Ingrsar: S,T
T= S / 2.659
Mostrar T
FIN
c) Desarrollar un DFD que te permita calcular la raíz cuadrada de un número:
ANALISIS:
R= Raiz cuadrada N= número
INICIO
R y N son reales
Ingresar: N
R= sqrt N
Mostrar R
FIN
d) Desarrollar un DFD que te permita hallar el producto de dos números cualquiera:
ANALISIS Producto: M
INICIO
Numero1: N1 Numero2: N2 M, N1 Y N2 son enteros
Ingresar: N1, N2
M=N1*N2
Mostrar: M
FIN
e) Desarrollar un DFD que te permita calcular la edad de una persona:
INICIO
ANÁLISIS:
E, FN y FA es real
E: edad FA: Fecha Actual FN: Fecha de Nacimiento
INGRESAR FA , FN
E=Mostrar FA-FN e
Mostrar E
FIN
f) Desarrollar un DFD que permita halla la raíz cuadrada de la suma de dos números:
ANALISIS:
ANÁLISIS:
INICIO
R, N1 y N2 son reales
R= raíz cuadrada N1= número 1 N2= número 2 Ingresar: N1, N2
R= sqrt (N1+N2)
Mostrar R
FIN
g) Desarrollar un DFD que permita hallar el área de un triángulo:
Inicio
ANÁLISIS:
A,B y H son enteros
A: área B: Base H: Altura
INGRESAR B,H
A=Mostrar (B*A)/2 e
Mostrar A
FIN
h) Desarrollar un DFD que te permita leer un valor cualquiera N y escriba si dicho nĂşmero es par o impar.
INICIO N=0
N
NO
SI
N ES PAR
N ES IMPAR
FIN
i) Diseñar un DFD que permita calcular la hipotenusa de un triángulo
rectángulo:
INICIO
H: Hipotenusa
H,a,b
A: número
es real
B: número Ingresa a,b
H= sqrt/a^+b^2)
Mostrar H
FIN
Vl. “INTEGRANO NUESTROS APRENDIZAJES I ”
1. “Conociendo los Algoritmos”: a) ¿Qué son los Algoritmos? Un algoritmo se define como un conjunto de instrucciones para resolver un problema. En otros términos, un algoritmo es una sola prescripción determinante de un proceso de cálculo que, partiendo de diversos datos iniciales, conduce en todos los caos al resultado que le corresponde.
b) ¿Cuáles son las Propiedades de un Algoritmo? Enunciado del Problema Análisis de la Solución General Diferentes alternativas de solución
c) ¿Cómo se elabora un Algoritmo? Para elaborar un algoritmo se deben tomar en cuenta las propiedades de estos, ya que de ahí se inicia el proceso de elaboración. Comprende las siguientes partes: 1. Análisis:
¿Qué se quiere? ¿Cómo se quiere? ¿Qué deseo obtener?
Solución:
2. Buscar Diferentes Alternativas de Solución al Resultado del Problema.
2. “Variables, Constantes, Tipos de Datos, Expresiones, Operadores y Operandos”: a) ¿Qué es una Variable? Es un espacio en la memoria de la computadora que permite almacenar
temporalmente un dato durante la
ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa.
b) ¿Qué es una Constante? Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.
c) ¿Qué es una Expresión? Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.
d) ¿Cuáles con los tipos de Operadores? Operadores Aritméticos Operadores Relacionales Operadores Lógicos
3.”Pseudocódigos”: a) ¿Qué son Pseudocódigos? El pseudocódigo (o falso lenguaje) es una descripción informal1 de alto nivel de un algoritmo informático de programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programación verdadero , pero que está diseñado
para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación.
b) ¿Cuáles son las ventajas de trabajar con Psudocódigos? 1. Ocupan mucho menos espacio en el desarrollo del problema. 2. Permite representar de forma fácil operaciones repetitivas complejas. 3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal. 4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa. 5. En los procesos de aprendizaje de los alumnos de programación, éstos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo). 6. Mejora la claridad de la solución de un problema.
c) Resuelve el Siguiente Problema con ayuda de Pseudocódigos: Calcular e imprimir el área de un Rombo, cuya base y altura son ingresados por teclado.
Análisis: Imprimir el Área del Rombo Área del Rombo = Diagonal Mayor x diagonal menor 2
Diagonal Mayor = m → ℝ Datos
Diagonal Menor =
n → ℝ
Área
a → ℝ
=
Variables
Desarrollo: Inicio m, n, a es real
Declaración de Variables
Ingresar “La diagonal mayor es:”, m
Ingreso de Datos
Ingresar “La diagonal menor es:”, n a= (m*n)/2
Cálculo
Mostrar “El área del triángulo es:”, a
Mostrar Resultado
Fin
4. “Diagramas de Flujo de Datos”: a) ¿Qué es un Diagrama de Flujo de Datos? Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados.
b) ¿Cuáles son las Ventajas de Utilizar los Diagramas de Flujo de Datos?
Rápida comprensión de las relaciones.
Análisis efectivo de las diferentes secciones del programa.
Pueden usarse como modelos de trabajo en el diseño de nuevos programas o sistemas.
Comunicación con el usuario.
Documentación adecuada de los programas.
Codificación eficaz de los programas.
Depuración y pruebas ordenadas de programas.
c) Escribe el Nombre de los Siguientes Símbolos Terminador
Conector
Condicional
Proceso
Datos
5. “Solucionando Problemas con Diagramas de Flujo de Datos”: a) ¿Cuáles son las Acciones Previas a la Realización del Diagrama de Flujo de Datos?
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o
responsables del proceso anterior y posterior y de otros procesos interrelacionados, así como las terceras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
b) ¿Cuáles son los pasos para Construir un Diagrama de Flujo de Datos?
Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.
c) Resuelve el Siguiente Problema con la Ayuda de un Diagrama de Flujo de Datos. Dise単ar un Diagrama de Flujo que te permita calcular e imprimir el promedio de 5 notas ingresadas por teclado.
Inicio
N1, N2, N3, N4, N5, p es real
Leer N1, N2, N3, N4, N5
P = (N1 + N2 + N3 + N4 + N5)/5
Mostrar P
FIN
1. Introducción Un diagrama de flujo de datos es una técnica para representar soluciones a problemas del mundo real en forma visual, es decir, en forma gráfica. Esta técnica mediante graficas de flujo ilustra cómo diseñar los procedimientos o sentencias con coherencia lógica, que representan la solución al problema planteado. Los diagramas de flujo de datos se realizan utilizando símbolos y reglas bien definidas que representan los pasos del algoritmo y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y fin.
Se puede de elaborar diagrama de flujo de datos utilizando el software DFD. Software desarrollado por el grupo Smart, de la Universidad del Magdalena (Santa Marta, Colombia) para apoyar la enseñanza de la lógica de programación a través de la utilización de los diagramas de flujo. Este tipo software permite editar, ejecutar, correr y validar diagramas de flujo, que es el primer paso para hacer un programa.
2. ¿Qué es el Programa Free DFD? El dfd es un programa, diseñado para analizar y construir los algoritmos. Sepueden crear diagramas de flujo de datos para representar algoritmos; estos son problemas planteados que se pueden solucionar a través de un proceso específico, teniendo en cuenta que el mismo proceso aplica solo para el mismo problema, entonces podríamos decir que para cada problema algorítmico se aplica una solución diferente. El programa posee una serie de herramientas y comandos para utilizar en la construcción de algoritmos.
3. Ventana Principal de DFD
4. Barra de Menús de DFD
Aquí encontramos las siguientes opciones:
Archivo: Este menú se encarga del manejo del archivo que estemos trabajando. Están los siguientes comandos: Nuevo: Para crear un nuevo archivo DFD. Abrir: Para abrir un archivo DFD guardado. Guardar: Para guardar el archivo que se está utilizando. Guardar como: Para guardar con un nombre diferente el DFD que se está utilizando. Imprimir: Para imprimir el archivo DFD abierto. Salir: Para terminar la sesión.
Edición: Este menú es el encargado de manejar los comandos de Edición del Archivo dfd:
Cortar: Para quitar un elemento del archivo Copiar: Para copiar el elemento marcado en el archivo Pegar: Para pegar en el diagrama el elemento copiado o cortado anteriormente. Eliminar: Para borrar el elemento marcado en el archivo. Editar Objeto: Para cambiar el contenido del elemento marcado. Objeto: En este menú se utilizan todos los comandos que están representados en iconos en la misma ventana principal.
Ver: Este menú habilita los siguientes comandos: Zoom: Para ampliar o disminuir la vista general del archivo. Anterior Subprograma: Para ver el archivo del anterior subprograma cuando exista. Siguiente Subprograma: Para ver el archivo del siguiente subprograma cuando exista.
Ejecución: Este menú activa la ejecución del diagrama, contiene los siguientes comandos: Ejecutar: Para iniciar la ejecución del archivo. Pausar: Para pausar la ejecución. Detener: Para interrumpir la ejecución.
Depuración: Controla las actividades de avance del archivo. Se compone de los siguientes comandos: Paso Simple: Analiza cada elemento paso a paso e indica el recorrido delineando la zona con un color. Ejecutar Hasta: Permite marcar un elemento dentro del archivo y realizar la ejecución del diagrama solo hasta ese punto. Detener: Para interrumpir el avance.
4. La Barra de Botones : (Nuevo): Crea un nuevo archivo dfd (Abrir): Abre un archivo dfd existente. (Guardar): Guarda el archivo que se está trabajando. (Imprimir): Imprime el archivo que se está trabajando. (Cortar): Quita un elemento del archivo y se guarda para pegarlo después. (Copiar): Copia un elemento seleccionado para pegar en otra ubicación (Pegar): Pega un elemento en una ubicación seleccionada. (Eliminar): Borra el elemento marcado en el archivo. (Ejecutar): Inicia la ejecución del archivo. (Detener): Interrumpe la ejecución. (Pausar): Pausa la ejecución. (Paso simple): Analiza cada elemento del archivo y lo marca o delinea con un color para saber la ubicación de análisis.
(Ejecutar hasta): Realiza la ejecución solo hasta un punto marcado.
(Depurador): Activa el depurador del diagrama.
(Alejar): Aleja la vista y la reduce. (Acercar): Acerca la vista o la aumenta
(Cursor): Activa el puntero del mouse para moverse en el archivo y marcar elementos.
(Asignación): Inserta un elemento de asignación en el archivo.
(Ciclo mientras): Inserta un elemento mientras en el diagrama.
(Ciclo para): inserta elemento de ciclo para en el diagrama.
(Decisión): Inserta bloque de decisión en el archivo.
(Lectura): Inserta bloque de lectura en el diagrama.
(Salida): Inserta los datos que se verán en la pantalla cuando se ejecute el programa.
5. Características: En los identificadores no debe de haber un número al principio. No debe contener espacios o caracteres no válidos. Escoger nombres con significado para los procesos, flujos, almacenes y terminadores. Numerar los procesos. Evitar los DFD excesivamente complejos, podrían generar más problemas que los que ya hay. Redibujar el DFD tantas veces como sea necesario estéticamente
6. Selectivas: La estructura selectiva se utiliza cuando cierto problema requiere de una descripción más detallada que solo una lista de instrucciones. También se usa para tomar decisiones lógicas. Puede
ser
de
3
tipos:
Simple,
Doble
y
Múltiple.
►Repetitivas Son las que se repiten las instrucciones en la ejecución de un programa hasta cumplir la condición en un programa. Las sentencias
repetitivas
son
dos:
While: Indica al ordenador que se ejecuten una o más sentencias mientras se cumpla una determinada condición. La condición viene determinada por una variable o expresión booleana.
1. Concepto de Estructuras Condicionales: Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite.
2. Tipos de Estructuras Condicionales Existen tres tipos básicos, las simples, las dobles y las múltiples.
2.1. Estructuras Condicionales Simples: Las estructuras condicionales simples se les conocen como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:
Pseudocódigo:
Diagrama de flujo:
2.2. Estructuras Condicionales Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:
Pseudocódigo:
Diagrama de flujo:
Dónde: Si: Indica el comando de comparación Condición: Indica la condición a evaluar Entonces: Precede a las acciones a realizar cuando se cumple la condición Instrucción(es): Son las acciones a realizar cuando se cumple o no la condición Si no: Precede a las acciones a realizar cuando no se cumple la condición Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.
2.3. Estructuras Condicionales Múltiples Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones específicas.
La forma común es la siguiente: Pseudocódigo:
Diagrama de flujo:
2.3.1. Estructuras Condicionales Múltiples (en caso de) : Las estructuras de comparación múltiples, es una toma de decisión especializada que permiten evaluar una variable con distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma es la siguiente:
Pseudocódigo:
Diagrama de flujo:
3. Ejemplos: 1) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los s/ 1000 ¿Qué cantidad pagara una persona por su compra? ANALISIS
INICIO
C > 1000 T= C-(20/100 * C)
C, T es real
T= total
Leer C
NO
C> 1000
SI
T= C- (20 / 100 * C)
Mostrar T
FIN
2) Diseñar un diagrama de flujo de datos que te permita evaluar si un numero ingresado por teclado es positive o negativo. ANALISIS
INICIO
Numero = núm. Num > 0 = positivo
Num es entero
Leer num
NO
Num > 0
‘’negativo’’
SI
‘’positivo’’
FIN
3) Desarrolle un DFD que permita leer dos números y ordenarlos de menor a mayor, si es el caso. INICIO
A=0, B=0, Temporal =0
A,B
A>B
Si
Temporal = B Si B=A
A = “Temporal”
“ORDEN = “A,B
FIN
IX. “INTEGRANDO NUESTROS APRENDIZAJES II ”
1. “Creando Diagramas de Flujo de Datos con el Software Free DFD” a) ¿Qué es el Software DFD? El DFD es un programa desarrollado por el grupo Smart, de la Universidad del Magdalena (Santa Marta, Colombia), diseñado para analizar y construir los algoritmos. El DFD ha sido diseñado para apoyar la enseñanza de la lógica de programación a través de la utilización de los diagramas de flujo. Este tipo software permite editar, ejecutar, correr y validar diagramas de flujo, que es el primer paso para hacer un programa.
b) Indique la Función de los Siguientes Botones del Programa DFD Inserta un elemento de asignación en el archivo.
Inserta un elemento mientras en el diagrama.
Inserta elemento de ciclo para en el diagrama.
Inserta bloque de decisión en el archivo.
Inserta bloque de lectura en el diagrama.
Inserta los datos que se verán en la pantalla cuando se ejecute el programa.
c) Resuelve el Siguiente Problema Utilizando el Software DFD “Calcular cuánto dinero recibirá un profesor en 1 año, si trabaja 12 horas semanales y gana x soles por hora.”
2. “Estructuras Condicionales Simples, Dobles y Múltiples” a) ¿Qué son Estructuras Condicionales? Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa.
b) ¿Cuáles son los tipos de estructuras Condicionales que Existen? Estructuras Condicionales Simples Estructuras Condicionales Dobles Estructuras Condicionales Múltiples
c) Resuelve el Siguiente Problema utilizando Estructuras Condicionales Simples y Dobles: Elaborar un DFD que te permite imprimir si una persona es mayor o menor de edad.
structura Condicional Simple: Inicio
b, h, a es real
Ingresar b y h
Edad >= 18
V
Imprimir “Mayor de Edad”
Fin
Estructura Condicional Doble:
Inicio
b, h, a es real
Ingresar b y h
F
Edad >= 18
Imprimir “Menor de Edad”
V
Imprimir “Mayor de Edad”
Fin
https://es.wikipedia.org/wiki/Algoritmo http://informaticafrida.blogspot.com/2009/03/algoritmo.html http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo http://www.alegsa.com.ar/Dic/pseudocodigo.php http://es.slideshare.net/NatyBarrera/algoritmo-pseudocodigo-y-diagrama-de-flujo http://www.mastermagazine.info/termino/6428.php http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n) http://www.alegsa.com.ar/Dic/variable.php http://www.desarrolloweb.com/articulos/2164.php http://es.wikipedia.org/wiki/Operando http://www.desarrolloweb.com/articulos/2165.php http://issuu.com/nerita1/docs/diagramadeflujodedatos http://issuu.com/nerita1/docs/creandodiagramasdeflujo https://es.wikipedia.org/wiki/Diagrama_de_flujo http://www.desarrolloweb.com/articulos/2225.php http://makeyna2.angelfire.com/Manual_DFD.pdf