dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Exercício com Laço – Hotel com diárias, diárias e taxas. Também há o calculo de lucro total do hotel.

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!

  • Franciele Benedetti
  • 2 comentários
  • 7 de outubro de 2019

2 respostas para “Exercício com Laço – Hotel com diárias, diárias e taxas. Também há o calculo de lucro total do hotel.”

  1. Adolfo Jefferson Fernandes Lopes disse:

    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;  

  2. Franciele Benedetti disse:

    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.

Deixe um comentário


Posts Relacionados


Continue Aprendendo

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados