Aprendiendo C (1ra. parte)
2007-10-23 13:12:26-05
Software
Bueno, hace un tiempo, le preguntaban a Thot sobre un curso "Basico" de programación en C, reconozco la autoridad de el en este campo, pero el esta acostumbrado a tratar temas mas interesantes y avanzados, como los que muestra en su pagina. Asi que en un pequeño interés por aportar algo, agrego este pequeño apartado al blog, iniciaremos con asuntos muy básicos y el objetivo del curso es que los que hagan los ejercicios y practiquen puedan después entender programas mas complejos como los que Thot presenta. Requiero mucho su critica para este trabajo, para mejorarlo,esperando que le sirva a alguen.
Aqui unos pequeñas cosas a tener en cuenta cuando programas en cualquier Lenguaje
"La computadora hace lo que tu le dices que haga, No lo que tu quieres que haga"
"Toda entrada del usuario es estupida o maliciosa, hasta que se demuestre lo contrario"
"Reutiliza codigo, usa las bibliotecas"
"Corrige siempre el primer error que te muestra el compilador, puede resolver los siguientes"
"Enseña tu codigo, mejoraras mucho con la critica"
y
"La unica manera de aprender un lenguaje de programación es programando en el"
"Toda entrada del usuario es estupida o maliciosa, hasta que se demuestre lo contrario"
"Reutiliza codigo, usa las bibliotecas"
"Corrige siempre el primer error que te muestra el compilador, puede resolver los siguientes"
"Enseña tu codigo, mejoraras mucho con la critica"
y
"La unica manera de aprender un lenguaje de programación es programando en el"
Así que iniciaremos, como debe de ser, con lo primero,estableceremos un método de trabajo, lo primero que necesitaremos invariablemente es un compilador de C, yo uso GCC (GNU Compiler Collection), tal vez aquí tengamos algún problema, para los que Usen Debian / Ubuntu:
$sudo apt-get install binutils gcc
Estos son los paquetes mas básicos, si tu distribución no es alguna de estas dos, solo instala estos paquetes, tambien puede ser que uses Sistema Operativo (coff coff Win2) el Devcpp te vendría muy bien para nuestros menesteres, aunque nuestra recomendación es instalar o probar algún SO libre, si no te interesa instalar otro SO puedes probar con un LiveCD como Knoppix.
Ahora que la instalación mas recomendable es con el metapaquete build-essentials
Ahora que la instalación mas recomendable es con el metapaquete build-essentials
$sudo apt-get install build-essentials
Aprenderemos a usar gcc (coff*coff* Solo para compilar en C)
La sintaxis es sencilla
$gcc NombreArchivo.c
Esta nos entregara un ejecutable de nombre "a.out", ademas el archivo debera tener extension ".c", La siguiente forma es mas completa
$gcc -o NombreEjecutable NombreFuente.c
Ok, esto devuelve un archivo ejecutable con el nombre especificado.
Ahora necesitaremos un editor de texto plano, este puede ser VI(M), nano, gedit, jedit o cualquier otro que edite texto plano, yo uso nano, aunque hay gente que preferira usar alguna IDE como DevCpp (Win2) o Anjuta(*nix),estos no necesitan de dicho editor de texto plano.
Ya con esto podemos empezar, Asi que escribiremos nuestro primer programa El Famoso "HOLA NENA". En nuestro editor favorito (o la ide) y escribimos lo siguiente:
#include <stdio.h>/*Biblioteca con funciones para la entrada y salida Estandar*/
int main() //inicia la funcion principal
{
printf("¡HOLA NENA! \n");/*escribimos "¡Hola Nena!" en la salida estandar*/
return 0;
} /*Fin de la función principal*/
int main() //inicia la funcion principal
{
printf("¡HOLA NENA! \n");/*escribimos "¡Hola Nena!" en la salida estandar*/
return 0;
} /*Fin de la función principal*/
La linea que contiene #include es una directiva del compilador que indica que abra funciones de esa biblioteca y que el compilador tiene que ir a buscarlas en dicha biblioteca.
La linea que indica int main() esta definiendo una función llamada main que no recibe argumentos "()" y que devuelve un entero "int", todos los programas en C tienen una funcion main que es la que se ejecutara primero y en su cuerpo puede tener llamadas a otras funciones.
Las llaves"{}" indican los limites de la función, también son usadas para indicar el cuerpo de ciclos o acciones.
printf("¡HOLA NENA! \n"); es un función definida en la libreria estándar stdio.h, esta función escribe su argumento (con algún o ningún formato) en la salida estándar, en nuestro caso el monitor, pero lo podemos cambiar, después veremos como. Nota el carácter '\n' indica nueva linea, y que la instrucción termina en punto y coma (;),es importante,pues muchos errores de sintaxis son por no escribir el punto y coma que indica el fin de la instrucción.
return 0; indica una terminación exitosa del programa,un retorno distinto a cero,indicara al SO algún error dentro de la ejecución del programa.
el uso de "//" y "/* hola*/" son para los comentarios,el compilador omitira el linea marcada con // e ignorara lo que este entre /* y */, los comentarios son importantes para la documentación y para hacer el codigo mas legible. ademas se puede agregar el preámbulo GLP, BSD, MIT, ETC, para licenciar tu trabajo,y esto se hace entre comentarios.
La linea que indica int main() esta definiendo una función llamada main que no recibe argumentos "()" y que devuelve un entero "int", todos los programas en C tienen una funcion main que es la que se ejecutara primero y en su cuerpo puede tener llamadas a otras funciones.
Las llaves"{}" indican los limites de la función, también son usadas para indicar el cuerpo de ciclos o acciones.
printf("¡HOLA NENA! \n"); es un función definida en la libreria estándar stdio.h, esta función escribe su argumento (con algún o ningún formato) en la salida estándar, en nuestro caso el monitor, pero lo podemos cambiar, después veremos como. Nota el carácter '\n' indica nueva linea, y que la instrucción termina en punto y coma (;),es importante,pues muchos errores de sintaxis son por no escribir el punto y coma que indica el fin de la instrucción.
return 0; indica una terminación exitosa del programa,un retorno distinto a cero,indicara al SO algún error dentro de la ejecución del programa.
el uso de "//" y "/* hola*/" son para los comentarios,el compilador omitira el linea marcada con // e ignorara lo que este entre /* y */, los comentarios son importantes para la documentación y para hacer el codigo mas legible. ademas se puede agregar el preámbulo GLP, BSD, MIT, ETC, para licenciar tu trabajo,y esto se hace entre comentarios.
Ahora hay que guardarlo con terminación .c digamos que nombre el archivo "nena.c"
con gcc:
$gcc -o nena nena.c
Ejecutamos con:
$./nena
nota: Esta forma de ejecutar sirve en BASH y KSH, que son las shells que yo uso.
Si usamos alguna IDE, existirá alguna opción rápida de compilar y ejecutar en la barra de herramientas, ademas si usas devcpp es posible que se te abra y cierre muy rápido una ventana de DOS y no te permita ver el resultado de tu programa, asi lo mas facil es agregar una llamada al sistema system("PAUSE"); antes de return 0;
Bueno hasta aqui hemos visto:
1.-Algunos consejos de programacion.
2.-Que necesitamos para empezar a programar en C.
3.-Como usar gcc para compilar programas escritos en C.
4.-La estructura basica de un programa en C
5.-Ejecucion de nuestros programas escritos en C.
Permalink: http://www.mononeurona.org/users/entry/vendaval/872
Comentblogs:1.-
alucard_thot wrote:
:) gracias por lo comentarios (los tomé como cumplidos).
Y sí he puesto algunas cosas "avanzadas" en mi blog (pero no creo que lo sean tanto) porque esperaba que algún visitante ayudara a explicar los temas sencillos. (Que personalmente no tengo tanto tiempo para redactar un cursito tan básico), a petición de SaidJose empecé a poner lo básico de C (:P cómo compilar). Pero pues no he podido continuar con el "Hola mundo..." (porque estoy preparando unos talleres).
http://mictlan.utm.mx/~thot/jaws/html/index.php?page/iniciarC
Me agradaron los primeros consejos de programación. Y pues espero sea bajo licencia "Creative Commons" :P para poder agregar algo de lo que pongas en tu curso en mi página.
2007-10-23 16:54:19-05
:) gracias por lo comentarios (los tomé como cumplidos).
Y sí he puesto algunas cosas "avanzadas" en mi blog (pero no creo que lo sean tanto) porque esperaba que algún visitante ayudara a explicar los temas sencillos. (Que personalmente no tengo tanto tiempo para redactar un cursito tan básico), a petición de SaidJose empecé a poner lo básico de C (:P cómo compilar). Pero pues no he podido continuar con el "Hola mundo..." (porque estoy preparando unos talleres).
http://mictlan.utm.mx/~thot/jaws/html/index.php?page/iniciarC
Me agradaron los primeros consejos de programación. Y pues espero sea bajo licencia "Creative Commons" :P para poder agregar algo de lo que pongas en tu curso en mi página.
2007-10-23 16:54:19-05
2.-
vendaval wrote:
claro, no he querido cambiar la imagen del blog, (pero todo el material esta licenciado bajo mononeurona commons a menos de que diga lo contrario) pero todo el trabajo esta a libre disposicion Thot, saludos.
2007-10-23 19:22:43-05
claro, no he querido cambiar la imagen del blog, (pero todo el material esta licenciado bajo mononeurona commons a menos de que diga lo contrario) pero todo el trabajo esta a libre disposicion Thot, saludos.
2007-10-23 19:22:43-05
3.-
alucard_thot wrote:
Sobres pues ahora que tenga tiempo y continúe el cursito (creo que tomaré algunos detalles que me gusten de lo que escribas). Está bien que se inicien este tipo de trabajos. Saludos.
2007-10-23 19:36:32-05
Sobres pues ahora que tenga tiempo y continúe el cursito (creo que tomaré algunos detalles que me gusten de lo que escribas). Está bien que se inicien este tipo de trabajos. Saludos.
2007-10-23 19:36:32-05
4.-
alucard_thot wrote:
Nada más como comentario, aunque ese error lo cometo yo también frecuentemente (por razones de costumbre) "librerías" está mal usado el término, debe ser "bibliotecas". Es problema de una mala traducción del inglés, y que a veces nos transmiten esos "malos vicios" :P. Saludos.
2007-10-23 19:39:28-05
Nada más como comentario, aunque ese error lo cometo yo también frecuentemente (por razones de costumbre) "librerías" está mal usado el término, debe ser "bibliotecas". Es problema de una mala traducción del inglés, y que a veces nos transmiten esos "malos vicios" :P. Saludos.
2007-10-23 19:39:28-05
5.-
asimov wrote:
Que bueno que se hagan estos pequeños cursos basicos que sirven de mucho a gente como yo, que le gustaría aprender a programar.
Ya comencé a hacerlo y empiezo con el primer error al querer ejecutar el script
Intenté esto:
$./nena
bash: ./nena: No existe el fichero o directorio
$sh nena.c
nena.c: 3: Syntaxis error: "(" unexpected
$./nena.c
./nena.c: line 3: error de sintaxis cerca de token no esperado '('
Agradecería si me comentaras que pasó aquí, gracias.
2007-10-24 01:07:26-05
Que bueno que se hagan estos pequeños cursos basicos que sirven de mucho a gente como yo, que le gustaría aprender a programar.
Ya comencé a hacerlo y empiezo con el primer error al querer ejecutar el script
Intenté esto:
$./nena
bash: ./nena: No existe el fichero o directorio
$sh nena.c
nena.c: 3: Syntaxis error: "(" unexpected
$./nena.c
./nena.c: line 3: error de sintaxis cerca de token no esperado '('
Agradecería si me comentaras que pasó aquí, gracias.
2007-10-24 01:07:26-05
6.-
asimov wrote:
Disculpa mi torpeza, ya comprendí que necesitaba compilar primero antes de ejecutar. Errores de principiante.
2007-10-24 01:14:37-05
Disculpa mi torpeza, ya comprendí que necesitaba compilar primero antes de ejecutar. Errores de principiante.
2007-10-24 01:14:37-05










