Primer Cuatrimestre 2018 Resolución de Problemas y Algoritmos
|
|
- Antonia Mendoza Chávez
- hace 5 años
- Vistas:
Transcripción
1 Lenguaje de Diseño Primer Cuatrimestre 2018 Resolución de Problemas y Algoritmos 1
2 Programación Modular Programación Estructurada Programas fáciles de leer y modificar Técnicas de Diseños Dividir y Conquistar Estructuras de Control Algoritmos Voraces Programación Dinámica Algoritmos Exhaustivos Secuencia Condicional Iteración Dividir a un problema en subproblemas más simples Módulo Programación Modular 2
3 Programación Modular Enfoque de Diseño y Programación Modular Conviene Cuando una tarea específica debe ejecutarse varias veces Cuando un problema es complejo y la solución se divide o segmenta en módulos donde cada uno ejecuta una tarea específica Divide y vencerás 3
4 Modularización Descomposición del problema suma (unión) de pequeños problemas Se pretende: Dividirlo en pequeños problemas 4 que tengan una tarea específica. 4 sean totalmente independientes del resto. Puede suceder que dicho subproblema sea común a un conjunto de problemas de mayor envergadura. El algoritmo que lo resuelve debería ser el mismo cada vez que el subproblema esté presente en un problema. MODULARIZACIÓN DEL PROBLEMA 4
5 Modularización Programación Modular Ventajas: Aumenta la legibilidad y comprensión del programa Reduce el tiempo de desarrollo, aprovechando módulos ya existentes Permite la resolución del problema por equipos de programadores a la vez Facilita la depuración del programa Facilita el mantenimiento Facilidad para aprehender el problema Reutilización del código.
6 Modularización Técnica de diseño: Top Down Problema Sub problema 1 T1 T2 T3 Sub problema 2 Sub problema 3 T1 T11 T12 T13 T31 T32 T11 T12
7 Modularización Algunos criterios de Descomposición Modular Es importante un compromiso entre el tamaño de los módulos y la complejidad de la aplicación. Si un programa se descompone en muchas unidades, decrece la efectividad. Cuando el Nº de módulos aumenta, decrece el esfuerzo de realizarlos pero aumenta el esfuerzo de integración. Independencia funcional: el módulo realiza una única tarea y se comunica lo menos posible con los módulos restantes. Un módulo se debe dividir hasta conseguir un nivel mínimo de independencia funcional aceptable. La Independencia funcional se puede medir según: la cohesión (mide la relación entre las partes del módulo que deben realizar una única función) y el acoplamiento (mide la relación con el resto de los módulos).
8 Ejemplo: Dado un número n entero positivo, se desea calcular e imprimir el factorial de n, n 2 y de n 3. Se debe tratar de utilizar el algoritmo para el calculo del factorial como un módulo (subalgoritmo). Nota: el algoritmo Factorial permite calcular el valor factorial para un número cualquiera N ingresado por el usuario. ALGORITMO Factorial N, FACT, I: entero LEER N FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER PARA FACT ESCRIBIR FACT FACT * I 8
9 SUBALGORITMO FACTORIAL N, FACT, I: entero LEER N FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER PARA FACT ESCRIBIR FACT FACT * I ALGORITMO Calculo Factoriales FACTORIAL FACTORIAL FACTORIAL 9
10 Invocación FACTORIAL Pantalla Entrada Retorno Calculo Factoriales Tres veces se invoca el módulo FACTORIAL, quien además de calcular el factorial lo muestra por pantalla 10
11 Inconveniente: - se debe ingresar el número toda vez que se invoca el subalgoritmo. - alta probabilidad de cometer error en el ingreso. Se pretende: - ingresar el dato una única vez. 11
12 Pantalla Entrada N N2 FACTORIAL Muestra Pantalla Calculo Factoriales 12
13 ALGORITMO Calculo Factoriales N, AUX: entero LEER N AUX N FACTORIAL N AUX 2 FACTORIAL N AUX 3 FACTORIAL SUBALGORITMO FACTORIAL FACT, I: entero FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER PARA FACT ESCRIBIR FACT FACT * I? 13
14 Visibilidad o ámbito de las variable Visibilidad o Ámbito de una variable (en inglés scope: alcance) es el contexto o zona del programa en que la misma está definida y por lo tanto puede ser accedida y utilizada. Según su ámbito las declaraciones pueden ser: 4 Globales: Afectan a todo el programa. Se almacenan en una zona de memoria común, accesible desde cualquier punto del programa y se mantiene mientras dura el programa. 4Locales: Sólo pueden ser accedidas en el módulo donde han sido declaradas. Se almacenan en una zona de memoria que se reserva cuando se llama al módulo y se destruye cuando termina la ejecución del módulo. Lenguaje de Diseño SOLAMENTE reconoce variables locales 14
15 ALGORITMO Calculo Factoriales N, AUX: entero LEER N AUX N FACTORIAL N AUX 2 FACTORIAL N AUX 3 FACTORIAL SUBALGORITMO FACTORIAL FACT, I: entero FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER PARA FACT ESCRIBIR FACT FACT * I? 15
16 ALGORITMO Calculo Factoriales N, AUX: entero LEER N AUX N FACTORIAL(N) N AUX 2 FACTORIAL(N) N AUX 3 FACTORIAL(N) Es necesario poder comunicarle al subalgoritmo el valor que necesita, en este caso el valor de N SUBALGORITMO FACTORIAL (in NU:entero) FACT, I: entero FACT 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER PARA FACT ESCRIBIR FACT FACT * I 16
17 Supongamos que se desea sacar del módulo FACTORIAL la tarea de mostrar por pantalla Invocación Retorno Muestra FACTORIAL Es necesario que el módulo devuelva el resultado para que, desde el algoritmo se muestre por pantalla Entrada Calculo Factoriales Pantalla 17
18 ALGORITMO Calculo Factoriales N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 3 FACTORIAL(N, FACT) ESCRIBIR FACT Invocación Retorno Muestra FACTORIAL Entrada Calculo Factoriales Pantalla 18
19 ALGORITMO Calculo Factoriales N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 3 FACTORIAL(N, FACT) ESCRIBIR FACT SUBALGORITMO FACTORIAL (in NU:entero, out FA:entero) I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER FA PARA Qué función cumple NU y FA? FA * I 19
20 ALGORITMO Calculo Factoriales Parámetros Actuales N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 3 FACTORIAL(N, FACT) ESCRIBIR FACT 20
21 SUBALGORITMO FACTORIAL (in NU:entero, out FA:entero) I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER FA PARA FA * I Parámetros Formales 21
22 FACTORIAL( N, FACT ) Invocación SUBALGORITMO FACTORIAL (in NU:entero, out FA:entero) Definición Los parámetros Formales se definen: 4 in, son sólo parámetros de ingreso de datos. 4 out, solo parámetros de salida de datos. 4 in out, a través de ellos se ingresan los datos al subalgoritmo y el subalgoritmo devuelve información. 22
23 Restricciones: Si el parámetro formal fue definido 4 in, los parámetros actuales solo pueden ser constantes, variables, expresiones o valores de funciones. 4 out o in out, los parámetros actuales deben estar definidos en el ámbito del algoritmo invocante pues es allí donde se debe retornar los resultados. 23
24 AMBITO Lenguaje de Diseño: Subalgoritmos ALGORITMO Calculo Factoriales Ambito para N, AUX, FACT N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX 3 FACTORIAL(N, FACT) ESCRIBIR FACT Visibilidad o Ámbito de una variable (en inglés scope: alcance) es el contexto o zona del programa en que la misma está definida y por lo tanto puede ser accedida y utilizada. 24
25 SUBALGORITMO FACTORIAL (in NU:entero, out FA:entero) Ámbito sólo para NU, FA, I I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER FA PARA FA * I 25
26 Formalmente: Lenguaje de Diseño: Subalgoritmos SUBALGORITMO <Nombre_subalgoritmo> (<lista de parámetros>) <cuerpo del subalgoritmo> Donde la declaración de cada parámetro debe tener los siguiente datos: < clase de parámetro > < nbre_par > : <tipo_de_dato_vble> in out in out Entero Real Carácter Lógico Arreglo de.. 26
27 Ejemplos: SUBALGORITMO Factorial (in N:entero, out FACT:entero) SUBALGORITMO Ordeno (inout V: arreglo de entero, in M, N: entero) SUBALGORITMO Mult (in A: real, in B: entero, out N: real) 27
28 Ejemplo 2: Que hace esta parte del siguiente algoritmo? ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER LEER Cur_A [I] MIENTRAS PARA... Lenguaje de Diseño: Subalgoritmos Se ingresan 30 valores enteros en un arreglo llamado Cur_A (supongamos un Curso A). Como se debería modificar este algoritmo si además se desea cargar las notas del Curso B que tiene 45 alumnos? 28
29 ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER LEER Cur_A [I] MIENTRAS PARA Como modificamos este algoritmo si además tenemos que cargar las notas del Curso C, D, etc? PARA I DESDE 1 HASTA 45 CON PASO 1 HACER LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER LEER Cur_B[I] REPETIR PARA. Lenguaje de Diseño: Subalgoritmos 29
30 ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER Qué tienen en común estas dos porciones de código? LEER Cur_A [I] PARA I DESDE 1 HASTA 45 CON PASO 1 HACER MIENTRAS PARA LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER LEER Cur_B[I] MIENTRAS PARA.. 30
31 ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER Qué tienen diferente estas dos porciones de código? LEER Cur_A [I] PARA I DESDE 1 HASTA 45 CON PASO 1 HACER MIENTRAS PARA LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER LEER Cur_B[I] MIENTRAS PARA.. Solución: definimos un subalgoritmo con la tarea que se repite y los datos que cambian lo comunicamos como parámetro 31
32 SUBALGORITMO Llenado (inout C: arreglo de entero) I: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER PARA LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] MIENTRAS 32
33 Definimos un Subalgoritmo que va a realizar el Llenado del Arreglo ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero Llenado (Cur_A, 1, 30 ) Llenado (Cur_B, 1, 45) Invocación... 33
34 SUBALGORITMO Llenado (inout C: arreglo de entero, in M, N: entero) I: entero PARA I DESDE M HASTA N CON PASO 1 HACER PARA LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] MIENTRAS 34
35 Como modificamos este algoritmo si la cantidad de alumnos del Curso C varia ( nunca supera los 30 )? Lenguaje de Diseño: Subalgoritmos ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero Cur_C: arreglo [1..30] de entero Cur_D: arreglo [1..30] de entero I, Valor: entero Llenado (Cur_A, 1, 30 ) Llenado (Cur_B, 1, 45 ) ESCRIBIR Cuantos Alumnos tiene el Curso C LEER Valor Llenado (Cur_C, 1, Valor ) Llenado (Cur_D, 1, 30 )... Faltan controles!!! 35
36 Como modificamos este algoritmo si vamos a cargar las notas a partir del alumno 10 hasta el 20 en el Curso D? SUBALGORITMO Llenado (in out C: arreglo de entero, in M, N: entero) I: entero PARA I DESDE M HASTA N CON PASO 1 HACER LEER C[I] PARA MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] REPETIR Es posible invocar al subalgoritmo así Llenado (Cur_A, 30, 1 )? ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero Cur_C: arreglo [1..30] de entero Cur_D: arreglo [1..30] de entero I, Valor: entero Llenado (Cur_A, 1, 30 ) Llenado (Cur_B, 1, 45 ) ESCRIBIR Cuantos Alumnos tiene el Curso C LEER Valor Llenado Llenado (Cur_C, 1, Valor ) (Cur_D, 10, 20 ) 36
37 SUBALGORITMO Llenado (inout C: arreglo de entero, in M, N: entero) I: entero PARA I DESDE M HASTA N CON PASO 1 HACER PARA LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] MENTRAS Se puede generalizar un poco más 37
38 SUBALGORITMO Llenado (in out C: arreglo de entero, in M, N: entero, in P: entero) I: entero PARA I DESDE M HASTA N CON PASO P HACER PARA LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] MIENTRAS 38
39 Ejemplo: Intercambiar el contenido de dos variables enteras. El algoritmo deberá ser diseñado como subalgoritmo denominado Intercambio. Solución: - Intercambiar los contenidos mediante la ayuda de una variable auxiliar que almacene temporariamente el contenido de una de ellas. Ejemplo: estado inicial: 21 35? A B Aux 1º acción: A B Aux 2º acción: A B Aux 3º acción: A B Aux 39
40 Objetos: A - variable entera con el primer dato. B - variable entera con el segundo dato. AUX - variable auxiliar. Variables? Técnica de Refinamiento? Módulo Intercambio: Versión 1: Versión 2: t 1 - Declarar las variables A y B que contienen los valores a intercambiar. t 2 Declarar la variable AUX como auxilio para el intercambio. t 3 Intercambiar los valores de A y B t 11 - Declaro la variable entera A como parámetros t 12 - Declaro la variable entera B como parámetros t 21 - Declaro la variable entera AUX t 31 A la variable AUX le asigno el valor de B t 32 - A la variable B le asigno el valor de A t 33 - A la variable A le asigno el valor de AUX 40
41 Objetos: Variables? Parámetros? A - variable entera con el primer dato. B - variable entera con el segundo dato. AUX - variable auxiliar. SUBALGORITMO Intercambio ( ) 41
42 Algoritmo Depurado: SUBALGORITMO Intercambio ( inout A,B:entero ) AUX: entero AUX A A B B AUX Clase de Parámetros? in out in out 42
43 SUBALGORITMO Intercambio ( inout A,B:entero ) AUX: entero AUX A A B B AUX Diagrama de Flujo? Se debe realizar el diagrama de flujo para cada uno de los subalgoritmos y para el algoritmo 43
44 Como modificamos este algoritmo si vamos a cargar las notas a partir del alumno 10 hasta el 20 en el Curso D? SUBALGORITMO Llenado (in out C: arreglo de entero, in M, N: entero) I: entero PARA I DESDE M HASTA N CON PASO 1 HACER LEER C[I] PARA MIENTRAS (C[I] < 1 v C[I] > 10) HACER LEER C[I] REPETIR Diagrama de flujo? ALGORITMO EJEMPLO 2 Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero Cur_C: arreglo [1..30] de entero Cur_D: arreglo [1..30] de entero I, Valor: entero Llenado (Cur_A, 1, 30 ) Llenado (Cur_B, 1, 45 ) ESCRIBIR Cuantos Alumnos tiene el Curso C LEER Valor Llenado Llenado (Cur_C, 1, Valor ) (Cur_D, 10, 20 ) 44
45 Problema: Se desea ordenar tres valores enteros en forma ascendente. Los valores son leídos en tres variables X, Y y Z. La salida debe ser: X con el menor valor, luego Y, y el mayor valor en Z. Se debe utilizar el subalgoritmo Intercambio Versión 1: t 1 - Declarar las variables X, Y, Z. t 2 - Leer los valores para X, Y, Z. t 3 - Comparando los tres valores ordenarlos de menor a mayor. t 4 - Mostrar X, Y, Z ordenados. Versión 2: t 1 - Declarar las variables X, Y, Z. t 2 - Leer los valores para X, Y, Z. t 31 - Si X > Y, intercambio los valores, sino los dejo como estaban. t 32 - Si Y > Z, intercambio los valores, comparar nuevamente si X > Y sino los dejo como estaban. 45
46 Problema: Se desea ordenar tres valores enteros en forma ascendente. Los valores son leídos en tres variables X, Y y Z. La salida debe ser: X con el menor valor, luego Y, y el mayor valor en Z. Se debe utilizar el subalgoritmo Intercambio Versión 2: Versión 3: t 1 - Declarar las variables X, Y, Z. t 2 - Leer los valores para X, Y, Z. t 31 - Si X > Y, intercambio los valores, sino los dejo como estaban. t 32 - Si Y > Z, intercambio los valores, comparar nuevamente si X > Y sino los dejo como estaban. t 1 - Declarar las variables X, Y, Z. t 2 - Leer los valores para X, Y, Z. t Si X > Y, invocar el subalgoritmo Intercambio con los valores X e Y.. t Si Y > Z,, invocar el subalgoritmo Intercambio con los valores Y y Z, Si X es mayor que Y, invocar el subalgoritmo Intercambio con los valores X e Y sino los dejo como estaban. 46
47 ALGORITMO Ordenar tres números X, Y, Z: entero LEER X, Y, Z SI X > Y ENTONCES SI Intercambio (X, Y) SI Y > Z ENTONCES SI Intercambio (Y, Z) SI X > Y ENTONCES SI ESCRIBIR X,Y,Z Intercambio (X, Y) Variables del Algoritmo Variables del subalgoritmo 1º invocación X Y Z A B AUX º invocación º invocación
48 Ejercicio: Analice el siguiente algoritmo. Se pide que defina (en forma completa) los parámetros formales, parámetros actuales y las definiciones de variables correspondientes para un buen funcionamiento del mismo Lenguaje de Diseño: Subalgoritmos SUBALGORITMO Ingreso ( ) ESCRIBIR INGRESE LA CANTIDAD DE CARACTERES LEER LS MIENTRAS LS <=0 v LS > 100 HACER ESCRIBIR INGRESE CANTIDAD LEER LS VECES VECES + 1 MIENTRAS I LI MIENTRAS I <= LS HACER ESCRIBIR INGRESE CARACTER LEER ARR[I] I I + 1 MIENTRAS ALGORITMO AL Acar: arreglo [1..100] de caracter LI, LS, ERROR: entero LI 1 Ingreso ( ) ESCRIBIR Ingreso, ERROR, veces un valor incorrecto 48
49 Problema: Codificar un algoritmo que calcule De cuántas maneras pueden sentarse 10 personas en un banco si hay 4 sitios disponibles. Ayuda: m=10 n=4 49
50 50
Lenguaje de Diseño Primer Cuatrimestre 2015 1
Lenguaje de Diseño Primer Cuatrimestre 2015 1 Programación Modular Programación Estructurada Programas fáciles de leer y modificar Técnicas de Diseños Dividir y Conquistar Estructuras de Control Algoritmos
Más detallesPRÁCTICO N o 7. Lenguaje de Diseño (Tercera Parte): Modularización. Ejercicio 1: Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6:
PRÁCTICO N o 7 Lenguaje de Diseño (Tercera Parte) Modularización Ejercicio 1 Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6 a Analice su solución identificando las distintas tareas que
Más detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detallesModularización en lenguaje C. Funciones
Modularización en lenguaje C Funciones Segundo Cuatrimestre 2016 F. de la Informática- Int.a la Computación - Int.a la Programación 1 Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los
Más detallesPráctico Nº 7 Tema: Lenguaje de Diseño (Parte 3). Subalgoritmos
Práctico Nº 7 Tema: Lenguaje de Diseño (Parte 3). Subalgoritmos Nota: En todos los casos en que se pida el desarrollo de un algoritmo y/o subalgoritmo, se debe escribir la solución expresada en lenguaje
Más detallesRESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL
RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL Nota: Entregar cada ejercicio escrito en tinta y en hoja separada. El parcial se aprueba con el 70 % y para promocionar se necesita obtener al
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Primer Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Segundo Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 8 Lenguaje de Diseño: Estructuración de Datos Resolución de Problemas y Algoritmos Primer Cuatrimestre ENUNCIADO: DADO UN NÚMERO ENTERO POSITIVO, ENCONTRAR EL ALGORITMO QUE DETERMINE EL FACTORIAL
Más detallesProgramación Estructurada. Complementos de Informática Tema 2: Programación Estructurada y Programación Modular. Números Amigos
Programación Estructurada Complementos de Informática Tema 2: Programación Estructurada y Programación Modular Álo Romero Jiménez Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesProgramación Estructurada
Programación Estructurada Técnica de programación que consiste en construir programas de fácil comprensión. Es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes
Más detallesProgramación Modular. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Programación Modular Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Programación Modular Un software monolítico no puede ser entendido fácilmente por un solo lector. El
Más detallesPráctica 5. Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia.
CI-2125 Computación I Práctica 5 Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia. 1. Especifique y escriba el diagrama de flujo de una función de nombre mcd,
Más detallesTema 5: Programación modular
Tema 5: Programación modular Departamento de Ciencia de la Computación e Inteligencia Artificial Universidad de Alicante 1 Contenidos Criterios de Descomposición Modular Concepto de Subalgoritmo Variables
Más detallesELEMENTOS DE PROGRAMACIÓN
VI.1.- SUBPROGRAMAS. PROCEDIMIENTOS Y FUNCIONES. UNIVERSIDAD DE MALAGA DPTO. DE LENGUAJES Y C. DE LA COMPUTACION E.T.S. DE INGENIERIA INFORMATICA INGENIERIA INFORMATICA ELEMENTOS DE PROGRAMACIÓN (CURSO
Más detallesProgramación y Algoritmia
Programación y Algoritmia Un enfoque práctico y didáctico para el diseño de algoritmos 3 Acciones y Funciones Lic. Oscar Ricardo Bruno, MDU Contenido Acciones y Funciones 3 Introducción 3 Modularizacion
Más detallesTema 2. Diseño Modular.
Tema 2. Diseño Modular. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis Leiva Olivencia. Despacho: I-326D (Edificio E.U.P)/ 3.2.41
Más detallesCOMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables. Pasaje de parámetros por valor. Prof. Mireya Morales
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables. Pasaje de parámetros por valor Prof. Mireya Morales CONTENIDO Instrucciones break y continue Importancia del uso de subalgoritmos o
Más detallesSintaxis de PSeInt Tutorial
Sintaxis de Tutorial Introducción a la Programación (T.U.M - T.U.G. - T.U.E. - T.U.T. - Prof) Introducción a la Computación (T.U.R. - T.U.W.) Fundamentos de la Informática (Ing. en Minas - Ing. Electr.)
Más detallesCapitulo 2. Programación Modular
Capitulo 2. Programación Modular Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación
Más detallesIntroducción a los subalgoritmos o subprogramas
Introducción a los subalgoritmos o subprogramas Soluciona problemas complejos al dividirlos en subprogramas y luego dividirlos estos en otros mas simples, hasta que estos sean mas fáciles de resolver.
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
2 Programación I Programación I. Guía 6 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la
Más detallesFunciones, Subrutinas o Procedimientos Jhon Jairo Padilla Aguilar, PhD.
Funciones, Subrutinas o Procedimientos Jhon Jairo Padilla Aguilar, PhD. Definición de función En el contexto de la programación, una función es una secuencia de sentencias que realizan una operación y
Más detallesALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Más detallesTema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Más detallesMódulo 4: Algoritmos como primitivas
Módulo 4: Algoritmos como primitivas Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dra. Marcela Capobianco 1 de Copyright Copyright 2012 M.
Más detallesEjemplo de análisis y diseño de un algoritmo: Cálculo del factorial de un número
Ejemplo de análisis y diseño de un algoritmo: Cálculo del factorial de un número Para ilustrar el uso de la metodología para resolver problemas a través de la computadora y el diseño de algoritmos, se
Más detallesSecuencias Calculadas
Secuencias Calculadas Estructuras de Iteración y Recursividad Prof. Hilda Contreras Programación 1 hildac.programacion1@gmail.com Secuencias Calculadas Se aplican a los problemas donde los elementos de
Más detallesCadenas de caracteres
Trabajo práctico Nº 6 (Trabajos con cadenas de caracteres y estructuras) Realiza el programa en Lenguaje C correspondiente. Cadenas de caracteres 1- Construir una función PASSWORD que pida por teclado
Más detallesSubrutinas. Subrutinas. Erwin Meza Vega
Subrutinas Erwin Meza Vega Outline 1 Introducción 2 Especicación de subrutinas 3 Funciones booleanas 4 Parámetros 5 Recursividad 6 Ejercicios Introducción Programación divide y vencerás Cuando la solución
Más detallesTEMA2:LAS HERRAMIENTAS DE PROGRAMACION
TEMA2:LAS HERRAMIENTAS DE PROGRAMACION 1.Las herramienta de programación. 1.1.Análisis de problemas. 1.2.Diseño de algoritmos. 1.3.Introducción a la plataforma.net Framework Objetivos Definir y comprender
Más detallesIntroducción a los subalgoritmos o subprogramas
Introducción a los subalgoritmos o subprogramas Soluciona problemas complejos al dividirlos en subprogramas y luego dividirlos estos en otros mas simples, hasta que estos sean mas fáciles de resolver.
Más detallesTEMA 1: Algoritmos y programas
TEMA 1: Algoritmos y programas 1.1.-Introducción La razón principal para utilizar un ordenador es para resolver problemas (en el sentido más general de la palabra), o en otras palabras, procesar información
Más detallesCómo implementar tus propias funciones en Lenguaje C?
Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar
Más detallesCapítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 3 CICLO DE VIDA DE UN PROGRAMA 1 OBJETIVOS Saber qué es la Ingeniería
Más detallesUNIDAD 3 Modularidad
Modularidad Funciones de biblioteca, uso. Módulos. Concepto. Clasificación. Ámbito de identificadores. Transferencia de información a y desde procedimientos: los parámetros, tipos de parámetros. Conceptos
Más detallesResolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)
Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la
Más detallesLógica de programación 1
Lógica de programación 1 Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta
Más detallesDISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE
DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS PSEUDOCÓDIGO El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Cuando la complejidad de los problemas aumenta, la tarea de hallar una solución
Más detallesConceptos. Generales ALGORITMOS
Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
Más detallesProblema 3: Mercado. Dividir y conquistar
Problema 3: Mercado Dividir y conquistar En un supermercado se mantiene un archivo de texto productos.txt con la siguiente información de cada producto: COD nombre Precio Cada línea del archivo de texto
Más detalles2.2 METODOLOGÍA PARA EL DISEÑO DE SOFTWARE
2.2 METODOLOGÍA PARA EL DISEÑO DE SOFTWARE Programación Modular La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación
Más detalles2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y su ejecución en la misma. Aunque el proceso de diseñar
Más detallesProgramaciónDeclarativa
ProgramaciónDeclarativa 1. Introducción Programación estructurada Programación orientada a objetos Programación lógica Programación funcional Objetivos Establecer los fundamentos de la programación estructurada
Más detalles5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Más detallesPráctico Nº 5 Tema: Lenguaje de Diseño (1 parte)
Práctico Nº 5 Tema: Lenguaje de Diseño (1 parte) 1. Escribir las siguientes expresiones aritméticas usando sintaxis del lenguaje de diseño: a. (X+Y) 3 b. X+Y 3 c. (A + B 2 ) / X - R donde R es el resto
Más detallesLuís Rodríguez Baena Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura
Fundamentos de Programación I 4. Programación modular Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Introducción
Más detallesAnálisis de algoritmos. Recursividad
Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene
Más detallesTema 1. Introducción al Paradigma Orientado a Objetos
Tema 1. Introducción al Paradigma Orientado a Objetos Objetivo: El alumno se familiarizará con los conceptos básicos de la teoría de Orientación a objetos. 1 Introducción al Paradigma Orientado a Objetos
Más detallesUNIDAD III. TÉCNICA DE PROGRAMACIÓN ESTRUCTURADA
UNIDAD III. TÉCNICA DE PROGRAMACIÓN ESTRUCTURADA 1 UNIDAD III. TÉCNICA DE PROGRAMACIÓN ESTRUCTURADA OBJETIVO: Aplicarás la técnica de programación estructurada, analizando su concepto, estructura y función
Más detallesINSTITUTO TECNOLÓGICO DE TIJUANA
INSTITUTO TECNOLÓGICO DE TIJUANA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN SEMESTRE AGOSTO-DICIEMBRE 2013 Ingeniería en Sistemas Computacionales Fundamentos de Programacion Nombre del trabajo: Paradigmas
Más detallesLenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017
Primera Parte Fund. de la Informática Int. a la Programación Int. a la Computación Resolución de Problemas y Algoritmos Segundo Cuatrimestre 2017 1 Etapas en el proceso de resolver un problema: 1- Comprender
Más detallesElegir tipos de datos Qué tipo de variable usar al programar? Ejemplos resueltos (CU00206A)
aprenderaprogramar.com Elegir tipos de datos Qué tipo de variable usar al programar? Ejemplos resueltos (CU00206A) Sección: Cursos Categoría: Curso Bases de la programación Nivel II Fecha revisión: 2024
Más detallesFunciones y Procedimientos
1 Funciones y Procedimientos 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a resolver problemas grandes y complejos dividiendo un problema en
Más detallesModularización. Bibliografía
Modularización Uso de subprogramas Razones válidas para crear un subprograma Cohesión y acoplamiento Pasos para escribir un subprograma El nombre y los parámetros de un subprograma Tipos de datos abstractos
Más detallesAhora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C
Bioinformática. 1. Observa la siguiente secuencia de instrucciones: 1. A = 5; 2. B = 7; 3. C = 2; 4. A=A+B+C; 5. B=C/2; 6. A=A/B+A ˆ C; 7. Escribe A; a) Qué valor contiene A después de la cuarta instrucción?
Más detallesCURSO PROGRAMACIÓN BÁSICA. SEMANA 4 El diseño de un programa
CURSO PROGRAMACIÓN BÁSICA SEMANA 4 El diseño de un programa Objetivos Porqué es necesario el diseño? Diseño de programas 1. Definición de la salida 2. Desarrollo de la lógica 3. Escritura del programa
Más detallesTipos Abstractos de Datos (TAD) Lección 1
Tipos Abstractos de Datos (TAD) Lección 1 Esquema Paradigmas de programación Definición de TAD Programación con TAD Ventajas de la programación con TAD Lectura recomendada: secciones 1.1 y 1.2 del libro
Más detalles1. Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos información total o parcial útil en la búsqueda de los objetos desconocido
3. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS CON EL COMPUTADOR El desarrollo de un programa que resuelva un problema dado es una tarea compleja, ya que es necesario tener en cuenta de manera simultánea muchos
Más detallesLenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.
Primera Parte Resolución de Problemas y Algoritmos Ing. En Informática e Ing. En Computación Primer Cuatrimestre 2017 1 Lenguajes Algorítmicos Los algoritmos pueden describirse, en mayor o menor detalle,
Más detallesASECOMPU. PORTAL DE REFUERZO ACADEMICO EN PROGRAMACIÓN LISTA DE EJERCICIOS
Fecha de impresión: 05-01-2019 74 Contar el numero de Vocales y Consonantes de una cadena de texto (utiliza vectores y punteros). 79 La criba de Eratóstenes es un algoritmo que permite hallar todos los
Más detallesEl pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan
El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas En esencia,
Más detallesFunciones Propias con C++ (funciones definidas por el usuario)
Funciones Propias con C++ (funciones definidas por el usuario) Jorge A. Martel Torres Programación para ingeniería Jorge A. Martel Torres 1 Introducción Nace del principio divide y vencerás, que consiste
Más detallesProgramación estructurada
Programación estructurada Esta metodología de programación : Permite utilizar sentencias de bifurcación condicional estandarizadas. Facilita leer la codificación del programa de inicio a fin en forma continua.
Más detallesEscribir programas a partir de un diagrama de flujo
Escribir programas a partir de un diagrama de flujo por Iván Cruz En esta lectura se revisará una estrategia específica para lograr implementar un programa computacional a partir de un diagrama de flujo,
Más detallesINSTITUTO TECNOLÓGICO
INSTITUTO TECNOLÓGICO DE NUEVO LAREDO Con la Ciencia por la Humanidad Introducción a la Ingeniería en Sistemas Computacionales y al Diseño de Algoritmos Curso propedéutico Instructor: Bruno López Takeyas
Más detallesEtapas en la vida del software
Etapas en la vida del software La necesidad del software suele expresarse inicialmente en lenguaje natural de una manera informal y, por tanto, imprecisa. A partir de la expresión de la necesidad, la vida
Más detallesAcción que el procesador puede ejecutar sin necesidad de información suplementaria
TEMA 5: Algoritmos y programas Fundamentos de Informática (Ingeniería Técnica Industrial) Escuela Universitaria Politécnica Índice de contenidos 1. 2. 3. 4. Introducción. Conceptos básicos Representación
Más detalles1. Detalle de los Comandos:
1. Detalle de los Comandos: Este es un resumen puede servir como guía rápida para consultas, para mas detalles remitirse a la Ayuda de PSeInt. Observar que cada línea que termina una sentencia debe tener
Más detallesLa resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Más detallesCapítulo 1 Introducción
Capítulo 1 Introducción Pasos a seguir para resolver un problema 1- Definición del problema Consiste en identificar el problema y enunciarlo de una manera comprensible. Se puede partir de las preguntas:
Más detallesPROGRAMACION ESTRUCTURADA: Tema 3. Funciones
PROGRAMACION ESTRUCTURADA: Tema 3. Funciones Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Definiciones
Más detallesConceptos Programa Programa objeto Pseudocódigo Algoritmos y Diagramas de flujo 1) Finitud 2) Definición 3) Entrada
Conceptos Programa Se le llama programa a la serie de instrucciones escritas en alguno de los lenguajes, por medio de los cuales se logra que la computadora realice todas las operaciones o decisiones señaladas
Más detallesUnidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros
Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros Programación Básica Bioingeniería Médica Facultad de
Más detallesA l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -
Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una 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
Más detallesEstructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
Más detallesLógica de programación
Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta Sentencias Repetitivas
Más detallesMetodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 7 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar la sintaxis de las funciones
Más detallesINFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION
INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION DIIAGRAMAS DE FLUJO Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para
Más detallesIntroducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los profesores: Lourdes Miró Amarante Ignacio García Vargas
Dpto. de ATC - Página 1 de 16 CONCEPTO DE ALGORITMO (1) Fundamentos de Informática E.U.P. Universidad de Sevilla Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por
Más detallesTrabajo Práctico Nro. 1
Trabajo Práctico Nro. 1 INSTITUTO de TECNOLOGÍA O. R. T. Diagramar algoritmos para resolver los problemas planteados. Objetivos de esta práctica: Pretendemos que al finalizar esta ejercitación el alumno
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
Programación I, Guía 6 1 Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Más detallesAlgoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal
Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación
Más detallesPrograma Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Fundamentos de Programación
Ficha Técnica Titulación: Grado en Ingeniería de Organización Industrial Plan BOE: BOE número 75 de 28 de marzo de 2012 Asignatura: Módulo: TICs (Tecnologías de la Información y las Comunicaciones) Curso:
Más detallesUnidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (mientras)
Juan Pablo Cobá Juárez Pegueros Programación Básica Bioingeniería Médica Facultad de Medicina Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (mientras)
Más detalles