Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários Monitoria de Introdução...
Transcript of Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários Monitoria de Introdução...
Aula prática 2
Operadores e Expressões
Comandos de Decisão
Comentários
Monitoria de Introdução à Programação
Roteiro
Expressões Operadores Precedência Comandos de Decisão
– If – else if – else– Switch
Condição Ternária Comentários Dúvidas Exercícios
Expressões
Combinação de Operadores e operandos, que representa um cálculo.
É avaliada seguindo regras de Precedência.
Exemplo:“a = b + c”
“i = i + 3”
“Anos = Dias / 365.25”
Operadores Aritméticos
Representam cálculos matemáticos, operando sobre os tipos integrais¹ e de ponto flutuante²:
1. int, short, long, long long, char, etc.
2. float, double long double, etc.
Operador Ação Inteiros Ação Float
+ Adição
- Subtração
++ Incremento por 1
-- Decremento por 1
* Multiplicação
/ Divisão com resto Divisão real
% Resto de Divisão Erro de compilação
= Atribuição
Operadores Aritméticos
Adição e Subtração– Operações binárias.– São avaliadas como a soma/subtração dos dois
operandos.
Exemplo:“a + b”
“1 + 1”
“5 – 4”
“50 – 8”
Operadores Aritméticos
Incremento e Decremento– Operações unárias.– São avaliadas como o valor do operador e modificam
esse operador.– Deve ser tomado cuidado com a ordem em que são
usados: Se usado prefixado, o operador é modificado ANTES da
operação ser avaliada. Se usado pós-fixado, o operador é modificado DEPOIS.
“++x” será avaliado como “x + 1”, e x será igual a “x + 1”“x++” será avaliado como “x”, e x será igual a “x + 1”
Operadores Aritméticos
Multiplicação e Divisão– Operações binárias.– São avaliadas como a multiplicação/divisão dos
operandos. Com tipos integrais, a divisão tem resto. Com tipos de ponto flutuante, não.
Exemplo:“6/4” (avaliado como “1”)
“3.2/2” (avaliado como “1.6”)
Operadores Aritméticos
Módulo– Operação binária– É avaliado como o resto da divisão integral dos
operandos. Com tipos integrais, tem valor integral. Não existe para tipos de ponto flutuante.
Exemplo:“6 % 2” (avaliado como “0”)
“19 % 3” (avaliado como “1”)
Operadores Aritméticos
Atribuição– Operação binária– O operando da esquerda é modificado para o valor do
operando da direita.
Exemplo:“var = 2”
“i = 0”
“tentativas = 40”
“a = b + c”
Operadores Aritméticos
Atribuição– Podem ser abreviadas as atribuições que tem à direita uma
expressão que contém o operando da esquerda.– A abreviação fica na forma “variavel operador= expressão”
Exemplo:“A += B” (idêntica a “A = A + B”)
“i += 1” (“i = i + 1”)
“cota /= 2” (“cota = cota / 2”)
Operadores Relacionais
Representam Relações binárias sobre números, avaliadas como Verdadeiro ou Falso*
*: Em C, Falso é representado pelo valor numérico “0”, e Verdadeiro por um outro valor qualquer.
Existem as constantes TRUE e FALSE para esses valores.
Operador Relação
> Maior-que
>= Maior-ou-igual-a
< Menor-que
<= Menor-ou-igual-a
== Igual-a
!= Diferente de
Operadores Aritméticos
>, >=, < e <=– Operações binárias– Serão avaliados como Verdade, se os valores
concordarem com a expressão. Caso contrário, serão avaliados como Falso.
Exemplo:“3 > 4” (Falso)
“5 >= -1” (Verdade)
“i < 100” (Depende de i)
Operadores Aritméticos
== e !=– Operações binárias– Avaliam se os operandos são iguais ou diferentes.
Exemplo:“A == B” (Depende das variáveis)
“i != 0” (Depende de i)
“5 != 7” (Verdade)
“200 == 3” (Falso)
Operadores Lógicos
Operam sobre valores Verdadeiro ou Falso, e são avaliados também como Verdadeiro ou Falso.
E (AND) será Verdade se os dois operandos forem Verdade. OU (OR), se algum dos dois forem Verdade. NÃO (NOT), se o operando for Falso.
Exemplo:“A && B” (Depende de A e B)
“!FALSE” (Verdade)
Operador Relação
&& E (AND)
|| OU (OR)
! NÃO (NOT)
Precedência
Ao ser avaliadas, as Expressões seguem uma sequência estabelecida para avaliar cada sub-expressão.
Essa sequência serve para eliminar ambiguidades na avaliação de expressões.
Exemplo:“A + B * C” (“B * C” Será avaliado primeiro)
“rodas = carros * 4 + bicicletas * 4”
(as multiplicações serão avaliadas, depois a soma, e por ultimo a atribuição)
Precedência
Sequência
Avaliados Antes Desempate
var++ var-- () [] . -> Esquerda para Direita
++var --var + - ! ~ (cast) * & Direita para Esquerda
* / % Esquerda para Direita
+ - Esquerda para Direita
< <= > >= Esquerda para Direita
== != Esquerda para Direita
&& Esquerda para Direita
|| Esquerda para Direita
Condição Ternária ( c?t:f) Direita para Esquerda
Atribuições ( =, +=, etc.) Direita para Esquerda
Avaliados Depois
Comandos de Decisão
Usados para definir o que deve ser feito, levando em conta condições definidas pelo programador.
Existem 3 tipos:– If – Else if – Else.– Switches.– Condição ternária.
Cada um é melhor para um tipo de tarefa.
If – Else if - Else
Funciona na forma:Se (isto) é verdade
faça aquilo;Se não é, e (isso) é verdade,
faça aquela outra coisa;
Se não é, e (isso aqui) é verdade,
faça essa coisa aqui;
Se nenhum,
faça essa última coisa;
Em C:if (isto)
aquilo;else if (isso)
aquela outra coisa;
else if (isso aqui)
essa coisa aqui;
else
essa última coisa;
If – Else if - Else
Se for necessário executar mais de um comando, podem ser usadas chaves “{ }”:if(a > b)
{
isso();
aquilo();
}
else
{
outra_coisa();
a++;
}
If – Else if - Else
As condições “else if” e “else” são opcionais. Apenas um dos blocos de comandos será executado.
Se uma das condições for verdade, as seguintes serão ignoradas.
Exemplo:if(TRUE)
isso();
else
aquilo();
“isso()” sempre será executada, pois “TRUE” sempre é avaliado como verdade, fazendo com que “aquilo()” nunca seja executado.
Switch
Usado quando a decisão depende que uma única variável tenha valores arbitrários:
Caso (isto)
seja isso:
faça aquilo;
pare;
seja isso aqui:
faça aquilo alí;
pare;
se nenhum desses:
faça essa última coisa;
pare;
Em C:
switch (isto)
{
case isso:
aquilo;
break;
case isso aqui:
aquilo alí;
break;
default:
essa última coisa;
break
}
Switch
O comando “default” é opcional. O comando “break” é usado para sair do bloco de
código. Se não for usado, o programa continua a executar a sequência, “invadindo” outro “case” do switch*.
Exemplo:switch (colocação)
{
case 1:
comemorar();
case 15:
chorar();
break;
}*: Isso pode ser usado a seu favor, mas atinge a legibilidade do código.
Se “colocação” for “1”, “comemorar()” será executado, e o programa continuará e executará “chorar()”.Se “colocação” não for nenhum dos dois, como não há condição “default”, nada é feito.
Comando Ternário
Serve para decisões pequenas, do tipo:
isto é verdade? Faça isso. Se não, faça aquilo.
Em C:
isto ? Isso() : aquilo();
Pode ser usado para escolher o lado direito de uma atribuição.
Usar somente com decisões pequenas, pois pode dificultar a leitura do código.
Exemplo:“A = b > a ? b : a;”
“i > j ? i /= j : j /= i;”
Comentários
Servem para anotar coisas relevantes ao código, de forma a explicar certos trechos de código ou deixar informação relevante.
São ignorados pelo compilador, não afetando de forma alguma no programa compilado.
São extremamente importantes em projetos maiores, onde colegas, supervisores ou até você mesmo podem esquecer os detalhes daquela implementação específica.
Comentários
Em C existem dois tipos:– Em linha:Assinalado por “//”.
Tudo na linha após “//” é ignorado.
Exemplo:
If (a > b) //se isso for verdade,
isso(); // faz isso,
Else // se não, algo deu errado,
avisa(); //um aviso será dado
– Em bloco:Assinalado por “/*” e “*/”Tudo entre “/*” e “*/” é ignorado.
/* essa função faz isso e aquilo,E deve ser tomado cuidado para não fazer aquela outra coisa.*/Int faz_isso(int a, int b);
Dúvidas?
Exercício 1
Escreva um programa que recebe um inteiro positivo e imprime "sim" se o inteiro for um múltiplo de 3 e "não" caso contrário.
Exercício 2
Faça um programa que receba 3 números do usuário e imprima qual é o maior e qual é o menor número.
Exercício 2
Fazer um programa que mostre num menu as opções:
1.SOMA
2.SUBTRAÇÃO
3.MULTIPLICAÇÃO
4.DIVISÃO
e em seguida, receba 2 números e realize a operação de acordo com a opção do usuário. Imprima o resultado na tela.