Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO A LINGUAGEM DE PROGRAMAÇÃO Prof.: Danilo Coimbra (coimbra.danilo@ufba.br) 2018 –1 Danilo Peleteiro (dan.pltr@gmail.com) Desvios Condicionais 1 Conteúdo Desvios simples (SE) Desvio composto (SE / SENÃO) Operadores lógicos Desvios encadeados Desvio com condição múltipla (ESCOLHA) 2 Desvio Simples - IF (SE) Em determinadas situações precisamos fazer com que o computador execute uma instrução apenas se determinada condição acontecer Chamamos essa situação de Desvio Condicional Exemplo: A lâmpada deve ser trocada SE ela estiver queimada. Outros exemplos? 3 Desvio Simples - IF (SE) A “pergunta” é feita para o comando SE O comando verifica se tal condição é VERDADEIRA (ou SIM) Então o comando, ou sequência de commandos, é (são) executado(s) Caso o teste seja FALSO (ou NÃO), o comando não é executado e o programa continua após a instrução FIM SE (}) 4 Desvio Simples - IF (SE) Sintaxe if ( <condição> ) comando; if ( <condição> ) { comando1; … comandoN; } 5 Comando único Sequência de comandos início IF fim IF Desvio Simples - IF (SE) Exemplo Aprovação ou não de aluno na disciplina Como seria o código para verificar se o aluno foi aprovado em determinada disciplina? Considerando que temos duas notas na disciplina e temos a nota mínima da universidade para aprovar o aluno 6 Desvio Simples - IF (SE) Exemplo Aprovação ou não de aluno na disciplina Calcular média aritmética ! #include <iostream> using namespace std; int main() { float notaA, notaB, mediaAluno, mediaUni; cin >>notaA >>notaB >> mediaUni; mediaAluno = (notaA+notaB)/2.0; if(mediaAluno >= mediaUni) { cout << "Aluno aprovado na disciplina! Parabens!“<<endl; } return 0; } 7 Desvio Composto - IF / ELSE (SE/SENÃO) No exemplo anterior, e se o aluno não conseguisse a média da universidade? Uma outra mensangem poderia ser exibida Qual? Podemos fazer isso utilizando um desvio composto Executa um comando quando a resposta é SIM Executa um comando diferente quando a resposta é NÃO 8 Desvio Composto - IF / ELSE (SE/SENÃO) Fluxograma: exemplo lâmpada 9 INÍCIO APAGAR FIM ACENDEU? NÃO SIM TROCAR ACIONAR INTERRUPTOR Desvio Composto - IF / ELSE (SE/SENÃO) Sintaxe if ( <condição> ) { comando1; … comandoN; } else{ comando1; … comandoN; } 10 Sequência de comandos do IF Sequência de comandos do ELSE Desvio Composto - IF / ELSE (SE/SENÃO) Fluxograma: exemplo aluno 11 INÍCIO APROVADO FIM médiaAluno >= mediaUni NÃO SIM REPROVADO CALCULAR mediaAluno Desvio Composto - IF / ELSE (SE/SENÃO) Exemplo Aprovação ou não de aluno na disciplina Calcular média aritmética ! #include <iostream> using namespace std; int main() { float notaA, notaB, mediaAluno, mediaUni; cin >>notaA >>notaB >> mediaUni; mediaAluno = (notaA+notaB)/2.0; if(mediaAluno >= mediaUni) { cout << "Aluno aprovado na disciplina! Parabens!“<<endl; } else{ cout << "Aluno Reprovado na disciplina!"<<endl; } return 0; } 12 Desvio Composto - IF / ELSE (SE/SENÃO) Exemplo Aprovação ou não de aluno na disciplina Calcular média aritmética ! #include <iostream> using namespace std; int main() { float notaA, notaB, mediaAluno, mediaUni; cin >>notaA >>notaB >> mediaUni; mediaAluno = (notaA+notaB)/2.0; if(mediaAluno >= mediaUni) { cout << "Aluno aprovado na disciplina! Parabens!“<<endl; } else{ cout << "Aluno Reprovado na disciplina!"<<endl; } return 0; } 13 CONDIÇÃO!!!! Condições Operadores são utilizados para satisfazer ou formular as condições Como? Se temperatura maior ou igual a 30 graus, vou para a praia! Se alarme instalado E alguém esbarra no carro, alarme é acionado! 14 Condições Quais? Condições compostas Negação 15 DESCRIÇÃO OPERADORES IGUAL == MAIOR > MENOR < MAIOR OU IGUAL >= MENOR OU IGUAL <= DIFERENTE != E && OU || NÃO ! Condições - Exemplos Operadores A > B (A maior que B) Condições compostas A > B && A > C (A maior do que B E A maior do que C) Negação (!) ! (A > B) A <= B (A não é maior do que B. Logo, A é menor ou igual a B) 16 Condições Precedência A > B && A > C || A > D é o mesmo que ( A maior que B E A maior que C ) OU A maior que D A > B && ( A > C || A > D ) é o mesmo que A maior que B E ( A maior que C OU A maior que D ) Portanto && (E) equivale (em precedência) à multiplicação || (OU) equivale (em precedência) à soma 17 Desvio Encadeado Há ocasiões em que dentro de um SE ou SENÃO precisamos realizer um novo teste Podemos colocar desvios condicionais dentro de outros desvios condicionais if(<condição1>){ if(<condição2>){ comandos; } } 18 if(<condição1>){ <comandos>; } else{ <comandos>; if(<condição2>){ <comandos>; } } ou Desvio Encadeado Exemplo Um programa lê dois números e informa qual é o maior ou se são iguais #include <iostream> using namespace std; int main() { int num1, num2; cin >> num1 >> num2; if(num1 == num2) { cout << “Numeros sao iguais”<<endl; } else{ if(num1>num2) cout << num1 << “ maior que “<<num2<<endl; else cout << num2 << “ maior que “<<num1<<endl; } return 0; } 19 Desvio Múltiplo Há ocasiões em que podemos agrupar diversos SE numa estrutura mais prática chamada ESCOLHA (SWITCH) Esse comando permite executar diferentes comandos para diferentes valores de uma mesma variável 20 Desvio Múltiplo Desvio múltiplo pode substituir a seguinte estrutura if ( <variável> == valor1 ) { comandos1; } else if ( <variável> == valor2 ) { comandos2; } … else if ( <variável> == valorN ) { comandosN; } else { comandos_default; } 21 Desvio Múltiplo Como? Sintaxe switch ( <variável> ) { case valor1: comandos1; break; case valor2: comandos2; break; … case valorN: comandosN; break; default: comandos_default; } 22 Início switch Fim switch Desvio Múltiplo Exercício 1 Descrição Seu programa deve identificar e imprimir o resultado da operação desejada Entrada Três números inteiros. Os dois números iniciais representando os números a serem utilizados na operação e o terceiro representando o código da operação a ser realizada Saída Seu programa deve imprimir o resultado da operação especificada com os dois números iniciais. Para os códigos 1,2,3, seu programa deve imprimir o resultado da soma, subtração e multiplicação, respectivamente. Caso o código não seja nenhum dos especificados, o programa deverá imprimir: “Código inválido. Digite números 1, 2 ou 3 para a escolha da operação.” 23 Desvio Múltiplo Código #include <iostream> using namespace std; int main() { int num1, num2, cod; cin >> num1 >> num2>> cod; switch(cod){ case 1: cout<<num1+num2<<endl; break; case 2: cout<<num1-num2<<endl; break; case 3: cout<<num1*num2<<endl; break; default: cout<<"Codigo invalido. Digite numeros 1, 2 ou 3 para a escolha da operacao."<<endl; } return 0; } 24 Desvio Múltiplo Exercício 2 Descrição Seu programa deve identificar e imprimir a origem de um dado produto. Entrada Um número real representando o preço de um produto e um inteiro representando o seu código de origem. Saída Seu programa deve imprimir umalinha com o preço do produto com duas casas decimais seguido da sua região de procedência. Para os códigos iguais a 1, 2, 3, 4 ou 5, seu programa deve imprimir "Sul!", "Norte!", "Nordeste!", "Centro-Oeste!" ou "Sudeste!", respectivamente. Caso o código não seja nenhum dos especificados, o programa deverá imprimir "Produto importado!" como procedência. 25 26 Código: #include <iostream> #include <iomanip> using namespace std; int main() { float p; int c; cin >> p >> c; cout << fixed << setprecision(2); switch(c) { case 1: cout << p << "Sul!\n"; break; case 2: cout << p << "Norte!\n”; break; case 3: cout << p << "Nordeste!\n"; break; case 4: cout << p << "Centro-Oeste!\n"; break; case 5: cout << p << "Sudeste!\n"; break; default: cout << "Produto importado!\n"; } return 0; }
Compartilhar