



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. |
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.
Você precisa fazer o login para publicar um comentário.
muito bom, vlw
Estamos felizes em poder ajudar você em seus estudos!
Um grande abraço!