Introdução à Programação Aula Prática 2 Operadores e Comandos Condicionais Monitoria 2013.2 Roteiro • Operadores • Comandos de Decisão If – else Switch • Condição Ternária • Dúvidas • Exercícios Operadores Aritméticos Representam cálculos matemáticos, operando sobre os tipos integrais¹ e de ponto flutuante²: Operador Ação Inteiros + Adição - Subtração Ação Float ++ 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 1* -> int, short, long, long long, char, etc. 2* -> float, double long double, etc Operadores Relacionais Representam Relações binárias sobre números, avaliadas como Verdadeiro ou Falso* Operador Relação > Maior-que >= Maior-ou-igual-a < Menor-que <= Menor-ou-igual-a == Igual-a != Diferente de *: 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. Operadores Lógicos Representam Relações lógicas, avaliadas como Verdadeiro ou Falso* Operador Relação && E (AND) || Ou (OR) ! Não (Not) 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. Switches. Condição ternária. • Cada um com utilizações diferentes. If – Else Funciona na forma: Em C: Se if (isto) (isto) é verdade faça aquilo; aquilo; Se elsenão if é, e (isso) é verdade, faça aquela outra coisa; Se elsenão if é, e (isso aqui) é verdade, faça essa coisa aqui; Se elsenenhum, faça essa última coisa; 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 • 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 Em C: quando a decisão depende que uma única Usado variável tenha valores arbitrários: switch (isto) Caso (isto) { case isso: isso: seja aquilo; faça aquilo; break; pare; case isso isso aqui: aqui: seja aquilo alí; alí; faça aquilo break; pare; default: se nenhum desses: essa última última coisa; coisa; faça essa break; pare; } 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; 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. } *: Isso pode ser usado a seu favor, mas atinge a legibilidade do código. Comando Ternário • Serve para decisões pequenas, do tipo: isto é verdade? Se sim, 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;” Dúvidas? Exercício 1 Escreva um programa que receba dois números e diga se o segundo é multiplo do primeiro. Obs: Considere que o segundo número entrado sempre será maior que o primeiro. Exemplo: 4 12 //Entrada Eh multiplo //Saída Exemplo: 2 17 //Entrada Nao eh multiplo //Saída Exercício 2 Escreva um programa que peça do usuário dois números, um representa o dia e o outro o mês. Seu programa deverá avisar ao usuário se este dia é válido para o mês inserido. Obs: Considere fevereiro sempre com 28 dias. Obs2: Os meses também devem ser checados. Exemplo 31 4 //Entrada Invalido //Saida Exemplo 25 2 //Entrada Valido //Saída Exemplo 31 15 //Entrada Invalido //Saída Exercício 3 Escreva um programa que mostre num menu as opções: a)SOMA b)SUBTRAÇÃO c)MULTIPLICAÇÃO d)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. OBS: usem switch nessa questão Exemplo: a 20 4 //Entrada 24 //Saída Exemplo: d 20 4 //Entrada 5 //Saída