Menú principal

Manual de C

Publicado por dhararon, Junio 19, 2008, 12:38:44 PM

Tema anterior - Siguiente tema

dhararon

Introduccion:


¿Que es C?

Bueno, creo que antes de empezar con el manual y explicar códigos y demás... es mejor comenzar sabiendo un poco sobre C:

C es un lenguaje de programación orientado a objetos, que nos permite hacer, desde el mas sencillo programa, hasta programas de cualquier índole y complejidad (jeje, creo que me quedo bien la palabra indole xD).


Bueno, con esto es suficiente... pues tampoco vamos a entrar en detalles sobre eso...

Pasemos a la acción....

Comencemos!!!

Para ir entrando en calor y descargando cosas, empezare diciendo lo que es necesario para programar en C++.

A parte de tu cuerpo y cabeza libres de todo mal royo, y de un PC medianamente normal... necesitaremos un compilador de C++ que podréis encontrar gratis (como por ejemplo el Dev C++) u otros de paga como el Imprise C++.

En este manual utilizare el compilador Dev C++:

(Si quieren saber acerca de que es un compilador, pues lean acá)

Podéis bajar el compilador, directamente de la web de los autores del entorno:
http://www.bloodshed.net/devcpp.html
o sino lo bajan de este enlace: http://www.4shared.com/file/29094792/3eb6f91d/devcpp-4992_setup.html ,está 100% limpio..

Una vez descargado, lo instalan y lo ejecutan.

Les aparecerá algo así...





Vamos a Archivo y seleccionamos la opción Nuevo código fuente

Les aparecerá en pantalla, un espacio en blanco donde podrán ir escribiendo.

Pues nuestro primer programa sera, el tan famoso "hola mundo" así que para ello copian el siguiente condigo:
Citar
#include<stdio.h>
#include<stdlib.h>

main()
{
printf("Hola mundo");
system("pause>nul");
}

Lo que realizará este código, será mostrar en pantalla el texto "hola mundo"

Así que van al Menú Ejecutar y seleccionan compilar y ejecutar o solo Compilar pero en ambos casos les pedirá que elijan un sitio donde guardarlo...

Cuando lo compilen, se les creara un archivo .exe y otro .cpp que nos servirá para que cuando cerremos el dev c++ podamos abrirle y tener el código del programa para poder verlo, hacer modificaciones ... etc...

Con respecto al código, vamos a explicar un par de cosas...


----------------------


#include sirve para referir las bibliotecas de funciones que vamos a usar...

el modo de empleo es #include <nombre_librería>


----------------------


La función main es imprescindible en cualquier programa C/C++ representa el punto de inicio de su ejecución. Por lo general, su declaración adopta la forma:

int main


----------------------


printf("Hola mundo");   es  la   instrucción que muestra datos en la pantalla, para este caso nos muestra la cadena entre comillas: Hola mundo.

La instrucción printf(""); va dentro de la libreria stdio.h   y sirve para ver lo que se va a imprimir en la pantalla.

system("PAUSE"); nos es útil para llamar a la opción pause del sistema (msdos) que para los que sepan sobre batch, seria como poner pausa en un código, de esta manera no observamos una ráfaga de datos imparable que nose pueda comprender... 

y  con  >nul  sirve para que se pause y no diga:  "presione una tecla para continuar"

y por último...
}

La llave de cierre de la función main() indica el termino del bloque de instrucciones.

Y una última cosa para terminar...

Pueden utilizar las barras // para introducir un comentario en el código, pero que no sera mostrado ni afectara para nada a la hora de ejecutarlo...
Seria igual que usar el comando rem en batch.


explicación desde cero sobre tipos de datos


Los diferentes tipos de datos sirven para que el computador sepa con que tipos de datos desea trabajar, ya sea con números, números con decimales, letras, etc.

Existen varios tipos de datos con los que se trabaja en C.
Tenemos los mas comunes que son:


int          ------> Tipo de dato ENTERO desde el -32767 hasta el 32767
long int  ------> Tipo de dato ENTERO pero más largo desde el -2.147.483.647 hasta el 2.147.483.647. 
float       ------> Tipo de dato numerico con decimales {0.1, 2.9, etc}, desde el 3.4*e-38 hasta el 3.4*e38
double    ------> Tipo de dato numerico con decimales pero con rangos más grandes, desde el 1.7*e-307 hasta ek 1.7*e308
char        ------> Tipo de dato caracter {a, b, c....}


Cuando declaramos en el lenguaje C algun tipo de dato, el compilador reserva en memoria RAM los bytes necesarios para guardar ese dato.


Explicacion desde cero sobre identificadoreS:


¿Que es un identificador?


Los identificadores son los nombres que se le asignan a las variables para poder "identificarlas en el programa". Una variable, es un espacio reservado en memoria que "varia" su valor.

Por ejemplo, declaro una variable donde se guardara el resultado de una suma. Sería algo asi:

CitarCódigo:
int suma;

int     ---> tipo de dato númerico, ya que si quiero guardar un resultado de una suma, normalmente es ENTERO.
suma --> Es el nombre de la variable pero de tipo numérico por el int.

CitarCódigo:
float suma;

float   ---> Tipo de dato con coma flotante (decimales), si escribo float, el resultado de la suma me va a dar con decimales
suma  ---> Es el nombre de la variable pero de tipo numérico con decimales por el float.

CitarCódigo:
char suma;

char ---> Tipo de dato de caracteres, aqui no podriamos realizar operaciones matematicas ya que la variable suma, no seria considerada como un numero, si no que como una letra, mas adelante veremos esto con más profundidad.


Si nos damos cuenta, la variable suma no tiene ningun valor, ya que supuestamente cuando se realice la suma, la variable tomará el valor del resultado, cierto?

Pero tambien se puede cambiar esto, si yo quiero que un valor se inicialice en un número, perfectamente se podría hacer:

CitarCódigo:
int x=5
int y=10

entonces, si por ejemplo quiero sumar 5+10 en C, el código sería el siguiente:

CitarCódigo:
int x=5;
int y=10;
suma=x+y;

o más simple todavía:

CitarCódigo:
suma=5+10;
*Toda linea de código debe terminar con un punto y coma ( a excepción de algunos casos que veremos más adelante.)

Librerías:

Las librerías, son unos ficheros que contienen el código objeto de muchos programas que nos permiten hacer cosas como escribir en pantalla, manejar numeros, leer el teclado, hacer operaciones matemáticas... etc.
Existen librerias de entrada y de salida, de manejo de memoria, de manejo de texto, matemáticas....

Un conjunto de librerias especiales son las ANSI que se incluyen con todos los compiladores de C y C++ y despues existen otros tipos de librerias publicas, y otras de distribución comercial, aunque las que trataremos principalmente son las ANSI.

Segun vallamos desarrollando el manual, iran entendiendo mejor como usar las librerias, asi que no se preocupen.


Tipos de errores:


Al crear un codigo, podemos cometer errores a la hora de codearlo, ya sea por despiste error de escritura etc...
Estos errores, los podemos clasificar de distintas formas:


AVISOS: Los avisos (Warnings) son errores que no son lo suficientement e graves para impedir la generacion de codigo objeto, pero es combeniente correjirlos, ya que puede dar confusion al compilador, a la hora de ejecutar el programa, y puede tomar decisiones las cuales nosotros no teniamos en mente a la hora de programarlo.


ERRORES DE SINTAXIS: Estos errores se detectan en la fase de compilacion, y nos dara una lista de errores de sintaxis, los cuales, pueden haber sido ocasionados por expresiones incompletas o erroneas, que ayamos escrito algo mal... etc.


ERRORES A LA HORA DE EJECUTAR: Existen ocasiones, en las que una nez creado el ejecutable, a la hora de ejecutarlo, se cierra de forma brusca devido a algun error. Este tipo de fayos son los mas dificiles de localizar, pero existen unos programas auxiliares llamados debuggers (depuradores) que inspeccionan el programa paso a paso, comprovando las variables... etc


Bueno, espero que esto les hay aclarado algo mas las cosas antes de continuar...

ASIGNACIONES DE VALORES.

Una asignación quiere decir que "entrego" un valor a una variable determinada. En lenguaje C esas asignaciones se hacen de derecha a izquierda, ya que al revés nos saldrá error.

ejemplos buenos:

a=5 //el valor 5 se guarda en la variable a
a=b //el valor de b se guarda en la variable a.

ejemplos malos:

5=a;
a+b=c;

si nos fijamos, los ejemplos malos tienen lógica, pero en lenguaje C eso no existe.

----------------------------------------------------------------------------------------------------------------------------

IMPRIMIR DATOS POR PANTALLA.

En lenguaje C existe una función llamAda printf que quiere decir "imprimir de first y primero de f (printf)"

¿El primero que?
El primer dispositivo de salida que en este caso es el monitor.

Sintaxis: printf("texto");

Veamos un ejemplo:

Pasaré a explicar el código.

#include <stdio.h>
#include <stdlib.h> -- Son las librerias con las funciones necesarias para que funcione el programa, en este caso la stdio para el printf y la stdlib para el system("pause")

int main() -- Funcion principal.

printf("Esto es una cadena de texto\n"); -- La funcion printf imprimirá en la pantalla todo lo que tenga entre comillas. Lo que se añade, el "\n", quiere decir salto de línea.

system("pause"); -- Simula una instruccion del MS-DOS que en este caso es pause para que puedas visualisar lo que hay en pantalla. Prueba sin esta funcion y te aclararás más.

imprimirá lo siguiente:

----------------------------------------------------------------------------------------------------------------------------

SECUENCIAS DE ESCAPE

Tambien existen secuencias de escape, son como complementos a la funcion printf.

Las secuencias son las siguientes:

\a - Sonido audible
\b - Retroceso
\n - Salto de linea
\t  - Tabulacion

Su utilizacion es dentro dela funcion printf, solo prueben y veran de que les hablo, ya que es mejor aprender haciendo.

----------------------------------------------------------------------------------------------------------------------------


La funcion printf también puede imprimir variables y operaciones despues del cierre de comillas y separados con una coma con el signo % (porcentaje) y la inicial del tipo de dato,a continuación se muestra más claramente si no entendiste:

printf("la variable es %i", a);

suponiendo que la variable a es de tipo entero (int) se imprimirá el valor de dicha variable.

Veamoslo de una manera mas completa:

Explicación del código:

declaro las librerias correspondient es y luego dentro del main, declaro la variable a como tipo de dato entero, en este caso, le asigno el valor de 5.

Luego la imprimo con el símbolo %i, su inicial es i porque el dato es INT.

Se imprimirá lo siguiente:

Veamos otro ejemplo pero con otro tipo de dato:

En este caso para exactamente lo mismo, pero ahora es %f debido a que el dato es de tipo float, es decir, de coma flotante (con decimales).

Se imprime lo siguiente:

----------------------------------------------------------------------------------------------------------------------------

Tambien se puede imprimir mas de una variable, tan solo hay que separalas por comas para diferenciarlas .

printf("la variable a es %i y la variable b es %i", variable1, variable2);

el primer %i pertene a la variable variable1 y el segundo %i pertenece a variable 2

----------------------------------------------------------------------------------------------------------------------------

IMPRIMIENDO OPERACIONES.

Otro de tipo de operaciones puede ser imprimir operaciones como sumas, restas, multiplicacion es y un sinfin de cosas que mas adelante veremos.

veamos un ejemplo:


Si podrán darse cuenta, declaro a y b con valores iniciales y luego los sumo, tan solo imprimo su resultado como %i, ya que el resultado es un entero.

Se imprime lo siguiente:

----------------------------------------------------------------------------------------------------------------------------

PRIXIMO CAPITULO, LEER DATOS POR TECLADO.






cazador.asesino

#1
Continuando con este manual:

Uso de printf: En el siguiente programa se verá el uso del printf para dar formato a un texto.

- /**
*  NombreProg: Uso_básico_printf
*  Comentario: Aquí veremos como dar formato al texto mediante el uso de la orden printf
*  Autor: Cazador Asesino
*/

#include <stdio.h>
#include <stdlib.h> //Permite el uso de system

const float PI = 3.141598; //Indica el uso de una constante de tipo real
int main()
{
   printf("Posiciones...\n");
   printf("|123456789012|\n\n");
   printf("|%10.5f|\n", PI);
   printf("|%-10.5f|\n", PI);
   printf("|%010.5f|\n", PI);
   printf("|%10.6f|\n", PI);
   
   long int A = 99999, B = 12345;
   printf("\nPosiciones...\n");
   printf("|123456789012|\n\n");
   printf("|%d|\n", B);
   printf("|%10d|\n", B);
   printf("|%010.5d|\n", B);
   printf("|%-10d|\n", B);
   printf("|%10Ld|\n", A);

   printf("\nPosiciones...\n");
   printf("|12345678901234567890|\n\n");
   printf("|%s|\n", "!Hola Que Tal!");
   printf("|%20s|\n", "!Hola Que Tal!");
   printf("|%-20.18s|\n", "!Hola Que Tal!");
   printf("|%+20.14s|\n", "!Hola Que Tal!");
   system("PAUSE");
   return 0;

   system("PAUSE");
   return(0);
}





Como se ve en la imagen:

--> printf("|123456789012|\n\n");
    Nos da una guía de las posiciones, para una mejor explicación

--> printf("|%10.5f|\n", PI);
    El %10.5f nos indica que el texto va en 10 posiociones, de las cuales 5 son para los decimales, esto se alinea a la derecha por defecto

--> printf("|%-10.5f|\n", PI);
    A diferencia de la anterior el negativo le indica que el texto se ubique a la izquierda

--> printf("|%010.5f|\n", PI);
    El cero le indica que complete los espacios vacios con ceros.

--> printf("|%10.6f|\n", PI);
   Aqui se muestran 6 decimales en un total de 10 espacios.

--> De la misma manera con los datos de tipo cadena como se observa en la cadena !Hola que tal!, los datos cadena también se pueden alinear a la izquierda o derecha dependiendo de nuestros gustos o necesidades.


Uso del scanf:

/*   
Autor: Cazador Asesino :)
Descripción del Programa: Se muestra el uso básico de la instrucción scanf.
*/

#include <iostream.h>
#include <conio.h>

int main()
{
char ini,name[10];
int edad;
float estat;

//Lectura de caracteres
printf("\nIngrese la inicial de su primer nombre: ");
scanf("%c",&ini);
printf("%c   ",ini);
getch();

//Lectura de Cadenas
printf("\n\nIngrese su nombre: ");
scanf("%s",&name);
printf("%s   ",name);
getch();

//Lectura de Enteros
printf("\n\nIngrese su edad: ");
scanf("%d",&edad);
printf("%d   ",edad);
getch();

//Lectura de reales
printf("\n\nIngrese su estatura: ");
scanf("%f",&estat);
printf("%f   ",estat);
getch();
   return 0;
}


Como se observa en el código anterior, para realizar la lectura con scanf; Primero se debe especificar el tipo de variable a leer, por ejemplo:

entero: scanf("%d",var_ent");
real:   scanf("%f",var_real");

Se utiliza %c para caracteres(char) y %s para cadenas(string).
--->   142857   <---