Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente...

56
Unidad II Metodología para la Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A 2015 Semestre: A-2015

Transcript of Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente...

Page 1: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Unidad II Metodología para laUnidad II. Metodología para la construcción de programas

Prof. Eliana Guzmán U.Semestre: A 2015Semestre: A-2015

Page 2: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

IntroducciónIntroducción

Resolver un problema con una computadoraResolver un problema con una computadora conduce a la escritura de un programa y a su ejecuciónsu ejecución.

El proceso de diseñar un programa es esencialmente creativo pero se puedenesencialmente creativo, pero se pueden considerar una serie de fases o pasos comunes que sirven de guía cuando secomunes, que sirven de guía cuando se está aprendiendo a escribir programas.

Page 3: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

ProgramaciónProgramación

Es el proceso de escribir un programa porEs el proceso de escribir un programa, por lo que requiere conocer cuál es el conjunto de instrucciones del lenguaje deconjunto de instrucciones del lenguaje de programación, que se esté empleando.

Page 4: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

ProgramaPrograma

• Es un conjunto de instrucciones internasEs un conjunto de instrucciones internas utilizadas para ejecutarse en una computadora y que producen un resultadocomputadora y que producen un resultado concreto.

• Cuando un programa se ejecuta• Cuando un programa se ejecuta normalmente hay dos tipos de entrada a la computadora: el programa y los datoscomputadora: el programa y los datos.

Page 5: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Instrucciones, sentencias o i iproposiciones:

S l dif t i d• Son los diferentes pasos o acciones de un programa o algoritmo, las cuales

ifi i t i t i d bespecifican ciertas instrucciones que debe ejecutar la computadora.

• Las instrucciones básicas que una computadora es capaz de manipular y ejecutar, se pueden agrupar en cuatro grupos:

Page 6: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Tipos de instruccionesTipos de instrucciones

• Instrucciones de entrada/salida.Instrucciones de entrada/salida.• Instrucciones aritmético/lógicas: ejecutan este

tipo de operaciones.p p• Instrucciones de selección: permiten

seleccionar de alternativas múltiples según p guna condición.

• Instrucciones de repetición: permiten la repetición de secuencias de instrucciones, una cantidad dada de veces.

Page 7: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Fases de resolución de un problema t é d ( i l da través de un programa (ciclo de

vida de un software)• Análisis del problema.• Diseño del algoritmo• Diseño del algoritmo.• Codificación.• Compilación y EjecuciónCompilación y Ejecución.• Verificación y Depuración.• Mantenimiento y Documentación.Mantenimiento y Documentación.

Page 8: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

• Análisis del problema

Ciclo de vida de un software

El lt d d t d tAnálisis del problema.• Diseño del algoritmo.

C difi ió (i l t ió ) S

El resultado de estas dos etapas, es el diseño detallado del algoritmo

• Codificación (implementación) → Se implementa el algoritmo en código.

• Compilación y Ejecución.• Verificación y Depuración.y p• Mantenimiento y Documentación.

Page 9: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

1. Análisis del problema: Esta fase requiere una

Ciclo de vida de un software

1. Análisis del problema: Esta fase requiere una clara definición, donde se exprese exactamente lo que debe hacer el programa y el resultado o solución deseada. Para definir bien un problema, es conveniente responder l i i t tlas siguientes preguntas:

• ¿Qué entradas se requieren? (tipo y cantidad)Q é é d d l lid d d ?• ¿Qué método produce la salida deseada?

• ¿Cuál es la salida deseada? (tipo y cantidad)

Page 10: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Ejemplo 1: Calcular la superficie de un

Ciclo de vida de un software

Ejemplo 1: Calcular la superficie de un rectángulo.

Entradas: base altura

Proceso: Cálculo de la superficie: pSuperficie = base * altura

Salida: SuperficieSalida: Superficie

Page 11: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareEjemplo 2: Calcular la superficie y la

longitud de la circunferencia, de unlongitud de la circunferencia, de un círculo de radio r.

Entrada: Radio del círculo: rEntrada: Radio del círculo: r Proceso: Cálculo de la superficie: πr2

Cálculo de la longitud de la circunferencia: 2πrSuperficie del círculo

Salidas: Longitud de la circunferencia delSalidas: Longitud de la circunferencia del círculo

Page 12: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Definición de algoritmoDefinición de algoritmoAntes de explicar la segunda fase, vamos a estudiar p g

algunas definiciones de algoritmo:• es un método para resolver un problema mediante una

serie de pasos precisos, definidos y finitos.serie de pasos precisos, definidos y finitos.• es un conjunto finito de instrucciones o pasos que sirven

para ejecutar una tarea o resolver un problema.

Preciso: indica el orden en que se ejecutan cada paso.Definido: si se sigue dos veces, se obtiene el mismoDefinido: si se sigue dos veces, se obtiene el mismo resultado.Finito: tiene un número determinado de pasos.

Page 13: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Definición de algoritmo

Ejemplos de algoritmos son:

Definición de algoritmo

Ejemplos de algoritmos son:• Instrucciones para montar una bicicleta.

H t d i• Hacer una receta de cocina.• Hacer la suma de dos enteros.

Los algoritmos se pueden expresar porLos algoritmos se pueden expresar por fórmulas, diagramas de flujo y pseudocódigopseudocódigo.

Page 14: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

2. Diseño del algoritmo

Ciclo de vida de un software

gSe determina cómo hace el programa la tarea

solicitada.Los métodos más eficaces de diseño se basan en elLos métodos más eficaces de diseño se basan en el

conocido divide y vencerás. Es decir, laresolución de un problema complejo se realizadi idi d l bl b bldividiendo el problema en subproblemas, y acontinuación dividir estos subproblemas en otrosde nivel más bajo, hasta que puedai l l ió l dimplementarse una solución en el computador.Este método se conoce como diseñodescendente o modular.

Page 15: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Cada subprograma se resuelve mediante un

Ciclo de vida de un software

Cada subprograma se resuelve mediante un módulo que tiene un solo punto de entrada y un solo punto de salida.

Cualquier programa bien diseñado, consta de un programa principal que llama a los subprogramas.

Los programas estructurados de esta forma, se di i di d l l é ddice que tienen un diseño modular, y el método de descomponer el programa en módulos más pequeños se llama programación modularpequeños se llama programación modular.

Page 16: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareCiclo de vida de un software

Conclusión: el diseño del algoritmo es el proceso de convertir los resultados de laproceso de convertir los resultados de la etapa de análisis del problema, en un diseño modular con refinamientosdiseño modular con refinamientos sucesivos, que permitan una posterior traducción a un lenguaje de programacióntraducción a un lenguaje de programación.

Page 17: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Las dos herramientas más utilizadas comúnmente

Ciclo de vida de un software

Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son: los diagramas de flujo y los pseudocódigos.

a. Diagrama de flujo: es una representación gráfica de un algoritmo. Utiliza símbolos estándar que representan los pasos del algoritmo unidos por flechas denominadas líneas de flujo que indican la secuencia en quelíneas de flujo, que indican la secuencia en que se deben ejecutar. Los símbolos empleados se han establecido y los más utilizados son:han establecido y los más utilizados son:

Page 18: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareCiclo de vida de un softwareLínea de flujo Conector

Proceso Llamada a subrutina

Entrada/Salida Pantalla

Terminal, representa el inicio y fin de un programa

Impreso

Decisión Teclado

Page 19: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Ejemplo de Diagrama de flujo

Inicio

Leer (base, altura)

superficie ← base * altura

Escribir (superficie)

Fin

Page 20: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

b. Pseudocódigo: es un lenguaje de descripción

Ciclo de vida de un software

b. Pseudocódigo: es un lenguaje de descripción de algoritmos. Su uso hace el paso de codificación final, relativamente fácil.

Nació como un lenguaje similar al inglés y era un medio para representar básicamente las estructuras de control de programación estructurada, que se verán más adelante.

El d ódi d jEl pseudocódigo no se puede ejecutar en una computadora.

Page 21: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Su ventaja radica que al utilizarlo, en la

Ciclo de vida de un software

Su ventaja radica que al utilizarlo, en la planificación del programa, el programador se puede concentrar en la lógica y en las estructuras de control, y no preocuparse por las reglas del lenguaje de programación.

Es también más fácil corregir errores de la lógica de programación que si el programa está codificado Puede traducirse fácilmente acodificado. Puede traducirse fácilmente a lenguajes estructurados como el Pascal.

Page 22: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Ejemplo de un algoritmo escrito en Pseudocódigo:

Ciclo de vida de un software

j p g g

algoritmo superficie_de_un_rectangulog p _ _ _ g{declaración de variables y constantes}Inicio

Leer(base, altura)superficie ← base * alturaEscribir(‘La superficie del rectángulo es: ‘ ,

superficie)FiFin

Page 23: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

3. Codificación de un programa

Ciclo de vida de un software

3. Codificación de un programaCodificación es la escritura de la

representación del algoritmo desarrolladarepresentación del algoritmo desarrollada en las etapas precedentes, usando un lenguaje de programación.g j p g

En esta etapa se traduce el algoritmo y puede transcribirse en la computadora. p pEsta operación se realiza con el programa editor de texto, para obtener el programa f tfuente.

Page 24: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareCiclo de vida de un software

Para realizar la conversión del algoritmo en programa, debe sustituir las palabras reservadas en español por sus homónimos en inglés, respetando la sintaxis del lenguaje de programación empleado.

Page 25: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwarePROGRAM Ejemplo1;

Ciclo de vida de un software

USES CRT; VAR

lado1,lado2, area: REAL;lado1,lado2, area: REAL; BEGIN {Este programa calcula el área de un rectángulo} ClrScr; WRITELN ('Escriba los lados del rectángulo');WRITELN ('Escriba los lados del rectángulo');READLN (lado1);READLN (lado2);area:=lado1*lado2;WRITELN ('AREA DEL RECTANGULO: ', area);

END.END.

Page 26: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

4 Compilación y ejecución de un

Ciclo de vida de un software

4. Compilación y ejecución de un programa

La compilación es el proceso de traducirLa compilación es el proceso de traducir programas fuentes en programas objeto (normalmente en código de máquina)(normalmente en código de máquina), haciendo uso de un compilador o interpreteinterprete.

Page 27: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareCiclo de vida de un software

Compiladores: es un programa intérprete que traduce un programa escrito en lenguaje de alto nivel, en un programa escrito en lenguaje de máquina, de forma que la computadora lo pueda comprender directamente.

Page 28: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Intérpretes: es un traductor que toma un p qprograma fuente y realiza la traducción y ejecución línea por línea. Prácticamente j pya no se utilizan.

Programa fuente Programa fuente

Intérprete Compilador

Traducción y ejecución línea a

línea

Programa objeto

Intérprete Compilador

Page 29: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un softwareCiclo de vida de un softwareFases de la compilación:p

1. Escribir el programa fuente utilizando el editor de texto del lenguaje y guardarlo en algún dispositivo de almacenamiento, por ejemplo el DD.

2. Cargar el programa fuente en memoria.3. Compilar el programa (por ejemplo en TP: Alt+F9).4 Verificar y corregir los errores de compilación4. Verificar y corregir los errores de compilación.5. Obtener el programa objeto.6. El enlazador (linker) obtiene el programa ejecutable

EXE.EXE.7. Se ejecuta el programa y se obtienen las salidas

(por ejemplo en TP: Ctrl+F9).

Page 30: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Si tras la compilación se presentan errores

Ciclo de vida de un software

Si tras la compilación se presentan errores en el programa fuente (.pas), es preciso volver a editar el programa corregir losvolver a editar el programa, corregir los errores y compilar de nuevo, este proceso se repite hasta que no se producense repite hasta que no se producen errores, obteniéndose el programa objeto ( psd) y el programa ejecutable ( exe)(.psd) y el programa ejecutable (.exe).

Page 31: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

Cuando se ejecuta un programa se pueden

Ciclo de vida de un software

Cuando se ejecuta un programa se pueden producir tres tipos de errores:

1. Errores de compilación: se producen p pnormalmente por el uso incorrecto de las reglas de programación y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora no puede entender la instrucción, no se obtendrá el programa objeto y elno se obtendrá el programa objeto y el compilador imprimirá la lista de errores.

Page 32: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

2 Errores de ejecución: estos errores se

Ciclo de vida de un software

2. Errores de ejecución: estos errores se producen por instrucciones que la computadora puede entender pero nocomputadora puede entender pero no ejecutar. Ejemplo típicos: división por cero raíces cuadradas de númeroscero, raíces cuadradas de números negativos. En este caso se detiene la ejecución del programa y se muestra unejecución del programa y se muestra un mensaje de error.

Page 33: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

3. Errores lógicos: se producen en la lógica

Ciclo de vida de un software

3. Errores lógicos: se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo. Estos errores gson los más difíciles de detectar porque el programa compila y corre bien, pero no se bti l lt d t E tobtienen los resultados correctos. En este

caso debe volver a las etapas de análisis y diseño modificar el algoritmo y cambiary diseño, modificar el algoritmo y cambiar el programa fuente, compilar y ejecutar una vez másuna vez más.

Page 34: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

5. Verificación y depuración de un programa

Ciclo de vida de un software

y p p gLa verificación es el proceso de ejecución del

programa con una amplia variedad de datos de entrada llamados datos de test o prueba queentrada, llamados datos de test o prueba, que determinarán si el programa tiene errores.

Se debe desarrollar una amplia gama de datos de b l l d t d lprueba: valores normales de entrada, valores

extremos de entrada que comprueben los límites del programa y valores de entrada que

b i l d lcomprueben aspectos especiales del programa.La depuración es el proceso de encontrar los

errores del programa y corregir o eliminar dichoserrores del programa y corregir o eliminar dichos errores.

Page 35: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software6. Documentación y mantenimiento

Ciclo de vida de un software

La documentación de un problema consta de la descripción de los pasos a dar en el proceso de resolución del mismo.

Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener y modificar.

La documentación puede ser interna y externa. La documentación interna es la contenida en líneas de

comentario. La documentación externa incluye análisis, diagramas de

flujo y/o pseudocódigo, manuales de usuario con instrucciones para ejecutar el programa y para i t t l lt dinterpretar los resultados.

Page 36: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ciclo de vida de un software

La documentación es vital cuando se desea

Ciclo de vida de un software

La documentación es vital cuando se desea corregir posibles errores futuros o cambiar el programa Tales cambios se denominanel programa. Tales cambios se denominan mantenimiento del programa.

Después de cada cambio se debe actualizarDespués de cada cambio se debe actualizar la documentación.

E ú l i d lEs común usar las versiones de los programas 1.0, 1.1, 2.0….

Page 37: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación modularProgramación modularEs uno de los métodos de diseño más flexible yEs uno de los métodos de diseño más flexible y

potente para mejorar la productividad de un programa.

El programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analizan codifican yuno de estos módulos se analizan, codifican y ponen a punto por separado.

Page 38: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación modularCada programa tiene un módulo denominado

Programación modularp g

programa principal, que controla todo lo que sucede. Se transfiere el control a cada submódulo de modo que ellos puedan ejecutarsubmódulo, de modo que ellos puedan ejecutar sus funciones y luego devuelve el control al programa principal cuando haya completado sus p g p p y ptareas. Cada módulo debe tener solamente una tarea específica que ejecutar. Esta tarea puede ser entrada salida manipulación de datosser entrada, salida, manipulación de datos, control de otros módulos o alguna combinación de éstos.

Page 39: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación modular

Los módulos son independientes en el

Programación modular

Los módulos son independientes en el sentido que ningún módulo puede tener acceso directo a cualquier otro móduloacceso directo a cualquier otro módulo, excepto el módulo al que llama y sus propios submódulospropios submódulos.

Page 40: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación modularProgramación modular

Page 41: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación estructuradaProgramación estructuradaProgramación modular, programación g p g

descendente y programación estructurada, son términos que a menudo se utilizan como sinónimos aunque no significan lo mismo.q g

La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:El ti di ñ d l• El programa tiene un diseño modular.

• Los módulos son diseñados de modo descendente.desce de te

• Cada módulo se codifica utilizando las tres estructuras de control básicas: secuenciales, decisión y repeticióndecisión y repetición.

Page 42: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación estructuradaLa programación estructurada, es un conjunto de técnicas

Programación estructuradap g jque:

• Aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir,programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas.

• Utiliza una cantidad limitado de estructuras de control, que minimizan la complejidad de los programas y porque minimizan la complejidad de los programas y por consiguiente reducen los errores.

• Hace los programas más fáciles de escribir, verificar, l tleer y mantener.

• Los programas están dotados de una estructura.

Page 43: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Programación estructuradaLa programación estructurada es un conjunto de técnicas

i

Programación estructurada

que incorporan:• Recursos abstractos: descomponer una acción compleja

en términos de acciones más simples que la t d d j tcomputadora pueda ejecutar.

• Diseño descendente (top-down): es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamientoniveles o pasos sucesivos de refinamiento.

• Estructuras básicas de control: son métodos de especificar el orden en que las instrucciones de un algoritmo se ejecutan este orden se denomina flujo dealgoritmo se ejecutan, este orden se denomina flujo de control. Las 3 estructuras básicas de control son: secuenciales, decisión y repetición.

Page 44: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

A continuación se retoma el concepto de algoritmo y se

explica con mas detalleexplica con mas detalle

Page 45: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Concepto y característica de l ialgoritmos

• Metodología de la programación: es laMetodología de la programación: es la metodología necesaria para resolver problemas mediante programasproblemas mediante programas.

• El eje central de esta metodología es el concepto de algoritmo: método paraconcepto de algoritmo: método para resolver un problema.

Problema Diseño del algoritmo

Programa de computadora

Page 46: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Concepto y característica de l i

Los pasos para la resolución de un problema son:

algoritmosLos pasos para la resolución de un problema son:• Diseño del algoritmo: describe la secuencia

ordenada de pasos, sin ambigüedades, que p , g , qconducen a la solución de un problema dado.

• Convertir el algoritmo a un programa usando g p gun lenguaje de programación.

• Ejecución y validación del programa por la computadora.

Page 47: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Características de un algoritmoCaracterísticas de un algoritmo

• Preciso: indicando el orden exacto dePreciso: indicando el orden exacto de realización de cada paso.

• Definido: si se sigue el algoritmo dos veces• Definido: si se sigue el algoritmo dos veces se debe obtener el mismo resultado.Fi it d b t tid d li it d d• Finito: debe tener una cantidad limitada de pasos.

Page 48: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ejemplo 1: Realizar la suma de todos los números pares entre 2 y 1000.El problema consiste en sumar 2 + 4 + 6 + … + 1000.

Algoritmo:g1. Inicio2. Establecer suma en cero3 E bl ú d3. Establecer número en dos4. Sumar número a suma. El resultado será el

nuevo valor de la suma (suma)nuevo valor de la suma (suma).5. Incrementar número en 2 unidades6. Si número <= 1000 regresar al paso 4, en

i ibi l úl i l dcaso contrario escribir el último valor de sumay terminar el proceso.

7 Fin7. Fin

Page 49: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ejemplo 2: Un socio solicita el ingreso a un club. Si está solvente, puede entrar sino seclub. Si está solvente, puede entrar sino se le impide la entrada. AlgoritmoAlgoritmo1. Inicio2 S li it ú d ió2. Solicitar su número de acción3. Examinar en la base de datos4. Si el socio está solvente, dejarlo entrar;

en caso contrario no dejarlo entrar.j5. Fin

Page 50: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmoDiseño del algoritmo• La información proporcionada al algoritmoLa información proporcionada al algoritmo

constituyen su entrada y la información producida por el algoritmo constituye su p p g ysalida.

• Método de descomponer: divide y p yvencerás. Por ejemplo, en el problema de encontrar la superficie y longitud de un í l d di idi tcírculo se puede dividir en cuatro

problemas más simples o subproblemas:

Page 51: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Ejemploj pEjemplo: Calcular la superficie y la longitud

de la circunferencia de un círculo dede la circunferencia, de un círculo de radio r.

Entrada: Radio del círculoEntrada: Radio del círculo Proceso: Cálculo de la superficie (πr2)

Cálculo de la circunferencia (2 πr)Salidas: Superficie del círculop

Longitud de la circunferencia del círculocírculo

Page 52: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmoDiseño del algoritmo

Page 53: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmoNormalmente los pasos diseñados en el primer

Diseño del algoritmop p

esbozo del algoritmo son incompletos e indicarán solo unos pocos pasos (un máximo de 12 aproximadamente). Tras esta primera p ) pdescripción, estos pasos se amplían en una descripción más detallada con pasos más específicos Este proceso se denominaespecíficos. Este proceso se denomina refinamiento del algoritmo.

Para problemas complejos se necesitan con frecuencia diferentes niveles de refinamientofrecuencia diferentes niveles de refinamiento, antes de que se pueda obtener un algoritmo claro, preciso y completo.

Page 54: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmoDiseño del algoritmoEn el ejemplo:En el ejemplo:

Page 55: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmo

Las ventajas del diseño descendente son:

Diseño del algoritmo

Las ventajas del diseño descendente son:• El problema se comprende más fácilmente

al dividirse en partes más simplesal dividirse en partes más simples denominadas módulos.L difi i l ód l• Las modificaciones en los módulos son más fáciles.

• La comprobación del problema es más sencilla.

Page 56: Unidad II Metodología para laUnidad II. Metodología … · codificación final, relativamente fácil. Nació como un lenguaje similar al inglés y era un ... Compilar el programa

Diseño del algoritmo

En resumen el diseño de un algoritmo se

Diseño del algoritmo

En resumen el diseño de un algoritmo se descompone en:

• Diseño descendente• Diseño descendente.• Refinamiento por casos.• Uso de las herramientas de

programación: diagrama de flujo y/o pseudocódigo.