De cero a C

Iniciado por Khala, Agosto 31, 2014, 12:21:34 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 31, 2014, 12:21:34 AM Ultima modificación: Octubre 23, 2014, 01:06:00 PM por Khala

DISCLAIMER: NO SOY UN EXPERTO EN C. Ni cerca. Soy simplemente un estudiante de Ingenieria en Informatica en la FIUBA al cual desafiaron a realizar esta tarea que van a leer ahora. El desafio fue ir armando una especie de recopilacion / tutorial de lo que voy viendo en la materia Algoritmos y programacion II. Solo me voy a encargar de lo 'practico' la parte teorica la voy a evitar ya que aun no entiendo bien ciertas cosas (Eficiencia de algoritmos, etc). Asi que bueno.. Empecemos :)

Comencemos desde el principio.

1- Qué es C? (Un pequeño recopilado de Wikipedia. Lo va a explicar mejor que yo. Si quieren ahondar: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).

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){
        printf("Hello World!");
getchar();
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;

    printf("Dame el primer numero. ");
    scanf("%d", &a);

    printf("Dame el segundo numero. ");
    scanf("%d", &b);

    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.

Creo que es suficiente para ésta primera entrega. Aún nos falta mucho y, siendo mi primera vez escribiendo un tutorial, tengo mucho que mejorar. En los próximos posts

incluíre imágenes y más links. Ante cualquier duda, manden un mp o.. recurran a google. Todo lo que dije está explicado en más profundidad en otras páginas.

Hasta la próxima. Suerte programando! -Khala :)!

Changelog
v-o.1
Primera entrega.

Buenísimo! De a poco me voy interesando más en C xD
Visita mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Ya en las proximos dias / en esta semana mejoro un poco esta version y agrego condicionales y posiblemente loops! Criticas son bienvenidas

Me encanta la forma en la que explicas todo paso por paso, cosa que en otro tutoriales no hacen, es decir tu explicas lo que cada lines de codigo y su funcion en si. Saludos y sigue asi que de ahora en adelante voy a estar pendiente de tu Tutorial... ;D

buenisimo man, motivado a aprender C, gracias a tu torial, por cierto, cuando es la proxima entrega?  saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
buenisimo man, motivado a aprender C, gracias a tu torial, por cierto, cuando es la proxima entrega?  saludos!
Ya no subira mas clases, fijate que el tema es de 2014, hay muchos cursos en la sección C/C++, puedes buscarte alguno :)
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta