OPERADORES EN C++
C++ , posee los nmeros de operadores de C y se les han aadido nuevos y propios de C++ los operadores pueden agruparse en: 1. Aritmticos 6. Del preprocesador
2. De asignacin 3. A nivel de bits
4. Lgicos 5. Posfijos
7. De referencia 8. Relacionales
9. Especficos de C++ 10. De incremento y Disminucin
21/10/2012
Mg. Edgar Ruiz Lizama
TABLA I:
OPERADORES ARITMTICOS
OPERADOR
+ -
SIGNIFICADO
Adicin Sustraccin
*
/ %
Producto
Divisin Mdulo Resto
21/10/2012
Mg. Edgar Ruiz Lizama
Ejemplo: OPERADORES ARITMTICOS
#include <iostream> using namespace std; int main() { int x=20,y=7; cout<<"a : "<<x<<endl; cout<<"b : "<<y<<endl; cout<<"La suma es: "<<(x+y)<<endl; cout<<"La resta es: "<<(x-y)<<endl; cout<<"La producto es: "<<(x*y)<<endl; cout<<"El modulo o resto es: "<<(x%y)<<endl; cout<<"La division es: "<<(x/y)<<endl; return 0; }
21/10/2012
Mg. Edgar Ruiz Lizama
EXPRESIONES DE ASIGNACIN
< LAD. IZQ. > <OPERADOR DE ASIGNAC. > <LAD. DER.>
LADO IZQ.
OPERADOR
LADO DER.
Variable Variable Variable
21/10/2012 Mg. Edgar Ruiz Lizama
= = =
Variable Expresin Constante
4
TABLA II:
OPERADORES DE ASIGNACIN
OPERADOR
EJEMPLO
EQUIVALENC.
= += -= *= /= %=
21/10/2012
a=b+c a+=c a-=c a*=c a/=c a%=c
Mg. Edgar Ruiz Lizama
Exp1=Exp2 a=a+c a=a-c a=a*c a=a/c a=a%c
5
EJEMPLO: EXPRESIONES DE ASIGNACIN
#include <iostream> using namespace std; int main() // Opeasig.cpp { int x=10,y=5; cout<<"x= "<<x<<"\ty= "<<y<<endl; cout<<"Valor de x+=y es: "<<(x+=y)<<endl; cout<<"Valor de x*=y es: "<<(x*=y)<<endl; cout<<"Valor de x/=y es: "<<(x/=y)<<endl; cout<<"Valor de x%=y es: "<<(x%=y)<<endl; cout<<"Valor de x+=x+y es: "<<(x+=x+y)<<endl; cout<<"Valor de x-=x+y es: "<<(x-=x+y)<<endl; return 0; }
21/10/2012
Mg. Edgar Ruiz Lizama
TABLA II: OPERADORES DE ASIGNACIN (continuacin)
OPERADOR EJEMPLO EQUIVALENC.
<<= >> = &= |= ^=
a <<= 2 a >> =5 a & =b a | =b a^ =b
a=a<<2 a=a>>5 a=a&b a=a|b a=a^c
21/10/2012
Mg. Edgar Ruiz Lizama
TABLA III: OPERADORES A NIVEL DE BITS
OPERADOR SIGNIFICADO
&
AND
|
^ << >> ~
OR
OR(Exclusivo) Desplazamiento a la izquierda. Desplazamiento a la derecha Complemento a uno
21/10/2012
Mg. Edgar Ruiz Lizama
Resultados de combinar dos bits mediante los operadores & , | , ^ .
BIT1 BIT2 BIT1 & BIT2 BIT1 | BIT2 BIT1^BIT2
0 1 0 1
21/10/2012
0 0 1 1
0 0 0 1
Mg. Edgar Ruiz Lizama
0 1 1 1
0 1 1 0
9
EJEMPLO: Uso de operadores a nivel de bits AND, OR exclusivo,
inclusivo y el complemento a uno
#include <iostream> void mostrarBits(unsigned int); using namespace std; int main() { unsigned num1, num2,mask; num1=32767; mask=1; cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(mask); cout<<"Usando operadores a nivel de bits AND & es: \n"; mostrarBits(num1 & mask); cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(mask); cout<<"Usando operadores a nivel de bits OR | inclusivo es: \n"; mostrarBits(num1 | mask); num1=100; num2=1000; cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(num2);
21/10/2012 Mg. Edgar Ruiz Lizama
OR
10
cout<<"Usando operadores a nivel de bits OR ^ exclusivo es: \n"; mostrarBits(num1 ^ num2); num1=65535; cout<<"complemento a uno de:\n "; mostrarBits(num1); cout<<"es\n"; mostrarBits(~num1); return 0; } void mostrarBits(unsigned valor) { unsigned i,displayMask=1<<15; cout<<valor<<" = "; for(i=1; i<=16;i++) { cout<<(valor & displayMask? '1' : '0'); valor <<=1; if(i%8==0) cout<<' '; } cout<<"\n"; }
EJEMPLO: CONTINUACION
21/10/2012
Mg. Edgar Ruiz Lizama
11
EJEMPLO: Uso de los operadores a nivel de bits desplazamiento a la izquierda
<< y a la derecha a nivel de bits: <<, >>
#include <iostream> void mostrarBits(unsigned); using namespace std; int main() { unsigned num1=1100; cout<<"\nEl resultado de desplazar a la izquierda \n"; mostrarBits(num1); cout<<"8 posiciones usando el operador de"; cout<<" desplazamiento a la izquierda << es:\n "; mostrarBits(num1<<8); cout<<"\nEl resultado de desplazar a la izquierda \n"; mostrarBits(num1); cout<<"8 posiciones usando el operador de"; cout<<" desplazamiento a la derecha >> es:\n "; mostrarBits(num1>>8); return 0; }
21/10/2012
Mg. Edgar Ruiz Lizama
12
Ejemplo: continuacin
void mostrarBits(unsigned valor) { unsigned i,displayMask=1<<15; cout<<valor<<" = "; for(i=1; i<=16;i++) { cout<<(valor & displayMask? '1' : '0'); valor <<=1; if(i%8==0) cout<<' '; } cout<<"\n"; }
21/10/2012
Mg. Edgar Ruiz Lizama
13
TABLA IV: OPERADORES LGICOS
OPERADOR SIGNIFICADO
&&
|| !=
AND
OR NOT
NOTA: El resultado de aplicar un operador lgico o un operador relacional es un valor booleano; es decir FALSE ( 0 ) es TRUE ( 1 )
21/10/2012 Mg. Edgar Ruiz Lizama 14
EJEMPLO: OPERADORES LGICOS
#include <iostream> #define TRUE 1 #define FALSE !TRUE int and_logico(int x,int y, int z); int or_logico(int x,int y, int z); int negacion_logico(int x,int y); using namespace std; int main()//opelogi.cpp { int a=3, b=4, c=5; cout<<"a= "<<a<<" b= "<<b<<" c= "<<c<<endl; cout<<" c>b>a : "<<and_logico(a,b,c)<<endl; cout<<" c>a o c>b : "<<or_logico(a,b,c)<<endl; cout<<" no(b>a) : "<<negacion_logico(a,b)<<endl; return 0; }
21/10/2012
Mg. Edgar Ruiz Lizama
15
CONTINUACION
int and_logico(int x,int y, int z) { if((z>y)&&(y>x)) return TRUE; else return FALSE; } int or_logico(int x,int y, int z) { if((z>x)&&(z>y)) return TRUE; else return FALSE; } int negacion_logico(int x,int y) { if(!(y>x)) return TRUE; else return FALSE; }
21/10/2012
Mg. Edgar Ruiz Lizama
16
TABLA V: OPERADORES POSFIJOS Y PREFIJOS
OPERADORES PREFIJOS POSFIJOS
NOTACIN <Operador> <Variable> <Variable> <Operador>
EJEMPLO ++x; x++;
21/10/2012
Mg. Edgar Ruiz Lizama
17
TABLA VI: DEL PREPROCESADOR
OPERADOR new delete delete[] throw SIGNIFICADO Crear o asignar memoria. Desasignar memoria liberar memoria. Liberar memoria de un array. Manejo de excepciones.
21/10/2012
Mg. Edgar Ruiz Lizama
18
TABLA VII: OPERADORES REFERENCIA Los operadores de referencia son:
OPERADOR SIGNIFICADO EJEMPLO
& *
Otorga la direccin de memoria de una variable Permite declarar una variable como puntero
x=&y; int *x;
21/10/2012
Mg. Edgar Ruiz Lizama
19
TABLA VIII: OPERADORES RELACIONALES
OPERADOR SIGNIFICADO EJEMPLO
== !=
Igualdad. Diferente
a==b a!=b
>
< >= <=
21/10/2012
Mayor que
Menor que Mayor Igual Menor Igual
Mg. Edgar Ruiz Lizama
a>b
a<b a>=b a<=b
20
EJEMPLO: HALLAR EL MAYOR DE DOS ENTEROS
#include <iostream> int mayor(int x,int y);
using namespace std; int main() { int a,b; cout<<"Ingrese dos enteros: "<<endl; cin>>a>>b; cout<<"El mayor es: "<<mayor(a,b)<<endl; return 0; } int mayor(int x,int y) { if(x>y) return x; else return y; }
21/10/2012 Mg. Edgar Ruiz Lizama 21
TABLA X: OPERADORES DE INCREMENTO Y
DISMINUCIN OPERADOR ++ -SIGNIFICADO Incremento en 1 Disminucin en 1
NOTA: Los operadores de incremento y disminucin pueden ser: Prefijos como ++x; o posfijos como x++;
21/10/2012 Mg. Edgar Ruiz Lizama 22
Ejemplo: OPERADORES DE INCREMENTO O
DISMINUCION
#include <iostream> using namespace std; int main() { int x=20,y=7; cout<<"a : "<<x<<endl; cout<<"b : "<<y<<endl; cout<<"incremento en uno para x: "<<(++x)<<endl; cout<<"decremento en uno para x: "<<(--y)<<endl;
return 0;
}
21/10/2012
Mg. Edgar Ruiz Lizama
23
Referencias
Deitel H.M. y Deitel P.J., (2008). Como Programar en C/C++ ". Mxico, 6ta. ed. Prentice Hall. Kernighan Brian W. & Ritchie Dennis M. (1993) El Lenguaje de Programacin C. 2da. Edicin. Prentice-Hall Hispanoamericana, 294 p. Mxico. Parker Alan, (1993). "Algorithms and Data Structures in C++ ". USA CRC Press: 257p. Ruiz Lizama Edgar, (2009). Programacin con C++". Lima, 1ra. Edicin, Fondo Editorial UNMSM: 434p. Ruiz Lizama Edgar, (1999). "Curso de Lenguaje C". Lima, Facultad de Ingeniera Industrial UNMSM: 234p. Staguaard, Andrew (1998) "Tcnicas estructuradas y orientadas a objetos: una introduccin utilizando C++". Mxico. Prentice-Hall Hispanoamericana, 770 p. Mxico. Stroustrup, Bjarne (2002) "El Lenguaje de Programacin C++ Edicin especial". Addison Wesley PEARSON EDUCACION S.A. 1050 p. Espaa.
21/10/2012
Mg. Edgar Ruiz Lizama
24