Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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,...
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
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
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)
i+c 0 78 entero
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
Sii=1,j=2,k=3variablesenteras
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)
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;
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;
www.upcomillas.es