Aula 3 Expressões 1. Intrduçã Expressões em cmputaçã sã cm expressões matemáticas: existem variáveis, peradres e resultads. Cm exempl, [Saliba, 1992, p. 28] 1 traz cálcul da área de um triângul: ÁREA = 0.5 x B x H Já aprendems sbre variáveis. Resta saber: que tip de peradres existem? 2. Operadres Atuam sbre perands para prduzir resultads; Pdem ser classificads cm bináris (dis perands) e unáris (um perand); Pdem ser classificads pel tip de dad d perand e d resultad: aritmétics, lógics, relacinais u literais. 2.1. Aritmétics Operam sbre númers, prduzem resultads numérics; A tabela abaix [Saliba, 1992, p. 30] indica s peradres, sua semântica e priridade (a priridade será explicada mais adiante, mas funcina cm na matemática); Pdems misturar inteirs cm reais. Sempre que fizerms resultad é real; Atençã para a divisã inteira: rest é desprezad! Operadr Tip Operaçã Priridade + Binári Adiçã 4 - Binári Subtraçã 4 * Binári Multiplicaçã 3 / Binári Divisã 3 ** Binári Expnenciaçã 2 + Unári Manutençã de sinal 1 - Unári Inversã de sinal 1 1 Saliba, W. L. C. Técnicas de prgramaçã: uma abrdagem estruturada. Pearsn Makrn Bks, 1992.
2.2. Lógics Operam sbre valres bleans, prduzem resultads bleans; Abaix sã apresentads a tabela de peradres [Saliba, 1992, p. 32], a tabela-verdade que define resultad d us ds peradres [Saliba, 1992, p. 32] e representaçã das perações.e. e.ou. cm se fssem circuits elétrics [Saliba, 1992, p. 33]; Operadr Tip Operaçã Priridade.OU. Binári Disjunçã 3.E. Binári Cnjunçã 2.NÃO. Unári Negaçã 1 A B.NÃO. A A.OU. B A.E. B.OU..E. 2.3. Relacinais Operam sbre valres quaisquer (desde que sejam d mesm tip, e para valres lógics smente = e <> funcinam), prduzem resultads bleans; As tabelas abaix [Saliba, 1992, p. 34-35] resumem s peradres e dã exempls; Atençã a us em Strings: "Ja" < "Jse", pis 'a' < 's' na tabela ASCII. Além diss, nem tdas as linguagens suprtam a cmparaçã desta frma (ex.: em C, se usa uma funçã). Operadr Operaçã = Igual <> Diferente < Menr <= Menr u igual > Mair >= Mair u igual
Valres Expressã Result. A <- B <- X <- 2.5 Y <- 5.0 R <- "JOSÉ" S <- "JOÃO" T <- "JOÃOZINHO" A.OU. B A.E. B.NÃO. A X = Y X = (Y/2) R = S S = T R <> S R > S S > T ((A.OU. B).OU. (X > Y).OU. (S <> T)) 2.4. Literais Variam de linguagem para linguagem; Usarems apenas peradr de cncatenaçã de strings (+), deixand para aprender utrs peradres quand tratarms diretamente cm C. 3. Avaliaçã de expressões A seguinte regra é usada para avaliar expressões: Operadres de diferentes tips cmbinadas sã avaliadas na rdem: Aritmétics e Literais, Relacinais, Lógics; Operadres de mesm tip bedecem a rdem de priridade. Quant menr númer, mais priridade; Tend a mesma priridade, expressões sã avaliads da esquerda para a direita; Parênteses pdem redefinir a priridade. Nã é precis decrar esta regra u as tabelas de priridade, basta entendê-las e usar parênteses sempre que estiverms na dúvida; Exempls [Saliba, 1992, p. 37]: Valres Expressã Result. X <- 2.0 Y <- 3.0 Z <- 0.5 A <- B <- X * Y Z 5.5 X * (Y Z) 5.0 X + Y * Z 3.5 X + (Y * Z) 3.5 (X + Y) * Z 2.5 X ** Y 1 7.0 (X ** Y) 1 7.0 X ** (Y 1) 4.0 B.E. A.OU. X <> Y/2 B.E. (A.OU. X <> Y / 2)
Exercícis Expressões 1) Dada a declaraçã de variáveis abaix: VAR A, B, C : inteir X, Y, Z : real NOME, RUA : literal[20] L1, L2 : lógic Classifique as expressões seguintes de acrd cm tip de resultad, send I para inteirs, R para reais, S para strings (literais), B para blean (lógics) e N para s quais nã é pssível definir. ( ) A + B + C ( ) A + B + Z ( ) NOME + RUA ( ) A > B ( ) A > Y ( ) NOME > RUA ( ) L1.OU. L2 ( ) (RUA <> NOME).E. (.NÃO. (A = B)) ( ) A + B / C ( ) A + X / Z ( ) A + Z / A ( ) A > B = L1 ( ) X + Y / Z ( ) X + Z / A ( ) A ** B ( ) L1 ** L2 2) Supnha que as variáveis d exercíci anterir recebam s seguintes dads: A <- 1 B <- 2 C <- 3 X <- 2.0 Y <- 10.0 Z <- -1.0 NOME <- Pedr RUA <- Pedrinh L1 <- L2 <- Determine resultad da avaliaçã das expressões abaix: A + C / B A + B / C C / B / A A ** B ** A Z * X ** B -X ** B -(X ** B) (-X) ** B NOME + RUA NOME = RUA L1.OU. L2 (L1.E. (.NÃO. L2)) (L2.E. (.NÃO. L1)) X > Y.E. C <= B (C 3 * A) < (X + 2 * Z) (L1.E. (.NÃO. L2)).OU. (L2.E. (.NÃO. L1))
Resluçã ds Exercícis Expressões 1) ( I ) A + B + C ( R ) A + B + Z ( S ) NOME + RUA ( B ) A > B ( N u B ) A > Y ( B ) NOME > RUA ( B ) L1.OU. L2 ( B ) (RUA <> NOME).E. (.NÃO. (A = B)) ( I ) A + B / C ( R ) A + X / Z ( R ) A + Z / A ( B ) A > B = L1 ( R ) X + Y / Z ( R ) X + Z / A ( I ) A ** B ( N ) L1 ** L2 2) A + C / B = 2 A + B / C = 1 C / B / A = 1 A ** B ** A = 1 Z * X ** B = -4 -X ** B = 4 -(X ** B) = -4 (-X) ** B = 4 NOME + RUA = PedrPedrinh NOME = RUA = L1.OU. L2 = (L1.E. (.NÃO. L2)) = (L2.E. (.NÃO. L1)) = X > Y.E. C <= B = (C 3 * A) < (X + 2 * Z) = (L1.E. (.NÃO. L2)).OU. (L2.E. (.NÃO. L1)) =