La Terminología de la Algoritmia.
Fundamentos de programación
Programación modular
método de diseño más flexible y potentes para mejorar la productividad de un programa y de divide en modulos
Fases en la resolución de problemas
Análisis del problema
Se necesita responder las siguientes preguntas
¿,Qué entradas se requieren?
¿Cuál es la salida deseada?
¿Qué método produce la salida deseada?
Diseño del algoritmo
Procesos requeridos
Programar un módulo
Comprobar el módulo
Si es necesario, depurar el módulo
Combinar el módulo con los módulos anteriores
Herramientas de programación
Diagrama de flujo
pseudocódigo
Codificación de un programa
Escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes
Compilación, ejecución y verificación de un programa
Para esto es necesario lograr
programa objeto( ningún error)
Montaje o enlace (link)
programa ejecutable
Pueden existir tres tipos de errores
Errores de compilación
Errores de ejecución
Errores lógicos
Documentación y mantenimiento
Puede ser
Interna
es la contenida en líneas de comentarios
Externa
análisis, diagramas de flujo y/o pseudocódigos para ejecutar el programa
Programación estructurada
Incorpora
Recursos abstractos
Diseño descendente (top-down)
Estructuras básicas
Representación gráfica de los algoritmos
Se representan mediante
diagrama deflujo
diagrama N-S (Nassi-Schneiderman)
lenguaje de especificación de algoritmos(Pseudocódigo)
lenguaje esparlol,inglés...
fórmulas
El ciclo de la vida del software
Análisis
La primera etapa en la producción de un sistema de software es decidir exactamente qué se supone ha de hacer el sistema
Se suele subdividir en
Análisis y definición del problema
Especificación de requisitos
Diseño
Indica lo que el sistema debe hacer
Implementación
Traduce los algoritmos del diseño en un programa escrito en un lenguaje de programación
Depuración y verificación
Trata de probar con medios matemáticos que los algoritmos son correctos
Mantenimiento
Este será realizado y descubiertos por los usuarios
Métodos formales de verificación de programa
Aserciones
Un aserto es una frase sobre una condición específica en un cierto punto de un algoritmooprograma.
Precondiciones y postcondiciones
son afirmaciones sencillas sobre condiciones al principio y al final de los módulos.
Reglas para prueba de programas
Se debe proporcionar aserciones que expresen las condiciones antes y después de que P sea ejecutada.
lnvariantes de bucles
Es una condición que es verdadera antes y después de la ejecución de un bucle. Las invariantes de bucles se utilizan para demostrar la corrección (exactitud) de algoritmos iterativos
Etapas a establecer la exactitud (corrección) de un programa
Se pueden utilizar invariantes para establecer la corrección de un algoritmo iterativo.
El invariante debe ser inicialmente verdadero
Una ejecución del bucle debe mantener el invariante
El invariante debe capturar la exactitud del algoritmo
El bucle debe terminar
Programación segura contra fallos
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
Eficiencia
Transportabilidad (portabilidad)
Verificabilidad
Integridad
Fácil de utilizar
Corrección
Robustez
Extensibilidad
Reutilización
Compatibilidad
El lenguaje C:
elementos basicos
Estructura general de un programa en C
Directivas del preprocesador
El preprocesador en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al compilador antes de que se compile el programa principal). Las dos
directivas más usuales son #include y #define.
Declaraciones globales
Indican al compilador que las funciones definidas por el usuario o variables así declaradas son comunes a todas las funciones de su programa.
Funciónmain( )
Cada programa C tiene una función main ( )
que es el punto de entrada al programa.
Su estructura
Main()
{
. . .
}
Funciones definidas por el usuario
Todas las funciones contienen una o más sentencias C y se crean generalmente para realizar una única tarea como
Tales como
imprimir la pantalla
escribir un archivo
cambiar el color de la pantalla
Comentarios
Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo.
Creacion de un programa
Etapas
Definir su programa.
Definir directivas del preprocesador
Definición de declaraciones globales
Crearmain()
Crear el cuerpo del programa
Crear sus propias funciones definidas por el usuario
Compilar, enlazar, ejecutar y comprobar su programa
Utilizar comentarios
El proceso de ejecución de el programa en C
Un programa de computadora escrito en un lenguaje de programación (por ejemplo, C ) tiene forma de un texto ordinario.
Etapas
El código fuente (archivo del programa) se crea con la ayuda del editor de texto
El compilador traduce el archivo texto en un archivo objeto
El enlazador pone juntos a diferentes archivos objetos para poner un archivo ejecutable
El sistema operativo pone el archivo ejecutable en la memoria central y se ejecuta el programa
Depuración en un programa en C
Existen 2 situaciones
Violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe el programa
Los errores en el diseño del algoritmo en el que está basado el programa
Es el proceso de encontrar errores
Errores de sintaxis
* Punto y coma después de la cabecera mai n ( ) .
* Omisión de punto y coma al final de una sentencia.
* Olvido de la secuencia */ para finalizar un comentario. 0 Olvido de las dobles comillas al cerrar una cadena.
* Etc.
Errores lógicos
representa errores del programador en el diseño del algoritmo y posterior programa. Los errores lógicos son más difíciles de encontrar y aislar ya que no suelen ser detectados por el compilador.
Errores de regresión
son aquellos que se crean accidentalmente cuando se intenta corregir un error lógico.
Mensajes de error
Errores fatales.
Son raros. Algunos de ellos indican un error interno del compilador.
Errores de sintaxis
Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco.
Advertencias(warning)
No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje.
Errores en tiempo de ejecución
Existen 2 tipos
aquellos que son detectados por el sistema en tiempo de ejecución de C
aquellos que permiten la terminación del programa pero producen resultados incorrectos
Pruebas
Los errores de ejecución ocurren después que el programa se ha compilado con éxito y aún se está ejecutando.
Esta prueba (testing)se debe hacer varias veces utilizando diferentes entradas, preparadas en el caso ideal, por personas diferentes al programador, que puedan indicar suposiciones no evidentes en la elección de los datos de prueba.
Los elementos en un programa en C
Un programa C consta de uno o más archivos
Fases
El preprocesado
Realiza la inclusión de archivos y la sustitución de macros
El preprocesador
se controla por directivas introducidas por líneas que contienen # como primer carácter
El resultado del preprocesado es una secuencia de tokens.
Tokens (elementos léxicos de los programas)
Tipos de Tokens
identificadores
palabras reservadas
literales
operadores
otros separadores
Tipos de datos en C
C no soporta un gran número de tipos de datos predefinidos, pero tiene la capacidad para crear sus propios tipos de datos.
Los 3 tipos de datos basicos
enteros
números de coma flotante (reales)
caracteres
Los tipos de datos fundamentales en C son
enteros:(números completos y sus negativos), de tipo int
variantes de enteros:tipos short, long y unsigned
reales:números decimales, tipos float, double o long double
caracteres:letras, dígitos, símbolos y signos de puntuación, tipo char
Tipos de coma flotante (float/double)
Los tipos de datos de coma (punto)flotante representan números reales que contienen una coma (un punto) decimal, tal como 3.14159, o números muy grandes, tales como 1.85*IO”
Caracteres
Un carácter es cualquier elemento de un conjunto de caracteres predefinidos o alfabeto
El Tipo de dato lógico
Los compiladores de C que siguen la norma ANSI no incorporan el tipo de dato lógico cuyos valores son «verdadero» ( t r u e ) y «falso» (fialse)
La mayoría de las expresiones lógicas aparecen en estructuras de control que sirven para determinar la secuencia en que se ejecutan las sentencias C.
Constantes literales
Constantes
Existen cuatro tipos de constantes
constantes literales
constantes definidas
constantes enumeradas
constantes declaradas
Subtopic
Variables
En C una variable es una posición con nombre en memoria donde se almacena un valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de datos: cadenas, números y estructuras.
Declaración
Una declaración de una variable es una sentencia que proporciona información de la variable al cornpilador C.
Inicialización de variables
El formato general de una declaración de inicialización es
tipo nombre-varíable = expresión
expresión es cualquier expresión válida cuyo valor es del mismo tipo que tipo.
Declaración o definición
La diferencia entre declaración y definición es sutil. Una declaración introduce un ombre de una variable y asocia un tipo con la variable. Una definición es una declaración que asigna simultáneamente memoria alavariable.
Duración de una variable
Dependiendo del lugar donde se definan las variables de C, éstas se pueden utilizar en la totalidad del programa, dentro de una función o pueden existir sólo temporalmente dentro de un bloque de una función.
Los tipos básicos de variables en C son
Acumuladoras
Contadoras
Sub-índice
Asignación
Variables locales
definidas en el interior de una función y son visibles sólo en esa función específica
Las reglas por las que se rigen las variables locales son
En el interior de una función, una variable local no puede ser modificada por ninguna sentencia externa a la función
Los nombres de las variables locales no han de ser Únicos. Dos, tres o más funciones pueden definir variables de nombre Interruptor: Cada variable es distinta y pertenece a la función en que está declarada
Las variables locales de las funciones no existen en memoria hasta que se ejecuta la función. Esta propiedad permite ahorrar memoria, ya que permite que varias funciones compartan la misma memoria para sus variables locales (pero no a la vez).
Entradas y salidas
Los programas interactúan con el exterior, a través de datos de entrada o datos de salida
Salida
La salida de datos de un programa se puede dirigir a diversos dispositivos, pantalla, impresora, archivos. La salida que se trata a continuación va a ser a pantalla, además será formateada
Entrada
La entrada de datos a un programa puede tener diversas fuentes, teclado, archivos en disco. La entrada que consideramos ahora es a través del teclado, asociado al archivo estándar de entrada stdin
Salida de cadenas de caracteres
Con la función printf () se puede dar salida a cualquier dato, asociándolo el código que le corresponde.
Entrada de cadenas de caracteres
La entrada de una cadena de caracteres se hace con la función más general scanf ( ) Así
Ejemplo
char nombre[51I ; ;
printf ("Nombre del atleta: ' I )
scanf ("%s"n,ombre);
printf("Nombre introducido: %s",nombre);
La entrada del nombre podría ser
Junipero Serra
La salida
Nombre introducido: Junipero