Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFRN Escola de Ciências e Tecnologia Estruturas de Seleção ECT1103 – INFORMÁTICA FUNDAMENTAL Prof: Diego Rodrigues de Carvalho • Manter o telefone celular sempre desligado/silencioso quando estiver em sala de aula; • Nunca atender o celular na sala de aula. Objetivo da Aula • Introduzir os conceitos de: – Estrutura Seqüencial; – Estrutura de Decisão: Se (ou if na maioria das linguagens) Estruturas de Controle de Fluxo • Estrutura Sequencial: Execução das ações primitivas em uma seqüência linear (na mesma ordem em que foram escritas); • Estrutura de Seleção : Verifica-se uma condição lógica antes de executar um bloco de ações; • Estrutura de Repetição: Execução de uma seqüência de ações repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a seqüência de ações desejada. Estruturas de Controle de Fluxo • Estruturas utilizadas para reger o fluxo de execução de um algoritmo: – Estrutura Seqüencial; – Estrutura de Seleção; – Estrutura de Repetição. Estrutura Seqüencial • Conjunto de ações executadas em seqüência linear, na ordem em que foram escritas. • Ações separadas por: – ponto-e-vírgula (;) em linguagens como C, C++, Java, G- portugol, etc; • Bloco delimitado por: – inicio e fim, – begin e end, – “{“ e “}” – no caso de C ou C++. Exemplo de Estrutura Seqüencial 1. algoritmo nome_do_algoritmo; 2. // declaração das variáveis 3. inicio // marca o início do bloco 4. // corpo do algoritmo 5. ação 1; 6. ação 2; 7. ... 8. ação n; 9. fim// fim do algoritmo Exemplo de Estrutura Seqüencial Estrutura Seqüencial • Cada comando é executado somente após o término do comando anterior. Estrutura de Seleção • Permite a seleção de um grupo de ações (bloco) a ser executado quando determinadas condições forem satisfeitas; • Condições são representadas por expressões lógicas ou relacionais: – Seleção Simples; – Seleção Composta. Seleção Simples Estrutura Condicional Simples Sintaxe: if (condição) { seqüência de comandos; } Seleção Simples • Verifica se uma condição é satisfeita, antes de executar um bloco: 1. if (condição) { 2. // início do bloco verdade 3. C1; 4. C2; // Seqüência de comandos 5. ... 6. Cn; 7. } Seleção Simples if (condição) { seqüência de comandos; } Operadores Relacionais Símbolo Função == Igual > Maior que < Menor que != Diferente >= Maior ou igual que <= Menor ou igual que O resultado obtido de uma relação é sempre um valor lógico. Atividade VARIÁVEIS RELAÇÕES A B NOME PROFISSÃO A+2 > B NOME!=”ANA” PROFISSÃO==“MEDICO” 3 16 “MIRIAM” “ADVOGADO” false 5 64 “PEDRO” “MEDICO” true 2,5 9 “ANA” “PROFESSOR” Dadas as variáveis numéricas A e B, e as variáveis literais NOME e PROFISSÃO, completar o quadro a seguir: Operadores Lógicos Símbolo Função E (&&) Conjunção OU (||) Disjunção NAO (!) Negação Operadores Lógicos - E p q p E q V V V V F F F V F F F F A conjunção de duas proposições p e q, representa-se por p E q, e é verdadeira se e somente se ambas as proposições são verdadeiras. Operadores Lógicos - OU A disjunção de duas proposições p e q, representa-se por p OU q, e é verdadeira se e somente se, pelo menos, uma delas for verdadeira. p q p OU q V V V V F V F V V F F F Operadores Lógicos - NAO O operador negação (NAO) atribui o valor lógico falso a uma proposição com valor verdade, e o valor lógico verdade a uma proposição com valor falso. p NAO p V F F V Operadores - Prioridades • 1º prioridade : aritmético • 2º prioridade : relacional • 3º prioridade : NAO • 4º prioridade : E • 5º prioridade : OU • Exemplo com C++: – 2 < 5 && 15/3 == 5 – 5*4 > 20 && 17/4 < 3 || 2+3 == 5 Atividades • Determine os resultados obtidos na avaliação das expressões lógicas seguintes, sabendo que A=2, B=7, C=3: 1. A > B-1 || A > B- 2 2. B == A * C && (A > C) 3. C > A || B < C && A + 5 > B 4. A == C-1 && B * 2 > A*C && (A+B+C)/2 < B 5. C-A > B / 3 || 5+C – A <= 12 6. B > C && C > A && A + 1 >= B 7. C*3 >= B && 5+A <= B && B-C >= A*2 && B*3 > (B+C)*2 Seleção Composta • Dois blocos alternativos dependem de uma mesma condição. • Se a condição resultar verdadeira, o primeiro bloco é executado. Caso contrário, o segundo será executado. Estrutura de Seleção Composta Formato : if (condição){ seqüência A de comandos; } else { seqüência B de comandos; } Observe a identação: o que estiver dentro do bloco fica consistentemente um tabulador (ou por exemplo 4 espaços) para dentro Seleção Composta Seleção Composta Atividade Escreva um algoritmo que dadas três notas de um aluno, determine a média e imprima o conceito Aprovado ou Reprovado, para média >=7 e <7, respectivamente. #include <iostream> using namespace std; int main(){ float nota1,nota2,nota3,media; cin >> nota1; cin >> nota2; cin >> nota3; media = (nota1+nota2+nota3)/3; if (media>=7) { cout << "aprovado" << endl; } else{ cout << "reprovado" << endl; } return 0; } Seleção Encadeada (Aninhada) • Várias seleções agrupadas. • Um grande conjunto de combinações de situações deve ser satisfeito: – Seleção Encadeada Heterogênea; – Seleção Encadeada Homogênea. Seleção Encadeada Heterogênea • Não é possível encontrar um padrão lógico na estrutura da seleção encadeada: 1. if (condição 1){ 2. if (condição 2) { 3. C1; 4. } 5. else{ 6. if (condição 3) { 7. C4; 8. } 9. else{ 10. if (condição 4) { 11. if (condição 5) { 12. C5; 13. } 14. else{ 15. C6; } 16. } 17. } 18. } 19. } Tabela de Decisão Seleção Encadeada Homogênea • Existe um padrão lógico no encadeamento da estrutura de seleção. • Se entao se 1. if (Condição 1) { 2. if (Condição 2) { 3. if (Condição 3) { 4. if (Condição 4) { 5. C1; 6. } 7. } 8. } 9. } 1. if ((condição 1) && (condição 2) && (condição 3) && (condição 4) && (condição 5)) { 2. C1; 3. } Seleção Encadeada Homogênea • Se - senao – se em C++ 1. if (x == 1) { // testa x e 2. C1; // executa o comando C1 se x for 1 3. } 4. if (x == 2) {// testa x de novo o que é desnecessário!!! 5. C2; 6. } 7. if (x == 3) { 8. C3; 9. } 10. if (x == 4) { 11. C4; 12. } Testes Desnecessários Seleção Encadeada Homogênea Atividade Índice Massa Corpórea Grau de obesidade <26 Normal >=26 e <30 Obeso >=30 Obeso mórbido Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o seu peso e altura. O grau de obesidade é determinado pelo índice de massa corpórea (massa=peso/altura2) por meio da tabela abaixo: Seleção Aninhada Seleção Faça um algoritmo que leia três valores (dia, mês e ano) e mostre a data por extenso. Exemplo de utilização: Se o usuário informar os valores (25, 01, 2009), o algoritmo deve imprimir “Natal, 25 de Janeiro de 2009”. Seleção usando if // fragmento da solução // ... if (mes == 1) { mes_extenso = ”Janeiro”; } else if (mes == 2) { mes_extenso = ”Fevereiro”; } else if (mes == 3) { mes_extenso = ”Março”; } else if (mes == 4) { mes_extenso = ”Abril”; } // falta testar todos os meses . . . cout << "Natal,” << dia << ” de “ << mes_extenso << ” de “ << ano << endl ; .. Atividade Faça um algoritmo que leia três valores inteiros, determine e imprima o menor deles. Solução (misturando pseudo-códigoe C++) algoritmo menor de tres; var num1,num2,num3,menor:inteiro; fim-variaveis inicio cin >> num1; cin >> num2 ; cin num3; if (num1<num2) e (num1<num3) { menor = num1; } else { if (num2<num3) { menor = num2; } else { menor = num3; } } cout << menor; fim // Exercício complete a tradução doo código para C++ Atividade • Faça um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade e, também, verifique e mostre se ela já tem idade para votar (16 anos ou mais) e para conseguir a Carteira de Habilitação (18 anos ou mais). Atividade • Um time de futebol deseja aumentar o salário de seus jogadores. O reajuste deve obedecer a seguinte tabela: Escreva um algoritmo que leia o nome e o salário atual de um jogador, e exiba o nome, o salário atual e o salário reajustado. Atividade • Faça um algoritmo que receba o salário de um funcionário da UFRN, calcule e mostre o novo salário, acrescido de bonificação e de auxilio escola. Atividade • Faça um programa para resolver equações do 2º. grau na forma ax²+bx+c=0 em que a≠0; Use a fórmula de Bhaskara • Dados três valores X, Y e Z, verifique se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verifique se é um triângulo equilatero, isósceles ou escaleno. Se eles não formarem um triângulo, escreva uma mensagem.
Compartilhar