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

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

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

Mensaje 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 >>
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

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

Mensaje 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.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

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

Mensaje 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 :)
Imagen

Avatar de Usuario
Rasta
Experto
Experto
Mensajes: 811
Registrado: 03 Sep 2009, 12:28

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

Mensaje por Rasta »

profe me da error:

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

Y no compila ni hace na.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

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

Mensaje 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.
Imagen

Avatar de Usuario
Rasta
Experto
Experto
Mensajes: 811
Registrado: 03 Sep 2009, 12:28

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

Mensaje 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

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

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

Mensaje 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 :)
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

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

Mensaje 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.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

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

Mensaje 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.
Imagen

Avatar de Usuario
driKton
Moderador
Moderador
Mensajes: 1099
Registrado: 04 Sep 2009, 14:30
PSN ID: DarkCarlx10
Steam ID: drikton
Twitter: driKton
Ubicación: Santa Cruz de Tenerife
Contactar:

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

Mensaje por driKton »

m0skit0 escribió:bien Vista es una mierda como una casa.


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

Responder