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.
Código: 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.
Código: C
- #include <stdio.h>
- int main()
- {
- int 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/