De cero a C
Comencemos desde el principio.
1- Qué es C? (Un pequeño recopilado de Wikipedia. Lo va a explicar mejor que yo. Si quieren ahondar:
http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n) ).
C
es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en
los Laboratorios Bell. es un lenguaje orientado a la implementación de
Sistemas Operativos,
concretamente Unix. C es apreciado por la
eficiencia del código que produce y es el lenguaje de programación más
popular para crear software de sistemas, aunque
también se utiliza para crear aplicaciones.
C
es un lenguaje compilado. Qué significa esto? Que nosotros nos vamos a
encargar de escribir el código, otro programa llamado compilador va a
tomar ese codigo, y nos
va a dar nuestro programa ejecutable. No
es tan simple como lo describo pero es lo que hay que saber. Existen
otros tipos de lenguajes, por ejemplo los interpretados,
que no son compilados, sino que son 'interpretados' por otro programa. Ejemplo, Python.
Insisto, para detalles mas especificos, buscar en google o ver el link de wikipedia.
2- Introduccion a C.
#include <stdio.h>
/* Programa que imprime "Hello world!" en consola. */
int main(void){
-
-
return 0;
}
El
primer programa el cual en mi opinión todo programador nuevo debería
escribir, en el lenguaje que desea aprender, es el clásico hola mundo.
Y, como es habitual,
vamos a ver línea por línea que hace cada
instrucción, obviamente, hay cosas que aún no se van a entender, pero
con el tiempo va a ser algo común.
1- #include <stdio.h>
Ésta
es una de esas lineas que al principio no se entienden muy bien. Pero
veamos. Hay mucha funcionalidad de C que no esta incluida en todo
programa que uno escriba,
pero sí esta agrupada en archivos
llamados "librerías". Éstas librerias poseen la extensión .h y, al
momento de incluírlas en nuestro programa deben escribirse entre <
>
como muestra el programa arriba. (Algunos ejemplos serian, stdio.h
-Standard Input Output, stdlib.h -Standard Library, entre otros). Más
adelante cuando aprendamos
más, vamos a poder hacer nuestrar
propias librerías y agregar o usar modificaciones funcionales. Es mejor
no ahondar mucho en este tema ahora, en un futuro no muy
lejano va a tener mucho mas sentido. Sigamos!
2- /* Programa que imprime "Hello world!" en consola. */
Ésto
es un comentario. Los comentarios son lineas o mejor dicho, porciones
de 'código' que no va a ser compilado. Son a la vez algo que no tiene
uso, y algo muy
importante. Paso a explicar por qué y
probablemente muchos no esten de acuerdo. No tiene uso. Por qué? Porque
no es algo que el compilador (como dijimos arriba) vaya a
tomar en cuenta a la hora de ensamblar nuestro programa.
Ahora,
si son algo que no van a ser tomado en cuenta, por qué son algo
importante? Simple. Nuestro código, eventualmente, va a ser leído por
otras personas. O incluso
por vos mismo en 6 meses cuando reveas
cosas que ya has escrito. Los comentarios ayudan a documentar, y dar a
entender qué estabas pensando, por qué hiciste algo de
cierta
forma, como funciona cierta u otra parte del código, etc. Es lo que
permite o ayuda que alguien que no sabe que estabas haciendo, pueda
entender que hace tu
programa.
Creeme que si 2 personas
escriben el mismo código. Uno que sabe toneladas de programacion y otro
que apenas se defiende, y, el que sabe mucho no agrega comentarios, y
el
otro si.. Adivina qué codigo podrás entender con mayor facilidad? El
documentado o el no documentado? El del experto o el del novato?
3- int main(void) {
Hay
2 cosas que decir sobre esta línea en particular. La funcion main es el
punto de entrada de tu programa, es decir, el mismo empieza con main.
Por ahora es todo lo
que hace falta saber. Todo programa tiene
una funcion main, siempre se escribe igual (por ahora). Lo segundo, la
llave ({). Las llaves en C determinan bloques de
código. Siempre
que se abra una llave, se cierra en otro lado. Muchos errores bizarros
pueden saltar a la hora de compilar si uno olvida cerrar una llave.
4- printf("Hello World!");
La
funcion printf pertenece a la libreria stdio.h y es precisamente es la
que "imprime" texto a la pantalla. La cantidad de funcionalidad que
ofrece printf (print
format) es demasiado grande, y no es el
punto de este post ahondar demasiado en ella. Lo que es necesario saber:
En loss parametros de printf (Lo que va entre
paréntesis) es lo que será escrito. No desesperen, ya veremos funciones bien en otro momento.
5- getchar();
Otra
funcion que veremos en detalle más adelante. Ésta te dejo que averigües
su funcion en nuestro programa a vos mismo. Intenta compilar y correr
el programa (el
ejecutable) con y sin ella y veras por qué razón la incluímos.
6- return 0;
Nuestro
programa es básicamente 'llamado' por el sistema operativo cuando lo
corremos. La mayoría de las funciones devuelven valores, por ejemplo. Si
escribiéramos una
funcion suma(a,b), la idea sería que sume los
números a y b y devuelva el valor de dicha suma. Main es una función
particular, ya que, devuelve 0 siempre que no haya
problemas. Si surgiera algún error, devolvería otro valor distinto de 0. Una vez más, se verá mas adelante.
7- }
Como dijimos, todos los bloques de código empiezan y terminan con llaves.. Y main no es la excepción.
Bien.
Si me seguiste hasta acá y no saliste volando de la PC a estudiar
cocina o diseño de interiores, logré mantener tu atención y/o interés lo
suficiente. Quedate un
poco más!
Variables
¿Qué
es una variable? Una variable es básicamente, un 'espacio' de memoria en
el cual nosotros guardamos un valor para usarlo luego.
Digamos
que queremos hacer un programa que tome 2 números, los sume,y muestre su
valor en pantalla. Necesitaríamos pedir 2 valores al usuario y
guardarlos en algún
lado para poder hacer la cuenta luego. Con eso. Sigamos.
#include <stdio.h>
int main()
{
int a,b;
printf("Dame el primer numero. ");
-
printf("Dame el segundo numero. ");
-
printf("El resultado de la suma es: %d", a
+ b
);
return 0;
}
Este
programa hace exactamente lo que pedimos. La línea int a,b; es la
declaración de variables. Para declarar variables, C necesita saber de
que tipo son, para poder
asignarle la memoria necesaria. Claro,
no es todo lo mismo. No es lo mismo guardar una letra, que un número
entero, o que un numero con coma y 15 decimales, por decir algo exagerado.
Algunos
de estos tipos son: int (integer, enteros), char (Character,
caracteres), float (punto flotante, los numeros decimales con coma)
entre otros. En otro post
vamos a ver mas en detalle todos los tipos de variables.
Por
último, para terminar de entender el programa de arriba, la función
scanf es prácticamente la hermana de printf. Printf muestra, scanf
recibe informacion de un
método de entrada, en general el
teclado. Se usa de esta forma: scanf("%tipo", &variable en la que se
guardará el dato). El %tipo depende de qué es lo que se guardará,
en este caso, d para 'decimal'. Algunos de estos tipos serian, %d para int's, %f para float's y %c para char's.
Autor: Khala
Post de debate: http://underc0de.org/foro/c-c/de-cero-a-c/