Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura Condicional BAC004-Informática-Teórica-Fabiana C Guedes 2 Estrutura Condicional � A estrutura condicional permite a escolha do grupo de ações e estruturas a ser executado quando determinadas condições são ou não satisfeitas. � A estrutura condicional pode ser apresentada por meio de uma estrutura simples ou de uma estrutura composta. BAC004-Informática-Teórica-Fabiana C Guedes 3 Estrutura Condicional • Isso significa que podemos selecionar entre ações alternativas dependendo de critérios desenvolvidos no decorrer da execução do programa BAC004-Informática-Teórica-Fabiana C Guedes 4 Comandos de Seleção - Simples � Forma Geral if (expressão) comando1; Expressão da Condição deve estar entre parênteses. Caso tenha mais de um comando eles devem ser delimitados por chaves. Seria igual a: SE <condição> ENTÃO comando BAC004-Informática-Teórica-Fabiana C Guedes 5 Comandos de Seleção - Simples BAC004-Informática-Teórica-Fabiana C Guedes 6 Comandos de Seleção - Simples if(sexo_usuario=='f' && dia==8 && mes==3) cout << "Parabens, mulher, pelo seu dia!"; BAC004-Informática-Teórica-Fabiana C Guedes 7 Comandos de Seleção - Simples • Em C/C++ é obrigatória a utilização de chaves quando houver mais de uma instrução a ser executada quando a expressão condicional for verdadeira. • FormaGeral if (Teste Condicional) { instrução1; instrução2; instruçãon; } As chaves delimitam o Bloco que só será executado no caso da expressão verdadeira. BAC004-Informática-Teórica-Fabiana C Guedes 8 Comandos de Seleção - Simples if(sexo_usuario=='f' && dia==8 && mes==3) { cout << "Parabéns, mulher, pelo seu dia!" << endl; cout << "Você é a " << cont + 1 << "a. mulher a acessar o sistema hoje." << endl; cont++; } Ou cont=cont + 1. Ao criar a variável cont, ela deve receber o valor 0. BAC004-Informática-Teórica-Fabiana C Guedes 9 Comandos de Seleção - Simples /*ProgC014.cpp Primeiro exemplo de estrutura condicional*/ #include <iostream> #include <cstdlib> using namespace std; int main(){ cout << "Quantos anos voce tem? " << endl; int anos; cin >> anos; if( anos < 30 ) //Toma decisão caso anos < 30 cout << "Voce e muito jovem!" << endl; system("PAUSE"); return 0; } Faz o teste perguntando se (anos < 30) Só executa se a condição for verdadeira Sem as chaves só executa uma única linha de código. BAC004-Informática-Teórica-Fabiana C Guedes 10 Comandos de Seleção - Simples //ProgC015.cpp - Programa que verificar se número é par ou impar #include <iostream> #include <cstdlib> using namespace std; int main (){ int num; cout << "Digite o numero: "; cin >> num; if ((num % 2) == 0){ cout << "Numero par.\n"; } if ((num % 2) == 1){ cout << "Numero impar.\n"; } system("pause > null"); return 0; } Comando condicional simples BAC004-Informática-Teórica-Fabiana C Guedes 11 Estrutura Condicional - Composta • É uma expansão de um simples comando if • O comando if permite que executemos algo somente se a sua expressão de teste for verdadeira, caso contrário nada será executado • Suponhamos que você queira executar uma coisa se a expressão de teste for verdadeira e outra se a expressão de teste for falsa • Nesse caso, você deve usar o comando if - else BAC004-Informática-Teórica-Fabiana C Guedes 12 Estrutura Condicional - Composta BAC004-Informática-Teórica-Fabiana C Guedes 13 Comandos de Seleção – Composta � Forma Geral if (expressão) comando1; else comando2; Expressão da Condição deve estar entre parênteses. Caso tenha mais de um comando eles devem ser delimitados por chaves. BAC004-Informática-Teórica-Fabiana C Guedes 14 Comandos de Seleção –Composta BAC004-Informática-Teórica-Fabiana C Guedes 15 Comandos de Seleção – Composta if(media >= 60) cout << "Aprovado!"; else cout << "Exame!"; BAC004-Informática-Teórica-Fabiana C Guedes 16 Comandos de Seleção – Composta //ProgC016 - Teste de divisão por Zero #include <iostream> using namespace std; int main(){ int dividendo, divisor; float quociente; cout << "Entre com o dividendo e o divisor, respectivamente: "; cin >> dividendo >> divisor; if (divisor != 0) { quociente = (float) dividendo / divisor; cout << "O quociente e: " << quociente << endl; } else cout << "Impossivel fazer a divisao. O divisor e igual a zero." << endl; return 0; } Como a expressão lógica fornece o valor 0 (zero) para falso e diferente de zero para verdadeiro, se o valor for verdadeiro pode ser realizada a divisão. Se o valor for falso, o segundo número digitado foi zero. BAC004-Informática-Teórica-Fabiana C Guedes 17 Comandos de Seleção –Composta BAC004-Informática-Teórica-Fabiana C Guedes 18 Comandos de Seleção –Composta BAC004-Informática-Teórica-Fabiana C Guedes 19 Comandos de Seleção - Composta // ProgC017.cpp - Programa que apresenta o comando de seleção composta - if #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main ( ){ int Numero, Palpite; srand(time(NULL)); Numero = rand()%100; cout << "\nAdivinhe o numero magico: "; cin >> Palpite; if (Palpite == Numero) cout << "\n Voce ACERTOU!"; else cout << "\n Voce errou! O correto era " << Numero; system("PAUSE > null"); return 0; } srand() e rand() são funções para criar números randomicamente. Neste caso pega números abaixo de 100. Comando de seleção.Seria o comando: se Palpite = Numero então escreva “Você Acertou!” senão escreva “Você errou! O correto era ”, Numero BAC004-Informática-Teórica-Fabiana C Guedes 20 Comandos de Seleção - Aninhada • Uma estrutura condicional está aninhada quando é utilizada dentro de outra estrutura condicional. • Podemos ter vários comandos if aninhados. • O comando else em C se refere ao if mais próximo (acima deste) que está no mesmo bloco. BAC004-Informática-Teórica-Fabiana C Guedes 21 Comandos de Seleção - Aninhada • Forma Geral: if (<condição>){ comandos1; ... }else if (<condição>) { comandos2; ... } No senão faz outro teste. if (<condição1>) { if (<condição2>) { comandos; ... } else { comandos; ... } } else { if (<condição3>) { comandos; ... } } BAC004-Informática-Teórica-Fabiana C Guedes 22 Comandos de Seleção Aninhados - Exemplo //ProgC018.cpp - Estrutura if aninhada # include <iostream> using namespace std; int main ( ){ int n1, n2, n3; cout << "Digite 3 numeros: "; cin >> n1 >> n2 >> n3; if (n1 > n2) if (n1 > n3) cout << "O maior numero e: " << n1; else cout << "O maior numero e: " << n3; else if (n2 > n3) cout << "O maior numero e: " << n2; else cout << "O maior numero e: " << n3; return 0; } Estrutura if aninhada BAC004-Informática-Teórica-Fabiana C Guedes 23 Comandos de Seleção Aninhados - Exemplo //ProgC019.cpp - Exemplo IF Aninhado #include <iostream> using namespace std; int main(){ float n1, n2, res; char op; cout << "Digite NUMERO OPERADOR NUMERO: "; cin >> n1 >> op >> n2; if (op == '+') { res = n1 + n2; cout << "O resultado da soma e: " << res; } else if (op == '-') { res = n1 - n2; cout << "O resultado da subtracao e: " << res; } else if (op == '/') { res = n1 / n2; cout << "O resultado da divisao e: " << res; } else if (op == '*') { res = n1 * n2; cout << "O resultado da multiplicacao e: " << res; } else cout << "Operador invalido!"; cout << endl; return 0; } // fim main Entrada de Dados Soma Subtração DivisãoMultiplicação Nenhuma das 4 operações BAC004-Informática-Teórica-Fabiana C Guedes 24 Comandos de Seleção Aninhados - Exemplo //ProgC019a.cpp - Exemplo IF Aninhado #include <iostream> using namespace std; int main() { float n1, n2, res; char op; cout << "Digite NUMERO OPERADOR NUMERO:"; cin >> n1 >> op >> n2; if (op == '+') { res = n1 + n2; cout << "O resultado da soma e: " << res; } else if (op == '-') { res = n1 - n2; cout << "O resultado da subtracao e: " << res; } else if (op == '/') { res = n1 / n2; cout << "O resultado da divisao e: " << res; } else if (op == '*') { res = n1 * n2; cout << "O resultado da multiplicacao e: " << res; } else cout << "Operador invalido!"; cout << endl; return 0; } // fim main Entrada de Dados Soma Subtração Divisão Multiplicação Nenhuma das 4 operações BAC004-Informática-Teórica-Fabiana C Guedes 25 Comandos de Seleção Aninhados - Exemplo BAC004-Informática-Teórica-Fabiana C Guedes 26 Comandos de Seleção Aninhados - Exemplo BAC004-Informática-Teórica-Fabiana C Guedes 27 Comandos de Seleção Múltipla - switch • Embora construções if – else possam executar testes para escolha de uma entre várias alternativas, muitas vezes são deselegantes. • O comando switch tem um formato limpo e claro. BAC004-Informática-Teórica-Fabiana C Guedes 28 Comandos de Seleção Múltipla - switch � Forma Geral switch (expressão) { case constante1 : seqüência de comandos1; break; case constante2 : seqüência de comandos2; break; ... case constanteN : seqüência de comandosN; break; default : seqüência de comandos; } BAC004-Informática-Teórica-Fabiana C Guedes 29 Comandos de Seleção Múltipla - switch • O corpo de um switch deve estar entre chaves; • Pode haver nenhuma, uma ou mais instruções seguindo cada caso. Geralmente, a última instrução de um caso é break, que causa a saída imediata de todo o corpo do switch. Na falta dele, todas as instruções após o caso escolhido serão executadas, mesmo as que pertencem aos casos seguintes; • switch testa a variável que deve ser do tipo int ou char; • Não se pode usar uma variável ou expressão lógica como rótulo de caso (que vem após o case); • Cada um dos cases pode ser considerado um if; • Um caso default é opcional. Pode ser encarado como o else de todos os ifs. Ou seja, se nenhum caso for satisfeito e existir um caso default, a execução começará nele. BAC004-Informática-Teórica-Fabiana C Guedes 30 Comandos de Seleção Múltipla - switch // ProgC020.cpp - Programa que apresenta comando de selecao multipla #include <iostream> using namespace std; int main ( ){ char Opcao; cout << "\nDigite um numero: "; cin >> Opcao; switch (Opcao){ case '1' : cout << "um "; break; case '2' : cout << "dois "; break; case '3' : cout << "tres "; break; } return 0; } Comando de seleção switch. Testa o conteúdo da variável Opcao. Se valor for 1, escreverá um; se valor for 2, escreverá dois; se valor for 3, escreverá três. BAC004-Informática-Teórica-Fabiana C Guedes 31 Comandos de Seleção - switch //ProgC021.cpp - Calculadora com Case #include <iostream> using namespace std; int main(){ float n1, n2, res; char op; cout << "Digite NUMERO OPERADOR NUMERO: "; cin >> n1 >> op >> n2; switch (op) { case '+': res = n1 + n2; cout << "O resultado da soma e: " << res; break; case '-': res = n1 - n2; cout << "O resultado da subtracao e: " << res; break; case '/': res = n1 / n2; cout << "O resultado da divisao e: " << res; break; case '*': res = n1 * n2; cout << "O resultado da multiplicacao e: " << res; break; default: cout << "Operador invalido!"; } // fim switch return 0; } // fim main switch case Caso + Caso - Caso / Caso * BAC004-Informática-Teórica-Fabiana C Guedes 32 Exemplo de If com condicional string //ProgC022 - Programa que faz teste com strings #include <iostream> #include <string.h> using namespace std; int main(){ char nome[30]; cout << "\nDigite o seu nome: "; cin.getline(nome, 30, '\n'); if (strcmp(nome, "Fabiana") == 0) cout << "\nO nome digitado foi: " << nome << "\n"; else cout << "\nO nome digitado foi diferente de Fabiana"; return 0; } Biblioteca para manipulação de strings Função que possibilita pegar nomes digitados com espaço Função que compara se duas strings são iguais. Se retorna valor 0 elas são iguais, caso contrário são diferentes. Neste caso diferencia valores maiúsculos de minúsculos. Permite ordenar de acordo com valores negativos e positivos. BAC004-Informática-Teórica-Fabiana C Guedes 33 Exercícios � Crie um programa para ler dois números e mostrar o maior � Faça um programa que receba a idade e peso de uma pessoa. De acordo com a tabela a seguir, verifique e mostre em qual grupo de risco essa pessoa se encaixa. BAC004-Informática-Teórica-Fabiana C Guedes 34 Exercícios � Faça um programa que: � Mostre o menu de opções a seguir, receba a opção do usuário e os dados necessários para executar cada operação e mostre o resultado da operação. � 1- Somar dois números � 2- Raiz quadrada de um número BAC004-Informática-Teórica-Fabiana C Guedes 35 Exercícios � Faca um programa que receba os comprimentos dos três lados de um triângulo e imprima se eles podem ou não formar um triângulo (cada lado tem que ser menor que a soma dos outros dois). O programa deve imprimir também se o triângulo é: � Equilátero: três lados de mesmo comprimento � Isósceles: dois lados de mesmo comprimento � Escaleno: três lados de comprimentos diferentes BAC004-Informática-Teórica-Fabiana C Guedes 36 Tópicos para Discussão � Estruturas Condicionais � Simples � Compostas � switch � Aninhadas
Compartilhar