sábado, febrero 11, 2006

I C++ (Introdución, Conceptos y Primeros Códigos)

Introducción a C++

C++ es originalmente creado por Bjarne Stroustrup dentro de los laboratorias Bell (AT&T) a principios de la decada de los 80's, como bien se sabe c++ evolucionó a partir del lenguaje C (programación estructurada) y simula 67.
C++ es un lenguaje de alto nivel orientado a objetos, lo que sinifica, que tenemos la capacidad de crear programas "modulares" y claramente con código reutilizable (una ventaja enorme en cuanto a c). Esto permite programar mejor, con mayor rapidez y corregir errores fácilmente.

Conceptos básicos de la POO (Programación orientada a objetos)

Objeto: Vivimos en un mundo de objetos, cualquier sustantivo puede ser tomado como tal (automóvil, avión, edificio, celular, mesa, silla etc).

Clases: Es la descripción de un objeto (características y funcionalidad).

Variables / Propiedades miembros: Es un almacén de datos relacionados con los objetos, estan suelen ser públicas o privadas.

Funciones miembro: Es la funcionalidad que se le dan a los objetos, similar a las funciones en la programación estructurada o a los métodos en java =).

Herencia: Permite crear clases (subclases) a partir de otras clases (clase base). Una subclase hereda código y datos de la clase base, no obstante, una subclase puede contener su código y datos particulares.

Instancia: Es un objeto creado a partir de un clase deifínida por el usuario.



Conceptos básicos de programación.

Lenguaje de programación: Son una serie de instrucciones que a groso modo indican lo que realizará la computadora para un fin determinado, estos lenguajes de programación son parecidos al lenguaje común del ser humano (en la mayoria de los casos al Ingles).

Secciones lógicas de una computadora.

Unidad de entrada: Es donde se recibe toda la información/datos que almancena/utiliza una computadora para realizar ciertas instrucciones especificas (Dispositivos de entrada: teclado, mouse/raton, Red, Internet, Microfono, etc.).

Unidad de salida: Es la sección donde se deposita toda la información ya procesada por la computadora para que este disponible. (Dispositivos de salida: Monitor, Impresora, Bocinas, etc).

Unidad de memoria: Es la parte donde se almacena información temporal para que este disponible durante la ejecución de procesos y es donde los dispositivos de salida obtienen lo que se mostrará una vez realizada una petición por los dispositivos de salida.

Unidad aritmética y lógica (ALU): Es la que se encarga de realizar las operaciones y decisiones al momento de procesar información ( operaciones aritméticas, operaciones lógicas).

Unidad central de procesamiento (CPU): Es la que administra todo el relajo al momento de manipular datos, la que inidica cuando se escribe en memoria, cuando se envia información a los dispositivos de salida, etc.
Este término es mal usado por muchos al referirse al gabinete de una computadora, asi que ya saben :D (no vuelvan a decir: Pasame el CPU!! XD).

Unidad secundaria de almacenamiento: Es donde se guarda información a largo plazo la cual puede ser utilizada cuando se requiera (discos).

Lenguaje maquina: Es el lenguaje o idioma natural que entiende un computadora, que básicamente son arreglos de puros 0 y 1. Este tipo de lenguaje es muy poco entendible y complicado para realizar programas.

Lenguaje esamblador: Este lenguaje sustituye al lenguaje maquina por una variante que es la sintaxis ( parecido al ingles), el cual se pueden realizar las operaciones básicas de una computadora. No es tan complicado de entender pero requiere de de mucho código.

Lenguaje de alto nivel: Es el utilizado hoy en día para realización de programas para una computadora. Estos lenguajes tiene una sintaxis mucho más sencilla que un lenguaje esamblador y que además proprociona ser más eficiente al programar.

Compilador: Es el encargado de convertir las instrucciones de un lenguaje de alto nivel (código fuente) a lenguaje maquina para que puede ser entendible para una computara. Esto a su vez crea un ejecutable el cual se encargará de realizar las operaciones que indicamos al momento de programar.

Interprete: Ejecuta un programa de alto nivel sin tener que compilarlo.

Ambiente de programación en C++

Los programas escritos en C++ y el código fuente de este se almacenan en archivos con extensión .cc .cxx .cpp ó .C.
Un programa en c++ pasa por 6 fases para su ejecución, que se describen a continuación:

Edición: Es la fase donde se escribe el código fuente del programa mediante un editor. En linux hay varios como vim, vi, gvim, anjuta IDE xD, etc ( Ya estaré escribiendo algo sobre esto ;).

Preproceso: Esta fase se realiza antes de compilar el programa y la cual usa directivas de un programa llamado preprocesador el cual es invocado por el compilar antes de convertir a código objeto nuestro programa.

Compilación: Se crea el código objeto y se almacena en disco.

Enlace: Se enlaza nuestro código objeto con las librerias estandar de c++ o las creadas por nosotros para crear una imagen ejecutable.

Carga: El programa se almacena en memoria para su ejecución, sencillo no?

Ejecución: Se ejecuta el programa mediante la administración de la CPU.

Escribiendo código en C++

Después de un poco de teoria y espero haberlo hecho bien XD, empezamos con la acción, PERO antes debemos saber algunas cosas más al momento de programar.

Las variables son usadas en cualquier lenguaje de programación y no es más que un espacio de memorial reservado para algunos tipos de datos que utilizaremos durante la ejecución de un programa.

1. Enteros
1. int
2. long int
3. long long
4. short
5. char
2. Flotantes
1. float (IEEE754 Simple)
2. double (IEEE754 Normal)
3. long double (IEEE754 Extendido)


Los operadores aritméticos son especialmente para realizar operaciones/cálculos aritméticas(os) xD

Operador Operación

+ Suma

- Resta

* Multiplicación

/ División

% Residuo o Módulo

Existe una precedencia al momento de evaluar una expresión aritmética

Orden de operaciones:

1.- Paréntesis

2.- Potencias y raíces

3.- Multiplicaciones y divisiones

4.- Sumas y restas

5.- Dos o más de la misma jerarquía u orden entonces resolver de izquierda a derecha


Los operadores relacionales con para evaluar ó comparar expresiones.

<> Mayor que
<= Menor o igual que >= Mayor o igual que
== Igual que (identidad)
!= Desigual que (desigualdad)

El flujo estándar de entrada se hace mediante la instrucción cin (c-in) y por lo regularmente obtenemos los datos necesarios mediante el teclado.

El flujo estándar de salida se manda a pantalla mediante la instrucción cout.

El flujo estándar de errores se usa mediante la expresión cerr y se manda al monitor junto con cout regularmente.

Secuencias de escape.




Secuencia Valor Símbolo Que hace

\a 0x07 BEL Sonido audible (bell)

\b 0x08 BS Retroceso (backspace)

\f 0x0C FF Salto de formato (formfeed)

\n 0x0A LF Saltar una línea (linefeed)

\r 0x0D CR Retorno de carro (carriage return)

\t 0x09 HT Tabulación horizontal (H Tab)

\v 0x0B VT Tabulación vertical (V Tab)

\\ 0x5c \ Barra invertida (backslash) [2]

\' 0x27 ' Apóstrofo (comilla simple)

\" 0x22 " Doble comilla

\? 0x3F ? Interrogación

\O cualquiera cualquiera O = cadena de hasta tres dígitos octales

\xH cualquiera cualquiera H = cadena de dígitos hexadecimales

\XH cualquiera cualquiera H = cadena de dígitos hexadecimales



Los comentarios son usados para expresar una opinión o algún comunicado a la persona que mire el código de nuestro programa.
En c++ se pueden escribir de la siguiente manera:

// Esto es comentario de una linea

/* Esto es
un comentario de
muchas lineas
XD
BU!*/


Pues empezemos con un programa sencillo:


// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n Que tal? \n Nos vemos!"; 4 return 0; 5 }


Que es lo que hace?
En la linea 2 se declara la función principal del programa, la cual siempre se debe escribir y decimos que devuelve un valor de tipo entero (ya veremos esto a fondo). Sabemos que es una función por la forma de declarar los parentesis a la derecha despues del nombre.
La llave izquierda ({) señala que ahi empieza una bloque de instrucciones que son parte de la función main.

La linea 3 se manda a imprimir en pantalla mediante la instrucción std::cout y el operador de insercción de flujo (<<) el siguiente mensaje, por cierto, cada instrucción termina con punto y coma (;): Hola, Que tal? Nos vemos! En la linea 4 indicamos que regresamos un valor nulo (nada). La linea 5 simplemente con la llave derecha (}) se da por concluido el bloque de instrucciones de la función main y por lo tanto el termino del programa. Nota: Siempre que se abrá un bloque de instrucciones se debe cerrar, si al momento de compilar nos mandará un mensaje de error y no podrá crearse la imagen ejecutable del programa. El programa anterior se puede escribir con algunas variantes y con el mismo resutado:

// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n"; 4 std::cout <<"Que tal? \n"; 5 std::cout <<"Nos vemos! \n"; 6 return 0;



// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n" 4 <<"Que tal? \n" 5 <<"Nos vemos! \n"; 6 return 0;


Entre algunas formas mas pero bueno ahi prueben que es la unica manera de aprender (practicando).

Ahora algo un poco mas complejo, algunas operaciones mediante el uso de los operadores aritméticos.


#include<>
int main()
{
using std::cout;
using std::cin;
using std::cerr;
int num1, num2;

cout<<"Escribe el num1: "; cin>>num1;
cout<<"Escribe el num2: "; cin>>num2;
cout<<"La suma de los dos numero es: "<<>

Vaya hay cosas nuevas XD..

Using std:: Es para poder omitir el std:: cada vez que ocupemos cout, cin o cerr (esto es referente a los espacios de nombre que veremos después).

int num1, num2 Nada especial declaramos dos variables que solo guardaran datos enteros.

cin>> Lo mismo que cout, se usa para obtener datos mediante el operador de extracción de flujo (>>). En este caso pedimos el valor de la variable num1.

<<>

1 comentario:

Anónimo dijo...

Buena informacion gracias!!