Está en la página 1de 29

18/11/08

Programacin1(03) UnidadIV:Expresiones
Prof.FlorNarciso DepartamentodeComputacin EscueladeIngenieradeSistemas FacultaddeIngeniera UniversidaddeLosAndes

Expresin
Puedeser:

Unavariable:x Unaconstante:3 Unacombinacindeoperadoresyoperandos: (y+1)/2

Prof. Flor Narciso

Programacin 1 Semestre B-2008

18/11/08

Expresin
Tiposdeexpresiones
Aritm'cas:Losoperandosqueintervienenen ellasonnumricos,elresultadoesnumricoylos operadoressonaritmQcos Lgicas:SuresultadoesCIERTOFALSO.Se construyenmediantelosoperadoresrelacionales ylgicos

Prof. Flor Narciso

Programacin 1 Semestre B-2008

OperadoresaritmQcosenC
Operacin
Suma Resta Producto Divisin Mdulo Incremento Decremento I + 1 I - 1

Operador
+ x /

Expresin algebrica
A+ 3 B - C X x Y X/Y X Y

Operador en Expresin en C C
+ * / % ++ -A+ 3 B - C X*Y X/Y R % S I++ ++I I- - - - I

Prof. Flor Narciso

Programacin 1 Semestre B-2008

18/11/08

OperadoresaritmQcosenC
OperacinMdulo Operador:% Esteoperadorcalculaelrestodelcocienteentero Seusaconvariablesenteras Sudivisornopuedesercero

Prof. Flor Narciso

Programacin 1 Semestre B-2008

OperadoresaritmQcosenC
Ejemplos
25%5=0 13%2=1 23%4=3

Prof. Flor Narciso

Programacin 1 Semestre B-2008

18/11/08

OperadoresaritmQcosenC
Incremento(++)
Laexpresina++;esequivalentealaexpresina=a+1; EnunasolaexpresinseQene:
Unoperadorasignacin Eloperadorsuma Unvalorliteral:elvalor1

EsunoperadorunarioSeaplicaaunasolavariable

Prof. Flor Narciso

Programacin 1 Semestre B-2008

OperadoresaritmQcosenC
Incremento(++)
Paran=2,laejecucindelasentencia i=n++; /*postincremento*/

asignaelvalor2aiydespusincrementaelvalordena3 i=2 n=3 Laejecucindelasentencia i=++n; /*preincremento*/

incrementaelvalordena4ydespusasignaestevalorai n=4 i=4


Prof. Flor Narciso Programacin 1 Semestre B-2008

18/11/08

OperadoresaritmQcosenC
Incremento (++)
unsigned short int a, b = 2, c = 5; a = b + c++; Eloperador++estubicadoaladerechadelavariablec Primeroseefectalasumaylaasignacinsobrea,quepasaavaler7 Luegoseincrementalavariablec,quepasaavaler6 Lavariablebnomodicasuvalor

Prof. Flor Narciso

Programacin 1 Semestre B-2008

OperadoresaritmQcosenC
Incremento (++)
unsigned short int a, b = 2, c = 5; a = b + ++c; Eloperador++estubicadoalaizquierdadelavariablec Primeroseincrementalavariablec,quepasaavaler6 Luegoserealizalasumaylaasignacinsobrea,quepasaavaler8 Lavariablebnomodicasuvalor

Prof. Flor Narciso

Programacin 1 Semestre B-2008

10

18/11/08

OperadoresaritmQcosenC
Decremento()
Laexpresina;esequivalentealaexpresina=a1; EnunosolaexpresinseQene:
Unoperadorasignacin Eloperadorresta Unvalorliteral:elvalor1

Esunoperadorunario:Seaplicaaunasolavariable

Prof. Flor Narciso

Programacin 1 Semestre B-2008

11

OperadoresaritmQcosenC
Decremento()
Paran=5,laejecucindelasentencia i=n; /*postdecremento*/

asignaelvalor5aiydespusdecrementaelvalordena4. i=5 n=4 Laejecucindelasentencia i=n; /*predecremento*/

decrementaelvalordena3ydespusasignaestevalorai. n=3 i=3

Prof. Flor Narciso

Programacin 1 Semestre B-2008

12

18/11/08

OperadoresaritmQcosenC
Los operadores +, , *, /, se pueden usar con operandos (constante, variableoexpresin)tantoenteroscomoreales Ladivisindeenterosdacomoresultadounenteroytruncaelresultadoal mayorenteromenorqueelcociente.Esimportantetenerestoencuenta cuandosetrabajaconenteros 5/2=2 3/4=0 17/5=3 Cuandoladivisinserealizaentrevariablesdepuntootante,entoncesel resultadoestambindepuntootante

Prof. Flor Narciso

Programacin 1 Semestre B-2008

13

OperadoresaritmQcosenC
SiambosoperandossondeQpoenteroentonceselresultadoesdeQpo entero SiunodelosoperandosoambosoperandossondeQporealentoncesel resultadoesdeQporeal SilaexpresinevaluadadacomoresultadounvalordeQpoenteroyla variablealacualselevaaasignarestevaloresdeQporeal,entoncesel resultadoserconverQdoautomQcamentealQporealantesderealizarla asignacin SilaexpresinevaluadadacomoresultadounvalordeQporealyla variablealacualselevaaasignarestevaloresdeQpoentero,entoncesel resultadoserconverQdoautomQcamentealQpoenteroantesde realizarlaasignacin
Prof. Flor Narciso Programacin 1 Semestre B-2008 14

18/11/08

Precedenciadelosoperadores aritmQcosenC
() Subexpresionesencerradasentreparntesisse evalan primero(mayorniveldeprecedencia) ++ */% +(menorniveldeprecedencia)

Nota:Laevaluacindelosoperadoresconlamismaprioridadse realizadeizquierdaaderecha

Prof. Flor Narciso

Programacin 1 Semestre B-2008

15

ExpresionesaritmQcas
Ejemplo:EvaluarlasiguienteexpresinaritmQca:

R1=a+b R2=R1+c R3=R2+d R4=R3+e

(a+b+c+d+e)%5

R5=R4%5Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

16

18/11/08

ExpresionesaritmQcas
Ejemplo:EvaluarlaexpresinaritmQca paralosvalores: (a+b+c+d+e)%5 a=3,b=2,c=1,d=8,e=4

R1=3+2=5 R2=5+1=6 R3=6+8=14 R4=14+4=18 R5=18%5=3


Prof. Flor Narciso Programacin 1 Semestre B-2008 17

ExpresionesaritmQcas
Ejemplo:EvaluarlasiguienteexpresinaritmQca: a%2/bc*a*y+18/c3*h R1=a%2 R2=R1/b R3=c*a R4=R3*y R5=18/c R6=3*h R7=R2R4 R8=R7+R5 R9=R8R6Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

18

18/11/08

ExpresionesaritmQcas
Ejemplo:EvaluarlasiguienteexpresinaritmQca: a*(b+c)+c*(d+e)
Determineelresultadoparalosvalores:

a=3,b=2,c=1,d=8,e=4

Prof. Flor Narciso

Programacin 1 Semestre B-2008

19

ExpresionesaritmQcas
Ejercicios

Suponiendodeclaradasyasignadaslasvariables inti=10,j=7; Indiquelosvaloresdelassiguientesexpresiones: a)(3*i2*j)%(2*dc) b)2*((i/5)+(4*(j3))%(i+j2))

Prof. Flor Narciso

Programacin 1 Semestre B-2008

20

10

18/11/08

ExpresionesaritmQcas
Convertir grados Fahrenheit a grados Centgrados Anlisis E-P-S
Entradas: Temperatura en grados Fahrenheit (fahr R) Proceso: Calcular la temperatura en grados Centgrados centi = (fahr - 32.0) (5.0/9.0) Salidas: Temperatura en grados centgrados (centi R)

Algoritmo

0. Inicio

1. Escribir (Introduzca la temperatura Fahrenheit: ) 2. Leer (fahr) 3. centi = (fahr - 32.0) (5.0/9.0) 4. Escribir (Temperatura equivalente en C es , centi) 5. Fin

Prof. Flor Narciso

Programacin 1 Semestre B-2008

21

ExpresionesaritmQcas
Codicacin
/* Convertir grados Fahrenheit a grados Centgrados */ #include <stdio.h> int main() { const oat MULT = 5.0/9.0, SUB = 32.0; oat fahr, centi; printf(Introduzca la temperatura Fahrenheit: ); scanf(%f, &fahr); centi = (fahr - SUB) * MULT; printf(Temperatura equivalente en C es %f, centi); return 0; }

Prof. Flor Narciso

Programacin 1 Semestre B-2008

22

11

18/11/08

OperadorescompuestosenC
Operador += -= *= /= %= Asignacin x += y x -= y x *= y x /= y x %= y Significado x = x + y; x = x - y; x = x * y; x = x / y; x = x % y;

Prof. Flor Narciso

Programacin 1 Semestre B-2008

23

OperadorescompuestosenC
Ejemplos a += b; x -= y; pot *= 2; x /= y + 1; suma %= 4; a = a + b; x = x - y; pot = pot * 2; x = x/(y + 1); suma = suma % 4;

Prof. Flor Narciso

Programacin 1 Semestre B-2008

24

12

18/11/08

SentenciadeasignacinmlQple
A = B = C = D = 1 asigna a las variables A, B, C y D el valor de 1 Solamente para asignar el mismo valor a diferentes variables

Prof. Flor Narciso

Programacin 1 Semestre B-2008

25

Recuerde!!!!!
Cuatro maneras de asignar valores a las variables
variable = valor constante variable = variable variable = expresin Leer (variable) x = 3; x = y; x = (y + 1)/2; scanf(%d, &x);

Prof. Flor Narciso

Programacin 1 Semestre B-2008

26

13

18/11/08

Ejercicios
EvaluarcadaunadelassiguientesexpresionesaritmQcas: a)A%B+C/D6 b)A+2*(3+B) c)3*(A%(B/C))+5 d)6*5/10*2+10 e)(6*5)/(10*2)+10 f)(6*5)/(10*2+10) g)(6*5)/(10*(2+10)) h)A*B/C*D

Prof. Flor Narciso

Programacin 1 Semestre B-2008

27

Ejercicios
Evaluarlaexpresin 4/2*3/6+6/2/1/5%2/4*2 EscribirlassiguientesexpresionesalgebraicascomoexpresionesenC a)4x2y+7 b)a+b c)3x+2ycd 2z d)x+y3x e)y2y1 x5 x2x1

Prof. Flor Narciso

Programacin 1 Semestre B-2008

28

14

18/11/08

Ejercicios
SiA=4,B=5yC=1,evaluarlassiguientesexpresiones a)B*AB*B/4*C b)(A*B)/3*3 c)(((B+C)/2*A+10)*3*B)6 EvaluarlasiguienteexpresinparaA=2yB=5 3*A4*B/A%2

Prof. Flor Narciso

Programacin 1 Semestre B-2008

29

Ejercicios
Dadaslasdeclaraciones: oatw; inti,j=2,k=4; Determinarelvalordelasvariablesi,wykdespusde laejecucindelassiguientessentenciasdeasignacin: i=j/k; w=i/j; k=i%j; w=8.0/j;

Prof. Flor Narciso

Programacin 1 Semestre B-2008

30

15

18/11/08

Ejercicios
RealizarelanlisisEPS,diseoycodicacinenCpararesolver esteproblema.
Siparatresnmerosenteroscualesquiera,a,byc,secumplequea2+b2=c2 entoncesellosconsQtuyenunatriplaPitagrica.Existeunnmeroinnitode talestriplas.AconQnuacinseexponeunamaneradegenerarestastriplas: Consideredosnmerosenterosm,y,ntalquem>n.EntoncesseQeneque lostresnmerosm2n2,2mnym2+n2sonunatriplaPitagrica

El programa debe leer los valores de m y n, tomando en consideracin que m es mayor que n. Adems, debe imprimir los valorescorrespondientesalatriplaPitagricaunavezvericadoque secumplequea2+b2=c2

Prof. Flor Narciso

Programacin 1 Semestre B-2008

31

Ejercicios
RealizarelanlisisEPS,diseoycodicacinenC pararesolverlossiguientesproblemas:
CalcularelnmerototaldehojasqueQeneunrbol,siporejemplo, Qene doscientos ochenta y cuatro ramas y sabiendo que cada rama Qenecomopromediotrescientascuarentaysietehojas Un joyero vino de Siria para vender joyas en Bagdad. PromeQ que pagaraporelhospedaje20dinaressieldueodelahosteravenda todas las joyas por 100 dinares; y 35 dinares si las venda por 200 dinares. Al cabo de varios das, tras andar de aqu para all, acab vendindolastodaspor140dinares.Cuntodebepagareljoyerode acuerdoconeltratodehospedaje?

Prof. Flor Narciso

Programacin 1 Semestre B-2008

32

16

18/11/08

Ejercicios
RealizarelanlisisEPS,diseoycodicacinenCpararesolver lossiguientesproblemas:
Calcularlosnmerosdel0al10uQlizandocuatrocuatrosycualquiera delasoperacionesaritmQcas. Porejemplo4444=0 Calcularelpromediodecinconotas Calcularelsalarionetodeuntrabajadorenfuncindelnmerode horastrabajadas,preciodelahoradetrabajoy,considerandounos descuentos,elsueldobrutoenconceptodeimpuestos(20%)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

33

Ejercicios
RealizarelanlisisEPS,diseoycodicacinenCpararesolverlos siguientesproblemas: Dadoelpesodeunapersonaenlibras,calcularsupesoen kilogramosygramos Leercuatronmerosreales.Calcularyescribirsuproducto, sumaysumediaaritmQca Leerelradiodeuncrculoycalculareimprimirsusuperciey lalongituddelacircunferencia

Prof. Flor Narciso

Programacin 1 Semestre B-2008

34

17

18/11/08

Ejercicios
RealizarelanlisisEPS,diseoycodicacinenCpararesolverlos siguientesproblemas: Siuncuerpopesaakp(kilopondios)enunlugarenelquelagravedad esg=9.8m/s2,calcularsumasa Unafuerzaactasobreuncuerpodenkgdemasa,pasandola velocidaddestedev0avfm/sentsegundos.Calcularlafuerza

Prof. Flor Narciso

Programacin 1 Semestre B-2008

35

Expresinlgica
Elresultadodelaevaluacindelaexpresinesunvalorlgico (ciertoofalso) Losoperadoresrelacionalesylosoperadoreslgicoscrean expresionesqueseevalancomociertasofalsas EnlenguajeCoperansobreoperandos(constantes,variables, expresiones)dediferentesQpos(numricos,caracteres)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

36

18

18/11/08

OperadoresrelacionalesenC

Prof. Flor Narciso

Programacin 1 Semestre B-2008

37

OperadoresrelacionalesenC
Ejemplos
a 2 b a==b a!=b a < b a<= b a > b a >=b 3 falso cierto cierto cierto falso falso

a d falso cierto cierto cierto falso falso 4.5 4.5 cierto falso falso cierto falso cierto

Prof. Flor Narciso

Programacin 1 Semestre B-2008

38

19

18/11/08

Precedenciadelosoperadores relacionalesenC
() Subexpresiones encerradas entre parntesis se evalan primero (mayor nivel de precedencia) < <= > >= == != (menor nivel de precedencia) Nota: La evaluacin de las operadores con la misma prioridad se realiza de izquierda a derecha

Prof. Flor Narciso

Programacin 1 Semestre B-2008

39

ExpresioneslgicasenC

(a + b) < c votos > electores a != (x*x + b*x + c) (alto - bajo) == 2

Expresin mixta!

Expresin mixta! Expresin mixta! Expresin mixta!

(horas*3600) >= (minutos*60 + segundos) numero <= 2

Prof. Flor Narciso

Programacin 1 Semestre B-2008

40

20

18/11/08

Expresioneslgicas
Ejemplo:Evaluarlasiguienteexpresinlgica: x>=(y+z) R1=y+z R2=x>=R1Resultado

Paralosvaloresx=3,y=4,z=1seQene R1=4+1=5 R2=3>=5=falsoResultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

41

Expresioneslgicas
Ejemplo:Evaluarlasiguienteexpresinlgica: num%4==0

R1=num%4
R2=R1==0

Resultado

Paraelvalornum=7seQene
R1=7%4=3 R2=3==0=falso Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

42

21

18/11/08

Expresioneslgicas
Ejemplo:Evaluarlasiguienteexpresinlgica: (a+b1)<(x*y)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

43

Expresioneslgicas
Ejemplo:Evaluarlasiguienteexpresinlgica: (a+b1)<(x*y) R1=a+b R2=R11 R3=x*y R4=R2<R3Resultado Paralosvaloresa=31,b=1,x=3,y=2seQene R1=31+(1)=30 R2=301=29 R3=3*2=6 R4=29<6=falso Resultado

Prof. Programacin 1 Flor Narciso Semestre B-2008

44

22

18/11/08

OperadoreslgicosenC
Operan sobre operandos (constantes, variables, expresiones) de tipo lgico (cierto o falso) y evalan a un valor de tipo lgico (cierto o falso)
Operacin Y-lgico (AND) O-lgico (OR) Negacin (NOT) Operador algebraico Operador en C && || ! Expresin en C a && b a || b !a

Prof. Flor Narciso

Programacin 1 Semestre B-2008

45

OperadoreslgicosenC
Ejemplos

a cierto cierto falso falso

b cierto falso cierto falso

a && b cierto falso falso falso

a || b !a cierto falso cierto falso cierto cierto falso cierto

Prof. Flor Narciso

Programacin 1 Semestre B-2008

46

23

18/11/08

OperadoreslgicosenC
Ejemplos

!(p && q) || s p && q && s (a || b) && (c || d) a > 5 && !(b < c) || 3 <= d (op < min) || (op > max) (edad >= 18) && (edad <= 60 + a) !encontrado
Programacin 1 Semestre B-2008 47

Prof. Flor Narciso

Precedenciadelosoperadoreslgicos enC
( ) Sub-expresiones encerradas entre parntesis se evalan primero (mayor nivel de precedencia) ! && || (menor nivel de precedencia)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

48

24

18/11/08

PrecedenciayasociaQvidaddelos operadoresenC

Prof. Flor Narciso

Programacin 1 Semestre B-2008

49

Expresioneslgicas
Ejemplo: Evaluar la siguiente expresin lgica !(x < 5) && !(y >= 7) R1 = x < 5 R2 = y >= 7 R3 = !R2 R4 = !R1 R5 = R4 && R3 Resultado Para los valores x = 1, y = -1 se tiene R1 = 1 < 5 = cierto R2 = -1 >= 7 falso R3 = !falso cierto R4 = !cierto falso R5 = falso && cierto = falso Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

50

25

18/11/08

Expresioneslgicas
Ejemplo: Evaluar la siguiente expresin lgica !((i > 4) || (j <= 6)) R1 = i > 4 R2 = j <= 6 R3 = R1 || R2 R4 = !R3 Resultado Para los valores i = 22 y j = 3 se tiene R1 = 22 > 4 R2 = 3 <= 6 R3 = cierto || cierto R4 = !cierto cierto cierto cierto falso

Prof. Flor Narciso

Programacin 1 Semestre B-2008

51

Expresioneslgicas
Ejemplo: Evaluar la siguiente expresin lgica !(a + b == c) || (c != 0) && (b - c > = 19) R1 = R2 = R3 = R4 = R5 = R6 = R7 = R8 =

Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

52

26

18/11/08

Expresioneslgicas
Ejemplo: Evaluar la siguiente expresin lgica !(a + b == c) || (c != 0) && (b - c > = 19) R1 = a + b R2 = R1 == c R3 = c != 0 R4 = b - c R5 = R4 >= 19 R6 = !R2 R7 = R3 && R5 R8 = R6 || R7 Resultado

Prof. Flor Narciso

Programacin 1 Semestre B-2008

53

Ejercicios
Evaluarcadaunadelassiguientesexpresiones
a)(b+(b*b4*a*c))/(2*a)<=25 b)(x>=MINIMO)&&(x<=MAXIMO) c)(contador<MAXIMO)&&!encontrado d)(mes1<mes2)||(mes1==mes2)&&(anyo1<=anyo2) e)anyo%4==0&&anyo%100!=0||anyo%400==0 f)(A1)<B||A!=(BC)||A>=C

Prof. Flor Narciso

Programacin 1 Semestre B-2008

54

27

18/11/08

Ejercicios
Suponiendodeclaradasyasignadaslasvariables inti=8,j=5; doublex=0.005,y=0.01; Indiquelosvaloresdelassiguientesexpresiones: a)(3*i2*j)%(2*ij) b)2*((i/5)+(4*(j3))%(i+j2)) c)(i+j)/2 d)i++; e)j; f)(x>y)&&(i>0)||(j<5) g)(x>y)||(i>0)&&(j<5)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

55

Ejecicios
SiA=1,B=2,C=3,yD=4,determinecualdelossiguientes paresdeexpresioneslgicassonambasverdaderas:
() Exp1:((A+C)>(BD))&&((B+C)<(DA)) Exp2:(B+C>D) () Exp1:(A<C&&B>D) Exp2:(B+C>D) ()Exp1:(A>B||C<D) Exp2:(A<C&&B<D) () Exp1:A==B Exp2:(A>B||C<D)

Prof. Flor Narciso

Programacin 1 Semestre B-2008

56

28

18/11/08

Ejercicios
Dadaslassiguientesdenicionesdeconstantes #deneMIN1
#deneMAX5 #deneNUM15 #deneNUM28 #deneNUM31

ylasiguientedeclaracindevariable intnum; Escribalasexpresioneslgicasqueseanverdaderassi a)Elvalordenumseencuentraenelrangodenidopor lasconstantesMINyMAX. b)Elvalordenumesunodelostresvaloresconstantes NUM1,NUM2oNUM3.

Prof. Flor Narciso

Programacin 1 Semestre B-2008

57

29

También podría gustarte