Baixe o app para aproveitar ainda mais
Prévia do material em texto
Expressões Aritméticas, Lógicas e Comandos Condicionais Cap. 3 do Livro Base Professor: Humberto Nigri hnigri@gmail.com Algoritmos 1o Sem 2012 HNigri - ATP 2 Expressões ! As expressões são compostas por: ! Operandos: variáveis ou constantes, por exemplo: a, x, 2. ! Operadores: por exemplo: +, -, %. ! Pontuação: ( ) , ! Expressões resultam em um valor, por exemplo: ! (5 + 4) resulta: 9. ! ((5+4) == 9) resulta: true. ! (9 / 5) resulta: 1. ! (9 % 5) resulta: 4. ! Prioridade dos operadores ! Alguns operadores têm prioridade: são calculados primeiro ! 5 + 4 * 3 retorna 17 ou 27 ? Por que ? ! Prioridade da pontuação ! A pontuação pode alterar a prioridade normal dos operadores ! E ( 5 + 4 ) * 3 retorna ... 1o Sem 2012 HNigri - ATP 3 OPERADORES BINÁRIOS Seja x = 32 e y = 3. ! + adição de dois números: x + y ! (x + y é 35). ! - subtração de dois números: x - y ! (x - y é 29). ! * multiplicação de dois números: x * y ! (x * y é 96). ! / quociente de dois números: x / y ! (Se inteiro: x / y é 10 ou Se real: x / y é 10.67). 1o Sem 2012 HNigri - ATP 4 OPERADORES BINÁRIOS Seja x = 32 e y = 3. ! % resto da divisão: x % y ! Realiza a operação de resto. ! x % y é 2. ! 223 % 3 é 1. ! 23213 % 2 é 1. ! 12345 % 5 é 0. ! 1212 % 11 é 2. ! 87654 % 13 é 8. 1o Sem 2012 HNigri - ATP 5 OPERADORES UNÁRIOS Seja x = 32 e y = 0. ! + mais unário ou positivo: +x ! (+x é 32 e +y é 0). ! - menos unário ou negação: -x ! Muda o sinal do conteúdo da variável. ! (-x é -32 e -y é 0). ! ! NOT ou negação lógica: !x ! Inverte o conteúdo lógico da variável. ! ( ! x é 0 e ! y é 1). ! & endereço: &x ! Retorna o endereço de memória da variável. ! (&x é E16h e &y é E00h). ! * conteúdo (ponteiros): *x. 1o Sem 2012 HNigri - ATP 6 OPERADORES UNÁRIOS Seja x = 32 e y = 0. ! ++ pré ou pós incremento: ++x ou x++ ! Incrementa o conteúdo da variável em uma unidade. ! (x++ é 33 e ++y é 1). ! -- pré ou pós decremento: --x ou x-- ! Decrementa o conteúdo da variável em uma unidade. ! (--x é 31 e y-- é -1). 1o Sem 2012 HNigri - ATP 7 ATRIBUIÇÃO = atribui: x = y. += soma e atribui (x = x + y): x += y. -= subtrai e atribui (x = x - y): x -= y. *= multiplica e atribui (x = x * y): x *= y. /= divide e atribui quociente (x = x / y): x /= y. %= divide e atribui resto (x = x % y): x %= y. 1o Sem 2012 HNigri - ATP 8 Comandos Condicionais ! Em nossa vida, frequentemente, temos que tomar decisões. ! Se fizer sol, então, ... ! Se idade maior que 18, então, [pode entrar] ! Se eu ganhar na mega sena, então, ... senão, ... ! Se o meu time ganhar, então, ... senão, ... ! Se eu passar em Algoritmos, então, senão, ! A programação é totalmente relacionada à tomada de decisões. 1o Sem 2012 HNigri - ATP 9 Comandos Condicionais ! Exemplo: Algoritmo que lê um número e o decide se ele é par ou impar. inicio declare numero numerico; escreva "Digite um numero : "; leia numero; se (numero % 2 > 0) então escreva “Número impar” senão escreva “Número par”; fim. 1o Sem 2012 HNigri - ATP 10 Comandos Condicionais - Sintaxe ! PORTUGOL: se expressão então comando; ou se expressão então comando senão comando; ! C / C ++: if (expressão) comando; ou if (expressão) comando; else comando; 1o Sem 2012 HNigri - ATP 11 Para colocar dois ou mais comandos ? ! PORTUGOL: se expressão então inicio lista de comandos; fim; ou se expressão então inicio lista de comandos; fim senão inicio lista de comandos; fim; ! C / C ++: if (expressão) { lista de comandos; } ou if (expressão) { lista de comandos; } else { lista de comandos; } 1o Sem 2012 HNigri - ATP 12 Comandos Condicionais - Fluxograma ! Condicional simples EXP ? Comando 1 Comando 2 ... N S 1o Sem 2012 HNigri - ATP 13 Comandos Condicionais - Fluxograma ! Condicional Completo EXP ? Comando 1 Comando 2 ... NS Comando 3 Comando 4 ... 1o Sem 2012 HNigri - ATP 14 Expressões Lógicas ! As expressões só tem dois resultados: ! verdadeiro / falso ! true / false ! Em C: 1 (diferente de zero) - verdadeiro / 0 (zero) - falso ! Também possuem seus operadores e operandos ! Assim como temos operadores aritméticos (+, -, *, /), temos também operadores para as expressões lógicas. ! Operadores podem ser RELACIONAIS ou LOGICOS 1o Sem 2012 HNigri - ATP 15 Operadores Relacionais ! Função de comparar valores: ! 10 > 20 ? ! A < B ? ! Operadores: ! > (maior) A > B == V se A for maior que B ! < (menor) A < B == V se A for menor que B ! >= (maior ou igual) ! <= (maior ou igual) ! == (igual) ! != (diferente) ! ATENÇÃO: ! Em C, = é ATRIBUIÇÃO e == é COMPARAÇÃO !!! 1o Sem 2012 HNigri - ATP 16 Operadores Lógicos ! Função de unir o resultado de duas expressões relacionais: ! Operadores: ! E (AND) A E B == V se A for V E B for V Os dois precisam ser V ao mesmo tempo ! OU (OR) A OU B == V se A for V OU B for V Se ao menos um deles for V ! NAO (NOT) NAO A == V se A é F e == F se A é V Inverte o sentido do seu operando ! Operadores Lógicos em C / C++: ! E (AND) A && B ! OU (OR) A || B ! NAO (NOT) ! A 1o Sem 2012 HNigri - ATP 17 Expressões Lógicas ! Os operadores lógicos possuem um significado bem definido ! ! Exemplos: ! “No natal eu quero brinquedo E dinheiro” – se ganhar só dinheiro eu choro ! “No natal eu quero brinquedo OU dinheiro” – se ganhar só dinheiro tá bão ! “No natal eu NÃO quero nada” – se ganhar qualquer coisa fico bravo 1o Sem 2012 HNigri - ATP 18 Expressões Lógicas – Tabela Verdade ! A Tabela Verdade (além de não mentir) define todos os resultados possíveis para os operadores lógicos A B A && B A || B ! A F F F F V F V F V V V F F V F V V V V F 1o Sem 2012 HNigri - ATP 19 Expressões Lógicas – Exemplos if ( nota_final >= 70 && frequencia >= 75 ) cout << “Passou”; else cout << “Ainda não”; if ( sexo == ‘F’ || pagamento_ok ) cout << “pode entrar”; A = 10; B = 5; C = 20; A > B || A < C && C < B == ? (A > B || A < C) && C < B == ? (A > B && A < C) || C < B == ? 1o Sem 2012 HNigri - ATP 20 Exercícios 1. Ler dois números do teclado e informar o menor. 2. Ler um número inteiro e dizer se ele é par ou impar 3. Ler um número e informar se ele é divisível por 3 e por 11 ao mesmo tempo. 4. Ler três números quaisquer e informar o maior. 5. Ler três números e dizer se eles são “Pitagóricos” (suponha que o maior deles será o primeiro a ser digitado) 6. Ler três números e dizer se eles podem ser os lados de um triângulo qualquer 7. Ler um número e uma média e dizer se o número está abaixo da média, acima da média ou é igual à media.
Compartilhar