He estado mirando por la red y hay pocos manuales o mejor dicho Cursos de C que valgan la pena y puedas sacar provecho hasta al final, la mayoria sólo te enseñan los inicios y te dejan cuando llegas a una fase en que ya puedes hacer tus programitas basicos.
El objetivo de este Curso es hacer disfrutar al usuario educandole la mente y enseñandole mientras crea sus propios programas. Ademas de que quiero que se lleguen hasta temas dificiles o avanzados.
Soy de los usuarios que les gusta poner nombre a los "textos", "articulos", "manuales", o cualquier cosa hecha, pero tambien me gusta que la gente colabore conmigo y asi hacer un mejor manual comprendido, asi que no me vendria mal si me propones algo, o si añadir tu propio texto. Ya sabes si alguna parte del curso te pierdes o crees que se debe explicar mas detalladamente hazmelo saber y lo extenderé.
INDICE
- ¿QUÉ ES LA PROGRAMACIÓN Y EL C?
- ¿ME CONVIENE UTILIZAR C?
- REQUISITOS
- UN PROGRAMA Y SU ESTRUCTURA
- INTRODUCCIÓN A LAS VARIABLES
- ¿QUE SÓN?
- TIPOS DE VARIABLES
- SINTAXIS Y EJEMPLOS
- INTRODUCCIÓN DE VALORES DESDE EL TECLADO
- OPERACIONES ARITMÉTICAS
- LAS FUNCIONES
- PRIMERA OJEADA
- PASANDO PARÁMETROS
CAPITULO 2
- SENTENCIA IF
- AÑADIR SENTENCIA ELSE (construcción)
- BUCLE FOR (construcción)
CAPITULO 1
- ¿QUÉ ES LA PROGRAMACIÓN Y EL C
La programación es un arte en que se ejercita la mente para cumplir unos objetivos, en los cuales, aparte de nosotros -los humanos- también lo interpretan las máquinas. La programación se basa en códigos. Un código es una serie de instrucciones que aprovecharemos para hacer nuestros programas.- ¿ME CONVIENE UTILIZAR C?
C es un lenguaje de programación de bajo nivel. Imaginemos una pirámide invertida:Código:
__________________________________________
| |
| ALTO NIVEL |
|__________________________________________|
| |
| MEDIO NIVEL |
|__________________________________|
| |
| BAJO NIVEL |
|__________________________|
| |
| ASM |
|__________________|
| |
| 0 1 |
|__________|
Como vemos en la pirámide, C se encuentra en el medio. Eso quiere decir que tiene pocas sentencias (cuanto menos nivel menos sentencias). Aunque C pueda hacer todo lo que queramos, y mucho más que el nivel superior y así sucesivamente con cada nivel.
C es un lenguaje bastante complejo pero que es muy práctico y nos puede servir para multitud de lenguajes, ya que todos ellos son muy similares a él. Ahora bien, si quieres hacer un programa gráfico sin romperte la cabeza, C no es una gran elección ^.^
- REQUISITOS
La verdad es que tiene muy pocos; un editor y un compilador. Si quieres programar para Windows, tienes Borland que es un editor con colores que, además, es un compilador y se llama TurboC. Si quieres programar para Linux, tienes el vim como editor (o emacs) y el gcc (o cc) como compilador.
Vamos a intentar que el curso sea aprovechable tanto para los usuarios de windows como para los linuxeros. Si tenemos que especificar una librería que uno de los dos sistemas no tiene, lo haremos ^.^
- ¿ME CONVIENE UTILIZAR C?
- UN PROGRAMA Y SU ESTRUCTURA
Un programa es el resultado de la compilación del código anteriormente programado. Esto quiere decir lo siguiente:
Primero nosotros con un editor de texto programamos el programa, escribiendo códigos, y después, el compilador lo que hace es crear un ejecutable (.exe, en caso de windows) listo para ser ejecutado (valga la redundancia xD).
La estructura de un programa hecho en lenguaje C, básicamente será esta:Código:*Cabezera
*Declaración de funciones
*Declaracion de variables globales
*Main
*Funciones
¿Qué es la Cabezera?
En C, la información sobre las funciones que vamos a utilizar se encuentran en varios archivos que suministra el compilador. Estos archivos terminan con una extensión .H cuya sintaxis es la siguiente:Código:#include <archivo.h>
Las demas partes del programa ya las iremos viendo a medida que progresamos en el curso.
Vamos a crear un programa con lo que hemos aprendido hasta ahora:Código:#include <stdio.h>
main()
{
printf("Hola Mundo!");
}
Como ya te abras dado cuenta, printf() imprime en pantalla la cadena de caracteres que le ponemos entre " ". Antes de eso hemos visto este segmento que quizás está sonado un poco raro:Código:main() {Esta es la parte principal de nuestro programa, donde nosotros podremos interaccionar con la máquina escribiendo nuestras funciones, etc. Cuando hayamos acabado, cerramos el main con un:Código:} - INTRODUCCIÓN A LAS VARIABLES
- ¿QUÉ SON?
Las variables son posiciones en la memoria donde se guarda un dato, pero para que no te líes imagina una variable como una cajita ^.^ Si por ejemplo queremos que esa cajita contenga un 5 haremos lo siguiente:Código:variable = 5; - TIPOS DE VARIABLES
Antes de empezar, hace falta definir y matizar entre dos clases de variables: globales cuando sirven para todo el programa, o locales cuando están dentro de una función, por ejemplo: main()
Hay varios tipos de variables y cada uno sirve para una cosa distinta. Por ejemplo: no podemos poner una A en una variable numérica.
CHAR tiene 8 bits (1 byte) de longitud y se utiliza normalmente para guardar un sólo carácter. Ejemplo:Código:variable = "a";
INT puede contener números enteros. Una variable entera puede contener rangos desde -32.768 a 32.767. Ejemplo:Código:variable = -5;
FLOAT contiene valores con punto flotante, que pueden tener componentes fraccionarios. Ejemplo:Código:variable = 175.32
DOUBLE es como el Float pero con mucha mayor capacidad. Ejemplo:Código:variable = 1544175871871871547.2454145641841 .... - SINTAXIS Y EJEMPLOS
Para que el programa sepa que una variable existe y además, para que sepa de qué tipo es, se tiene que declarar. Ejemplo:Código:tipo nombre_de_la_variable;
Hagamos un programa con una variable:Código:#include <stdio.h>
main(){
int var;
var = 5;
printf("%d",var);
}
Aquí tenemos otra función nueva, el printf(); Está "raro", vamos a explicarlo: si queremos imprimir en pantalla una variable, en el printf() tendremos que poner lo siguiente:
%d <--- para los enteros (INT)
%c <--- para los caracteres (CHAR)
%f <--- para los puntos flotantes (FLOAD)
%f <--- para los puntos flotantes dobles (DOUBLE)
todo esto entre:Código:“ “,seguido del nombre de la variable. En caso de querer imprimir más de una variable, sus nombres se separan por coma (esto también sirve en la declaración de variables). Ejemplo:Código:#include <stdio.h>
main()
{
int var;
float var2, var3;
var = 5;
var2 = 3.2;
var3 = var + var2;
printf("La suma es: %d + %f = %f",var, var2, var3);
}
Esto imprimirá en pantalla: La suma es: 5 + 3.2 = 8.2
- ¿QUÉ SON?
- INTRODUCCIÓN DE VALORES DESDE EL TECLADO
Los humanos tenemos necesidad de interaccionar con el mundo mediante (basicamente) los ojos, las orejas, y la boca. Un programa tambien. Hasta ahora solo le hemos dejado hablar, despues de la lección ya podrá mirar ^.^Código:scanf();es una funcion que permite recojer datos del exterior del programa, que el usuario introducirá, esos datos iran a parar a una variable, veamos un ejemplo:Código:main()
{
int num;
printf("Porfavor Introduce un numero del 1 al 10");
scanf("%d",&num);
printf("\n El numero elejido es: %d",num);
}
Aqui vemos como declaramos una variable de contenido entero (integer), y despues viene el scanf():
El & es el operador de indirección. Eso significa que si tienes la variable var, &var es la direccion de memoria donde está alojada la variable.
El caso es que scanf recibe punteros (direcciones de memoria) como parámetro, así que eso es lo que tiene que recibir, por lo que se usa el operador &, excepto,claro está, en variables que ya sean direcciones de memoria, com punteros o arrays (el nombre de un array es la dirección de memoria de su primer elemento)
Por eso se hace esto:Código:int var1;
char * var2 [10];
scanf ("%d", &var1);
scanf ("%s", var2);
Esto se hace porque C no admite llamadas por referencia, son todas por valor, por lo que se simulan usando punteros.
Como vemos utilizamos %d, eso es porque lo que queremos extraer es un numero, si hubiesemos querido introducir un caracterer, hubiesemos tenido que poner %c.
Tambien nos fijamos que el printf() tenemos una cosa nueva, el \n es un retorno de carro, asi el programa no nos queda todo junto.
Veamos un ejemplo:Código:#include <stdio.h>
main()
{
int num;
float f;
printf("Introduzca un entero: ");
scanf("%d",&num);
printf("Introduzca un numero en punto flotante: ");
scanf("%f",&f);
printf("%d y %f",num,f);
} - OPERACIONES ARITMÉTICAS
C utiliza unas expresiones que siguen las reglas del álgebra, por lo que la mayoria les serán familiares. En esta sección sólo se verán las expresiones aritméticas.Código:+ ... suma
- ... resta
* ... multiplicación
/ ... división
% ... módulo
Los operadores +,-,*,/ se pueden utilizar con cualquier tipo de datos, sin embargo % solo se podrá usar con tipos enteros. Recordamos que el módulo devuelve el resto de una división entera.
Ejemplo:Código:#include <stdio.h>
main()
{
printf("%d", 5/2);
printf(" %d, 5%2);
printf(" %d, 4*2);
printf(" %d, 4%2);
}
Esto mostrará en pantalla: 2 1 8 0 - LAS FUNCIONES
- PRIMERA OJEADA
Cuando estamos aprendiendo C es normal que hagamos pequeños programas en que la estructura es muy clara, pero a medida que vayamos aprendiendo las cosas se van complicando y el programa se va haciendo mas largo, si soltamos todo el codigo de una parrafada nos puede ser algo costoso se entender.
Por eso se han creado las funciones, para ayudar al programador a hacer los programas. Podemos imaginarnos las funciones como pequeños subprogramas dentro del programa principal (main). Dentro de las funciones se declaran sus propias variables, que solo se podrán utilizar dentro de esa función.
Tenemos un ejemplo:Código:#include <stdio.h>
void prueba(void);
void main(void)
{
int variable1;
char variable2;
printf("Esto es la funcion main(), el 'programa principal'\n");
prueba();
}
void prueba(void)
{
int x=5;
printf("El numero asignado a la variable x es: %d",x);
}
Como ya os habreis fijado, las funciones que creamos nosotros se tienen que declarar antes de que se ejecute el main(). Es inportante llamar la función desde el programa principal (main) ya que si no el programa no entraria en nuestra funcion.
Tambien podemos llamar a una tercera (y cuarta, y quinta...) funcion desde dentro de las funciones o desde el main, vamos a dar un ejemplo:Código:#include <stdio.h>
void funcion1(void);
void funcion2(void);
void main(void)
{
int x=1;
printf("Aquí se imprime la %da parte del programa\n",x);
funcion1();
}
void funcion1(void)
{
int x=2;
printf("Aqui se imprime la %da parte del programa\n",x);
funcion2();
}
void funcion2(void)
{
int x=3;
printf("Aqui se imprime la %da parte del programa",x);
}
- PASANDO PARÁMETROS
Hemos visto ya como trabajan las funciones, más o menos como programas independientes cada una, pero nos puede ser de utilidad (mas de lo que ahora os penseis) intercambiar variables de funciones, tenemos dos maneras de conseguir esto:
* Usando Variables Globales para que nos sirvan para todas las funciones.
* Pasando Parámetros entre funciones y así poder compartirlas.
No es nada dificil hacer esto, pero antes tengo que dar un poco de teoria.
Cuando declaramos una función estamos acostumbrados a poner:Código:void nombre_funcion(void)
pero no sabemos para que sirven los "void"s verdad? La declaración básica de una funcion es asi:Código:parámetros_de_salida nombre_funcion(parámetros_de_entrada)
más o menos estais atando cabos? sigo...
los parámetros de salida pondré la (solo una) variable que quiero que se retorne cuando use return().
y los parámetros de entrada pondremos la/las variables que quiero usar y que me envian desde otras funciones:Código:#include <stdio.h>
int funcion1(int x);
int main(void)
{
int x=5;
int y;
printf("Ahora en 'x' tengo el numero: %d.\n",x);
y=funcion1(x);
printf("Ahora en 'y' tengo el numero: %d.",y);
return 0;
}
int funcion1(int x)
{
x=x+3;
return x;
}
Las cosas se complican poco a poco. Analizemos el codigo:Citary=funcion1(x);lo que hace esto es llamar a la funcion1 y pasarle la variable x, y que el valor de retorno se almacene en y.Citarreturn 0;debemos de saber que la funcion main() al final del programa se tiene que devolver un 0, para decirle que todo ha ido bien, sin problemas, aunque no es obligatorio hacerlo, es recomendado.Citarint funcion1(int x)
{
x=x+3;
return x;
}
Recojo x de la otra funcion, por tanto ni lo declaro en esta..
Le sumo 3 a su valor inicial y envio el valor de return.
- PRIMERA OJEADA
CAPITULO 2
- SENTENCIA IF
La funcion IF es un condicionante, eso quiere decir que nos permite una eleccion. Por ejemplo:
* Si la variable a < 5, printa la variable a.
esto en codigo C seria:Código:if (a<5) printf("%d\n",a);
Una vez visto lo sencillo que es utilizar el if, veremos como anidarlos, eso quiere decir que es una serie de if enlazados, veamos un ejemplo:Código:if ( x>1 ) {
if ( x<10 ) printf(" 'x' esta entre el 2 y el 9\n");
if ( x>9 ) printf(" 'x' es mas grande que 9\n");
}
Podemos ver que si el primer IF no se cumple, los demas no van a ser ejecutados, en cambio si el segundo IF no se cumple se ejecutara el tercer IF.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Feliz Programación
saludos.cokeing
Colaboradores del curso
-Bullhack
-[ZiRuS]
-
[EDIT 11/06/04] He decidido retomar el curso de programación, espero que pueda hacer un buen trozo más ^^.










Autor


En línea






haber si con unos añitos aprendo mas y mejor 


