La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diagramas de flujo y pseudocódigo

Presentaciones similares


Presentación del tema: "Diagramas de flujo y pseudocódigo"— Transcripción de la presentación:

1 Diagramas de flujo y pseudocódigo

2 Se utiliza un conjunto de símbolos normalizado, estándar.
Diagramas de flujo Representaciones gráficas del flujo de datos e informaciones que maneja un programa. Se utiliza un conjunto de símbolos normalizado, estándar. Utilizaremos un subconjunto reducido de símbolos.

3 Símbolos utilizados. Operación
Todos los símbolos estarán unidos por líneas de flujo. Leer datos Escribir datos

4 Símbolos utilizados. Decisión
Alternativa múltiple Alternativa

5 Símbolos utilizados. bucles
MIENTRAS HACER …. MIENTRAS

6 Pseudocódigo Un programa puede describirse mediante un lenguaje intermedio entre el lenguaje natural y el lenguaje de programación Tiene flexibilidad para expresar las acciones que han de realizar. Tiene limitaciones que facilitaran su posterior codificación. Diremos que una notación es un pseudocódigo si mediante ella podemos describir la solución de un problema en forma de algoritmo dirigido a la computadora, utilizando palabras y frases del lenguaje natural sujetas a unas determinadas reglas.

7 El pseudocódigo se ha de considerar más bien una herramienta para el diseño de programas que una notación para la descripción de los mismos. Debido a su flexibilidad permite obtener la solución a un problema mediante aproximaciones sucesivas, es decir, mediante lo que se denomina diseño descendente. Asimismo tendrá la posibilidad de describir datos, tipos de datos, constantes, variables, expresiones, archivos y cualquier otro objeto que sea manipulada por el programa. Para evitar complicaciones utilizaremos las estructuras y características del lenguaje en el que codifiquemos siempre que no utilice notaciones de difícil comprensión.

8 Las acciones que expresamos en pseudocódigo pueden ser de dos tipos:
Las sentencias se ejecutan de forma secuencial, una detrás de otra y de arriba abajo. Hasta que no se ha completado la sentencia anterior no comienza la siguiente. Las acciones que expresamos en pseudocódigo pueden ser de dos tipos: Acciones simples: También denominadas instrucciones primitivas, son aquellas que el procesador ejecuta de forma inmediata. Acciones compuestas: Aun no esta resuelta en términos de acciones simples y sentencias de control. Estas acciones se definirán en términos de acciones simples en otra parte del programa.

9 Estructura de un programa en Pseudocodigo
Un programa es la solución final de un problema. Consiste en la descripción de los objetos (entorno:) y de las instrucciones (Inicio…Fin). Un programa tendrá la siguiente estructura: Programa Nombre_Del_Programa; Entorno: // Descripción de los objetos Inicio // Descripción de las acciones Fin Subprograma Nombre_subprograma Fin; ….

10 Elementos de un programa
Cualquier programa, en cualquier lenguaje, constará de los siguientes elementos. El juego de caracteres (1,2….0,a,b….,z, +,-..) Variables y constantes: Será donde almacenemos los datos con los que trabajaran las sentencias y las expresiones. Operaciones: +,-,/,*….. Sentencias y expresiones: Indican las acciones que debe realizar el programa, utilizando las variables o constantes. Comentarios: Explican detalladamente el funcionamiento del programa. No tienen ningún valor para el compilador. Se usan para permitir entender el programa para las personas

11 El juego de caracteres [ 1,2...0,a,b......z,*,-( )...]
Un carácter es un elemento pequeño utilizado en el tratamiento de la información. Un dato de tipo carácter contiene un solo carácter, siendo un carácter un conjunto finito y ordenado de caracteres que la computadora reconoce. Si bien estos caracteres no son estándar, la mayoría de las computadoras reconoce los caracteres alfabéticos, numéricos y especiales. Alfabéticos (a,b,c,d, z) (A,B,C,D, Z) Numéricos (0, 1, 2, 3, ) Especiales (+, -, *, /, < , >, $ )

12 Variables y constantes
Son objetos de un programa todos aquellos manipulados por las instrucciones. Mediante ellos, en un programa podremos realizar el almacenamiento de los datos y de los resultados de las distintas operaciones que intervienen en la solución del problema. Todos los objetos van a tener tres atributos Nombre: Es un identificador del mismo Tipo: Conjunto de valores que puede tomar Valor: Elemento del tipo que se le asigna.

13 Reservan una zona de memoria en la que almacenan un valor Constantes
El valor es asignado al codificar el programa y no varia durante la ejecución de este. Pueden estar definidas como una variable, tienen identificador, o declaramos su valor solamente, en este caso las denominaremos simplemente “valor” Variables Su valor puede cambiar y normalmente cambiará durante la ejecución del programa. Tienen que tener siempre un identificador o nombre, que será la forma de acceder o modificar su valor.

14 Identificadores Los identificadores son palabras creadas por el programador para dar nombre a los objetos y demás elementos que necesita declarar en un programa, como: Variables Constantes Tipos Estructuras de datos Archivos Subprogramas (funciones)

15 Ejemplo de identificadores
namespace SumaDosNumeros { class Programa static void Main(string[] args) int num1, num2; String cadena; System.Console.WriteLine("Escriba dos números"); cadena = System.Console.ReadLine(); num1 = int.Parse(cadena); num2 = int.Parse(cadena); System.Console.WriteLine("La suma es: {0} ", num1 + num2); }

16 Nombre de identificadores
static void Main(string[] args) { int num1, num2; String cadena; System.Console.WriteLine("Escriba dos números"); cadena = System.Console.ReadLine(); num1 = int.Parse(cadena); num2 = int.Parse(cadena); System.Console.WriteLine("La suma es: {0} ", num1 + num2); } Estilo recomendado “Nombres representativos” static void Main(string[] args) { int x, y, z; String a; System.Console.WriteLine("Escriba dos números"); a = System.Console.ReadLine(); x = int.Parse(a); y = int.Parse(a); z = x + y; System.Console.WriteLine("La suma es: {0} ", z); } Estilo NO recomendado “El nombre de los identificadores no informa de su utilidad”

17 Operadores Hay tres tipos de operadores: aritméticos

18 Relacionales lógicos Reglas de Prioridad
Las operaciones aritméticas siguen reglas de prioridad o precedencia y son: operador exponencial *, ^ operadores de multiplicación y división, / operadores de suma y resta +, -

19 Expresiones aritméticas
Las expresiones aritméticas son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Las mismas son utilizadas en notación matemática tradicional. a + (b – 20) * 2 (a + b)** 2 Cada expresión tiene un valor, que se determina tomando los valores de las variables y constantes implicadas y ejecutando las operaciones indicadas. Reglas de Prioridad Las expresiones que tengan dos o más operadores requieren reglas matemáticas que permitan determinar el orden de las operaciones, dichas reglas son de prioridad o precedencia y son: Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen paréntesis anidados, los mismos se resuelven de adentro hacia fuera. Las operaciones aritméticas dentro de una expresión siguen el siguiente orden de prioridad: Operador exponencial Operadores * y / (multiplicación y división) Operadores + y - (suma y resta) En el caso de coincidir operadores de igual jerarquía en una expresión encerrada entre paréntesis, el orden de prioridad se resuelve de izquierda a derecha.

20 Teorema de la programación estructurada
En 1966 Böhm y Jacopini demostraron el teorema de la programación estructurada. Teorema: Todo algoritmo puede ser descrito utilizando solamente tres tipos de estructuras de control: Secuencial Alternativa Repetitiva No se necesitan bifurcaciones incondicionales para la descripción de los algoritmos.

21 Instrucciones Como ya se mencionó anteriormente, un algoritmo es un conjunto de acciones que se han de ejecutar para la resolución de un problema. A cada una de estas acciones se le denomina Instrucción o Sentencia. Un conjunto de Instrucciones forma un programa. Las instrucciones se deben escribir y luego almacenar en memoria en el mismo orden en que han de ejecutarse, es decir, en secuencia. Las instrucciones básicas que se pueden implementar en un algoritmo soportan todos los lenguajes de programación. Dicho de otro modo, las instrucciones básicas son independientes del lenguaje de programación. La clasificación más corriente es: Instrucciones de Comienzo y Fin Instrucciones de transferencia Instrucciones de entrada Instrucciones de salida Instrucciones de control

22 Instrucciones de Comienzo y Fin
Son las instrucciones que ordenan el comienzo o fin del algoritmo. Todo programa debe comenzar con la instrucción INICIO o COMENZAR o su simbología correspondiente Todo programa debe finalizar con la instrucción FIN o PARAR o su simbología correspondiente.

23 Instrucciones de transferencia
Aritméticas Cualquier operación aritmética que se desea realizar es llamada con este nombre. Tienen dos etapas: La ejecución de la operación, que implica la obtención de un resultado. Una transferencia para almacenar en un campo de la memoria el resultado obtenido. La forma general de la instrucción aritmética es: b  a o a = b donde: a es el nombre de una variable donde se almacena el resultado de b, y b es una expresión aritmética Ejemplo: Sumar el contenido de los campos A y B La instrucción sería A + B  C o C = A + B

24 Instrucciones de entrada
Esta instrucción introduce datos desde algún dispositivo de entrada. Una instrucción de Entrada implica la introducción de datos en la memoria principal del ordenador desde dispositivos externos a la misma, por ejemplo, el teclado, un diskette, etc.- En la memoria principal solo pueden guardarse valores mediante su almacenamiento en variables. Por eso, cualquier operación de entrada lleva implícita la asignación del valor introducido en una variable de memoria a la que se deberá hacer referencia cuando se necesite.

25 Ejemplo Si se tiene una instrucción de este tipo: 1
Ejemplo Si se tiene una instrucción de este tipo: 1. Leer (A, B, C) Lo que se lee es 10, 20, 30 y se asignarán a las variables los siguientes valores: A = 10 B = 20 C = Leer (Nombre, Domicilio) Lo que se lee es Juana, San Juan 1220 y se asignarán a las variables lo siguiente: Nombre = Juana Domicilio = San Juan 1220

26 Instrucciones de salida
Permiten la salida de datos desde la memoria principal del ordenador hacia dispositivos externos de salida; por ejemplo impresoras, pantalla, disquete, disco duro, etc Ejemplo Si queremos imprimir o visualizar en pantalla los valores de las variables anteriores A, B y C, el resultado sería: 10, 20, 30

27 Acciones simples Asignación: Almacena en una variable el resultado de evaluar una expresión. Variable = expresión Ejem: numero = 5 Entrada: Toma un dato del dispositivo estándar de entrada y lo almacena en la variable. Leer Variable Ejemplos: Leer NombrePersona Leer Alumno, Calificacion Salida: Imprime en el dispositivo estándar de salida el resultado de evaluar una expresión. Escribir expresión Escribir numero Escribir numero * 2 Las instrucciones Leer y escribir no son en realidad acciones primitivas en ningún lenguaje de programación, pero conviene considerarlas así desde el punto de vista del diseño (Este es un ejemplo de diseño descendente).

28 Sentencias de control Se denominan sentencias estructuradas y controlan el flujo de ejecución de otras instrucciones Secuencia Alternativa Alternativa simple Alternativa doble Alternativa múltiple Repeticiones o bucles Mientras Repetir Para

29 Sentencias de control: Secuencia
Las instrucciones se ejecutan en el mismo orden en el que aparecen escritas. Utilizamos punto y coma como separador de instrucciones que están en la misma línea. En php todas las sentencias deben estar separadas por ‘;’ esten o no en la misma línea. PSEUDOCÓDIGO: Inst_1 Inst_2 Inst_3 Inst_N

30 Ejemplo sentencias de control: Secuencia
Calcular la nota media de dos calificaciones introducidas por teclado

31 Diagrama de Flujo

32 Objetos del programa. Variables y constantes
Podemos considerarlos como los recipientes de los datos que manipula el programa. Será necesario indicar cuáles son sus nombres y sus tipos, lo que se hará previamente a la descripción del conjunto de instrucciones que forman el algoritmo. El conjunto de objetos de un programa se denomina entorno.

33 Objetos del programa. Variables y constantes
Declaramos primero el nombre de la variable o constante y luego el tipo Entorno: i:entero; nota:real; nombre: alfanumerico; Declaramos primero el tipo y luego el nombre de la variable o constante Entorno: entero i, j; real nota; alfanumerico nombre; Utilizaremos cualquiera de las dos notaciones, lo importante es que hay que definir previamente a su utilización el nombre y tipo de los objetos con los que trabajaremos. En C++ se utiliza la segunda notación En PHP no hace falta declarar los objetos

34 Ejercicio 3. Resuelto Algoritmo que toma como dato de entrada un número que corresponde a la longitud de un radio y escribe la longitud de la circunferencia, el área del circulo y el volumen de la esfera. Objetos (constantes y variables) PI : Constante (3.1415) Radio : variable para tomar el dato de entrada Longitud : variable para calcular la longitud de la circunferencia Area : variable para calcular el área de la circunferencia Volumen : variable para calcular el volumen de la circunferencia Formulas matemáticas Longitud = 2∏r Área = ∏r2 Volumen = 4/3 ∏r3

35 Ejercicio 4. Propuesto Algoritmo que lee dos números, calculando y escribiendo el valor de su suma, resta, producto y división.

36 Sentencias de control: Alternativa simple
PSEUDOCÓDIGO: Si CONDICION entonces Inst_1; Inst_2; …; Inst_N; FinSi; En esta instrucción, la condición es una expresión Booleana. Las instrucciones Ins_1, Inst_2, …;Inst_N; se ejecutan solamente si la evaluación de la condición produce el resultado VERDADERO; en otro caso no hace nada.

37 Ejercicio 5. Resuelto. Algoritmo que lea un número por el teclado e indique si el número leído es mayor que 10

38 Diagrama de Flujo

39 Ejercicio 6. Propuesto Diseñe un algoritmo que, dado un número que entra como dato, nos indique si está contenido dentro de los límites predeterminados. El límite inferior es de 100 y el superior de 200. Programe un algoritmo que, dados dos números que entran como datos, indique si uno es divisor del otro. Implementar un algoritmo en el que dada la temperatura máxima del mes y la temperatura medida en el día de hoy, actualice el valor de la máxima si la temperatura leída hoy es mayor que dicha máxima.

40 Sentencias de control: Alternativa doble
PSEUDOCÓDIGO: Si CONDICION entonces Inst_1; Inst_2; …; Inst_N; Sino Inst_N+1; Instr_N+2; …; Inst_M; FinSi; En esta instrucción, la condición es una expresión Booleana. Si la CONDICION es verdadera se ejecutan Inst_1, …Inst_N; Si la CONDICION es falsa se ejecutan Inst_N+1; …;Inst_M Si se ejecuta una parte nunca se ejecutará la otra. Dentro de las instrucciones que forman los bloques del SI puede haber más instrucciones SI. O sea Inst_X puede ser una sentencia SI.

41 Ejercicio 7. Resuelto Algoritmo que lee dos números y nos dice cuál es el mayor o si son iguales. Objetos: num1 y num2 variables de tipo entero

42 Ejercicio 7 (continuación …)

43 Ejercicio 8. Resuelto. Algoritmo que lea una calificación por teclado y nos indique si el alumno está suspenso o aprobado.

44 Diagrama de Flujo

45 Sentencias de control: Alternativa múltiple
PSEUDOCÓDIGO: Opcion Expresion de V1: Instrucción/es_1; V2: Instrucción/es_2; V3: Instrucción/es_3; ... Otro: Instrucción/es_N; FinOpcion; La expresión puede ser alfanumérica o numérica entera. Si su valor es V1 se ejecutan las instrucciones 1, si es V2 las instrucciones 2, etc. Si el valor no coincide con ningún valor de los anteriores se ejecutará la opción “Otro”. En C# la expresión será de un tipo integral o string

46 Sentencias de control: Alternativa múltiple
Esta sentencia no es imprescindible. Se puede sustituir por un conjunto de Alternativas dobles anidadas. En el supuesto de que no pongamos el valor “Otro” y la expresión no sea igual a ningún valor no ejecutamos ninguna sentencia. Ejemplo: Algoritmo que lea un número entero entre 1 y 4 y lo escriba en letra por pantalla.

47 Ejercicio 10. Propuesto Algoritmo que lee una calificación numérica entre 0 y 10 y la transforma en calificación alfabética, escribiendo el resultado 0<=Nota<3 MD 3<=Nota<5 INS 5<=Nota<6 SUF 6<=Nota<7 BIE 7<=Nota<9 NOT 9<=Nota<=10 SOB En un determinado comercio se realiza un descuento dependiendo del precio de cada producto. Si el precio es inferior a 6 €, no se hace descuento; si es mayor o igual a 6 € y menor que 60 € se hace un 5% de descuento, y si es mayor o igual a 60 € se hace un 10% de descuento. Realizar el algoritmo que lee el precio de un producto y nos calcula y escribe su precio final. Realizar un algoritmo que lea tres números por teclado y nos indique cual de ellos es el mayor.

48 Ejercicio 11. Propuesto Algoritmo que lee como dato de entrada un año y nos dice si se trata de un año bisiesto o no. Se sabe que son bisiestos todos los años múltiplos de 4, excepto los que sean múltiplos de 100 sin ser múltiplos de 400. Algoritmo que lee como datos de entrada una fecha expresada en día (1..31), mes (1..12), y año y nos dice la fecha que será el día siguiente. Se supondrá que febrero tiene siempre 28 días. Algoritmo que recibe como datos de entrada una hora expresada en horas, minutos y segundos que nos calcula y escribe la hora, minutos y segundos que serán transcurrido un segundo.

49 Sentencias de control: Repeticiones o bucles
En todo bucle hay una o varias acciones que se han de repetir. Existe una condición que determina el número de repeticiones. Es fundamental que el valor de la condición sea afectado por las acciones dentro del bucle para asegurar la terminación del bucle en algún momento. Según en el punto en el que se evalúe la condición o la forma de esta tendremos las siguientes sentencias: Mientras (while) Hacer … Mientras (do … while) Para (for)

50 Sentencias de control: Bucle mientras
PSEUDOCÓDIGO: Mientras CONDICION hacer Instrucción_1; Instrucción_2; ... FinMientras; Se evalúa la condición antes de iniciar el bucle Se repiten sucesivamente las instrucciones mientras que la condición sea verdadera Las instrucciones pueden no ejecutarse si no se cumple la primera vez la condición.

51 Ejercicio 13. Resuelto Realizar un algoritmo que lea números por teclado hasta que introduzcan el número -1

52 Diagrama de Flujo

53 Sentencias de control: Bucle hacer .. mientras
PSEUDOCÓDIGO: Hacer Instrucción_1; Instrucción_2; ... Mientras CONDICION; Se evalúa la condición después de ejecutar las instrucciones del bucle. Se repiten sucesivamente las instrucciones mientras que la condición sea verdadera Las instrucciones del bucle siempre se ejecutan al menos una vez.

54 Sentencias de control: Bucle Para
Para Vc=Vi a Vf incremento Inc hacer Instrucción_1; Instrucción_2; ... FinPara; Se repiten las instrucciones Inst_1, Inst_2, etc, un número fijo de veces. Tantas como sucesivos valores toma la variable de control del bucle Vc desde el inical Vi incrementándose en cada repetición en Inc, hasta que el valor de Vc supera a Vf. Si el incremento es +1, que es el caso más habitual, puede omitirse la parte “incremento Inc” Esta estructura este diseñada para manejar más fácilmente los contadores

55 Contadores Un contador es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. Suelen estar asociados a algún bucle. En general suelen contar de forma natural desde 0 y de 1 en 1, aunque se pueden realizar otros tipos de cuenta necesarios en algunos procesos. Dos operaciones básicas: Inicialización: Todo contador se inicializa a 0, si realiza cuenta natural o a Vi, valor inicial. Contador = 0; Contador = Vi; Contabilización o incremento: Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 si se realiza cuenta natural o en In si se realiza otro tipo de cuenta Contador = Contador + 1; Contador = Contador + In;

56 Ejercicio 15. Resuelto Realizar un algoritmo que visualice por pantalla los 10 primeros números

57 Diagrama de flujo

58 Ejercicio 16. Propuesto Realizar un algoritmo que muestre por pantalla los números pares menores de 100. Realizar un algoritmo que muestre por pantalla los números múltiplos de 5 menores que Algoritmo que lea un número por teclado e imprima por pantalla todos los números positivos pares menores que N

59 Acumuladores Son objetos que se utilizan en un programa para acumular elementos sucesivos con una misma operación. En general se utilizan para calcular sumas y productos, sin descartar otros posibles tipos de acumulación. Suelen estar asociados a algún bucle. Se diferencian de los contadores en que el incremento es el valor de una variable que varia en cada ciclo del bucle. Dos operaciones básicas: Inicialización: Todo acumulador necesita ser inicializado con un valor neutro de la operación a acumular. Suma = 0; Producto = 1; Acumulación: Suma = Suma + Elemento; Producto = Producto * Elemento;

60 Ejercicio 17. Resuelto Realizar un algoritmo que calcule la suma y el producto de los 10 primeros números naturales Realizar traza

61 Interruptores (switches)
Los interruptores son objetos que se utilizan en un programa y sólo pueden tomar dos valores VERDADERO o FALSO. Realizan la función de transmitir información de un punto a otro del programa. Actúan como recordatorios manteniendo características de objetos o cálculos que estuvieron presentes en un momento anterior de la ejecución de un programa. Se utilizan iniciándolos con un valor y en los puntos que corresponda se cambian al valor contrario, de tal forma que examinando el valor posteriormente podemos realizar la transmisión de información que deseamos. Suelen ser de tipo booleano.

62 Ejercicio 18. Resuelto Algoritmo que lee una secuencia de notas (con valores de 0 a 10) que termina con el valor -1 y nos dice si hubo algún suspenso.

63 Conmutadores Un conmutador es un objeto que sólo puede tomar dos valores opuestos (Verdadero y Falso), que se utiliza para conmutar entre dos procesos distintos de forma alternativa. Se utilizan dándoles un valor inicial y en los puntos donde corresponda se niegan, de tal forma que adquieran el valor contrario al anterior. Suelen ser de tipo booleano.

64 Ejercicio 19. Resuelto Algoritmo que suma independientemente los pares y los impares de los números comprendidos entre 1 y 100.

65 Ejercicio 20. Propuesto Algoritmo que lee un número entero positivo N y calcula e imprime el factorial de N!. Si lee un número negativo indica con un mensaje que no es posible la operación. Algoritmo que lee un número X y otro entero positivo N y calcula la N-ésima potencia de X (sin utilizar el operador de potencia). Algoritmo que obtenga el producto de dos números enteros positivos mediante sumas sucesivas. Algoritmos que obtenga el cociente y el resto de dos números enteros positivos mediante restas. Algoritmo que lee tres números A, B, C, y los imprime en orden creciente e indica si fueron introducidos en ese orden. Algoritmo que lee una secuencia de 10 números y obtiene e imprime cuantos hay positivos, negativos y nulos. Algoritmo que lee una secuencia de números no nulos, terminada con la introducción de un 0, y obtiene e imprime el mayor, visualizando un mensaje de si ha leído algún número negativo.

66 Ejercicio 21. Propuesto Algoritmo que lea un número por teclado y nos diga si es primo. Algoritmo que genera la lista de los N primeros números primos, siendo N el dato de entrada. Algoritmo lea un número N y muestre por pantalla los números primos menores que N. Algoritmo que calcula e imprime los números perfectos menores que (Un número es perfecto si la suma de sus divisores, excepto él mismo, es igual al propio número.). Algoritmo que evalúa un polinomio de grado N. Los datos de entrada son el valor de la variable y los coeficientes. Algoritmo que lee un número entero positivo N e imprime su tabla de multiplicar. Algoritmo que lee un número entero y positivo N y escribe la lista de sus divisores. Algoritmo que lee un número entero y positivo y calcula y escribe la suma de sus divisores.


Descargar ppt "Diagramas de flujo y pseudocódigo"

Presentaciones similares


Anuncios Google