Page 1

Nombre: Juan José Núñez machuca Trabajo: Manual de algoritmo Grado: 4º Sección: ``B`` Colegio:


I.E. P.N.P. FELIX TELLO ROJAS

Bueno dedico este manual a los alumnos que lo necesiten, tambiĂŠn a mis padres, a mi profesora. Este manual es muy importante porque nos ayuda a saber mĂĄs sobre algoritmos.


FELIX TELLO ROJAS

 CONCEPTO : ALGORITMOS  VARIABLES, CONSTANTES, TIPOS DE DATOS, EXPRESIONES, OPERADORES.  DIAGRAMAS DE FLUJOS DE DATOS  SOLUCIONANDO PROBLEMAS CON DIAGRAMAS DE FLUJOS DE DATOS.  INTEGRANDO LOS APRENDIZAJES 1  CREANDO DIAGRAMAS DE FLUJOS DE DATOS CON EL SOFTWAR FREE PDF.  ESTRUCTURAS CONDIONALES SIMPLES  INTEGRANDO LOS APRENDIZAJES 2  BIBLIOGRAFIA


BUENO ESTE MANUAL ESTA PRESENTADO PARA TODOS ESOS ALUMNOS QUE LES ENSEÑAN ALGORITMOS, ESTE MANUAL LOS AYUDARA A SABER MAS A ENTEDER ESTE TEMA. CON EL INDICE PRESENTADO ANTERIORMENTE SE PODRAN UBICAR.


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). 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: Tiempo secuencial. Un algoritmo funciona en tiempo discretizado 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). 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. 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. • 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 AlJuarismi1 ) es un conjunto preescrito 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.


VARIABLES: En programación, una variable representa a un espacio de memoria en el cual se puede almacenar un dato. Gráficamente, se puede representar como: El programador, cuando desarrolla un programa (o diseña un algoritmo), debe decidir:

• •

Cuantas son las variables que el programa necesita para realizar las tareas que se le han encomendado. El tipo de dato que puede almacenar cada una de ellas.

Durante la ejecución de un programa, el valor que tome el dato almacenado en una variable puede cambiar tantas veces como sea necesario, pero, siempre, tomando valores pertenecientes al tipo de dato que el programador ha decidido que puede almacenar dicha variable, ya que, el tipo de dato de una variable no puede ser cambiado durante la ejecución de un programa.


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 (,). 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. Tipos de datos: Los datos que utilizan los programas (o algoritmos) se pueden clasificar en base a diferentes criterios. Uno de los más significativos es aquel que dice que todos los datos que utilizan los programas son simples o compuestos. Un dato simple es indivisible (atómico), es decir, no se puede descomponer. Ejemplo 1: Un año es un dato simple. Año: 2006 Un año se expresa con un número entero, el cual no se puede descomponer. Sin embargo, un dato compuesto está formado por otros datos. Ejemplo 2: Una fecha es un dato compuesto por tres datos simples (día, mes, año). Fecha: Día...: 30 Mes...: 11 Año...: 2006 Ejemplo 3: Otro ejemplo de dato simple es una letra. Letra: t Una letra se representa con un carácter del alfabeto. Pero, cuando varias letras se agrupan, entonces se obtiene un dato compuesto por varios caracteres.


Ejemplo 4: Para formar un nombre de persona se utilizan varios caracteres. Nombre: Ana (dato compuesto por tres caracteres) A continuación, se van a estudiar cinco tipos de datos: entero, real, lógico, carácter y cadena. De ellos, tan solo el tipo cadena es compuesto. Los demás son los tipos de datos simples consideradosestándares. Esto quiere decir que la mayoría de los lenguajes de programación permiten trabajar con ellos. Por ejemplo, en lenguaje C es posible utilizar datos de tipo entero, real y carácter, sin embargo, los datos de tipo lógico no se pueden utilizar, ya que, no existen en este lenguaje. Existen otros tipos de datos, simples y compuestos, que se estudiarán más adelante. A los tipos de datos simples estándares también se les conoce como tipos de datos primitivos, básicos o fundamentales.

Datos de Tipo Entero ¿Qué es un dato de tipo entero? Un dato de tipo entero es aquel que puede tomar por valor un número perteneciente al conjunto de los números enteros (Z), el cual está formado por los números naturales, su opuestos (números negativos) y el cero. Z = { ..., -3, -2, -1, 0, 1, 2, 3, ... } Ejemplo: La edad de una persona y el año en que nació, son dos datos de tipo entero: Edad: 29 Año: 1976 Z es un conjunto infinito de números enteros, y como el ordenador no puede representarlos todos, un dato de tipo entero sólo puede tomar por valor un número perteneciente a un subconjunto de Z. Los valores máximo y mínimo de dicho subconjunto varían según las características de cada ordenador y del compilador que se utilice


Datos de Tipo Lógico ¿Qué es un dato de tipo lógico? En programación, un dato de tipo lógico es aquel que puede tomar por valor sólo uno de los dos siguientes: { verdadero, falso } Los valores "verdadero" y "falso" son contrapuestos, de manera que, un dato de tipo lógico siempre está asociado a que algo se cumpla o no se cumpla. Ejemplo: El estado de una barrera de paso de trenes es un dato que puede considerarse de tipo lógico, por ejemplo, asociando "verdadero" a que esté subida y "falso" a que esté bajada. Estado...: falso (indica que la barrera está bajada)

Datos de Tipo Carácter ¿Qué es un dato de tipo carácter? Un dato de tipo carácter es aquel que puede tomar por valor un carácter perteneciente al conjunto de los caracteres que puede representar el ordenador. En pseudocódigo, el valor de un dato de tipo carácter se puede representar entre comillas simples (') o dobles ("). Pero, en este curso de diseño de algoritmos, se van a utilizar solamente las comillas simples (al igual que se hace en lenguaje C). Ejemplo: En un examen con preguntas en las que hay que seleccionar la respuesta correcta entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de las preguntas es un dato de tipo carácter. Respuesta correcta a la pregunta 3...: 'c'


Datos de Tipo Cadena ¿Qué es un dato de tipo cadena? Un dato de tipo cadena es aquel que pueden tomar por valor una secuencia de caracteres. En pseudocódigo, el valor de un dato de tipo cadena se puede representar entre comillas simples (') o dobles ("). Sin embargo, en este curso de diseño de algoritmos, se van a utilizar solamente las comillas dobles (al igual que se hace en lenguaje C). Ejemplo: El título de un libro y el nombre de su autor, son datos de tipo cadena. Título...: "La Odisea" (cadena de 9 caracteres) Autor....: "Homero" (cadena de 6 caracteres) Obsérvese que, en la cadena "La Odisea", el carácter espacio en blanco también se cuenta.


EXPRESIONES Y OPERADORES:

En un programa, el tipo de un dato determina las operaciones que se pueden realizar con él. Por ejemplo, con los datos de tipo entero se pueden realizar operaciones aritméticas, tales como la suma, la resta o la multiplicación. Ejemplo 1: Algunos ejemplos son: 111 + 6 (operación suma) 19 - 72 (operación resta) 24 * 3 (operación multiplicación) Todas las operaciones del ejemplo constan de dos operandos (constantes enteras) y un operador. La mayoría de las veces es así, pero, también es posible realizar operaciones con distinto número de operadores y/u operandos. Ejemplo 2: Por ejemplo: 111 + 6 - 8 (tres operandos y dos operadores) -( ( +19 ) + 72 ) (dos operandos y tres operadores) -( -72 ) (un operando y dos operadores) En las operaciones del ejemplo se puede observar que los caracteres más (+) y menos (-) tienen dos usos: 1. Operadores suma y resta. 2. Signos de un número (también son operadores) Los operadores de signo más (+) y menos (-) son operadores monarios, también llamados unarios, ya que, actúan, solamente, sobre un operando. Los caracteres abrir paréntesis "(" y cerrar paréntesis ")" se utilizan para establecer la prioridad de los operadores, es decir, para establecer el orden en el que los operadores actúan sobre los operandos.


Un operador indica el tipo de operación a realizar sobre los operandos (datos) que actúa. Los operandos pueden ser:

• • • •

Constantes (expresadas por su valor o con un nombre (identificador)). Variables. Llamadas a funciones. Elementos de formaciones (arrays).

En este apartado se van a tratar operaciones en donde sólo aparecen constantes y variables. Cuando se combinan uno o más operadores con uno o más operandos se obtiene una expresión. De modo que, una expresión es una secuencia de operandos y operadores escrita bajo unas reglas de sintaxis. Ejemplo 3: Dadas las siguientes declaraciones de constantes y variables: PI = 3.141592 entero numero = 2 real radio_circulo = 3.2 Algunos ejemplos de expresiones son: 2 * PI * radio_circulo ( PI * PI ) numero * 5 De sus evaluaciones se obtienen los valores: 20.106189 (valor real) ( 2 * 3.141592 * 3.2 ) 9.869600 (valor real) ( 3.141592 * 3.141592 ) 10 (valor entero) ( 2 * 5 ) Un operador siempre forma parte de una expresión, en la cual, el operador siempre actúa sobre al menos un operando. Por el contrario, un operando sí puede aparecer solo en una expresión. En programación, de la evaluación de una expresión siempre se obtiene un valor. Dicho valor puede ser de tipo: entero, real, lógico, carácter o cadena. Por consiguiente, una expresión puede ser:


• • • •

Aritmética (devuelve un número entero o real). Lógica (devuelve un valor lógico: verdadero o falso) De carácter (devuelve un carácter representable por el ordenador). De cadena (devuelve una cadena).

Expresiones Aritméticas ¿Qué tipos de expresiones aritméticas existen en programación? » Prioridad de los Operadores Aritméticos De la evaluación de una expresión aritmética siempre se obtiene un valor de tipo entero o real. En las expresiones aritméticas se pueden utilizar los siguientes operadores aritméticos:

Figura - Clasificación de los operadores aritméticos en pseudocódigo. Ejemplo 1: El operador multiplicación (*) realiza la multiplicación de dos operandos numéricos. 5*2 3.1 * 2.5 Los resultados son:


10 (valor entero) 7.75 (valor real) Ejemplo 2: El operador potencia (**) eleva el operando de la izquierda (número base) al operando de la derecha (potencia o exponente). 5 ** 2 3.1 ** 2.5 De estas expresiones, se obtienen los valores: 25 (valor entero) 16.920151 (valor real) Expresiones Lógicas

Expresiones Lógicas ¿Qué tipos de expresiones lógicas existen en programación? » Prioridad de los Operadores Relacionales y Lógicos De la evaluación de una expresión lógica siempre se obtiene un valor de tipo lógico (verdadero ofalso). En las expresiones lógicas se pueden utilizar dos tipos de operadores: • •

Relacionales Lógicos

Un operador relacional se utiliza para comparar los valores de dos expresiones. Éstas deben ser del mismo tipo (aritméticas, lógicas, de carácter o de cadena). Ejemplo 1: Algunos ejemplos son: 22 > 13 (comparación de dos expresiones aritméticas) 22.5 < 3.44 (comparación de dos expresiones aritméticas) verdadero = falso (comparación de dos expresiones lógicas) 'c' > 'f' (comparación de dos expresiones de carácter) "coche" = "Coche" (comparación de dos expresiones de cadena)


Proporcionan los valores: verdadero (22 es mayor que 13) falso (22.5 no es menor que 3.44) falso (verdadero no es igual que falso) falso ('c' no es mayor que 'f') falso ("coche" no es igual que "Coche") Las comparaciones entre los valores de tipo numérico son obvias. En cuanto a los valores de tipo lógico (verdadero y falso) se considera que falso es menor que verdadero. En lo que respecta a los valores de tipo carácter, su orden viene dado por el ASCII extendido utilizado por el ordenador para representarlos. Y en el caso de los valores de tipo cadena, también se tiene en cuenta dicho código. Los operadores relacionales son:

Figura - Clasificación de los operadores relacionales en pseudocódigo. Para escribir una expresión relacional (lógica) se utiliza la sintaxis: <expresión_1> <operador_de_relación> <expresión_2> Siendo <expresión_1> y <expresión_2> del mismo tipo (aritmética, lógica, de carácter o de cadena). Por otra parte, un operador lógico actúa, exclusivamente, sobre valores de expresiones lógicas. Los operadores lógicos son:


Figura - Clasificación de los operadores lógicos en pseudocódigo. El operador conjunción (y) y el operador disyunción (o) siempre actúan sobre dos operandos, mientras que, el operador negación (no) sólo actúa sobre un operando, o dicho de otra forma, es un operador monario. El modo en que actúan los operadores lógicos se resume en las llamadas tablas de verdad, definidas por el matemático George Boole. La tabla de verdad del operador conjunción (y) es:

Figura - Tabla de verdad del operador conjunción (y) en pseudocódigo. Se supone que <expresión_1> y <expresión_2> son expresiones lógicas. De la tabla de verdad se deduce que <expresión_1> y <expresión_2> se evalúa a verdadero sólo en el caso de que tanto <expresión_1> como <expresión_2> se evalúen también como verdaderas, en cualquier otro caso el resultado será falso. Dicho de otro modo, si al menos una de las dos expresiones es falsa, el resultado será falso.


Expresiones de Carácter ¿Qué es una expresión de carácter? Aunque no existe ningún operador de caracteres, sí que existen expresiones de carácter. De la evaluación de una expresión de carácter siempre se obtiene un valor de tipo carácter. Ejemplo: Dadas las siguientes declaraciones de constantes y variables en pseudocódigo: CONSONANTE = 'S' caracter letra = 'X' caracter opcion = '3' Expresiones de Cadena ¿Qué es una expresión de cadena? De la evaluación de una expresión de cadena siempre se obtiene un valor de tipo cadena. Sólo existe un operador de cadena:

Figura - Clasificación de los operadores de cadena en pseudocódigo. El operador concatenación (+) realiza la concatenación de dos operandos de tipo cadena, es decir, los encadena. Ejemplo: Dadas las siguientes declaraciones de constantes y variables en pseudocódigo: OLIMPIADA = "Atenas 2004" PUNTO = "." cadena nombre = "Pedro", apellido = "Cosín", rio = "Tajo" Algunas expresiones de cadena son:


OLIMPIADA + PUNTO nombre + " " + apellido "Buenos días" + PUNTO rio nombre + " fue a las Olimpiadas de " + OLIMPIADA + PUNTO Los resultados de evaluarlas son: "Atenas 2004." "Pedro Cosín" "Buenos días." "Tajo" "Pedro fue a las Olimpiadas de Atenas 2004."


Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) 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 elsistema 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 Constantine, el desarrollador original del diseño estructurado, 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ás eficiente. 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. niveles, los cuales son:  

Nivel 0: Diagrama de contexto. Nivel 1: Diagrama de nivel superior.


Reglas para dibujar un diagramas de flujo. Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden también ser desarrollados cuando séan requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar programas de computadora se muestran a continuación:

Inicio o fin del programa

Pasos, procesos o líneas de instruccion de programa de computo Operaciones de entrada y salida

Toma de desiciónes y Ramificación Conector para unir el flujo a otra parte del diagrama


Cinta magnética

Disco magnético

Conector de pagina

Líneas de flujo

Anotación

Display, para mostrar datos

Envía datos a la impresora

Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas. Las puedes conseguir en Papelerías. Simbolos gráficos Dentro de los simbolos fundamentales para la creaación de diagramas de flujo, los símbolos gráficos son utilizádos especificamente para para operaciónes aritméticas y relaciónes condicionales. La siguiente es una lista de los símbolos más comunmente utilizados: +

Sumar

-

Menos

*

Multiplicación

/

División

±

Mas o menos


=

Equivalente a

>

Mayor que

<

Menor que

³

Mayor o igual que

£

Menor o igual que

¹ o <> Diferente de Si No True False

Reglas para la creacion de Diagramas 1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales). 3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario. 4. No deben quedar líneas de flujo sin conectar 5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final. 7. Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida. Ejemplos de diagramas de flujo


Diagrama de flujo que encuentra la suma de los primeros 50 numeros naturales

Bueno, y ahora la descripción del diagrama anterior Suma, es la variable a la que se le va agregando la valor de cada número natural. N, es el contador. Éste recorrerá lo números hasta llegar al 50.

El primer bloque indica el inicio del Diagrama de flujo

El segundo bloque, es un Símbolo de procesos En este bloque se asume que las variables suma y N han sido


declaradas previamente y las inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada).

El tercer bloque, es también un Símbolo de procesos En éste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba inicializada en 0.

El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, ya se le agrega el valor de N a la variable que contendrá la suma (En el primer caso contendrá 1, ya que N = 1).

El quinto bloque es uno Símbolo de Toma de decisiones y Ramificación Lo que hay dentro del bloque es una pregunta que se le hace a los valores que actualmente influyen en el proceso (Por decir algo, no se como decirlo, soy muy sope: D) ¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y así


hasta llegar a 50, obteniendo así la suma de los primeros 50 primeros números naturales.

Por último indicamos que el resultado será mostrado en la impresora (Este lo puedes cambiarlo por el display para mostrar datos).

Fin del programa (o diagrama)


I.- Relaciona las siguientes columnas según crea conveniente. 1. Variable Numérica

(3) Esta formada por Números y letras.

2.- Variables lógicas

(4) Se utiliza para llevar el Control del

3.- Variables alfanuméricas

numero

(2 ) Son aquellas que solo Pueden tener dos valores (Verdadero o falso).

4.-Contadores

(1 ) Son aquellas en las Cuales se almacenan valores Numéricos.

5.- Definición del problema

(7) Debe tener un punto Particular de inicio.

6.-Analisis de problemas

(8) Es la operación de Escribir la solución del Problema.


7.-Diseño de algoritmo

(5) Esta fase esta dada por el Enunciado del problema.

8.-Codificacion

(6) Es la fase en la que es Necesario definir los datos de Entrada. Los métodos y la salida

RESUELVE LOS SIGUIENTES EJERCICIOS ll.-Comente la acción y/o procesos a realizar con cada símbolo del DFD, según la figura que se muestra a continuación.


Ill. Se desea depositar una cierta cantidad de dinero en el Banco, el cual paga raz贸n de 2% mensual. Realizar un DFD para saber cuanto dinero ganara en un mes.


lV. El profesor Wilton torres desea saber el porcentaje de hombres y que porcentaje de mujeres hay en el grupo de estudiantes del cuarto a単o.


VII.- Calcular el nĂşmero de pulsaciones que una persona debe tener por cada 10 segundos de ejercicios si la formula es:


VIII.- Calcular el nuevo salario de un obrero si obtuvo un incremento de 25% sobre su salario anterior


IX.- Todos los lunes, miĂŠrcoles y vienes una persona corre en la misma distancia y cronometra los tiempos obtenidos Âżdeterminar el tiempo promedio que la persona tarda en recorrer la ruta en una semana.


¡¡BUENA SUERTE!!


Les comparto este pequeño ejemplo de un programa en FreeDFD, en el que se ingresa una palabra y luego un caracter, con el que se divide la palabra en varios fragmentos de este modo. Por ejemplo si ingreso la palabra: ‘cocodrilo’, el resultado serán tres mensajes asi: ‘c’, ‘c’ y ‘dril’. Espero que antes de bajar el programa y ver su código, intenten hacerlo ustedes mismos y que luego si observen las estructuras y el orden que tienen, asimismo que experimenten con lo que tienen ahí y se pregunten el por que de algunas de las estructuras. Ciclo Mientras El ciclo mientras, es una de las dos estructuras repetitivas con las que cuenta FreeDFD, está representada por este símbolo dentro del programa:


Bot贸n Ciclo Mientras Para hacer uso de esta herramienta, basta con hacer clic en el bot贸n de la imagen anterior, y luego hacer clic en la parte del diagrama en donde queremos poner nuestro ciclo, una vez hecho esto, aparecer谩 algo similar a la siguiente imagen en la zona de edici贸n del programa:

Diagrama Ciclo Mientras


Su funcionamiento es similar al de la decisión. Al insertar un nuevociclo mientras al DFD, aparecerán dos figuras. En la primera aparecen las letras MQ, que son las siglas de “Mientras que“, se colocará una condición de tipo booleana (veroperadores lógicos y relacionales y tipos de datos booleanos) que de considerarse verdadera, ejecutara las instrucciones que se encuentren entre la primera figura y la segunda figura en la que aparece “Fin (MQ)“. Al hacer doble clic sobre la primera figura, aparecerá un cuadro de dialogo como este:

Dialogo Ciclo Mientras En la imagen anterior, se observa el cuadro de dialogo que aparece al hacer doble clic sobre la figura que contiene la palabra MQ, allí podemos observar que se nos pide una condición, que como se escribió anteriormente, se validará y en caso de que sea verdadera, repetirá las instrucciones que se encuentren dentro de las dos figuras que representan el ciclo mientras. Nota: Es importante tener en cuenta que las condiciones tienen que ser falsas en algún momento para que el ciclo se rompa y el programa pueda finalmente continuar y terminar en algún momento. En el ejemplo de la imagen se comete este error a propósito con el


fin de evidenciar este caso, dado que 5, siempre será mayor que 3 y eso convertirá el programa en un ciclo infinito. No está de más recordar que en caso de que alguna vez un programa se quede en un bucle infinito, podemos parar su ejecución usando el botón de parada en la parte superior del programa o el botón de pausa que aparece en cada ventana que se nos muestra durante la ejecución. Objetos Los objetos de FreeDFD, son los que aparecen en dicha sección de la barra de herramientas.

Objetos FreeDFD El primer botón, se denomina Cursor, cuando este botón se encuentra activado, se pueden hacer selecciones en el área de edición del programa. El segundo botón, se denomina Asignación, y sirve para hacer definición de variables en el programa de manera estática. El tercer botón, se denomina Ciclo Mientras, sirve para crear una estructura repetitiva dentro del programa y ejecutar una serie de instrucciones muchas veces seguidas, mientras se considere una condición como verdadera. El cuarto botón, se denomina Ciclo Para, sirve para crear del mismo modo que el ciclo mientras una estructura repetitiva dentro del programa, para que se repitan una serie de instrucciones, solo que la condición es diferente. El quinto botón, se denomina Decisión, sirve para tomar decisiones simples dentro del programa, se ingresa dentro de la “decisión”, una condición y dependiendo de si esa condición es falsa o verdadera, el programa ejecutara una serie de instrucciones diferentes en cada caso.


El sexto botón, se denomina Lectura o Entrada, sirve para realizar definiciones de variables de manera dinámica, en el momento en que el programa esta en ejecución. El séptimo botón, se denomina Salida, sirve para mostrar salidas por pantalla de los diferentes procesos que se realizan con el programa, es el único medio que tenemos para obtener resultados. El octavo botón, se denomina Llamada, sirve para aser llamadas. Operadores de FreeDFD En el programa FreeDFD, se usan diferentes tipos de Operadores, entre los que encontramos Matemáticos, Relacionales, Lógicosy con operaciones sobre Cadenas. A continuación, encontrarás una lista de los operadores, el tipo al que pertenecen y su sintaxis: Operadores Matemáticos: Operación

Símbolo

Sintaxis

Suma

+

valor1 + valor2

Resta

-

valor1 – valor2

Multiplicación

*

valor1 * valor2

División

/

valor1 / valor2

Residuo

mod

valor1 mod valor2

Potencia

^

valor1 ^ valor2

Raíz Cuadrada

sqrt

sqrt(valor)

Valor Absoluto

abs

abs(valor)

Seno

sin

sin(valor)


Operación

Símbolo

Sintaxis

Coseno

cos

cos(valor)

Tangente

tan

tan(valor)

Arco Seno

asin

asin(valor)

Arco Coseno

acos

acos(valor)

Arco Tangente

atan

atan(valor)

Seno Hiperbólico

sinh

sinh(valor)

Coseno Hiperbólico

cosh

cosh(valor)

Tangente Hiperbólico

tanh

tanh(valor)

Logaritmo Decimal

log

log(valor)

Logaritmo Neperiano

ln

ln(valor)

Exponencial de e

exp

exp(valor)

Número Aleatorio

random

random(valor)

Entero más cercano

round

round(valor)

Parte entera

trunc

trunc(valor)

Operadores Relacionales: Operación Símbolo

Sintaxis

Mayor que

valor1 > valor2

>


Operación

Símbolo

Sintaxis

Menor que

<

valor1 < valor2

Mayor igual que

>=

valor1 >= valor2

Menor igual que

<=

valor1 <= valor2

Igual que

=

valor1 = valor2

Diferente de

!=

valor1 != valor2

Operadores Lógicos : Operación

Símbolo

Sintaxis

No

not

not valor

Y

and

valor1 and valor2

O

or

valor1 or valor2

O exclusivo

xor

valor1 xor valor2

No Y

nand

valor1 nand valor2

No O

nor

valor1 nor valor2

No O exclusivo

xnor

valor1 xnor valor2

Tanto los operadores relacionales como los operadores lógicos, retornan valores de tipo lógico o booleano, en el caso de FreeDFD, retornan “.V.” (verdadero o 1) o “.F.” (falso o 0). Operadores con Cadenas Para este caso tenemos dos operadores que podemos usar en FreeDFD, que son: •

Obtener la longitud de una cadena: len. Por ejemplo: len(‘hola’) es igual a 4, que es la cantidad de caracteres en la cadena.


Obtener parte del contenido de una cadena: substring. Por ejemplo: substring (‘pingüino’, 5,4) es igual a ‘üino’, ya que “ü”, es el carácter numero 5 de la palabra “pingüino” y el operador devolverá los cuatro caracteres siguientes al quinto incluido el mismo.


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. Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma: Pseudocódigo:

Diagrama de flujo:

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:


Donde: 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. 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 especificas. La forma común es la siguiente: Pseudocódigo:

Diagrama de flujo:

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:


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:

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 Diagrama de flujo:


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! Diagrama de flujo:


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: 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 numero fuera del rango 1-7” Fin-Caso FIN Diagrama de flujo:


BUENO ESTE ES EL FIN DE ESTE MANUAL =) OJALA QUE LES AIGA SERVIDO MUCHO

manual de algoritmos = )  

sirve mucho

Advertisement