viernes, 12 de octubre de 2012

CAPITULO 2: PROGRAMACION EN C



FASES EN LA RESOLUCION DE PROBLEMAS:

Este proceso con una computadora conduce a la escritura de un programa y a su ejecución  en la misma.

Las fases de resolución de un problema son:

·Análisis de problema                    ·Verificación                         ·depuración

·diseño del algoritmo                    ·codificación                          ·mantenimiento

·compilación y ejecución               ·documentación

CARACTERISTICAS DE UN ALGORITMO:

Preciso: indicar el orden de realización en cada paso.

Definido: si se sigue dos veces, obtiene el mismo resultado cada vez.

Finito: tiene fin: un número determinados de pasos.

Ejemplos de un algoritmo son: instrucciones para montar en una bicicleta, hacer una receta de cocina, obtener el máximo común divisor de 2 números.

Los algoritmos se pueden presentar por formulas, diagrama de flujos o n-s y pseudocódigos: esta última representa en la más utilizada en lenguajes estructurados como c.

ANALISIS DEL PROBLEMA:

En esta fase se complementa exactamente lo que debe hacer el programa y el resultado o solución de problema.

                                                    Resolución de problema

 

Análisis del problema                          diseño del algoritmo             resolución de problema

                                                                                                                      Con computadora

DISEÑO DEL ALGORITMO:

Se determina como hace la tarea solicitada el programa. Cada subprograma es resuelto mediante un módulo que tiene un solo punto  de salida.

Los programas estructurados se dice que tienen diseño modular y el método de romper el programa en módulos más pequeños, se llama programación modular. Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente,  el proceso implica los siguientes pasos, hasta que el programa se determina:

1. Programar un módulo.

2. Comprobar el modulo

3. Depurar el modulo

4. Combinar el modulo con los módulos anteriores

Es diseño del algoritmo es independiente del lenguaje de programación.

HERRAMIENTAS DE PROGRAMACION:

Diagramas de flujo: es una representación gráfica de un algoritmo.

Pseudocódigo: es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español. El pseudocódigo se puede definir como un lenguaje de especificación de algoritmos.

CODIFICACION DE UN PROGRAMA:

Es la escritura de un lenguaje de programación de la representación de algoritmos desarrollada en las etapas precedentes.

Dado que un diseño de un algoritmo es independiente del lenguaje de programación utilizado por su implementación, el código puede ser escrito en un lenguaje o en otro.

Para utilizar la conversión del algoritmo en programa, se deben sustituir las palabras en español por su homónimo en inglés, y las instrucciones indican el lenguaje natural  expresadas en el lenguaje de programación correspondiente.

COMPILACION Y EJECUCION DEL PROGRAMA:

UN vez que el programa se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo en un disco.

El programa fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el compilador.

Si trae la compilación se presentan errores en el programa fuente es preciso volver a editar el programa.

Este proceso se repite hasta que no se producen errores, obteniéndose el programa objeto.

VERIFICACION I DEPURACION DE UN PROGRAMA:

Verificación: es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determina si el programa tiene errores.

Depuración: Es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.

Se pueden producir 3 tipos de errores al ejecutar un programa.

1. Errores de compilación: son errores de sintaxis

2. Errores de ejecución: se introducen por instrucciones que la computadora puede entender pero  no ejecutar

3. Errores lógicos: suelen ser el diseño del algoritmo. Son difíciles de detectar ya que el programa puede funcionar y no producir errores de compilación ni de ejecución.

DOCUMENTACION Y MANTENIMIENTO:

La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de un problema.

La documentación puede ser interna o externa: la interna es la contenida en línea de comentarios y la externa incluye análisis, diagramas de flujo y pseudocódigos.

La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa, tales cambios se denomina como mantenimiento del programa.

PROGRAMACION 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 3 estructuras de control básico: secuencia, selección y repetición.

La programación estructurada es el conjunto de técnicas que incorporan:

·Recursos abstractos

·Diseño descendente (top-Down)

·Estructuras básicas

TEORIA DE LA PROGRAMACION ESTRUCTURADA:

El programa completo tiene un diseño modular

Los módulos se diseñan con metodología descendente

Cada módulo se modifica utilizando las 3 estructuras de control básico: secuenciales, selectivas y repetitivas. (Ausencia total de secuencias GOTO)

Estructuración y modularidad son conceptos complementarios (se solapan)



REPRESENTACION GRAFICA DE LOS ALGORITMOS:
Los métodos usuales para representar un algoritmo son:
·Diagrama de flujo
·Diagrama N-S (Nassi-Schninderman)
·Lenguaje de especificación de algoritmos: pseudocódigo,
·Lenguaje español inglés.
·Formulas.
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ellos permiten que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje.
DIAGRAMA DE FLUJO:
Es una de las técnicas de representación de algoritmo más antiguo y utilizado.
Un diagrama de flujo es un diagrama que utiliza símbolos (cajas) estándar y que tiene los pasos de algoritmo escritas en esas cajas unidas por las flechas denominadas leneas de flujo.
LOS SIMBOLOS PRINCIPALES SON:
 

CICLO DE VIDA  DEL SOFTWARE:

El ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación ay verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.

El ciclo de vida básico de un software consta de los siguientes procedimientos:

Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.

Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.

Diseño general: requisitos generales de la arquitectura de la aplicación.

Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.

Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.

Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.

Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.

Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.

Implementación

Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de desarrolladores.




PRUEBAS E INTEGRACION:
Sirve para mostrar que un programa es correcto. Las pruebas nunca son fáciles.
Es una parte esencial de un proyecto de programación. Durante la fase de prueba se necesita eliminar tantos errores lógicos como se pueda.
Se deben incluir datos no válidos para comprobar la capacidad de detección de errores del programa.
VERIFICACION:
Es para demostrar la corrección o exactitud de un programa, se denomina verificación formal implica la construcción de pruebas matemáticas que ayudan a determinar si los programas hacen lo que se supone han de hacer.
Si se descubre un error durante el proceso de verificación se debe corregir su algoritmo y posiblemente se han de modificar las especificaciones del programa.
 
MANTENIMIENTO:
Es el proceso de mejora y optimización del software después de su entrega al usuario final (es decir; revisión del programa), así como también corrección y prevención de los defectos.
El mantenimiento de software es también una de las fases en el ciclo de vida del desarrollo del sistema (SDLC, sigla en inglés de system development life cycle), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene después del despliegue (implementación) del software en el campo.
PRECONDICION Y POSTCONDICION:
Precondición: predicado lógico que debe cumplirse al comenzar la ejecución de una operación.
Postcondicion: predicado lógico que debe cumplirse al acabar la ejecución de una operación siempre que se haya cumplido previamente la precondición correspondiente.
ETAPAS A ESTABLECER LA EXACTITU (CORRECION) DE UN PROGRAMA:
1. El invariante debe ser inicialmente verdadero
2. Una ejecución del bucle debe mantener el invariante.
3. El invariante debe capturar la exactitud del algoritmo.
4. El bucle debe terminar.
PROGRAMACION SEGURA CONTRA FALLOS:
Es segura contra fallos cuando se ejecuta razonablemente por cualquiera que lo utilice. Para conseguir este objetivo se han de comprobar los errores en datos de entrada y en la lógica del programa.
FACTORES EN LA CALIDAD DEL SOFTWARE:
CORRECION:
La corrección es la cualidad principal. Si un sistema no hace lo que se supone que debe hacer, poco importan el resto de consideraciones que hagamos sobre él – si es rápido, si tiene una bonita interfaz de usuario.
Pero esto es más fácil de decir que de lograr. Incluso el primer paso hacia la corrección es ya difícil: debemos ser capaces de especificar los requisitos del sistema de una forma precisa, lo que es en sí una ardua tarea.
Los métodos que aseguran la corrección son usualmente condicionales. Un sistema de software importante, incluso uno pequeño según los estándares de hoy, implica a tantas áreas que sería imposible garantizar su corrección manejando todas las componentes y propiedades en un solo nivel. En cambio, es necesaria una solución multinivel, en la que cada nivel confía en la corrección de los inferiores:
Hardware ----> Sistema Operativo----> Compilador ----> Sistema de Aplicación
TRANSPORTABALIDAD:
Facilidad con la que un software puede ser transportado.
INTEGRIDAD:
Facilidad para proteger sus componentes.
ROBUSTEZ:
Facilidad para funcionar incluso en situaciones anormales.
EXTENSIBILIDAD:
Facilidad de adaptar cambios en su especificación: diseño simple y descentralización.
REUTILIZACION:
La reutilización tiene una influencia sobre todos los demás aspectos de la calidad del software, ya que al resolver el problema de la reutilización se tendrá que escribir menos software y en consecuencia se podrán dedicar entonces mayores esfuerzos a mejorar los otros factores, tales como la corrección y la robustez.


EJERCICIOS:
A)   Realizar una llamada telefónica:
Entrada: ir hacia el teléfono público
Proceso: descolgar el teléfono
             Depositar una moneda
             Marcar el número
             Hablar
   Salida:    colgar
                 Regresar a casa
 
B)   Cocinar una tortilla:
Inicio:               tener una tortilla
                        Prender la estufa
    Proceso:            Poner la tortilla en el comal
                            Esperar a que se caliente por un lado
                           Darle la vuelta para que se cocine por el otro lado
   Salida:              Sacar la tortilla
                          Apagar la estufa
 
C)   Arreglar un ponchazo de una bicicleta:
Inicio:         Parche
                  Llanta
                  Herramientas
Salida:      
                 Que salga en buen estado
Proceso:
                 Revisar la pinchada
                Poner pegamento
                Colocar el parche
               Ponerle aire
 
D)  Freír un huevo:
Inicio:         Tener el huevo, sartén, aceite, mantequilla, sal, y la estufa
Salida:
               Freír el huevo
Proceso:
              Quebrar el huevo, ponerlo en el sartén, echarle sal, agregar         
               Condimentos, batir el huevo, ponerlo en la cazuela y cocinar
 
E) Diseña un algoritmo que imprima y sume la serie de números 3,6,9,12….99
 
Programa:                      operación
Tipo:
                                     Numero1 tipo entero
                                      Numero2 tipo entero
                                      Sumaa=0
                                      Sumab=0
Inicio:
                                     Para numero1=1 hasta 99 salta 3
                                      Escribir (numero1)
                                      Si número 1entre 2 entonces
                                      Sumaa= sumaa + numero1
                                      sino
                                      sumab= sumab+ numero1
fin.
 
 
 
F)  Haz el algoritmo de un programa que solicite 100 calificaciones:
Programa:                 calificaciones
Tipo:
                                Numero tipo entero
Inicio:
                               Para numero = 1 hasta 100 salta 1
                              Escribir (“teclear calificación”)
                                Leer (“calificación tipo entero”)
Fin.






  

No hay comentarios:

Publicar un comentario