Jump to content

Stock de bilhetes


.Tigas.
 Share

Recommended Posts

Boas. Estou a fazer um programa de reserva de bilhetes do Sumol Summer Fest para projecto final de um módulo de programação sobre ficheiros de texto e de dados.

O projecto está na recta final mas tem dois problemas em dois procedimentos. Apenas vou expor aqui o segundo problema porque o primeiro contem um código um pouco grande e duvido que alguém tivesse paciência para me ajudar. x)

Mas passando ao que interessa. O procedimento nº7 faz com que o utilizador possa ver  quantos bilhetes estão em stock. O problema é que a minha ideia não resultou e penso que tem haver com o FileSize. Este é o código do meu procedimento:

procedure stock;
z, y, x: integer;
                      Begin
                      y:=FileSize(fich); //fich é o meu ficheiro que contem os bilhetes reservados.
                      x:=30; //x é o limite dos bilhetes que podem ser reservados.
                      z:=x-y; //número de bilhetes disponíveis= limite dos bilhetes que podem ser reservados-bilhetes reservados

                      If z=<0 then
                                          Writeln ('BILHETES ESGOTADOS!');
                     ELSE
                                           Writeln ('Existem ',z,' bilhetes disponíveis.');
                     Readln;
                     End;

Pronto, esta foi a minha ideia original mas falha na execução do programa (não na compilação mas sim quando chamo o procedimento na execução do programa).

Agora queria saber se sabem o que está mal porque eu não consigo descobrir. O FileSize aparentemente pode-se usar para operações aritméticas porque se não se pudesse fazer isso dava logo erro na compilação, coisa que não aconteceu.

Ou se tiverem outra ideia que possa ser aplicada agradeço também.

Obrigado desde já. 😕

Link to comment
Share on other sites

Possivelmente tens o ficheiro fechado quando entras no procedimento.

Experimenta o seguinte:

.
.
Reset(fich);
y:=FileSize(fich);
Close(Fich);
.
.
.

Já agora, umas dicas:

- Coloca as tags Geshi à volta do teu código. Basta editares, seleccionares a parte do procedimento, ires à caixa no editor que diz "Inserir código" e escolhe pascal. fica muito mais legível aqui no forum se o fizeres.

- Melhora a indentação. Dá jeito também a nível da legibilidade.

- falta um var antes da declaração de variáveis. Imagino que isso seja só aqui, de contrário tinhas erro logo a compilar.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Funcionou perfeitamente. Obrigado! Podem deixar o tópico aberto até o projecto estar concluído? É que assim escuso de criar mais tópicos no fórum por causa disto. 😕

Quanto às dicas:

* Já editei o post com o código em Pascal. Eu tentei fazer isso inicialmente ao fazer o main post mas não deu.

* A indentação foi aqui apenas (o tab não funciona na caixa do post). Preguiça com os espaços. x)

* Sim, o var também foi só aqui. Eu escrevi manualmente o código porque tinha preguiça de abrir o programa em notepad e fazer c/p, ahahah. Estranho, eu sei. XD

Obrigado por tudo. 🙂

Link to comment
Share on other sites

🙂😄 Tá boa essa...

A preguiça funciona de maneiras insondáveis! hehehehe

Já agora, não te inibas de expor o outro problema... Ninguém te garante ajuda certa, mas posso prometer que se não expuseres a dúvida é que não tens mesmo ajuda! 😕

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Podem deixar o tópico aberto até o projecto estar concluído? É que assim escuso de criar mais tópicos no fórum por causa disto. 😕

Já agora, aproveito para referir 2 coisas:

1. Nenhum tópico é encerrado a não ser que viole invariavelmente alguma regra do fórum;

2. A não ser que a dúvida esteja muito ligada à inicial, e esta não tenha séculos de idade, deve-se criar um novo tópico para uma nova dúvida.

Cumprimentos. 🙂

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.