índice
1 - Introducción
2 - C
3 - Librerías y más funciones
4 - Bloques condicionales y mecanismos de decisión
5 - Acciones repetitivas: bucles
6 - Funciones
7 - Punteros y memoria
8 - Arrays, vectores y matrices
9 - Procesado de texto
10 - Estructuras de datos
11 - Manejo de ficheros
12 - Modularidad: tipos abstractos de datos
1 - Introducción
Cada cierto tiempo alguien entra en el foro con la curiosidad de aprender a programar y no sabe ni por donde empezar. Es algo normal, La información que brinda internet es muy grande, muy desordenada y muy caótica, y con esto añado un poco más de caos, pero esta vez procurando apuntar a las personas que no tienen ni repajolera idea, pero que tiene motivación y ganas de aprender. Espero que el hilo tenga buena acogida y haya gente que se anime a seguirlo, pretendo añadir una lección semanalmente y contar con la ayuda de la gente de /dev, cuyos conocimientos son infinitos :D. Por ser esta la primera entrega La lección viene por duplicado, asi que si teneis unas horas libres y alguna vez habéis sentido curiosidad por el tema, sed bienvenidos.
El lenguaje con el que enseñaré a programar es C. Me parece la decisión más acertada ya que es un lenguaje de propósito general con el que se puede hacer prácticamente todo (algo más dificil que con otros lenguajes, pero práacticamente todo), porque la mayoría de lenguajes modernos heredan gran parte de su sintaxis de C y porque una vez dominado, dar el paso a C++ es coser y cantar, lo cual te deja con una buena base de programación orientada a objetos y por tanto la puerta abierta a lenguajes como java o C#.
En esta primera lección explicaré una serie de conceptos básicos, en qué consiste programar y para que puede servirnos todo esto. Al terminar esta primera parte tendremos nuestro primer programa funcionando de manera que vereis que los inicios son muy sencillos y que cualquiera con ganas puede darle duro a picar código.
Máquinas y programación
Un ordenador Hace muy pocas cosas. Si nos ponemos a enumerar las cosas de las que es capaz de hacer un procesador no tendríamos una lista muy larga. Un procesador puede comparar numeros, sumar numeros y poco más. Entonces como es posible hacer tantísimas cosas siendo usuario? Hamijo, el asunto es que a pesar de hacer muy pocas cosas, el ordenador las hace a una velocidad desorbitada y eso hace posible computar grandes cantidades de datos cada segundo, dando como resultado aplicaciones poco o muy complicadas que usamos cada día.
En lo que se va a explicar a continuación no me meteré a nivel del procesador. Si alguien tiene interés en programar a ese nivel, C no es el lenguaje que buscas, sino ensamblador. C es un lenguaje de alto nivel, esto quiede decir que las operaciones que haga internamente el procesador van a ser transparentes al ojo del programador y con una sola instrucción se van a mandar en realidad cientos o miles de operaciones reales al microcontrolador.
Entonces en que va a consistir nuestra odisea? La idea es escribir como he dicho una serie de instrucciones, en un lenguaje perfectamente entendible por nosotros humanos (código fuente), y convertirlo al único lenguaje que entienden los ordenadores (código máquina). Para ello usaremos un programa llamado compilador. Nuestro compilador se encargará de analizar nuestro código, detectar si tiene errores, y en caso negativo traducir todas nuestras lineas de código fuente en datos válidos para el procesador. Asimismo el compilador construirá un empaquetado que contendrá el programa en un solo fichero ejecutable, en el caso de Windows, un .exe.
A lo largo de este curso aprenderemos casi únicamente con aplicaciones en modo consola (más adelante trastearemos un poco con ficheros). El resultado es más bien poco sorprendente, con esto no vas a hacer juegos en 5 días, pero en cambio aprenderás despacito yu con buena letra a pensar programando, lo cual te ayudará de manera gigantesca cuando tengas las ideas claras, ya sea para programar un juego, una aplicación para PC, o cualquier cosa.
Deberes - Lección 1
Quiero mantener breve esta primera lección y empezar ya con los deberes, porque sí, pondre deberes al final de cada lección :D. Por ser la primera vez tendré piedad y será algo breve. La tarea para hoy es instalar un compilador y compilar vuestro primer programa. El compilador que usaré y os recomiendo usar es el Dev C++ (sirve tanto para C como C++). La razón es sencilla: es una mierda de compilador, muy espartano, muy desactualizado y con poquisimas opciones, perfecto para comenzar. Cuando os sintais confiados podeis dar el salto a otro más completo.
Podeis descargarlo gratuitamente (faltaria mas) desde aqui: http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe
EDIT de ultima hora: El Dev C++ puede dar errores en Windows 8, por lo que si usais este sistema operativo descargaros en su lugar el Dev C++ Orwell. La funcionalidad es exactamente la misma, pero está algo más al día. Podeis descargarlo aqui: http://sourceforge.net/projects/orwelldevcpp/
ACTUALIZACION 2021: El Dev C++ ya estaba en las últimas al escribir esto y ahora está más que obsoleto, en sustitución recomiendo programar C online usando https://www.onlinegdb.com/online_c_compiler, Y si quereis dar el salto a usar aplicación de sobremesa, usad el https://www.codeblocks.org
Mientras se os baja e instala os haré una pregunta inquisitiva. Como llevais los comandos en consola para windows? Si no sabeis de que estoy hablando la respuesta es que mal. Pulsa inicio y escribe 'cmd'. Abre el programa, te presento a tu mejor amigo mientras tengas abierto este hilo. Antes de empezar a programar necesitais dominar al menos los comandos:
cd
dir
cls
pause
Podeis encontrar ayuda escribiendo en la misma consola 'help' seguido del comando que necesiteis, por ejemplo:
help cls
Cuando sepais manejaros fácilmente por los directorios abrid el Dev C++, abrid un nuevo archivo fuente (NO proyecto) y escribid esto:
Está puesto como una imagen deliberadamente por cierto :D. Cuando este todo tal cual guardad el archivo de texto como .c (no .cpp) y compilad el programa.
Si no ha habido problemas (no debería) esto generará un archivo ejecutable en el mismo directorio en el que teneis el .c
Ahora volved a la consola, navegad hasta ese directorio y ejecuta tu programa. Enhorabuena! ya sois programadores! (jajaja me parto)
Nos vemos en la siguiente entrega que sera dentro de 30 segundos cuando se me quite el cooldown de mensajes