Sei sulla pagina 1di 29

C++

El lenguaje de programacin C++ se comenz a desarrollar en 1980 en los


laboratorios de la Ca. AT&T. Es una ampliacin del lenguaje C.
El nombre C++ proviene del operador incremento ++.
Es un lenguaje potente, verstil y general. Sus principales caractersticas
son:
Programacin estructurada.
Abundancia de operadores y tipos de datos.
Riqueza y flexibilidad en las expresiones.
Sobrecarga de funciones y operadores.
Programacin orientada a objetos (POO).
Codificacin en alto y bajo nivel simultneamente.
Manipulacin de excepciones.
Facilidad de aprendizaje.
Es totalmente compatible con el lenguaje C.
Aspectos bsicos de C++
Los ficheros fuente terminan con la extensin *.cpp (de C plus plus).
Los ficheros de encabezado figuran con la extensin *.h y se incluyen en el
fichero fuente usando la directriz #include del preprocesador, por ejemplo:
#include iostream.h #include <iostream.h>
Las variables se pueden declarar en cualquier lugar del programa, pero
teniendo cuidado de usarlas una vez que hayan sido declaradas.
Los comentarios se pueden hacer de dos formas:
Una sla lnea: // este es un comentario de una lnea
Un bloque: /* comentario de un bloque.
Sigue en la siguiente lnea */
Las llaves {..} constituyen el modo utilizado en el lenguaje C++ para agrupar a
las funciones o los bloques.
Cada sentencia debe terminar en un Punto y coma (;), ejemplo: a=3*4;
En una misma lnea se pueden poner varias sentencias, separadas por el ;.
Por ejemplo: a=var1*5; b=var2*6;
Existe una nica funcin principal que est por encima de todas, por la cual se
empieza la ejecucin del programa. Dicha funcin es main().
La funcin main()
La funcin main() es la funcin principal del programa, por donde empieza la
ejecucin del mismo.
Puede recibir argumentos desde la consola, cuando se llama al programa, en
cuyo caso hay que declararla de la siguiente manera:

void main (int argc, char *argv[]){. . . }

Donde argc indica el nmero de argumentos que vienen y argv es un array de caracteres que tiene la
informacin de los argumentos.
Sino se esperan argumentos y no se desea retornar nada, se puede declarar
as:
void main(void){ ... }

A continuacin vemos la estructura general de un programa en C++:
4. Tipos bsicos de datos
Las variables tipo char se usan para almacenar caracteres ASCII como
A,1,&, etc.
Cuando se desea trabajar con enteros, dependiendo del rango, se puede usar
short, int o long, con signo o sin signo.
Para trabajar con enteros sin signo, se debe anteponer la palabra reservada
unsigned delante del tipo (unsigned int). Esto nos permite aumentar el
rango del tipo.
Por defecto son con signo, no hace falta anteponer la palabra signed.
Tipos de variables
Programacin en C
5
long double 96 18 3.3621e-4932 1.18973e+493
Llamada sizeof()
La llamada sizeof() se utiliza para determinar el
nmero de bytes que ocupa una variable o un
tipo:

int a;
sizeof(a);
sizeof(unsigned int);
Programacin en C
6
Uso de los tipos de datos en C++
Programacin en C
7
CONCEPTOS BASICOS
Programacin en C
8
Variables
Se entiende por variable aquel tipo de informacin numrica o alfanumrica que puede
cambiar en tiempo de ejecucin del programa, sin necesidad de volver a compilar.
Nombres de variables:
Cualquier conjunto de caracteres numricos y alfanumricos, sin coincidir con algunos
caracteres especiales definidos y usados en C++, como +-;*/ etc.
No pueden coincidir con las palabras reservadas (ver lista al final).
Tampoco pueden coincidir con un nombre de una variable que ha sido declarada en el
mismo bloque, ya sea del mismo o diferente tipo:
int k; float k; //error
En lo posible darle un nombre que vaya de acuerdo a su cometido. Por ejemplo, si se
desea implementar un contador, usar como nombre cont o contador.
Declaracin de variables:
Para declarar un variable use este formato general: tipo nombre;
int cont1, cont2; //2 variables.de igual tipo, separadas por una ,.
float rpms; double radio_del_circulo;
Se puede inicializar la variable en el momento de la declaracin: int cont1=10;
Tener en cuenta que C++ diferencia las maysculas y minsculas. As, las siguientes
declaraciones son correctas: int CONT=3,cont=4;
Variables
Variables tipo Referencia:
Las variables tipo referencia se declaran con el operador & y deben ser inicializadas
con otra variable. Por lo dems, son variables normales que contienen valores
numricos o alfanumricos.
El principal uso de estas variables es como valor de retorno o argumentos de
funciones.
La variable referencia y la que sirve para inicializarla comparten la misma posicin
de memoria, esto es lo que hace que la variable referencia sea en realidad un alias
de la otra
Tipos definidos por el usuario: typedef
En C++ se pueden definir nuevos nombres de tipos de datos, los cuales son derivados
de los tipos de datos fundamentales. Por ejemplo puedo definir un nuevo nombre de
tipo, que derive de unsigned int:
typedef unsigned int mio; //mi nuevo nombre
mio a=30; //uso del nuevo nombre
mbito de las variables
La declaracin de las variables lleva asociado un
mbito, dentro del cual la variable es visible:

mbito global: La variable es visible para todas las
funciones del programa.
mbito local: La variable es visible slo dentro de la
funcin. (Tiene prioridad sobre el mbito global)
Programacin en C
11
mbito de las variables
int x,y;
int main()
{
float x,z;
/* Aqu x y z son reales e y un entero */
}

/* Aqu x e y son variables enteras */
/* La variable z no existe fuera de la
funcin */
Programacin en C
12
Visibilidad y duracin de las variables
La visibilidad o Scope de una variable es la parte del programa en la que esa variable est
definida y puede ser utilizada. De acuerdo a la visibilidad podemos dividir en dos las
variables: locales y globales.

Variables locales o auto: son aquellas que son declaradas dentro de un bloque y son visibles en ese
bloque y en los bloques anidados dentro de l. Ocultan a las variables globales con el mismo nombre.
Variables globales o extern: son aquellas que han sido declaradas fuera de cualquier bloque o funcin,
por ejemplo antes de definir la funcin main(). Existen durante toda la ejecucin del programa y son
visibles por todas las funciones y bloques que se encuentren entre la declaracin y
el fin del fichero.

La duracin o Lifetime hace referencia al tiempo que transcurre entre la creacin de una
variable y el instante en que es destruida. Si son variables auto (por defecto), la variable
se crea y se destruye cada vez que pasa por el bloque. Si es una variable static, la duracin
de dicha variable es hasta que finalice el programa.
Para acceder a una variable global en un bloque donde exista una local de igual nombre,
se utiliza el operador (::), denominado operador de resolucin de visibilidad.
Constantes
Una constante es un tipo de informacin numrica o alfanumrica que no puede cambiar ms que con una
nueva compilacin del programa.

Hay tres diferentes tipos de constantes: con nombre y sin nombre y de enumeracin.

Constantes sin nombre: aquellas que se escriben literalmente en el cdigo fuente. Pueden ser numricas
(enteras o de punto flotante) o alfanumricas (1 carcter o cadena):

var1 = 245*x; //la var. x se multiplica por la constante numrica entera 245
longitud = 2 * 3.141592 * r; //uso de una constante numrica de punto flotante
char *name="Juan Perez"; //a name se le asigna una const. Alfanumrica

Constantes con nombre: son variables a las que se le antepone el cualificador const en el
momento de la declaracin.

const int k=100; const double PI=3.141592;

El compilador dar un mensaje de error si se trata de modificar el valor de la variable declarada como
const. Tampoco puede figurar en la parte izquierda de un operador de asignacin.

Constantes de tipo Enumeracin:
Es ms conveniente para nombrar constantes enteras que usando const. Se usan para definir los posibles
valores de ciertos identificadores que slo deben poder tomar pocos valores.
Se asignan por omisin en incrementos unitarios a partir de cero.

enum {lunes=1,martes,miercoles,jueves,viernes,sabado,domingo};
cout << "Dia: " << martes << endl;
//saldr en la consola: Dia: 2
Operadores
Un Operador es un carcter o grupo de caracteres que acta sobre una, dos o ms variables
para realizar una determinada operacin con un determinado resultado.
Operadores
El resultado de una expresin, depende del orden en que se ejecuten las operaciones.
Existen 2 reglas para determinar el orden y evaluacin:
precedencia y asociatividad.
El orden puede modificarse por medio del parntesis.
Siempre se realizarn primero las operaciones que
estn en los parntesis ms interiores.
Por ejemplo: 3 + 4 * 2 nos dara 14 u 11, dependiendo
del orden que se elija. Segn el orden establecido en
C++ nos va a dar como resultado 11, ya que primero se
ejecuta la multiplicacin y luego la suma.
Si queremos obtener 14, haramos: (3+4)*2.
Pre/post-incrementos
Los operadores unarios (++) y (--) representan
operaciones de incremento y decremento,
respectivamente.
a++; /* similar a a=a+1 */

Ejercicio:
a=3; b=a++; /* a=4, b=3 */
a=3; b=++a; /* a=4, b=4 */
a=3; b=a--; /* a=2, b=3 */
Programacin en C
17
OPERADORES
Programacin en C
18
Dentro de c++ tenemos los tpicos operadores matemticos + - * / y tambin los operadores
unarios (++ --) En este primer ejemplo vemos operadores unarios y la asignacin mltiple.
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los peradores\n";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
// Sacamos el valor por pantalla de test
cout << "Valor de test: " << test << endl;
// Sacamos el valor por pantalla de test++
cout << "Valor de test++: " << (test++) << endl;
cout <<El valor de test es<<test<<endl;
// Sacamos el valor por pantalla de ++test
cout << "Valor de ++test: " << (++test) << endl;
cout << "Valor de test actual: " << test << endl;
// asignacion multiple
c = b = a = test;
// Veamos el resto de valores
cout << "Y los demas: " << c << " " << b << " " << a << endl;
return 0;
}
Operaciones de asignacin
El operador de asignacin en C es el igual(=)
a=b+3;
Existen otras variantes de asignacin:
a+=3; /* Equivalente a a=a+3 */
a*=c+d; /* Equivalente a a=a*(c+d) */
a/=a+1; /* Equivalente a a=a/(a+1) */
Para las asignaciones entre variables o
expresiones de tipos diferentes se recomienda
hacer casting:
a=(int)(x/2.34);
Programacin en C
19
Expresiones
Una expresin es una combinacin de variables y/o constantes y operadores que dan lugar
a un nico valor.

Una expresin puede estar formada por otras expresiones ms sencillas, y puede contener
parntesis de varios niveles agrupando distintos trminos.

Expresiones Aritmticas:
Estn formadas por variables y/o constantes y distintos operadores aritmticos e
incrementales (+,-,*,/,++,--,%). Dan como resultado de la evaluacin cualquier tipo
numrico, ya sea entero o real. Por ejemplo:

X = (-b + sqrt((b*b) (4*a*c)))/(2*a);

Expresiones Lgicas o de Boole:
Una expresin de Boole da como resultado los valores lgicos 0 o 1 (true o false).
Slo intervienen operadores lgicos y operadores de relacin (>,<,&&,||,>=,..).
p = (x < y) && (y <= z); //si x=15,y=18,z=20 p=1
Expresiones generales:
Son aquellas en las que intervienen expresiones aritmticas y lgicas como
subexpresiones.
p = (a - b*2.0) && (c != d); //a=10,b=2,c=3,d=4 p=1
p = (a - b*2.0) * (c != d); //a=10,b=2,c=3,d=4 p=6
p = (a - b*2.0) * (c != d); //a=10,b=2,c=4,d=4 p=0
Conversin de tipos
Cuando los operandos que intervienen dentro de una expresin son de tipos diferentes (int,
long, float, etc), stos se convierten automticamente a un solo tipo comn, que por lo general
es el de mayor precisin. A este tipo de conversin se le denomina Conversin Implcita de
tipos. Por ejemplo:

int x=4; long z=3;
float y=2.5, ret;
ret = x * y * z; //ret=30.0
Algunas de las reglas que rigen la conversin, aplicadas en el siguiente orden, son:
Si un operando es double, el otro es convertido a double, aunque sea entero (int, short o long).
Si un operando es float, el otro es convertido a float.
Si un operando es long, el otro es convertido a long.
Si un operando es unsigned int, el otro es convertido a unsigned int.
En cualquier otro caso , ambos operados son del tipo int.

Conversin Explcita: En C++ se dispone de una conversin explcita de tipos de
variables, directamente controlada por el programador, llamada cast.
El cast se realiza anteponiendo al nombre de la variable o expresin el tipo de variable a la que se desea
convertir, encerrado entre parntesis. Por ejemplo:

float y=4.5,z=2.1;
int x=(int)(y/z) + 1; // y/z=2.14 x=2+1=3
Por ltimo, se debe tener mucho cuidado con las conversiones implcitas, ya que muchas veces se pierde
informacin sin poder notarlo, sobre todo cuando las expresiones son un poco extensas, en cuyo caso es
ms conveniente dividirla en subexpresiones.
Casting
Casting: mecanismo usado para cambiar de tipo
expresiones y variables:
int a;
float b;
char c;

b=65.0;
a=(int)b; /* a vale 65 */
c=(char)a; /* c vale 65 (Cdigo ASCII
de A) */
Programacin en C
22
Casting
Programacin en C
23
/* ejemplo 4.- realizamos conversiones de tipos implcitas y explcitas */

#include <iostream>
using namespace std;
main()
{
double d=0.0,e,f=2.33;
int i=6;
e=f*i;
cout <<e<<endl;//e es un double de valor 13.98
d=int(f*i);
cout<<d<<endl;//f se ha convertido a un entero truncando
//sus decimales, d es un double de valor 13

}

E/S de datos por consola
La entrada y salida de datos en C++ est basada en el concepto de stream o flujo, que se
puede definir como un dispositivo que produce o consume informacin.
Un flujo est siempre ligado a un dispositivo fsico: teclado, pantalla, disco,...
Para la entrada y salida de datos del usuario, se abren automticamente los siguientes
flujos:

cin: entrada estndar de datos (teclado).
cout: salida estndar de datos (pantalla).
cerr: salida de mensajes de error (pantalla).

Para poder utilizar los flujos es necesario incluir el fichero iostream.h en las primeras
lneas del programa, de la siguiente manera: #include <iostream.h>.
La utilizacin de los flujos se hacen en conjunto con los operadores de extraccin (>>) y
de insercin (<<), de la siguiente manera:

cout << "Hola"; //Saldr en la Pantalla: Hola
cin >> x; //Pide datos por teclado y lo guarda en x
Una de las grandes ventajas de los flujos de C++ es que no es necesario decirle de
antemano qu tipo de informacin quiero sacar a la pantalla (numrica o alfanumrica,
enteros o reales) ni en qu tipo de variables voy a almacenar la informacin que venga del
teclado, ya que si no coincide con el tipo declarado, hace la conversin de forma implcita.
Veamos cmo en el siguiente cdigo se mezclan diferentes tipos de variables para enviar a
la pantalla (cadenas de caracteres, variables tipo int y tipo float) :

int x1=2; float x2=4.5; //declaracin de variables
cout << "Var x1=" << x1 << " " << "Var x2="<< x2;
En el siguiente ejemplo, el programa espera que el usuario introduzca por teclado un
nmero entero, pero si se introduce uno real, ste es convertido a entero:
E/S de datos por consola
Formato de E/S: C++ cuenta tambin con algunos manipuladores que permiten controlar
el formato de los flujos, tanto de entrada como salida. Los ms utilizados son:

dec, hex y oct: establecen base (decimal, hexadecimal y octal) para enteros.
endl: se imprime un \n y se vaca el buffer de salida.
setw(int num): establece la anchura mnima de campo. Necesita declarar <iomanip.h>
setprecision(p): establece el nmero de cifras.

El efecto de los manipuladores permanece en el flujo correspondiente hasta que se
cambien por otro manipulador (ver ejemplo: permanece en hex sino se cambia a dec).
Variable tipo Caracter
Programacin en C
26
Ejemplos
Ejemplos
1. Realizar una aplicacin que calcule las cuatro operaciones bsicas, suma, resta,
divisin, multiplicacin, con dos nmeros.
2. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuanto deber pagar finalmente por su compra.
3. Un alumno desea saber cual ser su calificacin final en la materia de
Algoritmos. Dicha calificacin se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
4. Resuelva un algoritmo que solucione el problema de calcular el rea de un
triangulo con la frmula: AREA = BASE x ALTURA / 2.
5. Calcular el doble de un nmero ingresado, a ese resultado calcularle el 10% y
mostrar ese valor


Ejercicios

Potrebbero piacerti anche