Manual de algoritmo

Page 1


Presentación El presente trabajo está realizado a base de mucho esfuerzo y dedicación, ya que demostramos las cosas prácticas de la vida a través de diversos algoritmos presentados a continuación. En la vida se presenta problemas los cuales se necesita una serie de pasos ordenados con el fin de solucionar algún problema, obteniendo facilidad para realizarlo. Lo cuál en este manual aprenderás a sintetizar de una manera fácil y sencilla, el proceso de aplicar lo aprendido a tu vida diaria.


Índice: Prólogo………………………………………..4 Introducción…………………………………..5 Capítulo I Algoritmo 1.1 Concepto………………………………....6 1.2 Propiedades de algoritmos……………. 9 1.4 CARACTERISTICAS DE LOS ALGORITMOS…10 1.5 Tipos de Datos………………………….11 1.6 Operadores……………………………...12 1.7 Elaboración de algoritmos……………..14 Capitulo II Estructuras condicionales Resolución de problemas


2.1Pseudocódigos………………………..24 2.1.1Ejercicios………………………….26 2.2Diagrama de flujo de datos……….....38 2.2.1 Clasificación de las partes del DFD…………………………………………39 2.3 Problemas……………………………..45 Capitulo III Resolución de problemas 3.1 Tipos de estructuras condicionales….62 3.1.1 Simples…………………………….62 3.1.2 Dobles……………………………...63 3.1.3Múltiples…………………………….64 3.2 Problemas……………………………….65 Conclusión………………………………….71 Bibliografía………………………………….72


Prólogo Mediante este libro tenemos como objetivo principal que los lectores tengan un mejor concepto acerca de algoritmos lo cual nos servirá para nuestra vida cotidiana. En el siguiente trabajo daremos a conocer los diferentes tipos de algoritmos que cada vez tienen más importancia en la medida que avanza la era de las computadoras, caminos, líneas de comunicación telefónica, televisión por cable, el transporte ferroviario, líneas aéreas, circuitos eléctricos de nuestras casas, automóviles Y que se puede resolver diferentes tipos de problemas utilizando dicho algoritmo. Teniendo la ventaja de ahorrar tiempo y costos al resolver un problema determinado. El trabajo, ha sido elaborado siguiendo una metodología dinámica, propia del grupo, lo cual garantiza a nuestros lectores un ágil manejo y acceso a la información que desee consultar.

5


INTRODUCCIÓN El desarrollo de algoritmos es un tema fundamental en el diseño de programas o soluciones. Por lo cual, el alumno debe tener buenas bases que le sirvan para poder crear de manera fácil y rápida sus programas. La siguiente documentación pueden servir de apoyo a tutores o profesores, en su labor cotidiana de enseñanza y al estudiante, facilitarle el desarrollo de su capacidad analítica y creadora, para de esta manera mejorar su destreza en la elaboración de algoritmos que sirven como base para la codificación de los diferentes programas que tendrá que desarrollar a lo largo de su carrera.

6


Algoritmos La resolución de un problema mediante un ordenador consiste en, partiendo de una especificación del problema, construir un programa que lo resuelva. Los procesos necesarios para la creación de un programa son: 1. Especificación y análisis del problema en cuestión. 2. Diseño de un algoritmo que resuelva el problema. 3. Codificación del algoritmo en un lenguaje de programación. 4. Validación del programa. Un algoritmo es una secuencia ordenada de operaciones tal que su ejecución resuelve determinado problema. La palabra algoritmo viene de Al-Khwarizmi, sobrenombre del matemático árabe del siglo IX Mohámed ben Musa, que alcanzó gran reputación al enunciar paso a paso las reglas para sumar, restar, multiplicar y dividir números con decimales. Las características fundamentales que debe tener todo algoritmo son: • Debe ser preciso, es decir, indicar el orden de realización de cada paso. • Debe estar definido, esto es, si se ejecuta varias veces partiendo de las mismas condiciones iniciales debe obtenerse siempre el mismo resultado. • Debe ser finito (debe tener un número finito de pasos).

7


• Debe ser independiente del lenguaje de programación que se emplee para implementarlo. En cualquier algoritmo se pueden distinguir tres partes: la entrada de datos (la información sobre la cual se va a efectuar operaciones), procesamiento y salida del resultado (la información que debe proporcionar). Ejemplos clásicos de algoritmos son el algoritmo de Euclides, que sirve para encontrar el máximo común divisor de 2 números enteros positivos A y B, o el de Newton-Raphson, para hallar una raíz de una función. Veamos como ejemplo el algoritmo de Euclides: • Paso 1. Tomar el número mayor como dividendo y el menor como divisor. • Paso 2. Calcular el resto de la división entera. • Paso 3. Si el resto es igual a cero entonces ir al Paso 4. En caso contrario, tomar el divisor como nuevo dividendo y el resto como divisor y volver al Paso 2. • Paso 4. El m.c.d. es el divisor da última división. El algoritmo de Euclides para calcular el m.c.d. es definido, prevé todas las situaciones posibles para el resto la división (ser cero o diferente de cero); no es ambiguo: las acciones de dividir y comparar el resto con cero son claras y precisas, al igual que la obtención del número mayor; es finito, contando con cuatro pasos diferentes; y acaba en un tiempo finito cuando se cumple la condición del Paso 3 que hace avanzar al Paso 4, siendo este el punto de fin. Como ejemplo podemos considerar en el caso en el que A=9 y B=24;

8


• Paso 1 D:=24, d:=9 • Paso 2 R:= 6 (24 % 9) • Paso 3 D:=9, d:=6 • Paso 2 R := 3 • Paso 3 D:=6, d:=3 • Paso 2 R := 0 • Paso 4 m.c.d. :=

Ejemplo: Ver una Película en DVD Inicio 1. Buscar el DVD de la película 2. SI el televisor y el DVD se encuentran apagados, encenderlos 3. Sacar el DVD de la película del estuche 4. Introducirlo en el DVD casetera 5. Tomar el control del televisor y del DVD 6. Dirigirme al sofá 7. Ponerme cómodo 8. Disfrutar la película Fin

9


PROPIEDADES DE UN ALGORITMO Las propiedades de un algoritmo son puntos guías a seguir para su elaboración, ya que éstos permiten un mejor desarrollo del problema.

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

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.

3. Elaboración Del Algoritmo Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo la elaboración de

10


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.

CARACTERÍSTICAS DE LOS ALGORITMOS Las características fundamentales que debe cumplir todo algoritmo 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 finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos.  Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente. Un algoritmo debe definir cuatro partes: Inicio: Da inicio a la solución del problema Entrada: Se conocen las variables y constantes que van a ser utilizadas en la solución de al problema. Proceso: Realiza las operaciones necesarias con o para las variables y constantes para dar solución al problema. Salida: Impresión de los datos arrojados en el proceso Ejemplo: el algoritmo de receta de cocina se tendrá:  Entrada: ingrediente y utensilios.  Proceso: elaboración de la receta en la cocina.

11


Salida: terminación del plato (por ejemplo, Pollo al horno)

TIPOS DE DATOS Una de las tareas principales de la computadora es almacenar y procesar datos. Para hacer esto, un programa utiliza estructuras de datos, es decir, formas para almacenar los diferentes datos que van a ser procesados. Conforme aumenta la complejidad del programa, también será más compleja la forma en que se almacenan estos datos. La forma más sencilla de almacenar datos en un programa es mediante el uso de variables y constantes. Un programa asigna una posición de memoria a cada variable o constante que sea declarada en el programa. La posición en memoria puede ser vista como una casilla de memoria, en donde el valor será determinado por el programa, y el tipo de valor que puede ser almacenado en ella será determinado por el programador al momento de declarar la variable. Para una variable, el valor en dicha casilla cambiará tantas veces lo necesite en el programa; en cambio, para una constante, su valor es fijado una vez, al, inicio del programa, y no puede cambiar durante el transcurso de éste. A toda variable o constante se le asigna un nombre o identificador, el cual debe construirse de acuerdo con las siguientes reglas: 1. El identificador debe empezar con una letra, seguida de letras, números o el carácter "_". 2.

No se pueden utilizar espacios en blanco

3. No se puede utilizar ningún otro símbolo como #, $, %, /, *, @, etc.

12


4. Se toma como referencia de longitud máxima de 8 caracteres (aunque algunos lenguajes aceptan hasta 127) 5.

El identificador debe tener relación con el problema.

Operadores Los operadores nos permiten realizar operaciones aritméticas entre los datos, ya sean constantes o variables. Aunque el número y tipo de operadores depende del lenguaje de programación que se esté utilizando, los operadores más frecuentes se clasifican de la siguiente forma: 1. Operadores aritméticos. Los cuales son: +,-,*, / y el mod, o módulo de la división. El operador mod sólo se aplica a operandos tipo entero. El mod se lee como módulo de la división, y el resultado será el residuo de una división entera. 2. Operadores de relación Los cuales son: >, >=, <, <=, !=, == Se hace una distinción con el operador de igualdad, que no es el mismo de asignación: ==. Así se tiene x == y se traduce como "¿es x igual a y?, en tanto que x=y, equivale a decir "a la variable x se le asigna el mismo valor que tiene y " 3. Operadores lógicos. Los cuales son: ! (not, negación) && (and, y), || (or, o) Para resolver expresiones con operadores lógicos, se utilizan las siguientes tablas, conocidas como tablas de verdad.

13


x ! (NOT) Falso Verdadero Verdadero Falso

x Falso Falso Verdadero Verdadero

y Falso Verdadero Falso Verdadero

&& (AND) Falso Falso Falso Verdadero

x y II (OR) Falso Falso Falso Falso Verdadero Verdadero Verdadero Falso Verdadero Verdadero Verdadero Verdadero

4. Operadores de Asignación Por el momento, el único operador de asignación es: = Las reglas para resolver una expresión aritmética son las siguientes 1. Los operadores aritméticos se aplican teniendo en cuenta su jerarquía (precedencia) y de izquierda a derecha. La jerarquía se muestra a continuación -

(Unario), ! (Not, negación

() Paréntesis *, /, mod <, <=, ==, >, >=, !=,+,- (Resta) && (AN || (OR) =

14


2. Si una expresión contiene paréntesis, se evalúa primero la sobrexpresión entre paréntesis, respetando la jerarquía de operadores en esta

ELABORACIÓN DE UN ALGORITMO Existen varias técnicas de diseño de algoritmos que permiten desarrollar la solución al problema planteado, algunas de ellas son: 

Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.

Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.

Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios

Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.

Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.

Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos

15


para después unirlas, logrando así la solución al problema completo. 

Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.

Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.

Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.

Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas

Reglas para la elaboración de un algoritmo Identificar todas las variables que intervienen en el problema a resolver. Para ello, te puedes auxiliar de una tabla como la que se muestra a continuación:

16


Una vez que las has identificado, en el logaritmo sólo podrás utilizar el nombre que les has asignado. Cuídate de no cambiarles nombre, ni significado, durante el desarrollo de tu algoritmo. Toda variable debe tener un valor, ya sea porque se le asigna dentro del algoritmo. Respeta las reglas para la creación de identificadores al momento de crear los nombres para tus variables. En el símbolo de proceso, solo se pueden utilizar los operadores aritméticos ( +,-…*/.mod) En el símbolo condicional, sólo se puden utilizar operadores ( <,<=,>,>=,==,!=), y los operadores lógicos (AND,OR,NOT;ó &,II,!) Ejem: x>z

y==5

si se trata de una condición compuesta, el formado será: Variable= variable/valor operador Variable/valor Ejem.

x= y * 3

Pasos para realizar un algoritmo: Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ellos, definiremos los siguientes pasos: 1. Análisis previo del problema: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo. 2. Definición de Requerimientos: Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc. 3. Identificación de los Módulos: La identificación de los módulos es tan importante como la identificación correcta de los

17


requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en paso anterior. 4. Realización de los Algoritmos: El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora. 5. Implementación de los Algoritmos: La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado. En el último paso ya podemos hablar de una aplicación o programa de computadora, que estará compuesto por una serie de instrucciones que ordenadas una tras otra logran representar los algoritmos diseñados y dar así solución a los requerimientos identificados. A continuación se mostrará el desarrollo de un problema con su respectivo algoritmo como solución. Supongamos que se necesita calcular e imprimir el área de un triángulo cuya base y altura se suministrarán de un disco. Procedimiento: Escribir correctamente el enunciado del problema “Calcular e imprimir el área de un triángulo cuya base y altura se suministrarán de un disco. Análisis 1- ¿Qué se quiere?, ¿Cómo se quiere?, ¿Qué deseo obtener? - ¿Qué se quiere? : Quiero calcular el área de un triángulo. - ¿Cómo se quiere?: Lo quiero calcular a través de una fórmula.

18


Área del triángulo =Base x altura 2 -¿Qué deseo obtener? Imprimir el área dl triángulo y suministrar los resultados en un disco. 2. Solución: Variables utilizados en esta solución: De lectura Base

Altura

Para almacenar -El valor correspondiente a la base del triángulo

-El valor correspondiente a la altura del triángulo

Buscar diferentes alternativas de solución al resultado del problema. Ejemplo: El problema pide imprimir el área del triángulo como resultado, en un disco: Algoritmo: Programa para calcular el área de un triángulo: Inicio Lea Base, Altura Área Calcule Área = (base* altura)/2 “Resultado”=, Área

19


Fin Implementación de un algoritmo. Consideremos el problema de resolver una serie como la de a continuación: ANALISIS DEL PROBLEMA Paso 1: Se debe determinar el valor de la variable S a partir de los valores x e y ingresados. Estos valores deben ser leídos y procesados de acuerdo a la serie presentada para obtener el valor de ésta. Paso 2: El requerimiento principal es el determinar el valor de S y mostrarlo por pantalla. Paso 3: El problema es sencillo y puede ser resuelto por medio de dos módulos, uno que realice la función exponencial y otro que desarrolle la serie haciendo la llamada respectiva al módulo anterior. Paso 4: Al realizar los algoritmos debemos tener presentes las características que debe tener un algoritmo para poder llegar a una correcta implementación de éstos. Para ello utilizaremos los símbolos descritos y con ellos lograremos el algoritmo que a continuación se presenta. Representación en un Algoritmo Inicio Leer x, n S =1 Mientras que i=2,n Calcular =X 20


R=R/i S=S+R Mostrar s Fi Ejercicio: 1- Algoritmo: Promedio Descripción: calcular la media (promedio) de 3 números Constantes: ------------------------------------Variables: Entero: N1, N2, N3 Real: Prom Inicio 1. Leer N1, N2, N3 2. Prom= (N1+N2+N3)/3 3. Escribir Prom Fin

METODOLOGIA A SEGUIR EN EL DISEÑO DE ALGORITMOS El procedimiento a seguir para diseñar algoritmos se presenta a continuación: Entender el problema Para determinar la secuencia de instrucciones que deben constituir el algoritmo, es importante entender el problema que se pretende resolver, para asegurarse que entiende el problema el programador debe resolverlo con papel, lápiz grafito y borrador procurando hacer

21


varios ejercicios de aplicación, generalmente se encuentran diferentes formas de resolver el problema, por lo que se debe seleccionar la mejor alternativa de solución. Declaración de datos Una vez seleccionada la mejor alternativa debe hacerse la declaración de datos, para ello los datos se clasificarán de la siguiente manera:   

Datos de Entrada: Los datos que se suministran Datos de Salida: los datos o resultados que se esperan Datos de trabajo: estos son posiciones de memoria donde se almacenaran resultados de cálculos intermedios, necesarios para obtener los datos de salida Se debe asignar nombre a los datos de acuerdo a las reglas para formar identificadores. Al hacer la declaración de los datos también debe especificarse el tipo de dato que va a almacenarse en la posición de memoria especificada, los tipos de datos son: numérico, un carácter, una cadena de caracteres o un valor lógico (verdadero o falso)

Especificar las formulas a utilizar Las fórmulas deben escribirse utilizando los nombres asignados a los datos. Diseño del algoritmo. Se debe representar la alternativa de solución seleccionada mediante un algoritmo, el cual puede desarrollarse utilizando el pseudocódigo o el diagrama de flujo a preferencia del programador; luego se verifica si el algoritmo cumple con las características de un algoritmo. Esta verificación se conoce como prueba de escritorio . Prueba de escritorio: Se debe ejecutar el algoritmo con diferentes datos de entrada para verificar si se obtienen los datos de salida esperados, en caso contrario se procede a hacer las modificaciones necesarias al algoritmo. Se recomienda verificar los resultados obtenidos en los ejercicios realizados en la etapa de análisis del problema. Los datos de prueba deben escogerse de modo a someter al algoritmo a todas las posibles situaciones que puedan darse.

22


El diseño del algoritmo está listo si la prueba de escritorio muestra que éste satisface las características de un algoritmo; si la prueba no es satisfactoria se revisa el pseudocódigo o el diagrama de flujo y se procede de esta manera hasta obtener los resultados esperados. La siguientes etapas son la codificación del algoritmo en el lenguaje de programación seleccionado y su prueba en la computadora. A continuación utilizamos esta metodología en el diseño de un algoritmo: Problema 1: Diseñar un algoritmo para convertir una temperatura dada en grados Fahrenheit a la correspondiente temperatura en grados Centígrados. Entender el problema El agua se congela a 0º Centígrados y hierve a 100º Centígrados. El agua se congela a 32º Fahrenheit y hierve a 212º Fahrenheit. Lo que indica una diferencia de 180º. Por lo tanto cada grado en la escala Fahrenheit es igual a 100/180 o 5/9 grados en la escala Celsius. Para convertir grados Fahrenheit a grados Celsius se resta 32º a los grados Fahrenheit y el resultado se multiplica por 5/9

Se selecciona esta alternativa de solución y se procede con el siguiente paso. Declaración de los datos

23


24


CAPITULO II Resolución de problemas: Las dos herramientas más utilizadas para diseñar algoritmos son el Pseudocódigo y el Diagrama de flujo.

Pseudocódigo Es un lenguaje artificial e informal que ayuda a los programadores a desarrollar algoritmos. El Pseudocódigo es similar al lenguaje cotidiano; es cómodo y amable con el usuario, aunque no es realmente in verdadero lenguaje de computadora. No se ejecutan en las computadoras más bien sirven para ayudar al programadora razonar un programa antes de intentar escribirlo en algún lenguaje. ESTRUCTURA

Y

DISEÑO

DE

UN

ALGORITMO

EN

PSEUDOCÓDIGO Encabezado.- Empezar con la palabra ALGORITMO seguida por una descripción adecuada de acuerdo al problema a resolver Ejm: ALGORITMO Calcular Área del Circulo Inicio del Algoritmo.- Indicar el inicio del Algoritmo Ejm : INICIO Declaración de Constantes.- Definir los valores que no cambian en el transcurso del algoritmo Ejm: const real Pi = 3.1416

25


Declaración de las Variables a usar.- Definir las variables (estructuras de datos) que sean necesarios para resolver el problema, identificándolas con un nombre y determinando sus tipos. Ejm: Real Radio, Área Leer Calcular o Imprimir.- Que permite leer, calcular o imprimir tantas veces se quiera. a) Leer Datos.- Permite introducir los valores de las variables de entrada disponibles como materia prima, para evaluar las variables de salida Ejm:

LEER Radio

b) Calcular.- Permite procesar los valores de entrada para producir la salida adecuada. Ejm :

Area = Pi * Radio * Radio o Area = Pi * pow ( Radio,2 )

c) Mostrar Resultados (Salida de Datos) .- Permite dar salida a la información requerida. Ejm: MOSTRAR Área El algoritmo completo es el siguiente: Ejm : para el problema del cálculo del área de un rectángulo visto anteriormente, en seudocódigo sería así: INICIO // Entrada (Lectura) de datos LEER Base, Altura // Proceso: Cálculo de Área Área = Base * Altura // Salida de resultados MOSTRAR Área FIN

26


Principales características de los pseudocódigos Utilizan operadores aritméticos y lógicos. Utilizan operadores aritméticos y lógicos. Se pueden incluir comentarios. Se debe respetar una indentación en los bloques de construcción Usan ciertas palabras clave: PSEUDOCÓDIGO, VARIABLES, INICIO, FIN, LEE, ESCRIBE IMPRIME, IF_THEN_ELSE, CASE OF, FOR , FOR DO, WHILE DO, REPEAT UNTIL, ARRAY… Comienzan con el nombre del pseudocódigo, seguido de la declaración de variables, y luego el cuerpo del el cuerpo del pseudocódigo.

Ejercicios 1.Ingrese un numero e imprima el numero y el valor absoluto del mismo. ALGORITMO valorabsoluto INICIO Real , x, VA

// {x es el numero}

1.-LEER x 2.-VA ç abs (x) 3.- MOSTRAR VA

// VA es el valor absoluto

27


2. Ingrese dos números desde el teclado e imprima ambos números sólo si son positivos ALGORITMO numpos INICIO Real , A, B 1.-LEER A, B 2.-SI (A>0) y (B>0) ENTONCES a)MOSTRAR A, B FIN (SI) FIN 3. Para que una persona pueda ejercer su voto en una elección de gobierno, debe de ser mayor de edad y debe ser costarricense. El algoritmo sería el siguiente: Inicio (variables a usar: edad, nacionalidad) Escribir “Cuál es su edad: ” Leer edad Escribir “Cuál es su nacionalidad: ” Leer nacionalidad Si (edad >= 18 y nacionalidad = costarricense) entonces Escribir “Puede votar” Sino Escribir “NO puede votar” Fin (del si) Fin (de inicio)

28


4. Para que una persona pueda casarse, debe de ser mayor de edad y soltero Inicio (variables a usar: edad, estado) Escribir “Cuál es su edad: ” Leer edad Escribir “Cuál es su estado civil: ” Leer estado Si (edad >= 18 y estado = soltero) Entonces Escribir “Se puede CASAR” Sino Escribir “NO puede CASARSE” Fin (del si) Fin (de inicio)

5. Determinar cuántos números pares hay entre 1 y 10. Inicio (Variables Conta  1, Res  0, i ) Mientras conta < = 10 haga Conta  conta + 1 Res  conta / 2 Si Res = 0 entonces Ii+1 Fin (del si) Fin (mientras) Escriba “Hay” i “pares” Fin (inicio)

29


6. Haga un algoritmo para determinar si un número es negativo. Inicio (Variables num) Escriba “Digite un número” Leer num Si num < 0 entonces Escriba “Este número es Negativo” Sino Escriba “Este número NO es Negativo” Fin (si) Fin (inicio)

7. Realice un algoritmo que determine si un número es positivo Inicio (Variables num) Escriba “Digite un número” Leer num Si num >= 0 entonces Escriba “Este número es POSITIVO” Sino Escriba “Este número NO es POSITIVO” Fin (si) Fin (inicio)

30


8. Leer de un registro un número entero positivo y obtener los múltiplos de 3 comprendidos entre 1 y el número leído. ALGORITMO mult3 INICIO Entero i, N 1.- LEER N 2.- PARA i ç1 HASTA i ç N HACER a) SI ( i MOD 3 = 0 ) ENTONCES 1. MOSTRAR i FIN(SI) FIN(PARA) FIN 9. Determinar la suma de dos números enteros Inicio (Variables num1, num2, res) Escribir “Digite un número” Leer num1 Escribir “Digite otro número” Leer num2 Res  num1 + num2 Escribir “El resultado es”, res

Fin

31


10. Determine si un número es par Inicio (Variables num, res) Escribir “Digite un número” Leer num Res  num mod 2 Si res = 0 entonces Escribir “Es par” Sino Escribir “NO es par” Fin (Si) Fin (inicio)

11. ESCRIBA UN ALGORITMO QUE CALCULE EL AREA DE UN RECTANGULO.

Inicio (Variables lado1, lado2, área) Escriba “Digite el primer lado” Leer lado1 Escriba “Digite el segundo lado” Leer lado2 Área  lado1 * lado2 Escriba “El área del rectángulo es:”, área Fin

32


12. ESCRIBA UN ALGORITMO QUE SUME, RESTE, MULTIPLEQUE Y DIVIDA DOS NUMEROS. Inicio (Variables num1, num2, suma, resta, multi, divi) Escriba “Digite un número” Leer num1 Escriba “Digite un número” Leer num1 suma  num1 + num2 resta  num1 - num2 multi  num1 * num2 divi  num1 / num2 Escriba “El resultado de la suma es: ”, suma, Escriba “El resultado de la resta es: ”, resta, Escriba “El resultado de la multi es: ”, multi, Escriba “El resultado de la divi es: ”, divi, Fin (inicio)

33


13. ESCRIBA UN ALGORITMO QUE CALCULE EL AREA DE UN TRIANGULO . Inicio (Variables base, altura, área) Escriba “Digite la altura” Leer altura Escriba “Digite la base” Leer base Area  (base * altura)/2 Escriba “El área del triángulo es: ”, area Fin 14. REALICE UN ALGORITMO QUE DETERMINE EL MAYOR DE DOS NUMEROS LEIDOS Inicio ( Variables num1, num2 Escriba “Digite un numero” Leer num1 Escriba “Digite otro numero” Leer num2 Si num1 > num2 entonces Escriba “El numero mayor es”, num1 Sino Escriba “El numero mayor es”, num2 Fin (si) Fin (inicio)

34


15. ESCRIBA UN ALGORITMO QUE CALCULE LA HIPOTENUSA DE UN TRIANGULO RECTANGULO. DONDE EL CATETO 1 ES IGUAL A 5 Y EL CATETO 2 ES Igual 5. Inicio ( Variables cateto1, cateto2, hipot) Catero1 5 Cateto2  5 Hipot  raiz2 ((cateto1^2)+(cateto2^2)) Escriba “La hipotenusa del triangulo rectángulo es: ”, hipot Fin 16- ESCRIBA UN ALGORITMO QUE LEA DOS NUMEROS ENTEROS A Y B, Y OBTENGA LOS VALORES DE A DIV B , A MOD B Inicio ( Variables A, B, res1, res2 Escriba “Digite un numero” Lee A Escriba “Digite otro numero” Leer B Res1  A div B Res2  A mod B Escriba “El resultado de MOD de es: “, res2 Escriba “El resultado de DIV de es: “, res1 Fin

35


17. REALICE UN ALGORITMO QUE DETERMINE EL MAYOR DE DOS NUMEROS LEIDOS Inicio ( Variables num1, num2 Escriba “Digite un numero” Leer num1 Escriba “Digite otro numero” Leer num2 Si num1 > num2 entonces Escriba “El numero mayor es”, num1 Sino Escriba “El numero mayor es”, num2 Fin (si) Fin (inicio) 18. DETERMINE LA CANTIDAD DE HORAS EXTRAS QUE SE LE PAGAN A UN EMPLEADO QUE TRABAJA 60 HORAS Y EL MAXIMO ES 48 HORAS. Inicio (Variables H_extra, H_max, H_trab) H_max  48 H_trab  60 H_extra  H_trab – H_max Escriba “La cantidad de horas extras son: “, H_extra Fin (inicio)

36


19. REALICE UN ALGORITMO QUE SOLICITE AL USUARIO DOS VALORES NUMERICOS Y CALCULE EL VALOR MEDIO, QUE ES LA SUMA DE AMBOS DIVIDIVOS EN 2. Inicio (num1, num2, res Escriba “Digite un numero” Leer num1 Escriba “Digite un numero” Leer num2 Res ( num1 + num2 ) / 2 Escriba “El valor medio es: “, res Fin (inicio)

20. LEA 5 NUMEROS Y DETERMINE EL PROMEDIO. Inicio (Variables num, i, suma, promedio I = 0, suma = 0 Mientras i = 5 entonces Escriba “Digite un numero” Leer num Suma  suma + num Ii+1 Fin mientras Promedio  suma / 5 Escriba “El promedio es: ”, promedio Fin (inicio)

37


21. REALICE UN ALGORTIMO QUE CALCULE UN VALOR DE TIPO NUMERICO QUE NOS INDIQUE EL PESO RELATIVO DE UNA PERORNA. EL ALGORITMO SOLICTARA AL USUARIO SU DATOS (NOMBRE, EDAD, PESO Y ALTURA), EL PESO RELATIVO SE CALCULA DIVIDIENDO EL PESO POR EL CUADRADO DE LA ALTURA. Inicio ( Variables nombre, edad, peso, atura, p_relativo) Escriba “Digite su nombre” Leer nombre Escriba “Digite su edad” Leer edad Escriba “Digite su peso” Leer peso Escriba “Digite su altura” Leer altura P_relativo  (peso / altura ^2) Escriba “EL peso relativo es”, p_relativo Fin (inicio)

38


Diagrama de Flujos de Datos El diagrama de flujo es la representación gráfica de un algoritmo; para ello se utiliza un conjunto de símbolos estándares mundialmente utilizados y desarrollados por organizaciones tales como ANSI (American National Institute) e ISO (International Standard Organization ) En el diagrama cada símbolo representa una acción en concreto; y cada instrucción del algoritmo se visualiza dentro del símbolo adecuado. Los símbolos se conectan con flechas para indicar el orden en que se ejecutan las instrucciones. Por ejemplo, el siguiente diagrama de flujo corresponde al algoritmo para calcular el área del rectángulo

El ovalo rotulado con la palabra Inicio indica el comienzo del algoritmo, el paralelogramo es el símbolo de entrada de datos e indica que se lee el valor de la base (b) y el valor de la altura (h), el rectángulo es el símbolo de proceso e indica que se realiza un proceso sobre los datos de entrada para calcular el área (a) multiplicando la base por la altura, (utilizaremos el * como operador de multiplicación), el siguiente es el símbolo de salida y representa un documento e indica que se muestra el valor del área obtenido, en cualquier dispositivo de salida, finalmente el ovalo rotulado con la palabra Fin indica que se ha llegado al fin del algoritmo.

39


CLASIFICACIÓN DE LAS PARTES DEL DFD Los símbolos que se utilizaran para dibujar los diagramas de flujo son los siguientes:

40


Reglas para la construcción de diagramas de flujo

    

1. Todo diagrama de flujo debe tener un inicio y un fin. 2. Las líneas de flujo nunca deben cruzarse, para evitarlo deben utilizarse el símbolo conector. 3. Las líneas de flujo deben terminar siempre en un símbolo. 4. No puede llegar más de una línea de flujo a un símbolo. 5. Todos los símbolos en un diagrama deben estar conectados mediante una línea de flujo; todo símbolo debe tener una línea de flujo entrando y otra saliendo salvo el símbolo que indica inicio o fin del diagrama. 6. Como regla general el flujo del proceso debe mostrarse de izquierda a derecha y de arriba abajo. Se recomienda mantener uniforme el tamaño de los símbolos, por lo que el texto que se escribe dentro no debe ser muy extenso, recuérdese que el propio símbolo indica la operación a realizar. La forma en que se capturan los datos de entrada o se muestran los datos de salida se detallarán al codificar el algoritmo en el lenguaje de programación. Esto mismo se recomienda para la representación del algoritmo en pseudocódigo.

DECLARACION DE LOS DATOS Como ya se dijo los datos a procesar y los datos resultantes del proceso se almacenan en la memoria principal de la computadora, también conocida como memoria RAM (Random Access Memory), y también se destinan localidades de memoria cuando se necesita almacenar resultados de cálculos intermedios. Para poder localizar los datos en la memoria se les asignan nombres; que en el ambiente de la programación se conocen como identificadores de datos. Nombraremos los datos siguiendo las reglas para definir identificadores especificadas en la mayoría de los lenguajes de programación:

41


    

Se utilizan secuencias de caracteres formadas por caracteres alfabéticos y los dígitos decimales. El primer elemento de la secuencia debe ser un carácter alfabético. No se utilizan signos de acentuación No se utilizan espacios, si se necesita separador debe utilizarse el carácter de subrayado (_) o guión bajo. No se permite el uso de las palabras reservadas o palabras claves Se recomiendan nombres cortos y nemotécnicos (su propio nombre indica lo que representan). Por ejemplo: 1) Son identificadores válidos los siguientes: Longitud, altura, dato1, dato2, Coeficiente a, número menor, EDAD 2) No son identificadores válidos los siguientes: ºC , porque el carácter º no es un carácter permitido 1_dato, porque comienza con un dígito Número menor, porque tiene un espacio en blanco como separador Leer, escribir e inicio, porque son palabras reservadas

INSTRUCCIONES Un algoritmo normalmente incluye una gran cantidad de instrucciones, también llamadas sentencias; inicialmente se presentan las instrucciones de asignación, lectura y escritura; definiendo cada una de ellas y mostrando su representación en pseudocódigo, su correspondiente símbolo en el diagrama de flujo y ejemplos.

42


Recomendaciones para los diagramas de flujo de datos

Emplear solamente líneas de flujos horizontales y/o verticales. Evitar el cruce de líneas (usando los conectores) Usar los conectores sólo cuando sea necesario. No dejar líneas de flujo sin conectar Se deberá poder leer de arriba abajo y de izquierda a derecha. Ser escuetos y claros con lo que se escriba dentro de los símbolos.

Reglas para la construcción de diagramas de flujo En un diagrama de flujo se representa de manera gráfica una serie de pasos a seguir para alcanzar la solución de un problema. Los símbolos presentados, colocados adecuadamente, permiten crear una estructura gráfica flexible que ilustra los pasos a seguir para alcanzar el resultado específico. A continuación se presentan los pasos para la realización de una diagrama de flujo: 1. Todo diagrama debe tener un inicio y un fin.

43


2. La líneas utilizadas para indicar la dirección del flujo del diagrama

3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas, la conexión pude ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin del diagrama.

4. El diagrama de flujo debe ser construido de arriba hacia abajo (Top-down) y de izquierda a derecha (right to left) 5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. La solución presentaba en el diagrama puede escribirse posteriormente y fácilmente en diferentes lenguajes de programación.

44


6. Si el diagrama de flujo requiriera más de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las páginas convenientes. 7. No puedes llegar más de una línea a un símbolo.

45


PROBLEMAS:

46


47


48


49


50


51


52


53


54


55


56


57


Desarrolle un algoritmo que permita leer dos nĂşmeros y ordenarlos de menor a mayor, si es el caso.

58


Desarrolle un algoritmo que permita leer un valor entero positivo N y determinar si es primo o no

59


Desarrolle un algoritmo que permita calcular Promedio de Notas; finaliza cuando N = 0.

60


Realizar un diagrama de flujo que permita calcular el factorial de un numero

61


62


63


Capitulo III Estructuras condicionales: Las estructuras condicionales comparan una variable contra otq <ro(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. 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 de datos

64


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:

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.

65


Diagrama de flujo de datos:

Múltiples: 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 específicas. La forma es la siguiente:

Pseudocódigo:

66


Diagrama de flujo:

PROBLEMAS Veamos algunos ejemplos donde se aplique todo lo anterior: Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe aparecer un mensaje indic谩ndolo. Expresarlo en Pseudoc贸digo y Diagrama de flujos. Pseudoc贸digo

67


Diagrama de flujo:

Se pide leer tres notas del alumno, calcular su definitiva en un rango de 0-5 y enviar un mensaje donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos. Pseudocódigo: INICIO Not1, Not2, Not 3: REAL Def: REAL LEA Nota1, Nota2, Nota3 Def ß (Not1 + Not2 + Not3) /3 Si Def < 3 entonces Escriba “Reprobó el curso” Sino Escriba “Aprobó el curso” Fin-Si FIN

68


Diagrama de flujo de datos:

69


Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o igual a 150 cm envíe el mensaje: “Persona de altura baja”; si la altura está entre 151 y 170 escriba el mensaje: Persona de altura media” y si la altura es mayor al 171 escriba el mensaje: Persona alta. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos. Pseudocódigo: INICIO Altura: ENTERO ESCRIBA “Cuál es tu altura? ” LEA Altura Si Altura <=150 entonces ESCRIBA “persona de altura baja” Sino Si Altura <=170 entonces ESCRIBA “persona de altura media” Sino Si Altura>170 ENTONCES ESCRIBA “persona alta” Fin-Si Fin-Si Fin-Si FIN ¡Es importante ser ordenado en el código que se escribe!

70


Diagrama de flujo:

71


Dado un numero entre 1 y 7 escriba su correspondiente día de la semana así: 1- Lunes 2- Martes 3- Miércoles 4- Jueves 5- Viernes 6- Sábado 7- Domingo Exprese el algoritmo usando Pseudocódigo y diagrama de flujos. Pseudocódigo: INICIO Dia: ENTERO ESCRIBA “Diga un número para escribir su día” LEA Dia En-caso-de Dia haga Caso 1: ESCRIBA “Lunes” Caso 2: ESCRIBA “Martes” Caso 3: ESCRIBA “Miércoles” Caso 4: ESCRIBA “Jueves” Caso 5: ESCRIBA “Viernes” Caso 6: ESCRIBA “Sábado” Caso 7: ESCRIBA “Domingo” SINO: ESCRIBA “Escribió un número fuera del rango 1-7” Fin-Caso

FIN

Diagrama de flujo:

72


CONCLUSIÓN Los Algoritmos son una manera de expresar cualquier situación por medio de una secuencia de pasos ordenados y lógicos que buscan el aclaramiento de cualquier problema para así identificar lo que se necesita, como se hace y el resultado final, el cual debe ser igual siempre por lo que se busca que hayan alternativas para cualquier solución posible. Los diagramas de flujo son la representación gráfica de un algoritmo y tiene como finalidad lograr una mayor comprensión de este. Está compuesto por diversos símbolos que especifican las diversas partes del algoritmo, como los componentes iniciales, los procedimientos, las diversas posibilidades y los resultados.

73


BibliografĂ­a http://biolab.uspceu.com/aotero/recursos/ docencia/TEMA%202.pdf https://aulatec.wordpress.com/caracteristi cas-y-propiedades-de-los-algoritmos/ http://es.slideshare.net/roldanelgato/regla s-de-algoritmos http://es.slideshare.net/ballbreackerhous e/elaboracin-de-algoritmos http://ladinopaola.blogspot.com/p/pasospara-realizar-algoritmos.html https://es.wikipedia.org/wiki/Dise%C3%B 1o_de_algoritmos https://introduccioninformatica.wordpress .com/2010/04/09/ejercicios-resueltos-dealgoritmos/

74


http://www.desarrolloweb.com/articulos/2 225.php http://www.omijal.org/pagina_c/algo.html

http://www.uap.edu.pe/pregrado1/02/trab ajos/02119/alg_pseu_prog.htm http://www.slideshare.net/LuisMiguelVO/ algoritmos-y-diagramas-de-flujo http://diagramasdeflujo1234.wikispaces.c om/Ejemplo+Y+Solucion http://www.slideshare.net/Kvinzuco/algori tmos-y-diagramas-de-flujo17346908?next_slideshow=1

75


Turn static files into dynamic content formats.

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