Está en la página 1de 8

Ing.

Ricardo Castañeda

UNIVERSIDAD NACIONAL DE INGENIERÍA


FACULTAD DE INGENIERÍA MECÁNICA

PROFESOR : RICARDO CASTAÑEDA DE LA ROSA

2011
-1-

4. BORLAND C++ EXPRESIONES, OPERADORES Y ESTRUCTURAS DE CONTROL


Los programas escritos en “C” constan de datos expresiones e instrucciones. Una
expresión es una secuencia de operadores y operandos que normalmente nos
permiten asignarles un valor a una variable, estas expresiones están colocadas en
Ing. Ricardo Castañeda

instrucciones que nos permiten de acuerdo a una lógica realizar una tarea, proceso o
calculo.
4.1. Expresiones.- Como hemos dicho una expresión es una secuencia de
operadores y operandos, aunque también podemos tener algunas expresiones que
salen de este formato. Ejemplo : a = b*c; p1 = &c; numero = numero + 1.
4.2. Operadores aritméticos.- Nos permiten realizar las operaciones aritméticas
básicas sean del tipo real ( float) o entero, considerando que en lenguaje “C” se
define el tipo de operación por los operandos, si al menos un operando es del tipo
float la operación se realizara en el modo real.
Operador Entero Real .
+ Unitario mas Unitario mas
- Unitario menos Unitario menos
+ Suma Suma
- Resta Resta
* Producto Producto
/ Cociente de división entera Cociente real
% Resto de división entera
++ Incremento
-- Decremento

Ejemplo : 4%3 será 1 y 3%4 será 3


10/4 será 2 y 10/4.0 será 2.5
En el primer caso la división es 1 y el resto 1.
En el segundo caso la división es 0 y el resto 3
En el tercer caso la división es 2 y en el cuarto caso la división es 2.5 ( Modo real)
4.3. Operadores de incremento y decremento.- Los operadores ++ y - - suman o
restan 1 a su argumento. Por ejemplo a++ y ++a producen el mismo efecto. Sobre el
argumento pero :
int numero, valor ;
valor = 6;
numero = valor++; // Asigna a numero 6 a numero y luego incrementa valor a 7
numero = ++valor; // Incrementa valor a 7 y luego asigna 7 a numero
Lo mismo sucede con cont - - y - - cont
-2-
4.4. Operadores de asignación, relación, lógicos y desplazamiento .-
 Operadores de asignación.- Consideramos el símbolo = operador de
desplazamiento. Por ejemplo podemos colocar cont1 = cont2 = cont3 = 0
;. Le asignamos el valor cero a los tres contadores pero esta operación se
Ing. Ricardo Castañeda

realiza de izquierda a derecha. También podemos abreviar c+=5 ; que es


equivalente a c = c +5, tenemos la siguiente tabla

Operador Abreviatura Sentencia .


+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b

 Operadores relacionales.- Relacionan operandos enteros o reales pero su


resultado es booleano, estos son:
a == b uno si es verdadero y cero si a no es igual a b
a != b uno si es verdadero y cero si a no es igual a b
a < b uno si es verdadero y cero si a no es igual a b
a > b uno si es verdadero y cero si a no es igual a b
a <= b uno si es verdadero y cero si a no es igual a b
a >= b uno si es verdadero y cero si a no es igual a b
Pero también podemos tener a = b > c en cuyo caso a valdrá 1 si b es mayor que c
y cero en caso contrario.
 Operadores lógicos.- Son el not el and y el or, Relacionan operandos booleanos
y su resultado es booleano, estos son:
 Negación ! el not lógico
 And && el and . para que sea verdadero sus dos operandos deben ser
verdaderos.
 Or || el or . para que sea verdadero basta que un operando se
verdadero.
-3-

Ejemplo :
/* Lee un numero y lo invierte Ejemplo lee 1347 e imprime 7431 */
# include<iostream.h>
# include<conio.h>
Ing. Ricardo Castañeda

void main( )
{ int numero, num_inv, dígito ;
clrscr( );
num_inv = 0;
cout << “ Ingrese un numero de 4 dígitos => “;
cin >> numero;
while ( numero >= 10)
{ dígito = numero % 10;
num_inv = num_inv*10 + dígito;
numero = numero / 10;
}
num_inv = num_inv*10 + numero ;
cout << “ El numero invertido será = “ << num_inv;
getch(); }
4.5. Operadores Especiales.- Existen otros operadores que pasaremos a revisar
4.5.1. Operadores de Dirección.- Tenemos los siguientes
 * accede el campo apuntado.
 & Devuelve la dirección del operando
Ejemplo : Manejo de direcciones
# include<iostream.h>
# include<conio.h>
void main( )
{ int *p1 ; // Declaramos una variable tipo puntero
int a, b ; //Declaramos las variables a y b del tipo entero
clrscr( );
a = 17;
b = 18;
p1 = &a; // p1 apunta hacia a
cout << *p1<<endl; // Se imprime el valor apuntado por p1
cout << hex << p1<< endl; // Imprime la dirección de a contenida en p1
cout << dec; // vuelve al formato decimal
p1 =&b; // p1 toma la dirección de b
cout << *p1; // imprime el valor almacenado en el campo apuntado por p1(b)
getch(); }
-4-
 . Accede a un miembro de un objeto o variable estructurada
 “ -> “ Accede a un miembro de un objeto apuntado por el operando de la
izquierda.
4.5.2. Operador Condicional.- Su forma es
expresion_c ? expresion_v : expresion_f

v1 > v2 ? v1 : v2
devuelve el mayor valor de v1 , v2
Ing. Ricardo Castañeda

4.5.3. Operador Coma, Operador( ),Operador[ ], Operador : : .-


 Coma combina expresiones a> b , c > 10 // a mayor que b , c mayor que
10
 ( ) Llama a funciones y también altera prioridad
 [ ] Acompaña a los arrays
 :: Indica ámbito void empleado :: planilla ( ) // indica la función planilla
perteneciente a empleado.
/* Simulación de un juego de dados */ {
# include<iostream.h> do {
# include<conio.h>
# include<stdlib.h> dado1 = random(6) + 1;
# include<time.h> dado2 = random(6) + 1;
void main( ) juego = dado1 + dado2;
{int juego1, juego, dado1,dado2; cout<<juego<<endl;
clrscr (); } while ( ( juego ! = juego1)
randomize(); && ( juego ! = 7));
dado1 = random(6) + 1; if ( juego = juego1)
dado2 = random(6) + 1; cout << “Gano juego”;
juego1 = dado1 + dado2; else
cout<< juego1<<endl; cout << “Perdió juego”;
if ( (juego1 == 7 ) || ( juego1 == 11 ) }
cout << “ Gano juego” ; getch();
else }
if ( (juego1 == 2) || (juego1 == 3 ) || ( juego1 ==
12))
cout << “ Perdió juego”;

else
-5-

ESTRUCTURAS DE CONTROL EN LENGUAJE “C”


5.1. Sentencia if .- Nos permite derivar el control hacia uno de dos puntos del
programa.
Forma General
Ing. Ricardo Castañeda

if ( condición)
{................... ;
.....................;
}
[else
{ ...................;
...................;
}]

5.2. Sentencia switch.- Deriva el control hacia uno de varios puntos del
programa, permite realizar una selección múltiple.
Forma General

switch ( expresión)
{ case const1 : ................... ;
....................;
break;
case const2 : ................... ;
....................;
break;
case const3 : ................... ;
....................;
break;
case const4 : ................... ;
....................;
break;
[ default : .....................;
.....................;
break;]
}

5.3. Sentencia while.- Nos permite ejecutar repetidamente un grupo de


sentencias hasta que el valor de la expresión se hace cero (condición falsa)
Forma General

while ( expresión)
{................... ;
.....................;
.....................;
}

-6-
5.4. Sentencia do while.- Las sentencias se ejecutan repetidamente hasta que el
valor de la expresión se hace cero (falso)

Forma General

do
Ing. Ricardo Castañeda

{................... ;
.....................;
.....................;
} while ( expresión);

5.5. Sentencia for.- Las sentencias se ejecutan hasta que el valor de la


expresion2 sea cero o sea falso.
Forma General
for ( exp1 ; exp2 ; exp3)
{................... ;
.....................;
.....................;
}
Programas Ejemplos “C++” case‘2’:cout<< menor(v1, v2, v3, v4);break;
case‘3’:clrscr();cout<<mayor(v1, v2, v3, v4);
/*Lee cuatro valores y calcula el promedio, el getch();break();
menor y el mayor, utilizando funciones */ case‘4’:clrscr();cout<<promedio(v1,v2,
# include<iostream.h> v3,v4 );getch();break;
# include<conio.h> case ‘5’: escribir ( v1, v2, v3 v4 );break;
void leer( float *p1, float *p2, float *p3, float } }while (opcion ! = ‘6’);
*p4); } //fin programa
float menor(float p1,float p2,float p3,float void leer(float*p1,float*p2,float*p3,float *p4)
p4); {clrscr( );
float mayor(float a, float b, float c, float d); gotoxy(30,2);cout<< “LECTURA”;
float promedio(float p1, float p2, float p3, gotoxy(28,6);cout<<“Valor 1=>”;cin>> *p1;
floatp4);
gotoxy(28,7);cout<<“Valor 2=>“;cin>> *p2;
void escribir(float p1, float p2, float p3, float p4);
gotoxy(28,8);cout<<“Valor 3=>”;cin >> *p3;
void main( )
gotoxy(28,9);cout<<“Valor 4=>“;cin >> *p4;
{ float v1, v2, v3, v4 ;
}
char opcion;
float menor(float p1,float p2,float p3, floatp4)
do {clrscr( );
{ float m1, m2, mt;
gotoxy(30,2);cout << “CALCULOS”;
if ( p1 < p2) m1 = p1;
gotoxy(28,6); cout << “1.- Lectura”;
else
gotoxy(28,7); cout << “2.- Menor”;
m1 = p2;
gotoxy(28,8); cout << “3.- Mayor”;
if ( p3 < p4) m2 = p3;
gotoxy(28,9); cout << “4.- Promedio”;
else
gotoxy(28,10); cout<<“5.- Escritura”;
m2 = p4;
gotoxy(28,11);cout<<“6.- Salir”;
if ( m1 < m2) mt = m1;
gotoxy(28,15); cout<< “Ingrese Opción => ”;
else
cin >> opcion;
mt = m2;
switch ( opcion)
{case ‘1’: leer(&v1, &v2, &v3, &v4);break;
return(mt); }

-7-
float mayor(float a, float b, float c, float d) TAREA
{ float m1, m2, mt;
if ( p1 > p2) Escriba un programa que trabaje como el
m1 = p1; programa anterior, pero que lea como
else datos:
m1 = p2;
Ing. Ricardo Castañeda

if ( p3 > p4)  Nombre


m2 = p3;
else  Sueldo
m2 = p4;
if ( m1 > m2)  Días faltos ( Se le descontara
mt = m1; 1/30 por cada día falto)
else  Horas extras ( Se le pagara 1.5
mt = m2; horas por cada hora extra)
return(mt);
} El menú debe considerar leer, calculo de
float promedio(float p1, float p2 , float p3, neto y escritura( El descuento de ley es
floatp4) 10%.
{ float pt;
pt = (p1 + p2 + p3 + p4)/4;
return(pt);
}
void escribir(float p1,float p2,float p3, float p4)
{ clrscr( );
gotoxy(30,2); cout << “ESCRITURA”;
gotoxy(28,6); cout << “1er valor => ”<< p1;
gotoxy(28,7); cout << “2do valor => “ << p2;
gotoxy(28,8); cout << “3er valor => ” << p3;
gotoxy(28,9); cout << “4to valor => “ << p4;
getch();
}

-8-

También podría gustarte