24 200
edições
[edição não verificada] | [edição não verificada] |
m (formatação wiki; <syntaxhighlight lang="pascal">) |
|||
__TOC__
Toda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamos um laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever o mesmo trecho X vezes
▲Toda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamos um laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever o mesmo trecho X vezes.
Exemplo:
Calcular a média de 50 alunos (sem repetição)
<syntaxhighlight lang="pascal">
program media_notas;
var
begin
{1º ALUNO}
end
{2º ALUNO}
end
{3º ALUNO}
{50º ALUNO}
end
end
</syntaxhighlight>
== Contador ==
Utilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição contamos +1 na variável, até um valor de acordo com o número de vezes que queremos repetir
No exemplo acima, como queremos 50 alunos, contaríamos 50 repetições
Sintaxe:
<syntaxhighlight lang="pascal">
CONT:integer; ( Variável inteira que irá contar o número de repetições )
CONT:=1; ( Iniciação do contador, ele deve começar com algum valor )
CONT:= CONT+1; ( Incrementar o contador em +1, repare que em cada repetição ele irá aumentar +1)
</syntaxhighlight>
== Testes lógicos ==
Usamos testes lógicos para saber quando parar a repetição, ou seja, estabelecemos uma condição para a repetição continuar, caso contrário o programa ficaria preso na repetição eternamente
Por exemplo, usando o contador, a cada repetição testamos o número do contador até que ele alcance quantidade desejada, caso o contador atinja a quantidade de vezes que queremos repetir, o loop (repetição) pára
Exemplo: programa para fazer a tabuada de multiplicação do número 7:
<syntaxhighlight lang="pascal">
program tabuada;
uses CRT;
end;
readkey;
end
</syntaxhighlight>
= Comandos de repetição =
== While (enquanto) ==
Usando o while pedimos ao Pascal para repetir "enquanto" a expressão for verdadeira
'''Sintaxe'''
begin
<comandos>;
<comandos>;
end;
</syntaxhighlight>
Veja o exemplo acima usando while:
<syntaxhighlight lang="pascal">
program media_notas;
var
CONT: integer;
begin
end
</syntaxhighlight>
== Repeat until (repita até) ==
O comando repeat executa repetidamente uma sequência de comandos "até" (until) que uma dada condição seja verdadeira
Sintaxe:
<syntaxhighlight lang="pascal">
repeat
<comando1>;
<comando3>;
until <condição>;
</syntaxhighlight>
Observação: este comando não precisa de begin (início) e end (fim) para demarcar o corpo da repetição
Exemplo:
Faça um programa para pedir um número, em seguida escrever uma tabuada de multiplicação deste número, caso for digitado o número 0, parar o programa
<syntaxhighlight lang="pascal">
program tabuada;
uses CRT;
cont:=0;
while cont<10 do {temos aqui uma repetição dentro de outra}
readkey; {parada para ver o resultado até ser teclado algo}
until num=0; {condição para parar a repetição principal}
write('Foi digitado o número 0! programa encerrado!');
readkey;
end
</syntaxhighlight>
== for to (para de até) ==
O comando for, diferentemente dos comandos de repetição repeat e while, permite que uma sequência de comandos seja executada um número definido de vezes
Sintaxe:
<syntaxhighlight lang="pascal">
for contador:=ValorInicial to ValorFinal do
begin
comandos
end;
</syntaxhighlight>
Exemplo:
Programa para calcular a média de 3 notas de 10 alunos:
<syntaxhighlight lang="pascal">
program media_notas;
var
CONT:integer;
begin
FOR CONT:=1 to 10 do
begin
write('Digite o nome e as 3 notas do ',cont,'o
read(NOME,N1,N2,N3);
if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10
else
end;
end
</syntaxhighlight>
= Crítica =
Usamos uma crítica para conferir se foi digitado um valor correto, usando para isso um teste lógico, dentro de uma repetição (laço), de onde só sairá quando for digitado um valor desejado, ou seja, obrigando que seja digitado um valor válido
Exemplo:
Programa para calcular a média de 3 notas de 10 alunos, criticando a nota digitada:
<syntaxhighlight lang="pascal">
program media_notas;
var
FOR CONT:=1 to 10 do
begin
write('Digite o nome e as 3 notas do ',cont,'o
readln(NOME,N1,N2,N3);
while (N1<0) or (n1>10) or (N2<0) or (N2>10) or (N3<0) or (N3>10) do
MEDIA:=(N1+N2+N3)/3;
writeln('A média do aluno ',NOME,' é: ',MEDIA:2:2);
end;
readkey;
end
</syntaxhighlight>
= Exercícios =
01
- a maior e a menor altura do grupo e de quem é esta altura. ( Se HOMEM ou MULHER.)▼
- a média de altura entre as mulheres.▼
- O número de homens e a diferença percentual entre estes e as mulheres.▼
- Critique as variáveis onde for necessário.▼
Resolução:
<syntaxhighlight lang="pascal">
program alturamf;
uses CRT;
readln(sexo);
while (sexo<>'m') and (sexo<>'f') do
end ;
clrscr;
else write(abs(dif):2:2,'% a mais de mulheres');
readkey;
end
</syntaxhighlight>
{{AutoCat}}
|