metodología de programación lenguanje c

16
1 Programación I Prof. Luciano Beato Programación en C

Upload: charbelmesa

Post on 07-Dec-2015

220 views

Category:

Documents


1 download

DESCRIPTION

Metodología de programación

TRANSCRIPT

Page 1: Metodología de Programación Lenguanje C

1Programación IProf. Luciano Beato

Programación en C

Page 2: Metodología de Programación Lenguanje C

2Programación IProf. Luciano Beato

Metodología de programación

Programación en C

Capítulo 2

Fundamentos de programación en C

Page 3: Metodología de Programación Lenguanje C

3Programación IProf. Luciano Beato

Metodología de programación

FASES EN LA RESOLUCIÓN DE PROBLEMAS

El proceso de resolución de un problema con una computadora conduce a la escritura de unprograma y su ejecución en la misma.

Las fases de resolución de un problema con computadora son:

Análisis. El problema se analiza teniendo presente la especificación de los requisitos dados por cliente de la empresa o por la persona que encarga el programa.

Diseño. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema.

Codificación (implementación). La solución se escribe en la sintaxis del lenguaje de alto nivel ejemplo, C) y se obtiene un programa fuente que se compila a continuación.

Ejecución, verificación y depuración. El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados «bugs», en inglés) que puedan aparecer.

Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios.

Documentación. Escritura de las diferentes fases del ciclo de vida del software, esencialmenteanálisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas

el mantenimiento.

Page 4: Metodología de Programación Lenguanje C

4Programación IProf. Luciano Beato

Metodología de programación

ANALISIS DEL PROBLEMA – Cual es el problema?

Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Dado que se busca una solución por computadora, se precisan especificaciones detalladas de entrada y salida.

Procesamiento De

DatosDatos de entrada

Datos de Salida o

Resultados

Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:

•¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).

•¿Qué método produce la salida deseada?

•¿Cuál es la salida deseada? (tipo de datos de los resultados y cantidad).

•Requisitos o requerimientos adicionales y restricciones a la solución.

Page 5: Metodología de Programación Lenguanje C

5Programación IProf. Luciano Beato

Metodología de programación

ANALISIS DEL PROBLEMA - Ejemplo

Determina cual es la potencia (P) absorbida por un componente al cual se le aplica una tensión (V) y por el cual pasa una corriente (I).

Procesamiento De

Datos?

Datos de Entrada

?

Datos de Salida

?

Análisis y definición del problema

Datos de entrada: La tensión (v) aplicada al componente La corriente (I) que pasa por el mismo.

Datos de salida: La potencia absorbida por el componenteProcesos: La potencia absorbida por un componente es directamente proporcional a la

corriente que pasa por el mismo cuando se le aplica una tensión (V), por lo que la formula es : Potencia = tensión x corriente

Tensión (V)Corriente (I)

Potencia (P)Potencia = tensión x corriente

Page 6: Metodología de Programación Lenguanje C

6Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Como se soluciona el problema?

El diseño del algoritmo es el proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje de programación. El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a

codificar posteriormente.

Los métodos más eficaces para el proceso de diseño se basan en el conocido divide y vencerás. Por medio del cual un problema o programa complejo de divide en problemas mas pequeños o subprogramas.

Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un sólo punto de entrada y un sólo punto de salida.

Cualquier programa bien diseñado consta de un programa principal (el módulo de nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas. Los programas estructurados de esta forma se dice que tienen un diseño modular y el método de romper el programa en módulos más pequeños se llama programación modular.

Page 7: Metodología de Programación Lenguanje C

7Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:

Ser preciso e indicar el orden de realización de cada paso. Estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener

un número finito de pasos.

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

Algoritmo: es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema especifico.

Page 8: Metodología de Programación Lenguanje C

8Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Diagrama de flujo

Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo.

Reglas para desarrollar diagramas de flujo• Se deben se usar solamente líneas de flujo horizontales y/o verticales.• Se debe evitar el cruce de líneas utilizando los conectores.• Se deben usar conectores solo cuando sea necesario.• No deben quedar líneas de flujo sin conectar.• Se deben trazar los símbolos de manera que se puedan leer de arribahacia abajo y de izquierda a derecha.

• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

Page 9: Metodología de Programación Lenguanje C

9Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Pseudocodigo

No existen reglas para la escritura del pseudocódigo en español, se ha recogido una notación estándar que puede ser empleada en el desarrollo de algoritmos. Los pasos deben ser numerados. Las palabras reservadas básicas se representan en letras negritas minúsculas. Estas palabras son traducciones libres de palabras reservadas de lenguajes como C, Pascal, etc..

El pseudocódigo es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado.

Ventajas de utilizar un Pseudocodigo a un Diagrama de Flujo

• Ocupa menos espacio en una hoja de papel• Permite representar en forma fácil operaciones repetitivas complejas• Es muy fácil pasar de pseudocodigo a un programa en algún lenguaje de programación.• Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.

Palabras utilizadas en pseudocodigo:

-Inicio, Inicializar, Leer, introducir, escribir, imprimir, visualizar, establecer, calcular, mientras , si, sino, para, Fin

Page 10: Metodología de Programación Lenguanje C

10Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Ejemplos

Inicio

Determina cual es la potencia (P) absorbida por un componente al cual se le aplica una tensión (V) y por el cual pasa una corriente (I).

Diagrama de flujo

V , I

P = V x I

P

Fin

Pseudocodigo

1- Inicio2- Leer V , I3- P = V x I4-Visualizar P5- Fin

Page 11: Metodología de Programación Lenguanje C

11Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Programación modular

El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea específica que ejecutar.

Se diseña cada módulo con independencia de los demás, y siguiendo un método ascendente o descendente se llegará hasta la descomposición final del problema en módulos en forma jerárquica.

En programación modular el programa se divide en módulos (partes independientes), cada uno de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analiza, codifica y pone a punto por separado.

Page 12: Metodología de Programación Lenguanje C

12Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Programación Estructurada

La programación estructurada es el conjunto de técnicas que incorporan: recursos abstractos, diseño descendente (top-down) y estructuras básicas.

La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:

•El programa tiene un diseño modular. •Los módulos son diseñados de modo descendente. •Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición .

La programación estructurada significa programación sin /GOTO/ (C no requiere el uso de la sentencia GOTO).

Page 13: Metodología de Programación Lenguanje C

13Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Programación Estructurada

Una de las partes mas importantes es el diseño descendente (top-down) que es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento.

Se descompone el problema en etapas o estructuras jerárquicas, de forma que se puede considerar cada estructura desde dos puntos de vista: ¿qué hace? y ¿cómo lo hace?

Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente manera:

Nivel n Nivel n + 1

Vista desde el exterior

Vista desde el interior¿qué hace?

¿cómo lo hace?

Page 14: Metodología de Programación Lenguanje C

14Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Programación Estructurada - Ejemplo

Diseña el algoritmo que calcule la energía calorífica (Q) disipada por una bombilla incandescente en un tiempo (t) determinado.

Análisis y definición del problema

Datos de entrada: El tiempo (t) que se toma de referenciaDatos de salida: Energía calorífica (Q) disipada por la bombilla Procesos: El calor desarrollado por una corriente eléctrica al circular por un

conductor es directamente proporcional al tiempo y la potencia absorbida: Q=P x t x 0.24

Análisis y definición del sub-problema

Datos de entrada: La tensión (v) aplicada a la bombillaLa corriente (I) que pasa por la misma.

Datos de salida: La potencia (P) absorbida por la bombillaProcesos: La potencia absorbida por un componente es directamente proporcional a la

corriente que pasa por el mismo cuando se le aplica una tensión (V), por lo que la formula es : Potencia = tensión x corriente

*** Pero la potencia (P) necesita ser calculada lo que se convierte en un sub-problema que hay que resolver primero.

Page 15: Metodología de Programación Lenguanje C

15Programación IProf. Luciano Beato

Metodología de programación

DISEÑO DEL ALGORITMO – Programación Estructurada - Ejemplo

Inicio

Diagramas de flujos

t

Q

Fin

Q=P x t x 0.24

Calcular

Potencia

Inicio

Modulo calculo de potencia

V , I

P = V x I

Fin

Modulo principal

Pseudocódigos

1- Inicio2- Leer t3- Calcular Potencia4- Q=P x t x 0.245-Visualizar P6- Fin

Modulo principal

P

1- Inicio2- Leer V , I3- P = V x I4-Escribir P5- Fin

Modulo calculo de potencia

Page 16: Metodología de Programación Lenguanje C

16Programación IProf. Luciano Beato

Metodología de programación

Programación en C

FINAL

Fundamentos de programación en C