martes, 20 de septiembre de 2011

2. Sintaxis de C (I)

¿Qué necesitas para programar en C?
  • Editor de texto plano.
  • Para escribir el código fuente.
  • Compilador de C.
  • Para traducir el código fuente y transformar el archivo de texto en un archivo ejecutable.
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.
    Si quieres programar en Windows.
Instrucciones
Toda instrucción debe finalizar con el carácter ';'.
Para introducir un valor en una variable se utiliza el operador '='. Ejemplo: nombre_variable = valor;
Los tipos de datos enteros se representan con su número. Ejemplo: 1.
Los tipos de datos letra se representan entre comillas simples. Ejemplo: '1'.
Los tipos de datos decimales se representan separando la parte decimal con un punto. Ejemplo: 1.0.
Nota: Ten en cuenta que para los humanos en los tres casos (1, '1', 1.0) son el mismo dato pero representados de distinta forma. La computadora no lo entiende. Para ella dos tipos de datos distintos no pueden representar lo mismo.

Nombres de variables
Hay restricciones para elegir nombres de variables. No deben coincidir con las palabras clave del lenguaje y deben estar compuestas de "una o más letras ASCII, dígitos numéricos (que en ningún caso deben aparecer como primer carácter) y barras bajas" 1.

Sintaxis de palabras clave
Las palabras clave auto, const, extern, long, register, signed, short, static, unsigned y volatile hacen referencia al ámbito, acceso y opciones especiales de las variables. No las explicaré porque en mi opinión resultarían una complicación innecesaria.

Las palabras clave goto y continue están prohibidas por las técnicas de programación (programación estructurada), por lo que no las explicaré.

Las palabras clave typedef y union tienen relación con struct, pero pueden obviarse sin perder funcionalidad, por lo que no las explicaré.
  • int
  • Reserva espacio en memoria de tipo integer (Número entero). Es obligatorio acompañarlo de un nombre de variable.
int precio_pan;
precio_pan = 1;
  • char
  • Reserva espacio en memoria de tipo character (letra, carácter). Es obligatorio acompañarlo de un nombre de variable.
char precio_pan;
precio_pan = '1';
  • float
  • Reserva espacio en memoria de tipo floating point (Números decimales en coma flotante). Es obligatorio acompañarlo de un nombre de variable.
float precio_pan;
precio_pan = 1.0;
  • double
  • Reserva espacio en memoria de tipo double precision floating point (Números decimales en coma flotante con doble presición). Permite almacerar números con mas dígitos decimales. Es obligatorio acompañarlo de un nombre de variable.
double precio_pan;
precio_pan = 1.0;
  • sizeof
  • Para preguntar cuanto espacio ocupa en memoria un tipo de dato o una variable (da igual si está vacía, el espacio que ocupa una variable es el espacio reservado en memoria). El elemento sobre el que le preguntemos, lo debemos colocar entre paréntesis. El resultado se perderá si no lo guardamos en una variable.
int precio_pan;
int espacio_en_memoria1;
int espacio_en_memoria2;
espacio_en_memoria1 = sizeof(int);
espacio_en_memoria2 = sizeof(precio_pan);
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.
    Si quieres programar en Windows.
  • Bloques de código, void, return
  • Un bloque de código puede contener otros. Puede tener nombre o ser anónimo. Pueden recibir datos (Varios y de distinto tipo) de un bloque y devolverle un valor (pero sólo uno). Las instrucciones se escriben en los bloques de código. Los bloques de código van entre llaves. void se utiliza cuando el bloque no recibe datos y/o no devuelve datos.
Ejemplo de bloque anónimo:
{
 int suma;

 suma = 2 + 2;
}
Nota: No tiene sentido por sí solo. Debe de estar junto a las instrucciones for, if, while.
Ejemplo de bloque con nombre:
int dos_mas_dos(void) {
 int suma;

 suma = 2 + 2;

 return suma;
}

Nota: Las reglas para elegir nombre de bloque son las mismas que para las variables. El primer int significa que devuelve un dato de tipo entero. La palabra void indica ningún dato. Al colocarlo entre paréntesis indica que no recibe ningún dato. La palabra return indica el dato a devolver.
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.
    Si quieres programar en Windows.
  • if, else
  • Mediante una condición, que puede ser verdadera o falsa, permite la selección de un bloque de código entre varios. Cada bloque tendrá una condición, que si es verdadera permitirá que se ejecute. Si queremos que se ejecute un bloque cuando no se haya dado ninguna de las condiciones anteriores, se usa la instrucción else. No es obligatorio usar else.
Ejemplo sin 'else':
int precio_pan;
precio_pan = 1;

if (precio_pan > 1) {
 2+2;
}

Ejemplo con 'else':
int precio_botella_leche;
precio_botella_leche = 1;

if (precio_botella_leche == 1) {
 2+2;
} else {
 2-2;
}
Nota: Recuerda que para expresar igualdad en una condición se usa el operador '==' ya que el '=' se usa para asignación. La instrucción else en este ejemplo sería verdadera cuando 'precio_botella_leche' fuese distinto de 1.
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.
    Si quieres programar en Windows.

  • while
  • Mediante una condición, que puede ser verdadera o falsa, permite la ejecución recursiva de un bloque de código completo. Mientras la condición sea verdadera, se volverá a ejecutar el bloque de código asignado. Si la condición siempre es verdadera, el bloque de código se ejecuta indefinidamente y provoca un error de lógica del programa. Es muy importante asegurarse de que la condición no va a ser verdadera siempre.
int repeticiones;
repeticiones = 2;

while(repeticiones > 0) {
 2+2;

 repeticiones = repeticiones - 1;
}
Nota: Debemos cambiar el valor de la variable 'repeticiones' dentro del bucle para evitar que la condición sea siempre verdadera. Al reducirlo en una unidad por cada repetición, conseguimos que se repita el número exacto de veces que queramos.
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.
    Si quieres programar en Windows.

< Página anterior - Siguiente página >

Referencias
1. http://es.wikipedia.org/wiki/Identificador



Licencia de Creative Commons
Espíritu programador by sergiolindo@gmail.com is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.

2 comentarios:

  1. Hola, Jorge.

    Hay una sección de ejercicios resueltos: http://espirituprogramador.blogspot.com.es/2011/10/6-ejercicios.html

    Si te refieres a que está sin terminar, es por falta de tiempo. Espero poder retomar el blog, pero por ahora no dispongo de tiempo para ello.

    ResponderEliminar