Sie sind auf Seite 1von 16

Elementos del lenguaje C++

C++ es un lenguaje verstil, potente y general. Su xito entre los


programadores profesionales le ha llevado a ocupar el primer puesto
como herramienta de desarrollo de aplicaciones. El C++ mantiene las
ventajas del C en cuanto a riqueza de operadores y expresiones,
flexibilidad, concisin y eficiencia. Adems, ha eliminado algunas de las
dificultades y limitaciones del C original. La evolucin de C++ ha
continuado con la aparicin de Java, un lenguaje creado simplificando
algunas cosas de C++ y aadiendo otras, que se utiliza para realizar
aplicaciones en Internet.

Hay que indicar que el C++ mantiene compatibilidad casi completa con
C, de forma que el viejo estilo de hacer las cosas en C es tambin
permitido en C++, aunque ste disponga de una mejor forma de
realizar esas tareas.

Los ficheros fuente de C++ tienen la extensin *.cpp (de C plus plus,
que es la forma oral de llamar al lenguaje en ingls). La utilizacin de
nombres incorrectos en los ficheros puede dar lugar a errores durante el
proceso de compilacin.

Identificadores

Identificadores son conjuntos de letras y/o nmeros que se utilizan para


simbolizar todos los elementos que en un programa, son definibles por
el usuario (programador o ingeniero de desarrollo) del mismo, como son
las variables donde se almacenan datos, funciones ( pequeos mdulos
con cdigo), etiquetas, clases, objetos, etc.

En C++ un identificador es una palabra compuesta de letras y/o


nmeros de hasta 32 caracteres significativos, empezando siempre con
una letra.

Una variable se define como un identificador que se utiliza para


almacenar todos los datos generados durante la ejecucin de un
programa.

Existen ciertas reglas en cuanto a variables:

Claras y con referencia directa al problema.

No espacios en blanco, ni smbolos extraos en ellas.

Se pueden usar abreviaturas, pero solo de carcter general.


No deben ser palabras reservadas del lenguaje.

Se hace diferencia entre maysculas y minsculas

Ejemplos de buenas variables:

Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.

Palabras claves o reservadas del lenguaje C++

Dado que estas palabras clave son usadas por el lenguaje tienen una
funcin, no pueden ser redefinidas o sobrecargadas por los
programadores y siempre deben ir en minscula.

Palabra Clave Descripcin


and alternativa al operador &&
and_eq alternativa al operador &=
asm inserta instrucciones de ensamblador en lnea
auto declara una variable como de almacenamiento automtico.
Cambiar de significado en C++11.
bitand alternativa al operador & sobre bits
bitor alternativa al operador | sobre bits
bool nombre del tipo de datos booleano
break quebrar (salir) de un bucle
case define un caso/etiqueta en una expresin de switch
catch captura la excepcin lanzada por un throw
char nombre del tipo de datos caracter
class declara una clase
compl alternativa al operador ~
const declara que la variable, funcin o referencia no puede ser
modificado
const_cast conversin para remover o agregar calificaciones const o
volatile a un objeto
continue saltarse la iteracin en un bucle
default gestionar el caso por defecto en una instruccin switch.
Agregar nuevos significados en C++11.
delete deasignar memoria que ha sido reservada dinmicamente.
Agregar nuevos significados en C++11.
do inicio de una construccin de bucle do-while.
double nombre del tipo de datos de punto flotante
dynamic_cast adapta un puntero o referencia a un tipo base a un tipo de datos
derivado de manera polimrfica
else ruta alternativa para una instruccin if
enum declarar un tipo de datos enumerado
explicit incapacitar un constructor unario de una clase para
conversiones implcitas (automticas)
export indica que la declaracin de un template sigue en otra unidad de
compilacin
extern declara enlace externo para una variable (si no est inicializada,
provee slo una predeclaracin que debe ser completada en otra
unidad de compilacin) o (extern "C") para declarar enlace tipo C
para una funcin
false representa el valor booleano falso
float nombre del tipo de datos de punto flotante con precisin sencilla
for iniciar un bucle iterativo
friend designar una funcin no-miembro como amiga de una clase
goto saltar a una etiqueta
if ejecutar cdigo condicionado al resultado de un test
inline declarar que una funcin ser expandida in-situ cuando sea
llamada (o ser enlazada vagamente)
int nombre del tipo de datos entero
long nombre del tipo de datos entero largo
mutable quita la propiedad const de un campo de un objeto cuando el
objeto es const
namespace particiona el espacio de nombres al definir un espacio de
alcance
new crea un objeto reservando memoria dinmicamente
not alternativa al operador !
not_eq alternativa al operador !=
operator crea funciones operador sobrecargadas
or alternativa al operador | |
or_eq alternativa al operador |=
private declara los componentes privados de una clase
protected declara los componentes protegidos de una clase
public declara los componentes pblicos de una clase
register pedir que se almacene una variable en un registro de la
mquina en vez de lal pila de memoria
reinterpret_cast convertir entre tipos de punteros o enteros sin cambiar el valor
en memoria
return retornar desde una funcin
short declarar una variable como de tipo entero corto
signed declarar una variable entera como con signo
sizeof obtener el tamao en memoria de un tipo de datos
static crear almacenamiento permanente para una variable
static_cast tratar de convertir un tipo de datos a otro implcitamente, o
subiendo en una herencia de clase, o bajando usando un
puntero a la clase si es posible
struct define una estructura
switch ejecuta cdigo condicionado a los posibles valores de una
variable integral
template crea una plantilla para cdigo de funciones u objetos
this un puntero privado al objeto actual de una clase
throw arroja una excepcin (debe ser atrapada con catch)
true nombre del valor booleano verdadero
try ejecuta cdigo que puede lanzar una excepcin
typedef crea un alias para un tipo de datos
typeid retorna informacin sobre un objeto
typename declara que el prximo identificador es un tipo de datos, y no
una variable o funcin; declara el tipo de datos genrico en una
plantilla
union declara una estructura que funde mltiples valores en una
misma ubicacin en memoria
unsigned declarar una variable entera como sin signo (slo positiva o
cero)
using importa un nombre o smbolo de un namespace en el mbito
actual
virtual crea una funcin mtodo que puede ser reemplazada por clases
derivadas
void nombre del tipo de datos nulo; declaracin de una funcin que
no devuelve un valor
volatile declara al compilador que una variable puede ser modificada
por un factor externo al programa
wchar_t nombre del tipo de datos de caracter "ancho"
while inicia un blcue "while" o termina un bucle "do-while"
xor alternativa al operador !
xor_eq alternativa al operador !=

Tipos De Datos C++

Un tipo de dato define todo el posible rango de valores que una variable puede
tomar al momento de ejecucin del programa y a lo largo de toda la vida til del
propio programa.

Descripcin Tipo de dato en C++


Carcter, Cadena o String char, char [tamao], string
corto short
normal int
Enteros
Sin signo unsigned
largo long
Flotantes Precisin simple float
Doble precisin double
Booleanos bool
Una variable que declares unsigned siempre emplear valores enteros positivos,
nunca negativos.

Sintaxis unsigned int var

unsigned int var = valor

Ejemplo1 char, char [tamao]


# include <iostream>
using namespace std;
#include<ctype.h>//tolower
int main()
{
char nom[30], sex;
string apellido:
cout<<"Digite el nombre: ";
cin>>nom;
cout<<"Digite los apellidos: ";
cin>>apellido;
cout<<"Digite sexo( f o m): ";
cin>>sex;
sex=tolower(sex);//Convierte a minscula
if(sex=='m')
{
cout<<" Es una mujer y su nombre es "<<nom<<endl;
}
else
{
cout<<"Es un hombre y su nombre es"<<nom;
}
system("pause");
return 0;
}
Ejemplo 2 enteros
# include <iostream>
using namespace std;
int main()
{
short numero1 =-32768;
unsigned short numero2=32767;
int numero3=-214748364;
unsigned int numero4= 2147483647;
long int numero5=-2147483647;
unsigned long numero6=-2147483647;

cout<<"el mumero es short"<<numero1<<endl;


cout<<"elmumero es short sin signo"<<numero2<<endl;
cout<<"el mumero es int"<<numero3<<endl;
cout<<"elmumero es int sin signo"<<numero4<<endl;
cout<<"el mumero es long"<<numero5<<endl;
cout<<"elmumero es long sin signo"<<numero6<<endl;

system("pause");
return 0;
}
Ejemplo 3 Flotantes
# include <iostream>
using namespace std;
int main()
{

float numero7=3.456782;
double numero8=3.57777;
long double numero9=3.123456789123456789123;
cout<<"el mumero es float"<<numero7<<endl;
cout<<"el mumero es double"<<numero8<<endl;
cout<<"el mumero es long double"<<numero9<<endl;

system("pause");
return 0;
}
Ejemplo 4 Booleanos
# include <iostream>
using namespace std;
int main()
{
bool val = false; // declara val variable Booleana y la inicia
cout<<"la variable val es: "<<val<<endl;
val = true; // ahora se cambia su valor (nueva asignacin)
cout<<" Ahora la variable val es: "<<val<<endl;
//true = 0;

system("pause");
return 0;
}
Nombre Descripcin Tamao* Rango de valores*
Carcter o entero con signo: -128 a 127
char 1byte
pequeo. sin signo: 0 a 255
con signo: -32768 a 32767
short int (short) Entero corto. 2bytes
sin signo: 0 a 65535
con signo: -2147483648 a
int Entero. 4bytes 2147483647
sin signo: 0 a 4294967295
con signo: -2147483648 a
long int (long) Entero largo. 4bytes 2147483647
sin signo: 0 a 4294967295
Valor booleano. Puede
bool tomar dos valores: 1byte true o false
verdadero o falso.
float Nmero de punto flotante. 4bytes 3.4e +/- 38 (7 digitos)
De punto flotante de
double 8bytes 1.7e +/- 308 (15 digitos)
doble precisin.
Long de punto flotante de
long double 8bytes 1.7e +/- 308 (15 digitos)
doble precisin.

Los operadores (en cualquier lenguaje de programacin) son los smbolos que
permiten hacerle una operacin a una o ms variables.

Los operadores son:

Aritmticos
Lgicos
Relacionales
Asignacin

Los ms conocidos son los operadores aritmticos y permiten realizar clculos


matemticos:

Operador Accin Ejemplo

Resta x=5 3; // x vale 2


Suma x=2 3; // x vale 5
Multiplicacin x = 2 3; // x vale 6

Divisin x=6 2; // x vale 3

Mdulo x = 5 % 2; // x vale 1

Decremento x = 1; x ; // x vale 0

Incremento x = 1; x ; // x vale 2
Estos operadores tiene un orden de prioridad, cuando una expresin
matemtica utiliza varios operadores, estos actan en el siguiente orden:

*,/,% Mayor

+,- Menor

Debido a las prioridades es importante que recurra a la asociatividad usando ()


para indicar correctamente las operaciones.

Ejemplo

7+5*4 7+20=27
(7+5)*4 12*4=48

3+8*5 3+40=43
(3+8)*5 11*5=55

Observe las diferencias entre las respuestas en cada caso.

La tabla de orden de prioridad ms completa

() Mayor
*, /, %
+, - Menor
En el caso que dentro de una expresin de encuentren varias operaciones con
el mismo orden de prioridad, siempre se resuelven de izquierda a derecha .

Ejemplo

10+9*8-20/5 En este caso la * y la / tiene la misma prioridad pero se resuelve de


izquierda a derecha es decir primero 9*8y luego 20/5.

10+72-4 ahora + y tiene la misma prioridad pero se resuelve de izquierda a


derecha primero la suma y luego la resta.

Ejemplo

El cociente entre dos enteros da como resultado un entero. Por ejemplo, al dividir
20 entre 7 nos da como resultado 2.

El operador mdulo da como resultado el resto de la divisin entera. Por ejemplo


20%7 da como resultado 6 que es el resto de la divisin entre 20 y 7.

El operador mdulo tambin se puede emplear con nmeros reales. Por ejemplo,
el cociente entre 7.5 y 3.0 es 2.5 y el resto es cero, es decir, 7.5=3.0 x 2.5+ 0. El
operador mdulo, funciona de la siguiente forma 7.5=3.0 x 2+1.5, calcula la
diferencia entre el dividendo (7.5) y el producto del divisor (3.0) por la parte entera
(2) del cociente, devolviendo 1.5. As pues, la operacin 7.5%3.0 da como
resultado 1.5.

Operadores unarios o monarios

++ Incremento

-- Decremento

Ejemplo

i=i+1; //aadir 1 a i i++;

i=i-1; //restar 1 a i i--;

Ejemplo 5 operadores aritmticos

# include <iostream>
using namespace std;
int main()
{
int suma1,resta1,multi1,divi1,mod1,decre1,incre1;
short numero1 =5;
unsigned short numero2=10;
int numero3=-5;
unsigned int numero4= 6;
long int numero5=15;
unsigned long numero6=3;
const float PI = 3,1416; //Definimos una constante llamada PI

suma1=numero1+numero2;
resta1=numero3-numero4;
multi1= numero6*numero5;
divi1=numero2/numero3;
mod1=numero2%numero1;
decre1=--numero6;
incre1=++numero6;

//mirar detenidamente
int decre2, incre2;
decre2=numero6--;
incre2=numero6++;
cout<<"suma \n"<<suma1<<endl;
cout<<"resta \n"<<resta1<<endl;
cout<<"multiplicacion \n"<<multi1<<endl;
cout<<"division \n"<<divi1<<endl;
cout<<"modulo \n"<<mod1<<endl;
cout<<"decremento \n"<<decre1<<endl;
cout<<"incremento \n"<<incre1<<endl;
cout<<"decremento 2 \n"<<decre2<<endl;
cout<<"incremento 2 \n"<<incre2<<endl;
cout << "Mostrando el valor de PI: " << PI << endl;
system("pause");
return 0;
}

Operadores relacionales

Los operadores relacionales son smbolos que se usan para comparar dos
valores. Si el resultado de la comparacin es correcto la expresin considerada es
verdadera, en caso contrario es falsa.

Estos operadores son utilizados para crear validaciones, es decir instrucciones que permitan
establecer si algo es verdadero o falso. Tambin se le conoce como operadores de comparacin

Operador nombre ejemplo significado


< menor que a<b a es menor que b
> mayor que a>b a es mayor que b
== igual a a==b a es igual a b
!= no igual a a!=b a no es igual a b
<= menor que o igual a a<=5 a es menor que o igual a b
>= mayor que o igual a a>=b a es menor que o igual a b

Ejemplo

8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo
bsico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false.

Ejemplo 6 Operadores relacionales

# include<iostream>
Using namespace std;
int main()
{
int a=8;
int b=3;
int c=3;
bool val1,val2,val3,val4,val5,val6,val7;
val1=(a==b);
val2=(a!=b);
val3=(a<b);
val4=(a>b);
val5=(a>=c);
val6=(b<=c);
cout<<"val1 \n"<<val1<<endl;
cout<<"val2 \n"<<val2<<endl;
cout<<"val3 \n"<<val3<<endl;
cout<<"val4 \n"<<val4<<endl;
cout<<"val5 \n"<<val5<<endl;
cout<<"val6 \n"<<val6<<endl;
system("pause");

return 0;
}

Operadores lgicos
Los operadores lgicos tambin se conocen como booleanos, y se utilizan principalmente en
instrucciones de validacin, para unir dos o ms operaciones de relacin el resultado siempre es
un valor verdadero o falso.

&& AND (el resultado es verdadero si ambas expresiones son verdaderas)


|| OR (el resultado es verdadero si alguna expresin es verdadera)
! NOT (el resultado invierte la condicin de la expresin)

AND y OR trabajan con dos operandos y retornan un valor lgico basadas en las
denominadas tablas de verdad.

a b a and b a or b Not a Not b


v v v v f f
v f f v f v
f v f v v f
f f f f v v

El operador NOT acta sobre un operando. Estas tablas de verdad son conocidas
y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y tengo tiempo,
ir a la playa", "si NO hace sol, me quedar en casa", "si llueve O hace viento, ir
al cine".

Ejemplo 7 Operadores lgicos

# include <iostream>
using namespace std;

int main()
{
int a = 8;
int b = 3;
int c = 3;
bool var,var1,var2,var3;
var=((a == b) && (c > b) );
var1=((a == b) || (b == c) );
var2=(!(b <= c) );
var3=(b <= c);

cout<<"la primera expresion tiene un valor de:"<<var<<"\n";


cout<<"la segunda expresion tiene un valor de:"<< var1<<"\n";
cout<<"la tercera expresion tiene un valor de:"<< var2<<"\n";
cout<<"la cuarta expresion tiene un valor de:"<< var3<<"\n";
}

Tabla de prioridad

( ) Mayor
*,/,%
+,-
==,!=,>,<,<=,>=
not
and Menor
or

Operadores de asignacin

Un operador de asignacin altera el valor de un objeto sin alterar su tipo. El


operador usual de asignacin (=), copia el valor del operando de la derecha en el
operando de la izquierda, aplicando las conversiones de tipo usuales cuando es
necesario.

En C++ existen adems los siguientes operadores de asignacin:

Operador Funcin
= Asigna el valor de la derecha al de la izquierda
Suma el valor de la derecha con el de la izquierda, y asigna el total al de
+=
la izquierda
Resta el valor de la derecha con el de la izquierda, y asigna la diferencia
-=
de la izquierda
Multiplica el valor de la derecha con el de la izquierda, y asigna el
*=
producto al de la izquierda
Divide el valor de la derecha con el de la izquierda, y asigna el cociente
/=
al de la izquierda
Divide el valor de la derecha con el de la izquierda, y asigna el resto al de
%=
la izquierda
Ejemplos

a+=5 equivale a a = a +5 .

Expresin Significado
x+=y x=x+y
x-=y x=x-y
x*=y x=x*y
x/=y x=x/y

Ejemplo 8 Operadores de asignacin

# include <iostream>
using namespace std;
int main()
{
int numero3=5;
int numero4=6;
int numero5=7;
int numero6=4;
int numero7=3;

numero3+=numero4;
cout<<"el mumero es:"<<numero3<<endl;
numero5-=numero6;
cout<<"el mumero es:"<<numero5<<endl;
numero6*=numero7;
cout<<"el mumero es:"<<numero6<<endl;
numero4/=numero7;
cout<<"el mumero es:"<<numero4<<endl;

system("pause");

return 0;
}
Expresiones matemticas: son aquellas donde solo se usan operadores
aritmticos.

Ejemplos

5+8

(7+5)/2

((7+9-6)*(3+5))/4

M+6

6*k+f/9

Expresiones lgicas: es estas se usan las operaciones lgicas y relacionales. El


resultado de este tipo de expresin es 0 si es falso y un valor diferente de cero
si es verdadero.

Ejemplos

m>4

(3+j)==9

k!=0
nota1>3.2
promedio>4.0
(salario>500.000)and (tipo_empleado==1)
(k>5)and(k==1)
En los ltimos ejemplos de plantean expresiones que involucran los operadores
lgicos, dichas expresiones responden a los lineamientos de la lgica
matemtica es decir cuando se utiliza un operador and, la expresin es
verdadera si las dos condiciones se cumplen, en caso contario la expresin
ser false.
Al unir operadores aritmticos y lgicos se deber considerar su orden de
prioridad en general los operadores aritmticos son de mayor prioridad que los
lgicos y relacionales.

Casting en C++
Las operaciones entre diferentes tipos de datos da como resultado el de mayor
rango. Entre enteros el resultado SIEMPRE es un entero, por lo tanto se debe
preveer el truncamiento de decimales en las divisiones, para ello se aplica el (cast)
o conversin forzada.**
En C++ no existe el operador parte entera o DIV para ello se usa el truncamiento o
el cast.
Por ejemplo, para emitir un nmero de punto flotante del tipo " double" a un entero
de tipo 'int':
Ejemplo

Int i; Int i;
doubl d doubl d
i=(int) d; i=int (d);

Ejemplo 9 casting

# include <iostream>
using namespace std;
int main()
{
double numero3=5.3;
int numero4;
numero4=(int) numero3;
cout<<"el mumero es:"<<numero4<<endl;

system("pause");

return 0;
}

Das könnte Ihnen auch gefallen