1. El C
El c o el c++, está siendo uno de los lenguajes que todos los programadores deben aprender, aunque no sea al principio de una experiencia laboral o de estudios , tarde o temprano hace aparición éste lenguaje.
Éste lenguaje ha tenido la importancia que actualmente posee, debido a que es un lenguaje potente y fácilmente portable, osea que es fácil llevar un programa desde un ordenador con windows a otro que tiene el unix u otro sistema opertativo.
Aunque al principio es un poco dificil de aprender y usar, cuando se acostumbre a utilizar las palabras clave del sistema y su entorno de trabajo, pronto se convierte en un lenguaje de programación que ofrece grandes ventajas con respecto a otros.
El principal problema que tiene es que es muy detallista, por ejemplo la varibale Hola no es la misma que hola o que hOla o cualquier otra variación de letras que hagamos, por lo que es fácil que aquellos que hayan programado en otros lenguajes, al principio les sea dificil adaptarse a éste lenguaje, pero es más que aconsejable aprender a utilizar y programar en éste lenguaje.
Éste curso pretende que usted conozca perfectamente éste lenguaje y sepa crear cualquier aplicación que usted necesite
2. La aparición del C
Introducción
El C, tiene los mismos orígenes del lenguaje B, fue desarrollado por Dennis Ritchie en lo laboratorio Bell en el año 1972. En realidad C, es un descendiente del BCPL y del Lenguaje B.
La mayor parte del éxito del C, se debe a su simplicidad y contacto directo con el hardware del ordenador.
Esto ha permitido que los programadores, una vez superada la barrera de contacto con un lenguaje de programación nuevo, vean su gran potencia y versatibilidad que posee éste lenguaje.
Por que se le llama Lenguaje de Bajo Nivel
Muchas veces se oirá decir, que el C es un lenguaje de Bajo Nivel.
Bajo o Alto nivel, se les llama a los lenguajes de programación, según se aproximen más o menos a las instrucciones del propio ordenador.
El C, es en realidad lo más próximo que hay cerca del lenguaje ensamblador, su código es bastante depurado y rápido, lo suficiente como para no ser necesario utilizar el ensamblador por rápidez.
Que es el C++
El C++ es en realidad una mejora del propio C, en cuanto velocidad en su código final, asi como en las funciones, datos, y gestión de memoria y recursos del propio ordenador.
Aunque en sus instrucciones, puede haber cierta diferencia y ademásla aparición de comandos nuevos con respecto al C, no es otro lenguaje distinto del C, sino un descendiente directo y mejorado del propio C.
3. Contacto con el Lenguaje
En este capítulo va usted ha hacer su primer programa de C.
Debe usted tener en cuenta, que una vez hecho un progrma complejo, no el que le vamos a enseñar en ésta unidad , sino cuando usted termine el curso.
Usted se dará cuenta de que todos los programas que usted cree, contendrán unos de los siguientes elementos:
- Contendrá conexiones con ficheros.
- Contendrá conexiones con el teclado, para entrar datos.
- Contendrá operaciones gráficas o relacionadas con la pantalla.
- Bucles
- Rutinas
- Datos ya preparados e introducidos por el propio programador.
Su primer programa en C
Este programa de ejemplo es una forma de que usted conozca los elementos que verá y que deberá declarar siempre:
#include <stdio.h> **<< #include carga un fichero que se llama stdio.h
void main(void) **<< Indica el comienzo del programa principal
{ ** << abre el principio de la función main
printf ("Hola soy yo y funciona"); **<< esto escribe en la pantalla
} **<< esto cierra la funcion main
4. Los datos en C
El C, como cualquier otro lenguaje tiene distintas formas de manejar los datos que nosotros le presentamos o le enviamos para su uso.
Tipos de datos los podemo definir en Constantes o Variables.
Constantes
Son aquellos datos que le introducimos al inicio del programa , pero a nivel de programacion mediante declaraciones al principio de arrancarse el programa , y debido a esto son totalmente inconfigurables desde usuario, osea que no se pueden modificar a lo largo del uso del programa que hemos creado
Variables
Son aquellos datos que aun siendo declarados al principio del programa, durante la ejecucion del programa nos permite que puedan ser modificados por el usuario del programa.
Dentro de los dos tipos anteriormente expuestos, existe a su vez otra clasificacion, ahora dada por el tipo de datos que vamos a manejar, dependiendo de si es caracter, numericos, fecha, etc..
Hemos de tener MUY ENCUENTA
Que en C, una misma variable o constante que cambie en una sola letra, ya es distinta, osea:
Hola, HOLA, HOla, hOla, HoLA, etc.... aun siendo la misma variable (hola), cada una de ellas es tratada como si fuera distinta, osea que cada una de las anteriores es completamente distinta a las demas y hay que manejarlas de forma distinta.
Esto sera un gran problema para aquellos que vengan de lenguajes como Visual Basic, Delphi y otros donde aun siendo escrita de forma distinta , como la anterior (hola), siempre es la misma y por ello no debemos preocuparnos a la hora de manejarla, pero en C si hay que preocuparse por esto, por ello debe tener constancia en la forma de declarar las variables y constantes, o MAYUSCULAS o MINUSCULAS.
Char
Mediante esta palabra definimos a un tipo de dato como caracter, pudiendo ser de 1 caracter o de tantos como querramos hasta un limite de 32.000 caracteres.
La declaracion de dicha palabra es: Char nombre[20], donde nombre es como llamamos al dato y [20] la longitud en caracteres que le hemos dado, por lo que como maximo en nombre podremos introducir hasta 20 caracteres.
Int
Mediante esta declaracion, las variables o constantes son definidas como enteros, osea de tipo numerico, el rango que admite va desde el -32768 al 32767, osea que podemos darle un valor comprendido entre los valores anteriormente expuestos y su tamaño de ocupacion en memoria es de 2 bytes.
Short
Son iguales al tipo Int
Long
Con este tipo podemos introducir numeros desde el -2147483648 al 2147783647 y su tamaño en memoria es de 4 bytes.
Unsigned
Con este tipo podemos introducir numeros desde el 0 al 65535 y su tamaño en memoria es de 2 bytes.
Unsigned Short
Con este tipo podemos introducir numeros desde el 0 al 65535 y su tamaño en memoria es de 2 bytes, este es igual al anterior pero tipo short.
Unsigned Long
Con este tipo podemos introducir numeros desde el 0 al 4294967295 y su tamaño en memoria es de 4 bytes, este es igual al anterior pero tipo long o largo entero sin signo.
Unsigned Char
Con este tipo podemos introducir un caracter desde el 0 al 255(codigos ASCII).
Float
Con este tipo podemos introducir un valor numerico desde el 3.4 x 10^-38 hasta el 3.4 x 10^38 , donde ^ es elevado y su tamaño es de 4 bytes.
Double
Con este tipo podemos introducir un valor numerico desde el 1.7 x 10^-308 hasta el 1.7 x 10^308 , donde ^ es elevado y su tamaño es de 8 bytes.
Long Double
Con este tipo podemos introducir un valor numerico desde el 3.4 x 10^-4932 hasta el 3.4 x 10^4932 , donde ^ es elevado y su tamaño es de 10 bytes.
5. Las expresiones Aritmeticas
Introducción
Cuando nos referimos a las expresiones aritmeticas, nos referimos a las operaciones que podemos realizar con lo numeros (1... al infinito), para realizar las operaciones de suma, resta, multiplicacion, etc...
Como hemos visto en el capitulo anterior todo depende del tipo de numero que estemos usando, (entero, flotante, real, decimal, etcc.) de ello dependera el resultado de la operacion.
Normalmente las operaciones que realizaremos seran:
Operacion
+ Suma
- Resta
* Multiplicacion
/ Division
% Resto de division
- Cambia de signo delante del numero
++ Incrementa en uno el valor
-- Decrementa en uno el valor
El uso de los parentesis
La necesidad de usar los parentesis en las operaciones aritmeticas se hace mas patente con el siguiente ejemplo:
No es lo mismo 8*(3+4) que 8*3+4 , en la primera el resultado es 56 mientras en el segundo el resultado es 28.
El motivo es claramente la colocacion o no de los parentesis, en C el uso de los parentesis es sumamente importante a la hora de realizar las operaciones aritmeticas, tanto para sumar numeros como para sumar variables.
Por lo anteiormente expuesto es importante que se acostumbre a usar y saber como se usan los parentesis pues de no ser asi, mas de una vez le supondran problemas para los cuales tardara en encontrar la solucion.
6. Los identificadores o Variables
En este capítulo se va a ver , que son los identificadores y cuales nos son permitidos, asi de como se manejan y que posibilidades nos dan en su manejo.
Un identificador es lo que llamamos variable, osea dar a una letra o grupo de letras un valor determinado, ya sea de tipo numerico o de texto.
Pero para que dichas constantes puedan ser declaradas, primero debemos tener en cuenta unas reglas:
Pueden ser letras o grupos de letras pero
Deben empezar por letras, osea 33hola no esta admitido
No deben tener simbolos distintos de letras o numeros , como !"·$ no son admitidos.
No se permite el uso de puntos "ho...la" no esta permitido pero "ho_la" si esta permitido.
No esta permitido el espacio , al igual que el anterior "ho la" no esta permitido.
Aunque son permitidos los identificadores largos, no es aconsejable dado que es muy complejo manejarlos y acordarse de como se llamaban: hola_como_es_aquel es un ejemplo de identificador largo, esto lo hace muy engorroso a la hora de programar y hacer mencion continua a ese identificador.
Una vez vistas estas reglas generales , ahora vamos a aclarar que es declarar y como se declaran los identificadores:
Declarar un identificador es algo obligatorio, por ejemplo si nosotros vamos a presentar en pantalla una letra, debemos tener los identificadores de X e Y para las coordenadas, pues esas variables (X,Y) deben ser declaradas antes de usarla.
Para declarar una variable debemos saber de que tipo es (numerica, caracter,etc..) a la hora de declararla.
La forma general de declaracion es:
Si es int seria int x , int y , o cualquier otro nombre que tenga la variable.
Al igual que con el Int seria cualquier otro tipo de variable sabiendo que tipo es , para ello vaya al capitulo 4 y vea los tipos de variables para cada caso.
Pero es diferente declarar una variable que abarque una determinada distancia, osea , podemos declarar variables globales, de procedimiento o de grupo.
Globales son aquellas que podremos usar en todo el programa , indistintamente de donde la usemos o utilizemos.
Procedimiento son aquellas que solo se usan en el procedimiento (void).
void poner()
{
int x ;
x = 10;
}
Esto es declararla dentro del procedimiento, osea que solo tendra efecto dentro del void poner, fuera de el no se podra usar y no tendra ningun valor ni uso.
Pero debe recordar que las variables deben ser declaradas continuamente, osea:
void poner()
{
int x ;
x = 10;
int y;
y = 10;
ESTO NO ES ADMITIDO
}
void poner()
{
int x ;
int y;
x = 10;
y = 10;
ESTO SI ES VALIDO
}
El motivo es por que las variables deben ser declaradas una detras de otra hasta ser declaradas todas y despues ser asignados sus valores.
A las variables de procedimientos tambien se las llama variables locales.
Otra forma de declarar las varibles son a traves del propio procedimiento:
void poner(int x, int y)
{
x = 10;
y= 10;
}
Con esto estamos declarando a la propia variable dentro del Void, pero recuerde que estas variables solo se usan en el procedimiento, fuera de el no tienen ningun valor ni uso.
Las variables globales se declaran antes de todos los procedimientos del programa:
#include "stdio.h"
int x;
int y;
void funcion1(void);
void funcion2(void);
Olvidemonos del #include pues solo esta puesto para que pueda localizar donde se deben declarar las variables globales.
Como se puede observar deben estar debajo de todos los #include y antes de los void.
Dentro de los tipos de variables que creemos , independientemente de que las declaremos globales o locales, debemos tener en cuenta que las variables pueden ir cambiando su valor segun nos interese, pero si nos fuera necesario que las variables nunca cambiaran su valor, usaremos la palabra Const antes de la declaracion de la variable:
Const Int x=10;
Esto significa que la variable x siempre tendra el valor 10, nunca cambiara dicho valor a lo largo del programa , aun cuando intentemos cambiarla.