Buscar

Aula_08 - Estruturas de Controle (sentinela)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Estruturas de controle
Aula nº 08
Repetição controlada por sentinela
Estruturas de controle aninhadas
*
*
*-25
Repetição controlada por sentinela
Uma estrutura de repetição pode ser controlada através de um contador;
Como no exemplo na aula passada.
Também pode ser controlada por uma sentinela.
De acordo com essa técnica, um valor impossível é apresentado como o último dado a ser processado.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Repetição controlada por sentinela
Por exemplo, se serão processadas notas de alunos, uma sentinela seria uma nota negativa;
Se serão processados números de matrícula, uma sentinela seria zero.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Repetição controlada por sentinela Estudo de caso 2
Desenvolva um programa que calcule a média da turma, para um número arbitrário de notas.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Imagine que você tem uma relação das notas a serem processadas, mas
Você não sabe a quantidade delas;
Acrescente uma nota fictícia no final da relação;
Por exemplo, acrescente a nota -1;
Repetição controlada por sentinela Estudo de caso 2
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Desenvolva um programa que calcule a média da turma, para um número arbitrário de notas.
Repetição controlada por sentinela Estudo de caso 2
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
O operador irá digitar as notas uma a uma;
Quando for digitada a nota “-1”, significará que não há mais notas a serem digitadas (“entradas”), então o programa passará para outra fase.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Refinamento top-down
 Desenvolva um programa que calcule a média da turma, para um número arbitrário de notas
Topo:
Determine a média da turma
Função global do programa
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Estudo de caso 2 Repetição controlada por sentinela
Refinamento
Cada refinamento, como o topo, é uma especificação completa do algoritmo:
 Fase de processamento
 Fase de finalização
 Fase de inicialização
 Inicializar variáveis
 Receber os dados, somar e contar as notas
 Calcular e imprimir a média da turma
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Repetição controlada por sentinela
	Inicialize total com zero;
	Inicialize contador com zero;
 Inicializar variáveis
0
0
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Repetição controlada por sentinela
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
	Some esta nota ao total corrente;
	Some um ao contador de notas;
	Receba como entrada a próxima nota; 	(possivelmente a sentinela)
 Receber os dados, somar e contar as notas
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Imagine que você tem uma pilha de provas com as notas. 
Em baixo da pilha, está uma prova com a nota -1.
-1
7
8
6
8
7
9
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
0
0
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
0
0
Receba como entrada a primeira nota; (possivelmente a sentinela)
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
0
0
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
	
Não é sentinela !
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
9
0
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 
Não é sentinela !
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
1
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 
	
Não é sentinela !
9
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
9
1
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
9
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
7
2
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
16
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
8
3
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
24
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
6
4
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
30
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
8
5
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
38
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
-1
7
6
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
Não é sentinela !
45
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
6
Receba como entrada a primeira nota; (possivelmente a sentinela)
Enquanto usuário ainda não digitou sentinela:
 Some esta nota ao total corrente;
 Some um ao contador de notas;
 Receba como entrada a próxima nota; 	(possivelmente a sentinela)
	
45
Seninela !
Fim do laço !
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Repetição controlada por sentinela
Se o contador não é igual a zero:
Atribua à média o valor do total dividido pelo contador;
Imprima a média;
Senão
Imprima “Nenhuma nota foi fornecida”.
 Calcular e imprimir a média da turma
7
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
20/08/2007
*-24
Inicialize total com zero;
Inicialize contador com zero;
Receba como entrada a primeira nota;
Enquanto usuário ainda não digitou sentinela:
Some esta nota ao total corrente;
Some um ao contador de notas;
Receba como entrada a próxima nota;
Se o contador não é igual a zero:
Atribua à média, total dividido pelo contador
Imprima a média
Senão
Imprima “Nenhuma nota foi fornecida”	 
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Estudo de caso 3 Estruturas de controle aninhadas
Uma escola oferece um curso de Inglês para 10 estudantes que vão prestar exame para o Mestrado da USP. Após a realização do exame você recebe uma lista com o nome de cada aluno com o código ao lado:
1 - se o estudante foi aprovado
2 - se o estudante foi reprovado
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Estudo de caso 3 Estruturas de controle aninhadas
Faça um programa que conte quantos estudantes foram aprovados e quantos reprovados. Se o número de aprovados for maior do que 8, imprima a mensagem:
“Aumente o preço do curso”
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Observações:
Serão processados 10 resultados.
laço controlado por contador.
Além do contador para controle do laço serão usados mais dois contadores:
 um para contar o número de
aprovados; e 
 outro para o número de reprovados
Deve-se testar se mais de 8 foram aprovados.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Topo
 Analise os resultados do exame e decida se o preço deve ser aumentado.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Refinamento
Inicialize as variáveis;
Receba os 10 resultados como entrada e conte as aprovações e reprovações;
Imprima um resumo dos resultados e decida se o preço deve ser aumentado.
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
 Inicialize as variáveis.
 Inicialize contador de estudantes com 0.
 Inicialize contador de aprovações com 0;
 Inicialize contador de reprovações com 0;
 
cont = 0;
contAP = 0;
contRP = 0;
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
*-24
Receba os 10 resultados como entrada e conte as aprovações e reprovações.
Enquanto o contador de estudantes for menor que 10:
	Leia o próximo resultado;
	Se o estudante foi aprovado
		Some um a aprovações;
	senão
		Some um a reprovações;
	Some um ao contador de estudantes.
Enquanto cont < 10:
 Leia próx resultado;
 Se (resultado == 1)
 contAP=contAP+1;
 senão
 contRP=contRP+1; 
 cont = cont+1;
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Imprima um resumo dos resultados e decida se o preço deve ser aumentado
Imprima o número de aprovações;
Imprima o número de reprovações;
Se o número de aprovações for maior que 8
	 Imprima ”Aumente o preço do curso”;
Fim.				
Imprima contAP; Imprima contRP;
Se contAP > 8
 Imprima ”Aumente o preço do curso”; 
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
*-24
Inicialize as variáveis
Receba os 10 resultados como entrada e conte as aprovações e reprovações
Imprima um resumo dos resultados e decida se o preço deve ser aumentado
cont = 0;
contAP = 0;
contRP = 0;
Imprima contAP; Imprima contRP;
Se contAP > 8
Imprima ”Aumente o preço do curso”; 
Enquanto cont < 10:
 Leia próx resultado;
 Se (resultado == 1)
 contAP=contAP+1;
 senão
 contRP=contRP+1; 
 cont = cont+1;
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Operadores de Atribuição
c = c + 2 ;		c += 2 ;
x = x – 3 ;		x -= 3 ;
w = w * 8 ; 		w *= 8 ;
y = y/5 ;		y /= 5 ;
a = a % 4 ;		a %= 4 ;
Aula nº 08 - Estruturas de Controle (sentinela)
*
*
*-25
Operadores de incremento e decremento
++a	pré-incremento
a++ 	pós-incremento
--a		pré-decremento
a--		pós-decremento
Aula nº 08 - Estruturas de Controle (sentinela)
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais