Está en la página 1de 33

Tema4

OperadoresyExpresiones

FundamentosdeInformtica
Contenidos
Introduccin
Operadordeasignacin
Operadoresaritmticos
Operadoresmonarios
Operadoresrelacionales
Operadoreslgicos
Funcionesdebiblioteca

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 2
1

Introduccin

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 3
Introduccin

OPERADOR:Entidadesqueactansobrelosdatosparamodificarlos.

1. Operadordeasignacin
2. Operadoresaritmticos
3. Operadoresmonarios
4. Operadoresrelacionales
5. Operadoreslgicos

OPERANDOS: Datossobrelosqueactanlosoperadores.
Variables,constantes,...

EXPRESIONES: DistintasformasdeagruparOperandos yOperadores.

4
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 4
2

OperadordeAsignacin

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 5
Operadordeasignacin
Operadorasignacinsimple (=)
Elformatodeesteoperadores:
identificador=expresin;
Cuandolaexpresinyeloperadorseandedistintotipo,elvalordela
expresindeladerechaseconvertir automticamentealtipodel
identificadordelaizquierda
Ejemplos:
a=3; /*Guardaelvalor3enlavariablea*/
x=y; /*Guardaelvalorquetengalavariableyenlavariablex*/
suma=a+b; /*Guardalasumadelosvaloresdeaybenlavariablesuma*/
area =longitud*anchura;
/*Guardalamultiplicacindelosvaloresdelasvariableslongitud
yanchuraenlavariablearea */

Variable Unvalorfinal

Asigna losresultados deladerecha alavariabledelaizquierda


DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 6
Operadordeasignacin
Suponiendoiyjvariablesenterasyj=5

Expresin Valoralmacenadoeni
i=j 5
i=j/2 2
i=2*j/2 5
i=2*(j/2) 4

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 7
Operadoresdeasignacin
Operadordeasignacinmltiple:
identificador1=identificador2=......=expresion;
Seasignadederechaaizquierda
Equivalentea:
identificador2=expresin;
identificador1=identificador2;
Mejornoutilizarlo

Operadoresdeasignacincompuestos:
+=,=,*=,/=,%=
Porejemplo:
identificador+=expresion2;
Eslomismoque:
identificador= identificador+ expresion2;
Siplanteaalgunaduda,mejornoutilizarlo.

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 8
3

OperadoresAritmticos

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 9
Operadoresaritmticos
Realizanoperacionesconresultadonumrico
Susoperandosdebensernumricos
Tiposdeoperadores:
Operadorsuma (+)
Operadorresta ()
Operadormultiplicacin (*)
Operadordivisin (/)
Divisordistintodecero
Sidividendoydivisorson:
Enteros:Elresultadoser unenterotruncado.
Float:Elresultadoser unfloat.
Enteroyfloat:Elresultadoser unfloat.
Operadorrestodedivisinentera (%)
Ambosoperadoresdebenserenterosyeldivisornonulo
Seconservaenelresultadoelsignodelprimeroperando
Seutilizamuchoparasabersiunnmeroesmltiplodeotro(resto0)
EllenguajeCnodisponedeoperadorpararealizarpotencias
Utilizarlafuncinpow()delabibliotecamath.h,perono paraelcuadrado.

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 10
Operadoresaritmticos
Sia=10b=3(enteros) Sia=12.5b=2.0(reales)
expresin resultado expresin resultado
a+b 13 a+b 14.5
a b 7 a b 10.5
a*b 30 a*b 25.0
a/b 3 a/b 6.25
a%b 1 a%b TIPOSINCORRECTOS

Sia=P b=T expresin resultado


ASCIIP=80 a 80
a+b 164
ASCIIT=84
a+b+5 169
ASCII5=53
a+b+5 217

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 11
Operadoresaritmticos
Conversinsobreoperandosquedifieranentipo:
Elresultadofinalseexpresar conlamayorprecisinposibleyde
formaconsistenteconlostiposdedatosdelosoperandos.
Regla general (cuando ninguno de los operandos sea unsigned):
Se promueve el tipo inferior al tipo superior, obteniendo un
resultadoqueesdetiposuperior.
Sicualquieroperandoesdetipolongdouble
Seconvierteelotrooperandoalongdouble
Sino:Sicualquieroperandoesdetipodouble
Seconvierteelotrooperandoadouble
Sino:Sicualquieroperandoesdetipofloat
Seconvierteelotrooperandoafloat
Sino:Sicualquieroperandoesdetipolongint
Seconvierteelotrooperandoalongint
Sino:
Seconviertechar yshort aint
(aunqueseanlosdosdelmismotipochar oshort)
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 12
Operadoresaritmticos
Sii=7(entera)
f=5.5(comaflotantedouble)
c=w (char)

expresin resultado tipo

i+f 12.5 dobleprecisin

i+c 126 entero

i+c 0 78 entero

(i+c) (2*f/5) 123.8 dobleprecisin

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 13
Operadoresaritmticos
Conversindetiposo"cast":
Permitetransformareltipodedatosresultadodeunaexpresinaun
tipodedatosespecfico
Nomodificaeltipodedatosoriginalsinosuvalordentrodela expresin.
(tipodedatos)expresin
Alaplicarlaconversindetipossemodificaelvalordentrodela
expresinenlaqueseencuentra,nosemodificaeltipodedatos
original.
Sii=7(entero)f=8.5(float)
(i+f)%4:EXPRESINNOVLIDA
((int)(i+f))%4:EXPRESINVLIDAutilizandolaconversin
Ordendeprecedenciaenlosoperadoresaritmticos:
Losoperadoresconmayorprecedenciaseevalanantesquelosdemenor
precedencia.
Grupo1deprecedencia Grupo2deprecedencia
* / % +

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 14
4

OperadoresMonarios

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 15
Operadoresmonarios
Caractersticas:
Conunnicooperando
Mayorprecedenciaquelosoperadoresaritmticos
Tiposdeoperadoresmonarios:
Operadorsigno ()
Cambiadesignoeloperando
Operadorincremento (++)
Incrementaenunoeloperando
Puedeirdelanteodetrsdeloperando
Elincrementoserealizaantesodespusdeutilizareloperandoconotrofin
Operadordecremento ()
Decrementa enunoeloperando
Puedeirdelanteodetrsdeloperando
Elincrementoserealizaantesodespusdeutilizareloperandoconotrofin
Operadorsizeof ()
Devuelveeltamaodesuoperandoenbytes
Operandopuedeserunavariableountipodedato

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 16
Operadoresmonarios
Sii=1
Lasalidaporpantallaes:
Dado:
i=1
printf (i=%d\n,i);
printf (i=%d\n,++i);
i=2
printf (i=%d\n,i++); i=2
printf(i =%d\n,i); i=3;
i++; i=4;
printf(i =%d\n,i); i=5;
++i;
printf(i =%d\n,i);

Sii=1
Dado: Lasalidaporpantallaes:
printf (i=%d\n,i); i=1
printf (i=%d\n,i++); i=1
printf (i=%d\n,i); i=2

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 17
Operadoresmonarios
Sisehadeclarado:
int i; char c;
float x; double d;
Lasalidadelsiguienteprograma:
printf (Entero:%d\n,sizeof(i)); printf(Entero:%d\n,sizeof i);
printf (\nComa flotante:%d\n,sizeof(x));
printf (\nDoble precision:%d\n sizeof(d));
printf (\nCaracter:%d\n,sizeof (c));
Sera:
Entero:4
Comaflotante:4
Dobleprecision:8
Caracter:1

Sepodrahaberutilizadotambineltipodeldato:
printf (Entero:%d\n,sizeof (int));
(nosepuede usar printf(Entero:%d,sizeof int);pues es unerrorde
compilacin).
printf (Comaflotante:%d\n,sizeof (float));
printf (Dobleprecisin:%d\n sizeof (double));
printf (Carcter:%d\n,sizeof (char));
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 18
5

OperadoresRelacionales

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 19
Operadoresrelacionales
Caractersticas:
Elresultadosiempreesunvalorlgico:VERDADERO(>=1)oFALSO(0).
Losoperadoresseutilizanparaformarexpresioneslgicas
Losoperadoresrelacionalestienenmenorprecedenciaquelos
operadoresmonarios yaritmticos
Losoperadoresrelacionalestienenmayorprecedenciaquelos
operadoresdeigualdad
Asociatividaddeizquierdaaderechadentrodeunaexpresin

Operador Funcin Operador Funcin


Relacional deIgualdad
< menorque == igualque
<= menoroigualque != noigualque
> mayorque
>= mayoroigualque
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 20
Operadoresrelacionales

Sii=1,j=2,k=3variablesenteras

expresin interpretacin Valor


i<j cierto 1 !=0
(i+j) >= k cierto 1 !=0
(j+k)>(i+5) falso 0
k!=3 falso 0

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 21
6

OperadoresLgicos

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 22
Operadoreslgicos
Caractersticas:
Actansobreoperandosquesonexpresioneslgicas
Permitencombinarexpresioneslgicassencillasparagenerar
expresioneslgicasmscomplejas
Operador Significado
Operadoreslgicosdedos && y
operandos:
|| o
&& ANDlgico
|| ORlgico ! Negacin
Operadoreslgicosdeun TABLASDEVERDAD
solooperando(monarios) p q p&&q p||q !p
! Negacin Falso Falso Falso Falso Cierto
Falso Cierto Falso Cierto Cierto
Cualquiervalornonulose
consideracierto. Cierto Falso Falso Cierto Falso
Cierto Cierto Cierto Cierto Falso

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 23
Operadoreslgicos
Sii=7(entero)f=5.5(float)yc=w (char)(ASCII119)

expresin interpretacin Valor


(i>=6)&&(c==w) cierto 1
(i>=6)||(c==119) cierto 1
(f<11)&&(i>100) falso 0
(c!=p)||((i+f)<=10) cierto 1
(i>=6)||(c==65) cierto 1

Ejercicios
(5==5)||(6==7)
(5==8)||(6!=7)
(8>=5)&&(!(5<=2))

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 24
Tabladeprecedencias

Consejo:Utilizar parntesis

Categora Operadores
Monarios ,++,,!,sizeof(),(tipo) +Prioritarios
Multiplicacin,divisiny *,/,%
restoaritmticos

sumayrestaaritmticas +,
operadoresrelacionales <,<=,>,>=
operadoresdeigualdad ==,!=
ANDlgico &&
ORlgico ||
Prioritarios
operadoresdeasignacin =,+=,=,*=,/=,%=
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 25
7

FuncionesdeBiblioteca

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 26
Funcionesdebiblioteca

Realizanoperacionesyclculosdeusofrecuente
LasfuncionesdebibliotecanosonpartedellenguajeC,perolasincluyen
todosloscompiladores
Estnagrupadasenarchivosdebibliotecaseparados,comoporejemplo:
Entrada/salida(stdio.h)
Funcionesdeusomatemtico(math.h)
Funcionesdegestindecadenas(string.h)
Debenincluirsedentrodelprogramaconladirectiva
#include <stdio.h>
#include <math.h>

DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 27
Funcionesdebiblioteca
Funcin Tipo de dato de Propsito
retorno
abs(i) int Devuelve el valor absoluto de i
cos(d) double Devuelve el coseno de d
cosh(d) double Devuelve el coseno hiperblico de d
exp(d) double Eleva e a la potencia d
fabs(d) double Devuelve el valor absoluto de d
getchar() int Introducir un carcter desde el dispositivo de entrada
log(d) double Devuelve el logaritmo natural de d
pow(d1,d2) double Devuelve d1 elevado a la potencia d2
printf(....) int Manda datos al dispositivo de salida estndar
putchar(c) int Manda un carcter al dispositivo de salida estndar
rand() int Devuelve un entero positivo aleatorio
sin(d) double Devuelve el seno de d
sqrt(d) double Devuelve la raz cuadrada de d
srand(u) void Inicializa el generador de nmeros aleatorios
scanf(....) int Introduce datos del dispositivo de entrada estndar
tan(d) double Devuelve la tangente de d
toascii(c) int Convierte el valor del argumento a ASCII
tolower(c) int Convierte una letra a minscula
toupper(c) int Convierte una letra a mayscula
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 28
Ejercicio1

int main(void)
{
int ia;
int ib;
int ires;
double da;
double db;
double dres;

/*Inicializaciones*/
ia =1;
ib=3;
da=2.3;
db =3.7;

ires =ia +(ib*2+ia*3); /*Ejemplo1*/


dres =ia +(ib*2+ia*3); /*Ejemplo2*/
dres =ia +da*(ib/2.0+ia/2.0);/*Ejemplo3*/
ires =ia +da*(ib/2.0+ia/2.0); /*Ejemplo4*/
dres =da*(ia +ib*(da+db/3.0));/*Ejemplo5*/
return 0;
}
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 29
Ejercicio2
/*
...Esteprogramapasaeurosapesetasyviceversa
*/
//Directivasdelprecompilador
#include <stdio.h>
#define EUR 166.386

int main (void)


{
int pesetas; //pesetas,variableparaguardarelvalorenpesetas
float euros; //euros,variableparaguardarelvaloreneuros
printf ("Introduzcaunacantidadeneuros");
scanf ("%f",&euros);
//Elvalor0.5seutilizaparaconvertireltruncamientoenredondeo
pesetas=euros*EUR +0.5;
printf ("%.2f eurosequivalena%d pesetas\n",euros,pesetas);

printf ("Introduzcaunacantidadenpesetas");
scanf ("%d",&pesetas);
euros=pesetas/EUR;
printf ("%d pesetasequivalena%.2f euros\n",pesetas,euros);
return 0;
}
30
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 30
Ejercicio3
/*
...Esteprogramacalculaelcocienteyelrestodeunadivisinentera
*/
//Directivasdelprecompilador
#include <stdio.h>

//Programaprincipal
Int main (void)
{
int numerador;
int denominador;
int cociente;
int resto;
printf (\nIntroduzca unnumeroenteroparaelnumerador:");
scanf ("%d",&numerador);
printf (\nIntroduza otronumeroenteroparaeldenominador:");
scanf ("%d",&denominador);
cociente=numerador/denominador;
resto=numerador%denominador;

printf ("%d /%d =%d,resto%d",numerador,denominador,cociente,resto);


return 0;
}
31
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 31
Ejercicio4
/*
...EsteprogramapasaunatemperaturaCelsiusaReamur,FahrenheityKelvin
*/
//Directivasdelprecompilador
#include <stdio.h>
//Programaprincipal
int main (void)
{
float celsius;
float reamur;
float fahrenheit;
float kelvin;
printf (\n****INICIOPROGRAMACONVERSION DETEMPERATURAS****");
printf ("\n\nIntroduzca unatemperaturaenlaescalaCelsius(centigrada).");
scanf ("%f",&celsius);
reamur =0.8*celsius;
fahrenheit =(1.8*celsius )+32;
kelvin=celsius +273;
printf ("\nEl valordetemperaturaenlaescalaReamur es...%.2f",reamur);
printf ("\nEl valordetemperaturaenlaescalaFahrenheites...%.2f",fahrenheit);
printf ("\nEl valordetemperaturaenlaescalaKelvines...%.2f",kelvin);
return 0;
} 32
DepartamentodeSistemasInformticos Tema4:OperadoresyExpresiones
EscuelaTcnicaSuperiordeIngenieraICAI 32
EscuelaTcnicaSuperiordeIngenieraICAI
AlbertoAguilera25
28015Madrid
Tel +34915422800
Fax+34915423176
Iwww.icai.upcomillas.es

www.upcomillas.es

También podría gustarte