caro Rui Paz,
excelente o código que elaboraste' SUPER'. perdí muitas noites para chegar até
esse resultado que acabaste de dar solução. pelo que eu andei a fazer o
programa so funcionava até a leitura da taxa de consumo mas para chegar até
este ponto não sei se me levaria mais quanto tempo visto o manual que nós foi
distribuido não é muito esplicíto pra quem está começar. com este código tenho
mais recurso e truques para praticar e crescer.
De coração agradeço o tempo e a sua vontade por me ter ajudado e não quero me
esquecer também do contributo do Nuno que também me deu outras pistas valiosas.
GRANDE ABRAÇO E SUCESSO PRA VOCÉS E OS DEMAIS CONTRIBUINTES DESTE FORUM,
Angelo Mavunino
> From: [email protected]
>
>
> 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,
>
>
> >
________________________________________
check out the rest of the Windows Live™. More than mail–Windows Live™ goes way
beyond your inbox. More than messages
--~--~---------~--~----~------------~-------~--~----~
-----------------------------------------------------------------------
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/
-~----------~----~----~----~------~----~------~--~---