Buscar

ECT1103-Aula8

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais