manual de algoritmo

Page 1

Conociendo los algoritmos

1


Dedicatoria. Dedico este manual a todas las personas

que me incentivan a

ser mejor como mis profesora que se esfuerzan por enseĂąarme ,y mis padres que siempre estĂĄn para mi y me apoyan en todas mis decisiones por q confĂ­an en mi.

1


Presentaci贸n. Este trabajo contiene temas muy interesantes para aprender mas sobre los algoritmos, para aprender a elaborarlos, y saber en que consisten. Tambi茅n contienen ejemplos para que sea mucho mas sencillo entender lo tratado en cada tema; y dibujos que hacen que aprender sea mas divertido.

1


ALGORITMOS  es un conjunto de pasos para resolver un problema.

 Un algoritmo es una sola prescripción determinante de un proceso de calculo que, partiendo de diversos datos iníciales , conducen en todos los casos el resultado que le corresponde.

 Un algoritmo se transforma en una herramienta de computadora cuando se han preparado instrucciones adecuadas para que la computadora pueda llevarlos acabo, estas instrucciones deberán comunicarse a la computadora en un lenguaje que pueda entenderse , tal lenguaje se conoce como lenguaje de progracion.

1


 En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín,dixit algorithmus y este a su vez del matemático persa Al-Juarismi ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. 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 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 lineal de ecuaciones.

 En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas 1


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). Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.

 A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros. Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos. 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: 1. Tiempo secuencial. Un algoritmo funciona en tiempo sincretizado – paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).

2. Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura 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.

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


 un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos. En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general): 1. Aritmetizabilidad. Solamente operaciones innegablemente calculables están disponibles en el paso inicial.

1


Historia: La palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, AlKhawarizmi, Al-Khawaritzmi o Al-Khowarizmi) que vivió entre los siglos VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el numero de operaciones necesarias que formaban el 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. Al-Khorezmi fue sin duda el primer pensador algorítmico. Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842.

1


Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó. La idea de resolver un problema o de disponer de un algoritmo es bastante antigua, tal es así, que existía la errada creencia que no había problema que no se pudiera resolver y en base a ello, el matemático David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gödel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequeña parte es computable, luego que el objetivo que perseguia David Hilbert no era computable, es lo que se ha denominado como la computabilidad de los algoritmos.

PROPIEDADES DE UN ALGORITMO.

Las propiedades de un algoritmo son puntos básicos para su elaboración, ya que estos llevan un mejor desarrollo del problema del computador.

1. ENUNCIADO DEL PROBLEMA. el enunciado debe ser claro y completo .necesitamos saber que deseamos del computador.

1


2. ANALISIS DE LA SOLUCION GENERAL. Debemos analizar : los datos o resultados q se esperan, los datos de entrada que nos suministran , el proceso al que se requiere someter esos datos a fin de obtener los resultados esperados es importante hacernos preguntas como : ¿Qué se quiera?, ¿Cómo se quiere?, ¿ que deseo obtener? ,etc.

3. ELABORACION DE ALGORITMOS. Posiblemente tengamos muchas formas de resolver el problema, lo importante es decidir cual vamos a utilizar para obtener los resultados esperados en el menor tiempo posible o al menor costo.

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


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.

Algoritmos como funciones Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aun, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera. Como cada secuencia de bits representa a un número natural (véase Sistema binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se pueden calcular. Es decir que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución. En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca 1


devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada. Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición. Cuando una función puede ser calculada por medios algorítmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha función es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo.

Análisis de algoritmo

 Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.

 El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de 1


programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Lexico, cuyos códigos pueden estar en el idioma del programador.

 Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente.

En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de este con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

1


Ejemplo de algoritmo El problema consiste en encontrar el máximo de un conjunto de números. Para un ejemplo más complejo véase Algoritmo de Euclides.

Descripción de alto nivel

Dado un conjunto finito de números, se tiene el problema de encontrar el número más grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como . Es decir, dado un conjunto que para todo elemento

se pide encontrar que pertenece al conjunto .

tal

Para encontrar el elemento máximo, se asume que el primer elemento ( ) es el máximo; luego, se recorre el conjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.

1


Descripción formal El algoritmo puede ser escrito de una manera más formal en el siguiente pseudocódigo:

Algoritmo Encontrar el máximo de un conjunto función max( ) //

es un conjunto no vacío de números// ← // es el número de elementos de ←

para

si

hasta

//

hacer

entonces

← devolver Sobre la notación: 

"←" representa una asignación: ← significa que la variable toma el valor de ; "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de ).

1


1


1


VARIABLES

 Una variable es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un programa. Toda variable pertenece a un tipo de dato concreto. En la declaración de una variable se debe indicar el tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc.

 Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:

1. Mediante una sentencia de asignación.

2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

1


Ejemplo: ... i:=1; read(n); while i < n do begin (* cuerpo del bucle *) i := i + 1 end; ...

 Es un grupo de datos que puede variar o alterarsedurante la ejecución del algoritmo o la ejecución delprograma, se les identifica por los siguientesatributos: El Nombre o identificador que se le asigna El tipo que describe el uso de la variable El valor de la variable que es la cantidad que tieneasociada en un determinado momento Una variable de un tipo determinado solo puedetomar valores de ese tipo

1


TIPOS DE VARIABLES Las variables puede ser identificadas de acuerdo a la funciónque asume en el algoritmo, como:

CONTADOR Sirve para llevar una cuenta con incrementos o decrementosconstantes, generalmente de 1 en 1.Ej.: Cumpleaños, variable que acumula el número decumpleaños año con año Requiere de las siguientes instrucciones: cumpleaños=1 cumpleaños=cumpleaños + 1 //inicializar en uno aumenta en uno cada año //cumpleaños

ACUMULADOR Sirve para llevar una suma o cuenta de diferentes valores(acumular). Ej.: SEdad variable que almacena la suma de las edades de unacantidad de personas. Requiere de las siguientes instrucciones: SEdad = 0 // inicializa en cero SEdad = SEdad + edad // SEdad se imcrementa en el edad

 Inicializar, significa poner en blanco o en cero una variable ocampo antes de su utilización.  Los acumuladores y contadores por lo general se inicializan encero. 1


VARIABLE DE TRABAJO

Campo que almacena temporalmente el resultado de alguna operaciรณn. No es variable de entrada y de salida. Ej.: Me piden encontrar el รกrea de un cuadrado, para ello necesito el valor para el Lado

AREACUADRADO = LADO x LADO

DATOS

Para la computadora es una secuencia debits 0 รณ 1. Sin embargo los lenguajes de alto nivel permiten ignorar los detalles de la representaciรณn interna dependiendo del nivel de abstracciรณn del lenguaje utilizado.

1


TIPOS DE DATOS PRIMITIVOS Datos numéricos: Conjunto de los valores numéricos. Pueden representarse en dos formas: Entero: Subconjunto de los números enteros pueden ser + o -, no tienen componentes fraccionarios.

Real: Subconjunto de los números reales + ó - , los números reales siempre tienen punto decimal Datos lógicos: De tipo lógico, también denominado booleano, verdadero o falso. Datos cadena: Conjunto finito y ordenado de caracteres.

1


OPERADORES ARITMETICOS.

1


EXPRESIONES ARITMÉTICAS.  son combinaciones de constantes y/o variables unidos por operadores aritméticos paréntesis y nombres de funciones especiales.

1


EXPRESIONES RELACIONALES.

1


CONSTANTES.  En programación, una constante representa a un valor (dato almacenado en memoria) que no puede cambiar durante la ejecución de un programa. Por ejemplo, en lenguaje C, una constante puede ser de tipo entero, real, carácter, cadena o enumerado. Las constantes de tipo enumerado se van a estudiar en el apartado "Datos de Tipos Enumerados". En cuanto a las demás, se pueden expresar de dos formas diferentes:

1. Por su valor. 2. Con un nombre (identificador). Ejemplo 1: Las siguientes constantes de tipo entero están expresadas por su valor: -5 10 Para expresar una constante con un nombre, la constante debe ser declarada previamente. Todas las constantes que se declaran en un programa son definidas de la misma forma, indicando de cada una de ellas:

1. Su nombre (mediante un identificador). 2. El valor que simboliza (mediante una expresión). En pseudocódigo, para declarar una constante, vamos a utilizar la sintaxis:

<nombre_de_la_constante> = <expresión>

Y para declarar más de una constante en una misma línea, las separaremos por medio de comas (,). 1


Ejemplo 2: De modo que, si se quieren declarar las constantes de tipo entero del ejemplo anterior, asignándoles un identificador, se puede escribir, por ejemplo: TEMPERATURA = -5 MES = 10 O también: TEMPERATURA = -5, MES = 10

En programación es una buena práctica escribir los identificadores de las constantes en mayúsculas, de esta forma es más fácil localizarlos en el código de un programa (o algoritmo). Durante la ejecución de un programa, por medio del identificador de una constante, se puede hacer referencia al valor (dato) que simboliza, tantas veces como sea necesario.

1


DIAGRAMA DE FLUJOS DE DATOS.  Un diagrama de flujo de datos es una representación gráfica para la maceta del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y las entidades externas. Este contexto a nivel de DFD se "explotó" para mostrar más detalles del sistema que se está modelando.  Los diagramas de flujo de datos fueron inventados por Larry Constantina, el desarrollador original del diseño, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El antiguo sistema de diagramas de flujo de datos puede ser elaborado y se comparó con el nuevo sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un sistema máseficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado puede determinarse a través de un diagrama de flujo de datos. modelo de datos.

 Representan los procesos o funciones que debe llevar acabo un sistema en distintos niveles de abstracción y los datos q fluyen entre las 1


funciones. Los procesos mas complejos se descomponen en nuevos diagramas hasta llegar a procesos sencillos.  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.

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

1


Componentes de los DFD

* PROCESOS (burbujas): representan la parte del sistema que transforma ciertas entradas en ciertas salidas. * FLUJOS: representan los datos en movimiento. Pueden ser flujos de entrada o flujos de salida. Los flujos conectan procesos entre sí y también almacenes con procesos. * ALMACENES: representan datos almacenados. Pueden ser una base de datos, un archivo físico, etc. * TERMINADORES: representan entidades externas que se comunican con el sistema. Esas entidades pueden ser personas, organizaciones u otros sistemas, pero no pertenecen al sistema que se está modelando. Existen procesos y flujos especiales llamados procesos de control y flujos de control. Se emplean para modelar sistemas en tiempo real. Los flujos de control son señales o interrupciones, en tanto los procesos de control son burbujas que coordinan y sincronizan otros procesos. Los procesos de control sólo se conectan con flujos de control. Los flujos de control de salida "despiertan" otras burbujas, en tanto los flujos de control de entrada, especifican que una tarea terminó o se presentó un evento extraordinario.

1


Representación de un sistema en 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.

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

1


1


1


SOLUCIONANDO DIAGRAMAS DE FLUJO DE DATOS. 1. Hallar el cuadrado de un numero entero ingresado por teclado. X = ( num ).2

inicio

Num, X es entero

Leer num

X = num ^2

Salir X

1

fin


2. El profesor wilton torres desea saber el porcentaje de hombres y el porcentaje de mujeres q hay en el grupo de estudiantes de 4ยบ B. Anรกlisis: Cantidad de hombres: ch Cantidad de mujeres: cm Total de laumnos = ch+cm INICIO

CH , CM ES ENTERO X , Y ES REAL

X , Y ES REAL INGRESAR CH , CM

X = 100 * CH / ( CH + CM ) Y = 100 * M / ( CH + CM )

MOSTRAR X,Y

FIN

1


3. Se desea depositar una cierta cantidad de dinero en el banco , el cual paga a raz贸n de 2 porciento mensual . realizar un DFD , para saber cuanto de dinero ganara en un mes? Analizar: Cantidad de dinero = X Tasa de inter茅s = 2 porciento = 0,02 Ganancia = G G = CD * 0,02

INICIO

CD , TI , G ES REAL

LEER CD

TI = 0,02

G = CD * TI

MOSTRAR G

FIN

1


INTEGRANDO NUESTROS APRENDIZAJES.

1


1


CREANDO DFD CON EL SOFWARE FREE DFD.  “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.  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. A continuación te invito a conocer el entorno gráfico del Software DFD.

 Crear diagramas de flujo en el programa dfd, es muy sencillo, a diferencia de que en este programa se obvia un paso: “no se declaran las variables”, así que al momento de crear nuestro dfd empezaríamos leyendo las variables que vamos a utilizar, además debemos tener en cuenta lo siguiente:

1


El símbolo de entrada/salida de datos es reemplazado por este otro cuadrilátero

Se utiliza otro tipo de símbolo de salida de datos

Ya no se utilizara el símbolo de inicio/fin, en su lugar utilizaremos este símbolo en forma de una circunferencia

1


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. Existen tres tipos básicos, las simples, las dobles y las múltiples.

 Es aquella que nos permite preguntar sobre el entorno que nos rodea, pudiendo asi actuar sobre la respuesta obtenida. Estas respuestas siempre serán verdaderas o falsas, pudiendo así tomar, en un principio, dos caminos diferentes.

 Las estructuras condicionales se utilizan para lograr que un algoritmo analice los datos y tome ciertas decisiones., con las estructuras condicionales se regula el comportamiento de un algoritmo, para que interactúe con los datos ingresados por el usuario, o con datos que ha obtenido de procesos internos.

1


ESTRUCTURA CONDICIONAL SIMPLE

 La estructura condicional simple ( IF - THEN ), permite realizar una determinada acción si la condición a evaluar es verdadera; seguir el flujo de control secuencial en el caso de que la condición sea falsa.  se les conoce como toma de decisión esta toma de dicision tiene la siguiente forma.

NO

SI COND ICION

PROCESO 1

PROCESO2

SINTEXIS: Si < condición > entonces Acción ( es ) Fin si

1


ESTRUCTURA CONDICIONAL DOBLE.

La estructura selectiva compuesta ( IF - THEN - ELSE ), permite elegir entre dos alternativas posibles en función del cumplimiento o no de la condición a evaluar.

 Al igual que en la estructura condicional simple, cuando al cumplirse o no la condición, hay más de una acción a evaluar, éstas serán encerradas entre un INICIO y un FIN para indicar que es un bloque de Instrucciones.

NO

SI COND ICION

1

PROCESO F1

PROCESO V1

PROCESO F2

PROCESO V2


SINTAXIS. si < condición > entonces proceso_si si no proceso_no fin_si

Estructura condicional múltiple.

Esta estructura permite asociar un conjunto de condiciones a un conjunto de acciones que se excluyen mutuamente. La estructura se conoce como CASE y permite una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de una expresión o indicador.

 las estructuras de comparación múltiple son tomas de decisiones especializadas que permite comparar una variable contra una posible, ejecutando para cada caso una serie de instrucciones específicas la forma común es las siguientes.

1


Si Condici贸n Proceso v1 1

Condici贸n

Proceso v2

2

Condicion 3

1

Proceso v3


Sintaxis.

si < condici贸n > entonces proceso v1 si no si < condici贸n 2 > entonces procesos v2 si no si < condici贸n 3 > entonces procesos v3 si no fin si fin si fin si

1


INTEGRANDO NUESTRO APRENDIZAJE II. PROBLEMAS Nº 1: Diseña un diagrama de flujo de datos que te permita evaluar si un numero ingresado por teclado es positivo o negativo.

Análisis: Numero = num Num > O  positivo Diseño:

Inicio

Num es entero

Leer

num

Num >o

Negativo

Positivo

fin 1


PROBLEMA Nº 2: Diseñar un diagrama de flujo de datos que te permite daterminar si una persona es mayor o menor de edad. Análisis: Inicio

Edad = e e > 18  mayor de edad. E

es entero

Leer e

E > 18

``menor de edad´´

``Mayor de edad´´

Fin

1


PROBLEMA Nº 3: en un almacen se hace un 20 porciento de descuento a los clientes cuya compra supere los 1000 soles ¿ cual será la cantidad pagara una persona por su compra? Análisis: Compra > 1000 Si t = c – ( 20 / 100 * c ) T = total

Inicio

T, c es real

Leer c

C > 100

T = c – (20 / 100 * c)

Mostrar

1

Fin


BIBLIOGRAFIA.

1

http://es.wikipedia.org/wiki/Algoritmo

http://es.scribd.com/doc/2292086/ALGORITMOS

http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos

http://www.cs.umss.edu.bo/doc/material/mat_gral_122/DFdatos.pdf

http://html.rincondelvago.com/dfd.html

http://www.alegsa.com.ar/Dic/diagrama%20de%20flujo%20de%20datos.php

http://www.desarrolloweb.com/articulos/2225.php

http://www.slideshare.net/ninamille/estructura-condicional-2763177

https://ambientes.inacap.cl/Cursos/SCORMAICC/C925114654/html/5_3.asp

http://blearning.itmina.edu.mx/dep/sada/carreras/Ingenieria%20en%20Sistemas%20Computaciona les/1er%20Semestre/Fundamentos%20de%20Programacion/Unidad%206/6.4/Estructuras%20Condi cionales.htm

http://ubv2006.galeon.com/Programas/Algoejemplos.pdf

http://www.carlospes.com/curso_de_algoritmos/03_03_constantes.php


1


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.