Categorías: Todo - pruebas - compilador - ejecución - entradas

por Cristopher Trinidad hace 4 años

157

La Terminología de la Algoritmia.

La creación y ejecución de un programa en lenguaje C implica varias etapas fundamentales. Inicialmente, el código fuente se redacta en un editor de texto. Luego, el compilador traduce este archivo en un archivo objeto, que posteriormente es ensamblado junto con otros archivos objetos por el enlazador para generar un archivo ejecutable.

La Terminología de la Algoritmia.

La Terminología de la Algoritmia.

El lenguaje C: elementos basicos

Entradas y salidas
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

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.

Los programas interactúan con el exterior, a través de datos de entrada o datos de salida

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

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

Duración de una variable
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

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).

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

En el interior de una función, una variable local no puede ser modificada por ninguna sentencia externa a la función

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

Asignación

Sub-índice

Contadoras

Acumuladoras

Variables
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.

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

Una declaración de una variable es una sentencia que proporciona información de la variable al cornpilador C.

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.
Constantes
Existen cuatro tipos de constantes

Subtopic

constantes declaradas

constantes enumeradas

constantes definidas

constantes literales

El Tipo de dato lógico
Constantes literales
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.
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)
Tipos de datos en C
Caracteres

Un carácter es cualquier elemento de un conjunto de caracteres predefinidos o alfabeto

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”

Los tipos de datos fundamentales en C son

caracteres:letras, dígitos, símbolos y signos de puntuación, tipo char

reales:números decimales, tipos float, double o long double

variantes de enteros:tipos short, long y unsigned

enteros:(números completos y sus negativos), de tipo int

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

caracteres

números de coma flotante (reales)

enteros

Los elementos en un programa en C
Tokens (elementos léxicos de los programas)

Tipos de Tokens

otros separadores

operadores

literales

palabras reservadas

identificadores

Un programa C consta de uno o más archivos

Fases

El resultado del preprocesado es una secuencia de tokens.

El preprocesador

se controla por directivas introducidas por líneas que contienen # como primer carácter

El preprocesado

Realiza la inclusión de archivos y la sustitución de macros

Pruebas
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 errores de ejecución ocurren después que el programa se ha compilado con éxito y aún se está ejecutando.
Depuración en un programa en C
Errores en tiempo de ejecución

Existen 2 tipos

aquellos que permiten la terminación del programa pero producen resultados incorrectos

aquellos que son detectados por el sistema en tiempo de ejecución de C

Mensajes de error

Advertencias(warning)

No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje.

Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco.

Errores fatales.

Son raros. Algunos de ellos indican un error interno del compilador.

Errores de regresión

son aquellos que se crean accidentalmente cuando se intenta corregir un error lógico.

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.

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.

Existen 2 situaciones

Los errores en el diseño del algoritmo en el que está basado el programa

Violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe el programa

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.

El sistema operativo pone el archivo ejecutable en la memoria central y se ejecuta el programa

El enlazador pone juntos a diferentes archivos objetos para poner un archivo ejecutable

El compilador traduce el archivo texto en un archivo objeto

El código fuente (archivo del programa) se crea con la ayuda del editor de texto

Creacion de un programa
Etapas

Utilizar comentarios

Compilar, enlazar, ejecutar y comprobar su programa

Crear sus propias funciones definidas por el usuario

Crear el cuerpo del programa

Crearmain()

Definición de declaraciones globales

Definir directivas del preprocesador

Definir su programa.

Estructura general de un programa en C
Comentarios

Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo.

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

cambiar el color de la pantalla

escribir un archivo

imprimir la pantalla

Funciónmain( )

Su estructura

Main() { . . . }

Cada programa C tiene una función main ( ) que es el punto de entrada al programa.

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.

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.

Fundamentos de programación

Métodos formales de verificación de programa
Factores en la calidad del software

Compatibilidad

Reutilización

Extensibilidad

Robustez

Corrección

Fácil de utilizar

Integridad

Verificabilidad

Transportabilidad (portabilidad)

Eficiencia

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.

Etapas a establecer la exactitud (corrección) de un programa

Se pueden utilizar invariantes para establecer la corrección de un algoritmo iterativo.

El bucle debe terminar

El invariante debe capturar la exactitud del algoritmo

Una ejecución del bucle debe mantener el invariante

El invariante debe ser inicialmente verdadero

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

Reglas para prueba de programas

Se debe proporcionar aserciones que expresen las condiciones antes y después de que P sea ejecutada.

Precondiciones y postcondiciones

son afirmaciones sencillas sobre condiciones al principio y al final de los módulos.

Aserciones

Un aserto es una frase sobre una condición específica en un cierto punto de un algoritmooprograma.

El ciclo de la vida del software
Mantenimiento

Este será realizado y descubiertos por los usuarios

Depuración y verificación

Trata de probar con medios matemáticos que los algoritmos son correctos

Implementación

Traduce los algoritmos del diseño en un programa escrito en un lenguaje de programación

Diseño

Indica lo que el sistema debe hacer

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

Especificación de requisitos

Análisis y definición del problema

Representación gráfica de los algoritmos
Se representan mediante

fórmulas

lenguaje esparlol,inglés...

lenguaje de especificación de algoritmos(Pseudocódigo)

diagrama N-S (Nassi-Schneiderman)

diagrama deflujo

Programación estructurada
Incorpora

Estructuras básicas

Diseño descendente (top-down)

Recursos abstractos

Fases en la resolución de problemas
Documentación y mantenimiento

Puede ser

Externa

análisis, diagramas de flujo y/o pseudocódigos para ejecutar el programa

Interna

es la contenida en líneas de comentarios

Compilación, ejecución y verificación de un programa

Pueden existir tres tipos de errores

Errores lógicos

Errores de ejecución

Errores de compilación

Para esto es necesario lograr

programa ejecutable

Montaje o enlace (link)

programa objeto( ningún error)

Codificación de un programa

Escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes

Diseño del algoritmo

Herramientas de programación

pseudocódigo

Diagrama de flujo

Procesos requeridos

Combinar el módulo con los módulos anteriores

Si es necesario, depurar el módulo

Comprobar el módulo

Programar un módulo

Análisis del problema

Se necesita responder las siguientes preguntas

¿Qué método produce la salida deseada?

¿Cuál es la salida deseada?

¿,Qué entradas se requieren?

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