



E ai pessoal da comunidade Show Delphi, tudo beleza?
Aqui é a Franciele e vamos a um novo exercício de algoritmo com laço.
Vamos a pergunta completa já que coloquei de forma resumida no título.
Um hotel cobra R$ 300,00 por diária e mais uma taxa adicional de serviços.
Se o número de diárias for menor que 15 a taxa e de R$ 20,00.
Se o número de diárias for igual a 15 a taxa é de R$ 14,00
e se o número for maior que 15 a taxa é de R$ 12,00.
Considerando-se que se tenha 200 pessoas e para cada pessoa tenha-se um registro contendo seu nome e o número de diárias.
Faça um algoritmo que imprima o nome e o total a pagar de cada pessoa
e imprimir também o total ganho pelo hotel
e o número total de diárias.
Já deixei de forma bem dividida para facilitar o entendimento.
Neste algoritmo vamos utilizar um laço do tipo PARA (for) e também o conceito de acumuladores (somas).
Bom, chega de papo e vamos ao código e como de costume com o exemplo em pascal. Lembrando que sempre deixamos comentários no código para facilitar o entendimento.
Sugestão de resposta em pascal, Delphi, Lazarus
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 74 | // Testado no Lazarus 2.0.4 program project38; uses SysUtils; var nome: String; numeroDiarias: Integer; totalAPagarPessoa: Double; totalGanhoPeloHotel: Double = 0.0; // iniciando a variável direto numeroTotalDeDiarias: Integer = 0; // iniciando a variável direto i: integer; taxa: double; begin { Utilizando o for, porque é um número DEFINIDO a ser percorido } for i := 1 to 200 do begin Write(Utf8ToAnsi('Informe o seu nome: ')); ReadLn(nome); Write(Utf8ToAnsi('Informe o número de diárias: ')); ReadLn(numeroDiarias); if numeroDiarias < 15 then begin taxa := 20; end; if numeroDiarias = 15 then begin taxa := 14; end; if numeroDiarias > 15 then begin taxa := 12; end; { Calcula as diárias } totalAPagarPessoa := numeroDiarias * 300; { Adiciona a taxa } totalAPagarPessoa := totalAPagarPessoa + (numeroDiarias * taxa); { Exibindo o total a pagar da pessoa } Write(Utf8ToAnsi('Total a pagar de ' + nome + ' é de: ') + FormatFloat('#0.00', totalAPagarPessoa)); { Somando o número total de diárias - acumulador } numeroTotalDeDiarias := numeroTotalDeDiarias + numeroDiarias; { Somando o total ganho do hotel - acumulador } totalGanhoPeloHotel := totalGanhoPeloHotel + totalAPagarPessoa; { Pulando linhas } WriteLn(''); WriteLn(''); end; { Exibindo o total de diárias } WriteLn(Utf8ToAnsi('Total de diárias é de: '), numeroTotalDeDiarias); { Exibindo o total ganho pelo hotel } Writeln(Utf8ToAnsi('O Total ganho pelo hotel é de: ') + FormatFloat('#0.00', totalGanhoPeloHotel)); WriteLn(''); WriteLn(''); WriteLn(Utf8ToAnsi('Pressione enter para finalizar.')); ReadLn; end. |
Pessoal acredito que tenha ficado bem legal o exercício e espero que ajudem vocês nos seus estudos.
Para ajudar o entendimento, vamos a um vídeo do Giovani explicando melhor o exercício.
Lembrando que se vocês desejam outras linguagens, por favor, indique nos comentários.
Dúvidas ou sugestões? Deixe o seu comentário!
Um abraço e até a próxima. Valeu!
Você precisa fazer o login para publicar um comentário.
Certo mas???
if (numeroDiarias > 15) then
begin
taxa := 12;
end
else if (numeroDiarias < 15) then
begin
taxa := 20;
End
else if (numeroDiaria = 15 ) then
begin
taxa := 14;
end
end;
Adolfo Jefferson Fernandes Lopes, realmente tinha sumido parte do teste na hora da postagem, já ajustamos ele.
Na resposta só utilizei if, sem os “elses” neste caso, mas poderia ser utilizado também da forma como colocas-te que está ok também.