Pascal

Ze21038

Power Member
boas,
eu estou a aprender pascal, ja sei fazer umas coisitas :-D..
A questao e' a seguinte eu estou a preceber de pascal, mas o problema e' que a linguagem de programacao mais utilizada nao e' o pascal..
As linguagens de programacao sao parecidas?
senao estou a aprender pra nada...:lol:
cumprimentos
 
Boas eu tenho aqui um problemazinho, o programa nao tem problemas corre mas chega a' altura de inserir os dados , e puf sai fora...

program ze;
uses crt;
var
opcao:integer;
conta:integer;
i:array[1..100] of integer;
ncd:array[1..100] of string;
tp:array[1..100] of string;
a:integer;
{--------------------------------------------------------------}
procedure prepara;
begin
clrscr;
gotoxy(35,1);
writeln('Gestão de Cds');
writeln('_______________________________________________________________________________________');
end;
{--------------------------------------------------------------}

procedure opp1;
begin
prepara;
writeln(' ');
writeln('Escreva o Codigo do Cd');
readln(i[a]);
writeln('Escreva o Nome do Cd ou DvD');
readln(ncd[a]);
writeln('Escreva o Tipo de Cd ou DvD');
readln(tp[a]);

end;
{--------------------------------------------------------------}

procedure opp2;
begin
prepara;
writeln('O codigo do Cd ou DvD -> ');
writeln('O Nome do Cd ou DvD -> ');
writeln('O Tipo de Cd ou DvD -> ');
readln;
end;
{--------------------------------------------------------------}
procedure opp3;
begin
prepara;
writeln(' ');
writeln('Este Programa Foi Desenvolvido Por : Ze21038');
writeln(' ');
writeln('Versão 1.0.');
readln;
end;

{--------------------------------------------------------------}
procedure menu;
begin
if opcao=1 then
begin
opp1;
end;
if opcao=2 then
begin
opp2;
end;
if opcao=3 then
begin
opp3;
end;
end;


{--------------------------------------------------------------}
begin
while opcao <> 4 do
begin
prepara;
writeln(' ');
writeln('1)Inserir Na Lista');
writeln(' ');
writeln('2)Listar');
writeln(' ');
writeln('3)About');
writeln(' ');
writeln('4)Sair');
writeln(' ');
readln(opcao);
menu;
end;
writeln('Fim');
readln;
end.

Acho que o erro esta na parte a vermelho...

Algem me pode ajudar?
 
Última edição:
Não te quero desiludir, mas Pascal é uma linguagem obsoleta. Usada nos anos 80, até à extinção do DOS (1995/6/7). Continou em Janelas (windows) com o Delphi.

Nem é boa para aprender, pelo motivo acima, mas o melhor seria passar a C (ao menos que sejas obrigado) que tanto é usado em (Linux como Windows). Depois dai há as variantes C++ C#. Algumas pessoas preferem primeiro aprender Lisp, Prolog, ou Haskell.

Podias ser mais específico e dizer qual o erro ? Já estou ferrugento para o Pascal. Há um problema com o Pascal a partir dos computadores com mais de 200MHz :). Precisa de um patch para cada EXE compilado.
 
eu sou obrigado a usar esta reliquia este ano:(..
o erro que da e' quando corro o programa i vou inserir dados no procedure opp1, ele sai fora com um erro eskesito..
cumprimentos
 
Na minha opiniao Pascal é uma linguagem optima para aprender, visto ser muito verbosa.
Tens o VisualBasic, que nao sendo igual, tem algumas semelhanças e é mto usada em ambiente de produçao.

Apos teres interiorizado o forma de desenvolver bons algoritmos, o passo seguinte será passares ao C.

Em relaçao ao teu erro esquesito, podias dizer qual é?
 
o erro esta na parte vermelha penso eu..
eu compilo e ele nao da erros, quando ponho a correr o programa aparece o menu, tudo normal, quando vou incerir ele sai fora, com um erro esquesito...
algem pode ajudar?
cumprimentos
 
Ja nao pego em Pascal aos anos mas vamos la ver se me lembro

Código:
[COLOR=red]procedure opp1;[/COLOR]
[COLOR=red]begin[/COLOR]
[COLOR=red]prepara;[/COLOR]
[COLOR=red]writeln(' ');[/COLOR]
[COLOR=red]writeln('Escreva o Codigo do Cd');[/COLOR]
[COLOR=red]readln(i[a]);[/COLOR]
[COLOR=red]writeln('Escreva o Nome do Cd ou DvD');[/COLOR]
[COLOR=red]readln(ncd[a]);[/COLOR]
[COLOR=red]writeln('Escreva o Tipo de Cd ou DvD');[/COLOR]
[COLOR=red]readln(tp[a]);[/COLOR]
[COLOR=red]end;[/COLOR]
porque é que dizes readln(i[a]); ?
Como nao tens o [a] definido na procedure vai-te dar erro. tens que definir um valor para [a].

 
Ja nao pego em Pascal aos anos mas vamos la ver se me lembro

Código:
[COLOR=red]procedure opp1;[/COLOR]
[COLOR=red]begin[/COLOR]
[COLOR=red]prepara;[/COLOR]
[COLOR=red]writeln(' ');[/COLOR]
[COLOR=red]writeln('Escreva o Codigo do Cd');[/COLOR]
[COLOR=red]readln(i[a]);[/COLOR]
[COLOR=red]writeln('Escreva o Nome do Cd ou DvD');[/COLOR]
[COLOR=red]readln(ncd[a]);[/COLOR]
[COLOR=red]writeln('Escreva o Tipo de Cd ou DvD');[/COLOR]
[COLOR=red]readln(tp[a]);[/COLOR]
[COLOR=red]end;[/COLOR]
porque é que dizes readln(i[a]); ?
Como nao tens o [a] definido na procedure vai-te dar erro. tens que definir um valor para [a].
Tens a certeza?eu acho que o a é uma variavel global que esta bem definida.o "a" vai assumir o valor que o utilizador introduzir para o array "i".o "a" é uma varavel global que nao neccessita de declaração no procedimento.Depois de escreveres o codigo do cd ele sai-te do programa?Fiquem Bem
 
Última edição:
tens k definir o valor do "a" nalgum sitio antes do usares pk senão kd inseres os dados ele vai tar-te a aceder ao i[0] (pk o "a" tem 0) e como a posição 0 do array "i" não existe, ele estoira. Tem atenção k cada vez k inseres um registo tens k incremetar o "a".
 
Podias por um:
Repeat
(Instruções)
writeln("deseja sair? (Y/N)");
sn = readkey;
Until sn = y
Basicamente o pascal é para tu aprenderes a construir sintaxe
so podes dizer que sabes aprender a programar quando aprenderes C
aposto que no teu próximo ano vais aprender VB6, ai vais-te sentir (mesmo) desapontado
 
Última edição:
Back
Topo