Página 1 de 18

[Curso] Introducción a la programación en C (II)

Publicado: 08 Oct 2009, 13:18
por m0skit0
<< Anterior Siguiente >>

Aquí que vamos con nuestro primer programa, un "Hola mundo" para respetar las milenarias tradiciones de la programación. Antes de nada, poneos de rodillas y decid:

"Ave Von Neumann por darnos tu arquitectura. Bendito sea Ritchie por diseñar esta delicia de lenguaje con el nombre más sencillo. Que Stallman me bendiga y me dé su interminable sabiduría para crear obras de arte binarias. Puedan los electrones fluir tal y como deseo. Amén"

Lo siguente se aplica cada vez que queramos crear un nuevo programa. ¡Al tajo, pues!

NOTA: no uséis copiar pegar para el código. Copiadlo a mano, que se aprende más porque algo se nos queda ;)

Nuestro primer programa

Linux

Simplemente abrimos el editor de texto que hayamos instalado en el anterior paso. Con esto nos sobra :mrgreen: Escribimos:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   printf("Hola mundo\n");
 
  system("read foo");   
  return 0;
}


No olvidéis dejar una línea vacía al final que sino no le gusta al compilador :lol:

Cread un directorio llamado por ejemplo hola mundo. Guardamos el fichero ahí como hola.c. Veréis que al hacer esto automáticamente aparece el texto coloreado.

Ahora vamos a una consola y arrastramos el directorio hola mundo encima de la consola y soltamos. Veremos cómo aparece la ruta completa de la carpeta en la consola. Pulsamos la tecla Inicio/Home, añadimos un cd seguido de un espacio y pulsamos enter. Ahora si tecleamos el comando ls nos debería aparecer el fichero hola.c.

Tecleamos gcc -o hola hola.c y presionamos enter. No debería dar ningún mensaje. Acto seguido tecleamos ./hola y veremos como aparece en la consola un Hola mundo ;)

Windows

Abrimos Dev-C++ y le damos a Archivo -> Nuevo -> Proyecto. Nos aparecerá una ventana, que tenemos que dejar tal que así:

nuevoproyecto.jpg


Le damos a aceptar. Nos preguntará dónde queremos guardar el proyecto. Os aconsejo que creéis una nueva carpeta para cada proyecto, ya que un proyecto puede tener varios ficheros.

Una vez guardado el proyecto, el aspecto de Dev-C++ será algo como:

holamundo01.jpg


Ahora modificamos el texto (código) de la pestaña main.c para que quede tal que así:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   printf("Hola mundo\n");
 
  system("PAUSE");   
  return 0;
}


No olvidéis dejar una línea vacía al final que sino no le gusta al compilador :lol:

Pulsamos en Compilar y Ejecutar

compilarejecutar.jpg


Después de que desaparezca la ventana de compilación (con una barra que se rellena), debería aparecer una consola de Windows con el mensaje Hola mundo.

Entendiendo (un poco) nuestro primer programa

La versión de Linux y Windows de nuestro programa es prácticamente idéntica salvo la parte de system. Así que voy a usar la versión de Linux y vamos viendo qué significa cada cosa:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>


Las líneas que comienzan con almohadilla (#) son directivas de preprocesado :shock: :? . En este caso, simplemente indican qué ficheros se han de incluír en nuestro proyecto: stdio.h y stdlib.h. Estos (y muchos otros) ficheros nos permiten usar funciones que ya están hechas, así que no hace falta que las volvamos a programar nosotros, como por ejemplo printf(), que los más avispados habrán adivinado que escribe cosas en pantalla ;)

Código: Seleccionar todo

int main(int argc, char *argv[])


Ésta es la famosa función main() de C. Esta función aparece en TODOS los programas en C, porque es la que indica dónde empieza el código. Os hartaréis de ella :lol:

Código: Seleccionar todo

{
   [...]
}


Estas llaves nos indican dónde empieza y acaba una cierta estructura de C, en este caso la función main().

Código: Seleccionar todo

printf("Hola mundo\n");


printf() es una de las funciones más usadas de C. Sirve para escribir algo en pantalla. Concretamente lo que vaya entre las dos comillas dobles: "Hola mundo\n". \n es el carácter de salto de línea.

Código: Seleccionar todo

system("read foo");


La función system() simplemente ejecuta una orden en la consola. Esto evidentemente depende del sistema operativo, y por ello no es igual en Linux/Windows. En este caso, espera la pulsación de Enter (cualquier tecla en la versión Windows).

Código: Seleccionar todo

return 0;


Acaba una función y vuelve al que la haya llamado, devolviendo o no un valor. En nuestro caso, acabamos main(), lo que significa que acabamos el programa y volvemos al sistema operativo, indicando con un valor 0 que el programa ha finalizado correctamente.

Fijaos también que en C, las instrucciones siempre llevan ; al final, salvo cuando llevan {}.

Bueno, espero que os haya interesado. Cualquier duda, estoy a vuestra disposición. Pronto más y por supuesto mejor ;)

EL PDF de esta lección para descargar (gracias a Kracker :oki: ):
leccion II_C.rar


<< Anterior Siguiente >>

Re: [Curso] Introducción a la programación en C (II)

Publicado: 08 Oct 2009, 15:36
por arisma
m0skit0 escribió:Fijaos también que en C, las instrucciones siempre llevan ; al final, salvo cuando llevan {}.



Recordar, y aunque me adelante un poco(con perdon m0skit0) recordad que existen las excepciones y por ejemplo las estructuras(struct) a pesar de terminar en } si lleva ;

Gracias por el curso.

Re: [Curso] Introducción a la programación en C (II)

Publicado: 08 Oct 2009, 16:29
por m0skit0
arisma escribió:las estructuras(struct) a pesar de terminar en } si lleva ;

Cierto, pero no son instrucciones, son declaraciones ;) En todo caso sólo estamos empezando :)

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 09:46
por Rasta
profe me da error:

\hola mundo\Makefile.win [Build Error] [main.o] Error 1

Y no compila ni hace na.

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 09:54
por m0skit0
Yo tengo Windows 2000 y Dev-C++ 4.9 en el curro y compila perfectamente... Si no me das más datos, está difícil que te pueda ayudar.

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 10:31
por Rasta
ok, utilizo el vista.
he probao en poner los archivos a la raiz de HDD y desde ahi compilarlo, pero me pone error al crear el makefile.win

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 10:36
por m0skit0
Comprueba los permisos. De todas formas, mala práctica poner los ficheros en la raíz... Hazte una carpeta en Mis Documentos, hombre :)

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 13:41
por arisma
Rasta escribió:ok, utilizo el vista.
he probao en poner los archivos a la raiz de HDD y desde ahi compilarlo, pero me pone error al crear el makefile.win


Y si no lo de siempre, boton derecho en el ejecutable->ejecutar como administrador.

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 13:44
por m0skit0
arisma escribió:Y si no lo de siempre, boton derecho en el ejecutable->ejecutar como administrador.

No, le da error antes de generar el ejecutable... Es evidente que o bien no tiene permisos, o bien Vista es una mierda como una casa.

Re: [Curso] Introducción a la programación en C (II)

Publicado: 09 Oct 2009, 13:50
por driKton
m0skit0 escribió:bien Vista es una mierda como una casa.


Mucho tardastes en decirlo :lol: :lol: :lol: :lol: :lol: