Olá Angelo,
Pascal, já não sei aos Anos que não utilizo isso...velhos tempos.
Se percebi o enunciado do problema o que tem que fazer é pedir a
indicação do tipo de apartamento e não o valor porque esse é conhecido à
partida.
Veja se este código lhe resolve o problema.
program hospedaria;
uses crt;
var
nome: string;
diaria, subtotal, n_diarias, consumo: longint;
total, tx_servico: real;
DApt: array[1..4] of integer;
tipo_apt, key: char;
begin
Dapt[1]:= 15000; { Diária apartamento Tipo A}
Dapt[2]:= 10000; { Diária apartamento Tipo B}
Dapt[3]:= 7500; { Diária apartamento Tipo C}
Dapt[4]:= 5000; { Diária apartamento Tipo D}
clrscr;
write('Indique o nome do Hospede: '); readln(nome);
writeln; writeln;
writeln('* Tipos de Apartamentos *');
writeln(' A - T3; di ria: ', Dapt[1]);
writeln(' B - T2; di ria: ', Dapt[2]);
writeln(' C - T1; di ria: ', Dapt[3]);
writeln(' D - T0; di ria: ', Dapt[4]); writeln;
repeat
write('Indique o Tipo de Apartamento: '); readln(key);
key:=upcase(key);
until (key='A') or (key='B') or (key='C') or (Key='D');
tipo_apt:= key;
{ usamos o codigo ASCII da letra para calcular o index para o array
com o custo da di ria relativa ao tipo de apartamento
}
diaria:=Dapt[ord(key) - 64];
write('Indique número de dias: '); readln(n_diarias);
write('Indique o consumo:'); readln(consumo);
writeln; writeln('*** RECIBO ***);writeln;
writeln('Hospede: ', Nome);
writeln('Tipo de Apartamento: ',tipo_apt);
subtotal:= diaria * n_diarias;
writeln('Custo da di ria: ', diaria, ' x ',n_diarias, ' dias =
',subtotal);
writeln('Consumo efectuado: ', consumo);
subtotal:= subtotal + consumo;
writeln('> SUBTOTAL: = ', subtotal);
tx_servico:= subtotal /100 * 10;
writeln('Valor da taxa de servi‡o e: ', tx_servico:2:2);
total:=subtotal + tx_servico;
writeln; writeln('>>> TOTAL A PAGAR: ',total:2:2);
readkey;
end.
___
Rui Paz
Rui Paz
COMPUTADOR(Entreajuda) wrote:
>
>
>
>
> Caro Nuno,
>
> como o programa pede para exibir o nome do hospede, o número de diarias
> utilizadas, o valor do consumo interno e finalmente ler o
> valor da taxa de serviço, sabendo que;
> o valor do apartamento A é 15000
> B é 10000
> C é 7500
> D é 5000
> eu fiz da seguinte maneira:
>
>
> program hospedaria;
> uses crt;
> var
> nome: string;
> var
> n_diarias: integer;
> var
> tipo_apt, apt_a, apt_b, apt_c, apt_d, consumo, subtotal, tx_servico: real;
> begin
> clrscr;
> write('digite o valor apartamento A: ' ); readln(apt_a);
> write('digite o valor do apartamento B: '); readln(apt_b);
> write('digite o valor do apartamento C: '); readln(apt_d);
>
> subtotal:= 15000 * n_diarias + consumo;
> tx_servico:= subtotal /100 * 10;
> writeln(' o valor da taxa de serviço e: ', tx_servico:2:2);
> readkey;
> end.
>
> até aquí o programa funciona...Mas como sei que o valor do tipo de
> apartamente sao valores fixos, então pensei em atribuir valores
> as variaveis e daí criar 4 condições que consistem em exibir só o resultado
> que a atenda uma determinada condição isto de acordo com
> o tipo de apartamento que o hóspede escolher. e fiz o isso que nao funciona.
>
> const
> a:= 15000;
> b:= 1000;
> c:= 7500;
> d:= 5000;
> begin
> if tipo_apt = apt_a then
> subtotal:= apt_a * n_diarias + consumo
> else
> if tipo_apt = apt_b then
> subtotal:= apt_b * n_diarias + consumo
> else
> if tipo_apt = apt_c then
> subtotal:= apt_c * n_diarias + consumo
> else
> if tipo_apt = apt_d then
> subtotal:= apt_d * n_diarias + consumo;
> end.
>
> apartir daquí tudo dá zebra porq tambem nao consigo encotra a maneira de
> exibir e calcular e nem e tambem as variaveis que atribui
> valores nao sao reconhecidos.... se alquém mais pude ajudar eu acredeço
> antecipadamente,
--~--~---------~--~----~------------~-------~--~----~
-----------------------------------------------------------------------
Revista COMPUTADOR
http://www.clubeinformatica.com
-----------------------------------------------------------------------
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para
[email protected]
Para mais opções, visite este grupo em
http://groups.google.pt/group/ajuda-informatica/
-~----------~----~----~----~------~----~------~--~---