Sunteți pe pagina 1din 11

Estructura de Un programa en C 1.

ERROR DE SINTAXIS: Estos errores son producidos, cuando se hace mal uso de las reglas del lenguaje de programacin, y se violan las normas de sintaxis, de ese lenguaje (en nuestro caso C); estos errores son fciles de detectar por que generalmente es el compilador, que los identifica (Y hasta muestra la lnea donde se encuentra dicho error, pero eso depende de la versin del compilador que estemos usando). En este curso he usado Turbo C, en su versin 2 y 3. 2. ERRORES DE EJECUCIN: Estos errores se producen , cuando le indicamos a la computadora, realizar una determinada accin, y esta la comprende, pero no puede ejecutarla. Por ejemplo, indicarle a la computadora una divisin entre cero, sumar dos variables a las cuales no se les ha signado valor alguno, etc. 3. ERRORES DE LGICA: Muchas veces, cuando estamos programando, el compilador no nos indica errores de sintaxis, ni de lgica; pero el resultado de nuestro programa, esta fuera del rango esperado, esto es producto de un error de lgica en el cdigo de nuestro programa. Este tipo de errores son muy difciles de identificar y por supuesto de corregir, ya que generalmente hay que revisar lnea por lnea de nuestro programa. Ejemplo: El sueldo negativo de un empleado, etc. La estructura de un programa en C, consta de algunas partes esenciales: las cuales son uno o ms mdulos llamadas funciones, siendo main() la primera funcin que es llamada cuando empieza la ejecucin del programa . Cada funcin debe contener : >Directivas de pre-procesador (instrucciones que se le dan al compilador #include antes de compilar) #define ejemplo: #include <stdio.h> Lo que se le esta indicando, es que de las libreras, "Incluya" en nuestro programa la directiva stdio.h, la cual contiene las funciones de entrada y salida de datos (standar input output, en ingls). Si necesitamos las funciones matemticas, debemos especificarlo con la declaratoria: #include <math.h> Si necesitamos las funciones de cadenas: #inlcude <stlib.h> Es necesario aclarar que esto se hace al inicio del programa, y las declaratorias deben llevar el smbolo de numeral (#) seguido de la sentencia "include", y entre signos de mayor y menor que (<>) el nombre de la directiva. >Declaraciones Globales pueden ser: *Prototipos de Funciones: Tambin llamadas declaraciones de funciones, lo cual se tratar ms adelante *Declaraciones de Variables cabe destacar, que esto se hace seguido de los #include y los #define. >Funcin Principal main() Esta es la funcin principal de nuestro programa, su cuerpo, por ello NUNCA debe faltar, ya que en ella van contenidas todas las instrucciones de nuestro programa.

La funcin main() va al inicio, luego abrimos llaves y dentro de ellas van las declaraciones de variables, las sentencias de lectura, clculos, asignaciones e impresiones, y con la ltima llave ( } ), le indicamos el final del programa. Ejemplo 1.1 Programa que a partir del radio, calcula el rea de un crculo

Explicacin: Le indicamos al compilador, que usaremos las bibliotecas <stdio.h> y <conio.h>, por qu <conio.h>?, por que esta biblioteca, contiene las funciones getche(), getch(), etc, y de una de ellas hacemos uso en este pequeo ejemplo. Luego, le indicamos a nuestro programa el incio de nuestro programa (funcin main() ). Declaramos, como valores reales, las variables radio y area (de esto se hablar ms adelante). Luego, con la instruccin printf(), mostramos en pantalla el mensaje (Radio=) y scanf se encarga de leer el valor digitado por el usuario. Posteriormente rea, es igual al la multiplicacin de pi (3.14159), el radio al cuadrado. Se muestra en pantalla ese resultado, luego el programa espera que se presiones cualquier tecla (getch() ) y no retorna ningn valor (return 0). Sintaxis de Algunos Elementos de Un Programa en C a. identificadores: como su nombre lo indica, estos son los nombres, con los que identificamos las variables, constantes, funciones, vectores, etc, de nuestro programa. Para ello debemos tener presente algunas reglas: >pueden tener de 1 hasta un mximo de 31 caracteres >Debe de iniciar con una letra o subrayado Ejemplo: (Correctos) c2 _c2 ( Incorrectos) 2c 2c

>No es lo mismo una minscula que una mayscula, ya que c distingue de entre ellas. Ejemplo: BETA { Beta { beta { BeTa >No son vlidos los identificadores de palabras reservadas. En un inicio hablamos que c posee 32 palabras reservadas, entre ellas estn: float char while int else return Estas palabras no pueden ser utilizadas para identificar variables, constantes, funciones etc b. Comentarios En todo programa que estemos diseando en C (o en cualquier otro lenguaje de programacin); es necesario insertar ciertos comentarios en el cdigo, para que en posteriores modificaciones y cuando se realice el mantenimiento, podamos recordar cosas importantes ya que, en los comentarios, podemos incluir aspectos importantes del programas, explicaciones del funcionamiento de las sentencias, etc. El formato de los comentarios en C, es el siguiente:

c. La Directiva #include Permite que, el pre-procesador, incluya funciones proporcionadas por el fabricante, a nuestro programa. Ejemplo: #include <stdio.h> /* le decimos al compilador que incluya la librera stdio.h */ d. la directiva #define permite definir constantes simblicas. Pero hasta ahora ha sido poco lo que hemos hablado acerca de las constantes, es por ello que en aprovechando, este especio; dedicar unas cuantas lneas para aclarar ello. Las variables pueden cambiar de valor, durante la ejecucin del programa, por eso es que se llaman variables. Y las constantes como su nombre lo indica, son valoresque permanecen constantes durante toda la ejecucin del programa, un ejemplo de ello, es el valor de T (pi) que equivale a 3.14159.... En C existen diferentes tipos de variables, entre ellas tenemos: 1. Constates Numricas: Son valores numricos, enteros o de reales (de punto flotante). Se permiten tambin constantes octales y hexadecimales. 2. Constantes Simblicas: las constantes simblicas tiene un nombre (identificador), y en esto se parecen las variables. Sin embargo, no pueden cambiar de valor a lo largo de la ejecucin del programa. En C, se pueden definir mediante el preprocesador. (Tomado del Manual "Aprenda Lenguaje ANSI C como si estuviera en Primero" Escuela superior de Ingenieros Industriales. Universidad de Navarra. Febrero de 1998). Ejemplo:

Esta directiva (#define) va, inmediatamente despus de los #include. Se escribe la directiva, se deja un espacio y se escribe el identificador de la constante, otro espacio y su valor. e. Signos de Puntuacin y de Separacin /  % ^ & * () - + {} [] \ ; : <> . f. Todas las Instrucciones o sentencias del programa terminan con un punto y coma (;) Al momento de programar en C, esta es una regla de oro, y la causa por la cual nuestro programa puede darnos muchos errores de sintaxis, cuando se omite, al final de cada sentencia un punto y coma (;). Ya que con ello le indicamos al compilador que ha finalizado una sentencia. NOTA: el lector no debe confundirse, las directivas: #include, #define. Main(), no llevan punto y coma, por que no son sentencias. Recordemos el ejemplo 1.1, y vea que al final de cada sentencia lleva su correspondiente punto y coma:

g. Todo Bloque de Instrucciones debe ir entre llaves Esta consideracin toma mayor auge, cuando veamos las instrucciones anidadas en condiciones, ciclos, etc. Ejemplo:

h. En una lnea se pueden escribir ms de una instruccin separada por un punto y coma Esto es posibles, por que con el punto y coma, le estamos indicando al compilador el fin de una sentencia o instruccin. Ejemplo:

El Lenguaje C fue implantado por primera vez en los aos 70 por Dennis Ritchie un un computador DEC PDP-11 equipado con el sistema operativo UNIX .

El lenguaje de programacin C, a cambio de lenguajes como BASIC y Pascal que son lenguajes de alto nivel, es un lenguaje de nivel medio ya que combina las propiedades de un lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es esa misma caracterstica la que le da a este lenguaje ms potencia y dominio sobre los recursos del sistema. Entre una de las caractersticas ms importantes de C esta la portabilidad, esto es, un programa escrito en C se puede trasladar facilmente entre distintos sistemas operativos.

Para los estudiantes que se inician en el estudio de C, la visin del lenguaje les causa miedo, C tiene fama de ser un lenguaje dificil, nada ms lejos de la verdad. Una vez que se entiende cmo trabaja, es fcil dominarlo, por algo C es el preferido de muchos programadores que lo consideran un lenguaje "elegante". Por no ser un lenguaje de alto nivel, C le relega al programador cierto grado de responsabilidad en el desarrollo de los programas. C no lleva a cabo comprobaciones de errores en tiempo de ejecucin, un claro ejemplo esta en que se sobrepasen los lmites de un arreglo, en una ocasin cmo esta, el programa no se detiene y sigue escribiendo o leyendo en memoria, posiblemente hasta en el mismo cdigo del programa. Generalmente C siempre trata de hacer algo. Esta sitio est dirigido a todos los programadores que se inician en C, su fin es ayudar a la comprensin de este lenguaje y servir como una referencia amigable, aportando un apoyo a todo el que quiera conocer el lenguaje C.

Un programa en C:
#include <stdio.h> /* aqu comienza el programa */ void main(void) { printf("Bienvenido a C"); }
Este programa despliega el mensaje Bienvenido a C en la pantalla, la primera lnea es una orden al compilador para que incluya un archivo de biblioteca, esto es un archivo que contiene funciones incorporadas en C como printf. La segunda lnea es un comentario, no se pueden anidar comentarios. La tercera lnea es el encabezado de la funcin main(), esta funcin es obligatoria y se puede tratar como cualquier otra, en este caso, main() no devuelve ni recibe nada. Las llaves marcan el inicio y el final del bloque que compone la funcin (begin y end en Pascal) y la quinta lnea es una llamada a una funcion de la libreria stdio.h, la funcion printf, que recibe un argumento y lo imprime en la pantalla. Todas las sentencias en C terminan en punto y coma (;). Como se puede ver, C se basa en funciones, por lo que incentiva el uso de una programacin estructurada, las funciones hacen los programas ms sistemticos ya que son en gran parte independientes unas de otras.

Tipos de Datos en C Un tipo de dato, se define como un conjunto de valores que puede tener una variables, junto con ciertas operaciones que se pueden realizar con ellas

Tpos de dtos en C
Tipo char unsigned char int unsigned int long int unsigned long int float double void Bytes 1 1 2 2 4 4 4 8 0 Descripcion caracter caracter entero entero positivo entero largo entero largo positivo real real nada Rango -127 a 127 0 a 255 -32.767 a 32.767 0 a 65.535 -2.147.793.467 a 2.147.793.467 0 a 4.294.967.925 seis digitos de presicion diez digitos de presicion -

Notese la ausencia de un tipo cadena, para usar variables tipo cadena, se declara un array de cracteres del tamao de la cadena deseada. ejm:

char nombre[10];

Variables:
Se declaran de la siguiente manera:

tipo lista-de-variables;
Donde tipo es uno de los tipos de datos validos en C o bien un tipo definido por el usuario y lista de variables consiste en uno o mas nombres de variables separados por comas. ejm:

int i, j, l; unsigned int si; char c; double balance, beneficio, perdida;


El siguiente programa usa una variable entera para imprimir los nmeros del uno al diez:

#include < stdio.h void main(void) { int i; for(i=1; i<=10; i++) printf("%d\n",i);

}
Las variables se declaran en tres sitos basicos: dentro de las funciones (variables locales), en la definicion de parametros de funciones (parametros formales) y fuera de todas las funciones (variables globales).

Constantes:
Se declaran de la siguiente manera:

tipo nombre-de-constante = valor;


Donde tipo es uno de los tipos de datos validos en C o bien un tipo definido por el usuario, nombre-deconstante es el nombre con el cual se identificar la constante dentro del codigo y valor es el valor de la constante. ejm:

int modos = 10; double pi = 3,1416; char c = 'a';


Las constantes de caracter deben ir encerradas entre comillas simples. Al escribir el nombre de una constante dentro del codigo fuente, el compilador inserta el valor asociado a dicha constante. El ambito de una constante depende del sitio en donde ha sido declarada, de esta forma existen constantes globales y locales. Hay otra forma de utilizar constantes globales en C, la directiva del compilador #define: ejm:

#define MODOS 10 #define MENSAJE "Ha acurrido un error"


En este caso, no se coloca punto y coma (;) al final, esto debido a que no se trata de sentencias sino de ordenes directas al compilador, los nombres de variables se acostumbran a poner en maysculas.

Estructuras de Selecin:
Las sentencias de selseccin permite crear "bifurcaciones" dentro de los proramas, dependiendo de si una condicin es cierta o no en algun momento dado. C implementa dos sentencias de este tipo: if y switch.

Sentencia if
tiene la siguiente forma:

if (expresion) sentencia; else sentencia;

donde sentencia puede ser una sentencia simple, un bloque de sentencias o simplemente nada (sentencias vacias). Expresin es cualquier expresin vlida en C, si es cierta (cualquier valor distinto de cero) entonces se ejecuta la primera sentencia, caso contrario, se ejecuta la sentencia correspondiente al else. ejm:

#include < stdio.h main() { int num; printf("Introduzca un numero: "); scanf("%d", &num); if (num < 0) printf("El numero %d es negativo", num); else if(num == 0) printf("El numero es cero"); else printf("el numero %d numero es positivo"); }
Una alternativa para el uso de la sentencia if es el operador ?, el cual se ilustra de la siguiente manera:

int x, y; x = 10; y = 20; printf("%d es el mayor", x

y ? x : y);

Este fragmento de codigo imprimir "20 es mayor que 10". El operador ? puede usarse en sitios en donde no puede usarse un if, adems, reduce el tamao del codigo y le da "elegancia" al mismo.

Sentencia switch
Esta sentencia compara el valor de una expresin con una lista de constantes, cuando encuentra una correspondencia, se ejecutan las sentencias asociadas de la misma, switch es el "case" de Pascal. Tiene la siguiente forma:

switch (expresion){ case constante1: sentencias break; case constante2: sentencias break; . .

. default: sentencias }
La sentencia break al final de cada bloque de sentencias permite que se salga del switch, en caso de no haber un case, C pasa a ejecutar el siguiente bloque de sentencias correspondiente a la siguiente constante, en caso de no encontrarse ninguna correspondencia, se ejecutan las sentencias asociadas con default. Ejm:

void menu(void) { /* esta funcion permite la creacin de un men */ char c; printf("1. printf("2. printf("3. printf("4. Crear\n"); Editar\n"); Buscar\n"); Salir\n\n");

printf("Introduzca su opcin:"); c = getchar(); /* tomar la seleccin */ switch (c){ case '1': crear(); break; case '2': editar(); break; case '3': buscar(); break; case '4': salir(); default printf("\nOpcin no valida"); } }

Estructuras de Repeticin: El bucle for


El bucle for en C cumple la misma funcin que en el resto de los lenguajes de programacin procedimentales pero adems se le aade una potencia y flexibilidad nicos, lo cual lo convierte en una herramienta poderosa. Su forma es la siguiente:

for(inicializacin; condicin; incremento)

sentencia;
Donde inicializacin es una sentencia de asignacin para inicializar la variable de control del bucle, condicin es una expresin relacional que determina el final del bucle e incremento define cmo cambia la variable de control cada vez que se ejecute una iteracin del bucle. ejm:

#include "stdio.h" /* imprime los numeros del 1 al 100 */ main() { int x; for (x=1; x<=100; x++) printf("%d ", x); }
En este ejemplo, x se inicializa a 1 y se compara con 100, ya que la condicin es cierta, se ejecuta la funcin printf() y x se incrementa en 1, este bucle se repite hasta que x es mayor que 100. A continuacin, un ejemplo del bucle for con varias sentencias:

#include "stdio.h" /* imprime el cuadrado de los numeros del 10 al 1 */ main() { int i, x; for (i=10; x0; x--){ x := i*i; printf("%d al cuadrado es: %d\n", i, x); }

El Bucle while
Llamado bucle "mientras", ejecuta una sentencia mientras cierta condicin sea verdadera, su forma es la siguiente:

while(condicin) sentencia;
Donde sentencia es una sentencia vlida o un bloque de sentencias. la condicin puede ser cualquier expresin y cualquier valor distinto de 0 es cierto. ejm

#include "stdio.h"

main() { int i; float x, suma, promedio; /* lee numeros desde el teclado para calcular su promedio, termina cuando se introduce -1 */ x = suma = 0; i = 1; while (x != -1){ printf("\nIntroduzca el valor %d:", i); scanf("%f", &x); suma += x; } promedio := suma/i; printf("\nEl promedio es: %f / %d = %f", suma, i, promedio); }

El Bucle do-while
A diferencia de los bucles anteriores, que analizan la condicin al principio de los mismos, el bucle do-while lo hace al final, esto significa que se ejecuta siempre al menos una vez. Su forma general es:

do{ sentencia; }while(condicin);


Las llaves no son necesarias en el caso de una sentencia simple, pero se recomienda colocarlas por razones de legibilidad, este bucle iterar hasta que la condicin sea falsa. ejm: El siguiente bucle lee nmeros desde el teclado hasta que encuentra un numero negativo:

do{ scanf("%d", &num); }while(num = 0);

S-ar putea să vă placă și