Você está na página 1de 8

Pascal - Comando de Repetição

usando Flag
• Quando usamos um valor de entrada que serve
apenas para indicar fim dos dados de entrada,
damos a esse valor o nome de FLAG.
• Observe que o flag não é usado no processamento
normal.
• Portanto ele deve ser um valor que não ocorra no
conjunto válido dos dados de entrada.
• Recomneda-se que em uma repetição usando flag,
a leitura do primeiro valor a ser testado na
expressão condicional da repetição, seja feita antes
de entrar na repetição,
• a leitura dos próximos valores seja feita no final
da repetição. Observe que se o primeiro valor lido
já for o flag, a repetição não será executada
nenhuma vez.
• 1) Ler a nota de diversos alunos e para cada nota lida, informar o status:
abaixo de 5, "Reprovado", igual ou superior a 5, "Aprovado". O flag é nota
igual a -1.
• Program Exibe_Status_Nota;
Var
.....NOTA: Real;
Begin
.....Writeln('Este programa informa a situacao correspondente a nota nota
lida');
... .Writeln('Entre com a primeira nota. Para encerrar, entre com nota = -1');
... .Readln(NOTA);
... .While NOTA < > -1 Do
..........Begin
...............If NOTA >= 5
....................Then Writeln('Aprovado')
................... Else Writeln('Reprovado');
...............Writeln('Entre com a proxima nota. Para encerrar, entre com a nota
= -1');
...............Readln(NOTA);
..........End;
.....Readln;
End.
• 2) Ler a nota de diversos alunos e para cada nota lida, informar o status: abaixo de 5, "Reprovado", igual ou
superior a 5, "Aprovado". O flag é nota igual a -1. Informar no final quantos aprovados e quantos reprovados.
• Program Exibe_Status_Nota_e_Totaliza;
Var
.....NOTA: Real;
.....APROV, REPROV : Integer;
Begin
.....APROV := 0;
.....REPROV := 0;
.....Writeln('Este programa informa a situacao correspondente a nota nota lida');
... .Writeln('Entre com a primeira nota. Para encerrar, entre com nota = -1');
... .Readln(NOTA);
... .While NOTA < > -1 Do
..........Begin
...............If NOTA >= 5
..... .......... Then
....................Begin
.........................Writeln('Aprovado');
.........................APROV := APROV + 1;
....................End
..................Else
..... ..... ..... .. Begin
.........................Writeln('Reprovado');
.........................REPROV := REPROV + 1;
.....................End;
...............Writeln('Entre com a proxima nota. Para encerrar, entre com a nota = -1');
...............Readln(NOTA);
..........End;
.....Writeln(APROV, 'aprovados e ', REPROV, ' reprovados');
.....Readln;
End.
• 3) Ler o nome, salario bruto de vários funcionários e calcular para cada um deles o
salário líquido, sabendo-se que deve ser calculado um desconto de imposto de renda
de 15 % sobre o salário bruto. O flag é nome de funcionário igual a 'ZZZZ'.
• Program Calcula_Salario_Liquido;
Var
.....SAL_LIQ, SAL_BRUTO: Real;
.....NOME: String [10]
Begin
.....Writeln('Este programa calcula o salario liquido de funcionarios');
... .Writeln('Entre com o nome do primeiro funcionario. Para encerrar, entre com
nome =FIM');
... .Readln(NOME);
... .While NOME < > ‘FIM' Do
..........Begin
.............. Writeln(Entre com o salario bruto do funcionario ', NOME);
...............Readln(SAL_BRUTO);
...............SAL_LIQ := SAL_BRUTO - SAL_BRUTO*0,15;
.............. Writeln('Entre com o nome do proximo funcionario. Para encerrar, entre
com nome = ‘FIM');
...............Readln(NOME);
..........End;
.....Readln;
End.
• 1) A partir da leitura de um número indeterminado
de valores não nulos, determinar e exibir quantos
desses valores são positivos e quantos são
negativos. O último valor a ser lido (o flag) é zero
(0).
• 2) A partir da leitura de um número indeterminado
de notas, calcular e exibir a média aritmética
dessas notas. O flag para indicar o fim das notas é
-1.
• 3) Uma seqüência de valores positivos quaisquer
deve ser lida, pressupondo-se que está em ordem
crescente dos valores. O programa deve emitir uma
mensagem de erro toda vez que localizar um valor
fora de ordem, e continuar lendo novos valores até
encontrar o flag -1. Ao final deseja-se saber quantos
valores foram lidos e quantos valores estavam fora
de ordem e quantos valores estavam na ordem
crescente correta..
Parte do Trabalho Em equipe
valendo 1 ponto (deve ser feito no

laboratório pela equipe)
Apurar uma eleição em que participam os candidatos A e B. Os dados
da eleição são fornecidos de forma codificada, sendo que os tipos de
voto podem ser:
• 1 - Voto para o candidato A
2 - Voto para o candidato B
3 - Voto Branco
4 - Voto Nulo
5 - Fim dos dados.
• Ao final, informar:
• - Quem ganhou ou se houve empate e com quantos votos e %.
- Total de votos nulos
- Total de votos brancos
- Total de eleitores

Você também pode gostar