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

variables locales

variables globales

variables dinámicas

Subtopic

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