Primera lección

viernes, 13 de noviembre de 2009 en 16:19
Voy a seguir dos criterios a la hora de desarrollar el curso de C:

  1. Voy a partir absolutamente de cero. Necesito vuestros comentarios para asegurar esto. Si hay algo que no se entienda, preguntad, e iré actualizando las lecciones con los cambios.
  2. Voy a ser profundamente heterodoxo. Quiero decir con esto que no voy a seguir lo que sería un curso típico de C, sino que voy a intentar explicar las cosas del modo que creo que se van a entender mejor.

La idea es ir publicando lecciones más o menos cada semana y dejando "deberes" para los que lo sigáis. Al final de curso realizaré un pequeño concurso sólo para alumnos del Colegio, proponiendo una pequeña aplicación y reconociendo las que estén mejor resueltas (originalidad, elegancia y eficacia). También tengo la idea de entregar diplomas a todos los que participen en el concurso, certificando la participación y aprovechamiento del mismo.

Para empezar, como he dicho de un modo muy heterodoxo, voy a establecer algunos conceptos básicos.

Programar en C consiste en escribir un archivo de texto (que se guarda con la extensión .c en lugar de .txt) en el cual ponemos una serie de instrucciones describiendo al ordenador las tareas que queremos que éste realice. El resultado será una aplicación ejecutable (un .exe) que puede ser de consola (sólo texto) o con un entorno gráfico. En el curso de C realizaremos solo aplicaciones de consola y en el curso de C# que le seguirá daremos el salto los interfaces gráficos.

Una vez escrito nuestro archivo de texto con las instrucciones pedimos al compilador que lo convierta en el archivo ejecutable y lo probamos. Este procedimiento lo realizaremos varias veces conforme vayamos avanzando en la escritura del programa, de modo que podamos comprobar que vamos por el buen camino.

Nuestro programa contendrá los siguientes elementos:
  • Instrucciones y operadores para el compilador: son las distintas tareas que queremos que el ordenador ejecute.
  • Instrucciones para el preprocesador: son instrucciones que explicarán y matizarán en qué modo queremos que el compilador interprete nuestro código.
  • Variables: son valores (espacios de memoria a los que asignaremos un nombre) en los que guardaremos los datos de partida de nuestro programa, los datos intermedios y los datos finales.
  • Funciones: son conjuntos de instrucciones que realizan determinadas operaciones. En ocasiones tomarán unos datos de entrada, realizarán con ellos alguna operación y devolverán un resultado. Nosotros podemos definir nuestras propias funciones, pero también hay muchas predefinidas en el lenguaje C que iremos aprendiendo.
  • Comentarios: es texto que se ignorará a la hora de compilar, pero que nos ayudará a hacer más legible el código, añadiendo al mismo explicaciones sobre lo que queremos hacer en cada línea.
Para entenderlo mejor vamos a analizar un pequeño ejemplo, sin entrar en determinadas particularidades del lenguaje C, que estudiaremos más adelante:
#include <stdio.h>

/* Función que suma dos valores enteros */
int sumar(int i1, int i2){
   return i1+i2;
}

/* Función principal */
void main(void){
   int a=5;
   int b=6;
   int c;
   c=sumar(a,b);
   printf("%i + %i = %i\n",a,b,c);
}
En este pequeño programa encontramos:

  1. Una instrucción para el preprocesador: #include <stdio.h>, que le dice al compilador dónde encontrar la definición de la función printf, que, como veis, no aparece definida en el código.
  2. Tres funciones: sumar, main y printf. Las dos primera están definidas en nuestro código, la última en una librería de funciones que incluye el propio lenguaje C, y su definición está en el archivo stdio.h, que significa STanDard Input Output (salida y entrada estándar). La función sumar recibe como parámetros de entrada dos números enteros y devuelve otro número entero, que es la suma de los dos primeros. La función main no tiene parámetros de entrada ni de salida (void significa vacío). Todos los programas en C necesitan una función main, que es la que se ejecutará cuando lancemos el programa. La función printf se encarga de sacar en la pantalla textos, la veremos con más detalle más adelenta.
  3. Variables: en la función sumar usamos las variables i1 e i2, ambas números enteros (int). En la función main utilizamos las variables a, b y c, todas ellas enteros. A las dos primeras les asignamos un valor al declararlas (al decirle al compilador que son números enteros) y en c metemos el resultado que nos devuelva la función sumar.
  4. Instrucciones: no hay, sí hay un operador, el + que la función sumar y los = de las función main.
  5. Comentarios: las dos líneas que empiezan con /* y terminan con */ son comentarios.

Si ejecutáramos este programa obtendríamos el siguiente texto:

5 + 6 = 11

No impresiona mucho, verdad. En fin, eso es todo por hoy. Sé que empezamos despacio, pero me parece importante asentar estos conceptos antes de pasar a cosas un poco más complicadas. Espero vuestros comentarios y dudas.

Un saludo:
Manuel Llorens

0 comentarios

Publicar un comentario

Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com