Pages - Menu

miércoles, 24 de abril de 2013

Curso básico de C 2/10: Estructura de un programa en C, comentarios, variables y operadores


En la primera parte del curso hemos aprendido un poco sobre la historia de C, hemos instalado el entorno de desarrollo Dev C++ para programar y hemos creado nuestro primer programa. En ésta segunda parte veremos la estructura básica de un programa escrito en C y trataremos con cierta profundidad las variables y las constantes, unos de los elementos básicos de un programa.


Foto tomada de freedigitalphotos.net
Estructura de un programa en C

Ya hemos dicho que C es un lenguaje que sigue el paradigma de programación estructurada y que está fuertemente tipado. Para poder cumplir con estas características es necesario seguir una serie de reglas, y una de ellas es ceñirnos a una estructura básica a la hora de programar en C.

La estructura de un programa en C sigue el siguiente esquema:
Importación de elementos.
Declaración de constantes constantes.
Declaración de tipos de datos.
Variables globales.
Especificación de funciones.
 int main(void){
Variables locales.
Instrucciones del programa principal
return 0;
}
Es importante saber el elemento central de un programa en C es su función de inicio, la función “int main (void)” es la función principal, es donde comienza un programa a ejecutarse siempre. La palabra “main” viene del inglés y significa “principal”. También hay que tener en cuenta que es una función y por lo tanto debe devolver un valor, de momento no entraremos demasiado en este detalle, sólo es necesario saber que un programa escrito en C, haga lo que haga, siempre tendrá la función “int main(void)” y un “return 0;” para devolver obligatoriamente un valor.

El resto de elementos son completamente opcionales aunque esenciales según la naturaleza de nuestro programa.
La función main es imprescindible para un programa escrito en C, representa el punto de partida de la ejecución del programa.
En caso de querer escribir, compilar y ejecutar un programa en C sin función main a la hora de compilar recibiremos el error “Referencia a `main' sin definir”.

Programa correcto: 
#include <stdio.h> int main(void)
{
int edad;
 printf("Tu edad es de %d \n", edad);
 return 0;
}
Programa incorrecto:
#include <stdio.h>int edad;
printf("Tu edad es de %d \n", edad);
return 0;
Puedes hacer la prueba creando un nuevo proyecto en Dev C++ y escribiendo ambos programas por separado.

Correcta indentación

C ofrece la posibilidad de dar el formato al código como se desee aunque es importante tener desde primera hora un buen estilo de indentación, el fin de esto no es más que el de hacer el programa con un código cómodo de leer, esto facilitará la búsqueda de errores y el mantenimiento posterior.

Bien:
#include <stdio.h>int main(void)
{
int edad;
 printf("Tu edad es de %d \n", edad);
 return 0;
}
Mal:
#include <stdio.h> int main(void) { int edad; printf("Tu edad es de %d \n", edad); return 0;}
Mantener un correcto estilo de escritura es esencial, no dejéis de practicarlo.

Comentarios

Otra de las buenas prácticas que debemos tener como programadores es comentar el código. Poner comentarios y anotaciones nos ayudará a comprender mejor lo que un programa hace, es importante y muy útil si otra persona tiene que estudiar o buscar algo en nuestro código o si nosotros mismos realizamos un mantenimiento o modificación pasado un tiempo.
Los comentarios son anotaciones informativas que el compilador ignorará a la hora construir el programa, su uso es muy recomendable.
Para poner comentarios en un programa debemos utilizar ciertos símbolos para que el programa interprete que ese texto no se debe ejecutar, de ésta forma podremos expresarnos libremente dentro del programa sin temor a errores de compilación o ejecución. Necesitamos dos símbolos para poder poner comentarios, uno de apertura y otro de cierre.

En C existen dos tipos de comentarios, los de una línea y los de varias líneas.

Comentario de una línea – Su símbolo de apertura es // y no posee comentario de cierre.

Comentario de más de una línea – Su símbolo de apertura es /* y el de cierre es */, todo lo que haya dentro no se ejecutará.

Comentario de una sola línea:
#include <stdio.h>int main (void){            //defino variables            int altura;
        
//le asigno un valor
            altura=1;     
             //la escribo por pantalla
            printf(“la altura es %d”,altura);
             //devuelvo el 0 requerido para el correcto funcionamiento
            return 0;
}
Comentario de muchas líneas:
/*
Programa que se encarga de escribir por pantalla la altura dada de un sujeto.
*/
 #include <stdio.h>int main (void){
            int altura;
            altura=1;     
            printf(“La altura es %d”,altura);
            return 0;
}
Importante: Un comentario no puede ponerse dentro de otro comentario, el compilador entenderá los caracteres que vienen después del primer */ como instrucciones e intentará procesarlas, dando error. Pruebe el siguiente programa:
#include<stdio.h>int main(void){            /* programa que escribe la altura /* no la anchura*/ de un sujeto */
            int altura;
            altura=1;     
            printf(“La altura es %d”,altura);
            return 0;
 }
Variables

Como hemos podido comprobar hasta ahora, en un programa es imprescindible trabajar con datos, para poder operar con estos datos debemos asignarles un espacio de memoria en el computador para poder manejarlo, esto es posible mediante el uso de variables.
Una variable es un espacio de memoria donde almacenamos un dato susceptible de cambiar su valor a lo largo de la ejecución de un programa.
Usando las variables seremos capaces de operar con datos, realizar comprobaciones, cálculos, comparaciones, impresión por pantalla, control de flujo de ejecución, etc.

Para poder usar una variable es necesario que antes la declaremos, esto es posible mediante el siguiente esquema:

<Tipo> <Nombre>;

Una variable puede tener el nombre que queramos, eso sí, es necesario que el nombre no sea ninguna de las palabras reservadas y además respetar ciertas reglas como que no comience por un dígito o que contenga símbolos, esto provocaría un error de compilación.

En la declaración debemos especificar el tipo de dato que será la variable, en C existen muchos tipos de datos diferentes y bien definidos.

Los tipos de datos más comunes en C son los enteros, reales, carácter y cadena de carácter.

Entero int – Comprende valores no decimales, no acepta letras ni caracteres.
Real float – Almacena valores numéricos de coma flotante de 32 bits, lo cual le da la posibilidad de almacenar como máximo el valor 3.40282347E38.
Carácter char – Representa un carácter perteneciente a un código concreto, normalmente es el código ASCII.
Cadena de caracteres – Es una relación de caracteres almacenados consecutivamente en un array de variables tipo char.

Existen multitud de tipos de datos en C, conforme avancemos en el curso podremos irlos viendo poco a poco todos.

Operadores

Para poder trabajar con las variables es necesario que usemos un conjunto de símbolos que cumplan unas funciones determinadas, estos son los operadores.
Gracias a los operadores podremos asignar valor a las variables, comparar, realizar operaciones, etc.
Operadores aritméticos – Se encargan de realizar operaciones matemáticas. Suma (+), resta (-), multiplicación (*), división (/), resto de la división (o módulo) (%).

No existe un operador aritmético para realizar operaciones exponenciales.

Operadores lógicos – Se encargan de hacer operaciones matemáticas lógicas. NOT (!), AND (&&) y OR (||).

Operadores de comparación – Se encargan de la comparación de dos valores. Igual que (==), distinto de (!=), menor que (<), mayor que (>), menor o igual que (<=), mayor o igual que (>=).

Operadores de asignación – Trabajan con las posibles asignaciones de valores entre variables. La asignación de un valor a una variable se hace con (=). Si quisiéramos asignar un valor realizando una operación matemática debemos escribir el símbolo aritmético seguido del símbolo de asignación. (+=),(-=),(*=),(/=),(%=).

Al igual que con los tipos de variables, existen otros tipos de operadores que iremos viendo conforme avancemos en el curso, de momento éstos son los más básicos y los que nos permitirán escribir un programa perfectamente.

stdio.h, printf y scanf, una introducción rápida.

Habrás notado que en los programas que hemos ido realizando usamos bastante estos tres términos, vamos a definir un poco para qué sirven con el fin de que podamos empezar a crear programas completos y básicos.

stdio.h

stdio.h es la librería estándar de C en la cual vienen definidas las funciones, tipos y constantes que podemos utilizar para gestionar (entre otras cosas) la entrada y salida de datos por teclado y pantalla respectivamente.

printf

printf es una función que se encarga de mostrar por pantalla un texto con formato, un ejemplo básico es el siguiente:

printf (“Hola Mundo”);

Si quisiéramos mostrar por pantalla el valor de una o más variables debemos hacer uso de unas marcas de formato, las cuales varían dependiendo del tipo de dato de la variable que queramos mostrar. Para un int debemos usar %d y para un float %f. Acto seguido el texto que se va a mostrar debemos poner una coma y el nombre de la variable, así con todas.

Ejemplo:

printf(“Tu tienes %d lápices”,numerolapices);
printf(“%d + %d es igual a %d”,numero1, numero2, numero3);

Es importante también decir que la función printf no hace un retorno de carro al terminar de pintar, para ello debemos poner una secuencia de escape especial, el cual indicará al programa que debe comenzar en una nueva línea. La secuencia de escape concretamente es \n.

Ejemplo:

printf(“Rafa tiene %d juguetes \n Pepe tiene %d juguetes \n Entre los dos tienen %d juguetes”,numero1, numero2, numero3);

scanf

scanf es la función que se encarga de la recepción de valores introducidos por teclado, gracias a ésta función podemos especificarle al programa valores que serán asignados a variables. Un ejemplo básico sería éste:

scanf ("%d", &a);

Para poder asignar un valor concreto a una variable concreta es necesario utilizar las marcas de formato seguido de la coma y el símbolo “&” junto a la variable a la que le asignaremos el valor.

Ejemplo:

printf(“Introduzca el número de alumnos: ”);
scanf(“%d”,&numeroalumnos);
printf(“Hay %d alumnos en la clase.”,numeroalumnos);

Conclusiones.

Con esto terminamos por hoy la segunda parte del curso básico de C, en éste apartado hemos podido estudiar la estructura de un programa en C, el uso de los comentarios, el concepto de variable y los tipos de datos más comunes, los operadores básicos para trabajar con variables y por último tres conceptos básicos para poder ir trabajando y realizando algunos programas básicos.

Mañana profundizaremos un poco más en los conceptos de variables y operadores, también en las directivas #include y #define y por tanto en la librería stdio.h así como en un nuevo concepto; las constantes. Por último iré planteando ejercicios basados en todos estos conceptos para irlos realizando cómodamente

¿Qué os parece va pareciendo el curso?