Faça um algoritmo para ler uma quantidade e a seguir ler esta quantidade de números. Depois de ler todos os números o algoritmo deve apresentar na tela o maior dos números lidos, o menor e a média dos números lidos.
VAMOS A UM NOVO EXERCÍCIO
Faça um algoritmo para ler uma quantidade e a seguir ler esta quantidade de números.
Ou seja, um laço dinâmico.
Depois de ler todos os números o algoritmo deve apresentar na tela
* o maior dos números lidos
* o menor
* a média dos números lidos.
Vamos também com isso montar um relatório bonitinho!
Para este caso será necessário um laço, um acumulador
e alguns testes.
Nos comentários vou explicando mais detalhadamente cada bloco.
Vamos para a sugestão de resposta em pascal com Lazarus ou Delphi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| program project20;
uses
SysUtils;
var
qtdNumeros: Integer;
i: Integer;
maiorNumero: Integer;
menorNumero: Integer;
valorInformado: Integer;
vSoma : Integer;
vMedia : Double;
begin
Write(Utf8ToAnsi('Informe a quantidade de números: '));
ReadLn(qtdNumeros);
{ Testando se a quantidade informada é válida. }
if qtdNumeros < 1 then
begin
Write(Utf8ToAnsi('A quantidade de números precisa ser maior de zero, '+
'mas foi informado: '), qtdNumeros);
{ Para a execução }
Readln;
Exit;
end;
{ Inicializa a soma com zero }
vSoma:= 0;
{ Faz a leitura de 1 número, que por padrão será maior e menor }
Write(Utf8ToAnsi('Informe o 1º Número: '));
Readln(valorInformado);
maiorNumero:= valorInformado;
menorNumero:= valorInformado;
vSoma:= vSoma + valorInformado;
{ Começa o laço do dois, porque já lemos um fora do laço }
for i := 2 to qtdNumeros do
begin
Write(Utf8ToAnsi('Informe o ' + i.ToString + 'º Número: '));
Readln(valorInformado);
{ Verifica se o número lido é o maior }
if valorInformado > maiorNumero then
begin
maiorNumero:= valorInformado;
end;
{ Verifica se o número lido é o menor }
if valorInformado < menorNumero then
begin
menorNumero:= valorInformado;
end;
{ Acumula a soma dos números lidos }
vSoma:= vSoma + valorInformado;
end;
{ Calculando a média, SEMPRE depois do laço. }
vMedia:= vSoma / qtdNumeros;
{ Exibindo o relatorio }
WriteLn(Utf8ToAnsi('Quantidade de números lidos: '), qtdNumeros);
WriteLn(Utf8ToAnsi('Maior número lido: '), maiorNumero);
WriteLn(Utf8ToAnsi('Menor número lido: '), menorNumero);
WriteLn(Utf8ToAnsi('Média dos números lidos: '), FormatFloat('#0.00', vMedia));
ReadLn;
end. |
program project20;
uses
SysUtils;
var
qtdNumeros: Integer;
i: Integer;
maiorNumero: Integer;
menorNumero: Integer;
valorInformado: Integer;
vSoma : Integer;
vMedia : Double;
begin
Write(Utf8ToAnsi('Informe a quantidade de números: '));
ReadLn(qtdNumeros);
{ Testando se a quantidade informada é válida. }
if qtdNumeros < 1 then
begin
Write(Utf8ToAnsi('A quantidade de números precisa ser maior de zero, '+
'mas foi informado: '), qtdNumeros);
{ Para a execução }
Readln;
Exit;
end;
{ Inicializa a soma com zero }
vSoma:= 0;
{ Faz a leitura de 1 número, que por padrão será maior e menor }
Write(Utf8ToAnsi('Informe o 1º Número: '));
Readln(valorInformado);
maiorNumero:= valorInformado;
menorNumero:= valorInformado;
vSoma:= vSoma + valorInformado;
{ Começa o laço do dois, porque já lemos um fora do laço }
for i := 2 to qtdNumeros do
begin
Write(Utf8ToAnsi('Informe o ' + i.ToString + 'º Número: '));
Readln(valorInformado);
{ Verifica se o número lido é o maior }
if valorInformado > maiorNumero then
begin
maiorNumero:= valorInformado;
end;
{ Verifica se o número lido é o menor }
if valorInformado < menorNumero then
begin
menorNumero:= valorInformado;
end;
{ Acumula a soma dos números lidos }
vSoma:= vSoma + valorInformado;
end;
{ Calculando a média, SEMPRE depois do laço. }
vMedia:= vSoma / qtdNumeros;
{ Exibindo o relatorio }
WriteLn(Utf8ToAnsi('Quantidade de números lidos: '), qtdNumeros);
WriteLn(Utf8ToAnsi('Maior número lido: '), maiorNumero);
WriteLn(Utf8ToAnsi('Menor número lido: '), menorNumero);
WriteLn(Utf8ToAnsi('Média dos números lidos: '), FormatFloat('#0.00', vMedia));
ReadLn;
end.
Então pessoal, este algoritmo ficou bem interessante, porque trabalhamos
com conceitos de maior, menor, média, lógica, enfim
um pacote completo para iniciantes.
Espero que ajude vocês!
Um abraço e até o próximo exercício.
Dúvidas ou sugestões? Deixe nos comentários!
Gostariam da resposta em outras linguagem?
Indiquem nos comentários, quanto mais pedidos, mais chances
de colocarmos uma sugestão na linguagem solicitada.
-
Franciele Benedetti
-
4.274 views
- 2 comentários
- 13 de setembro de 2019
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
muito bom, vlw
Estamos felizes em poder ajudar você em seus estudos!
Um grande abraço!