• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Phi

Visualizar pascal em MS-DOS

11 mensagens neste tópico

Primeiro tenho que referir sou um vdd noob nestas andanças, sendo que comecei há 2 dias.

1º: sempre que faço run a código que fiz em free pascal, ele abre o ms-dos. o problema é que mal acaba, a janela de ms-dos fecha, sendo que não me deixa ver os resultados muitas vezes! aposto que há um comando de género pause, como em TI-Basic, mas lá chegarei, visto que o tutorial que arranjei é longo. por outro lado, aposto também que não é normal isto acontecer. é geral com o meu ms-dos, porque já quando faço ping a um server, ou qq comando no "run/executar" do windows que use ms-dos, mal acabe o "serviço", fecha logo a janela. o que fazer?

2º: como é que guardo um executável com o código a partir do free pascal? sem ter que estar a abrir o fp cada vez que quero correr código que tenho guardado?

thanks in forward  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto á 1º dúvida se usares os comandos readkey ou repeat until keypressed penso que tens o que pretendes...

Ex:

program calculadora_soma;
uses crt;
var
n1,n2,soma:real;
begin
textcolor(white);
textbackground(green);
clrscr;
writeln('Insira o primeiro numero:');
readln(n1);
writeln('Insira o segundo numero:');
readln(n2);
soma:=n1+n2;
writeln('A soma e: ',soma:2:0);
repeat until keypressed;
end.

(Isso foi o 1º código que fiz de todos...Foi o meu "Hello World" :) )

Quanto á 2º dúvida, queres fazer um excutável, é isso?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tambem uso o  readln; antes do end. :) por exemplo

program calculadora;
uses crt;
var
n1,n2,soma:real;
begin
clrscr;
writeln('Insira o primeiro numero:');
readln(n1);
writeln('Insira o segundo numero:');
readln(n2);soma:=n1+n2;
writeln('A soma e: ',soma:2:0);
readln;
end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Thanks, o readln parece-me ser o mais fácil.

Quanto á 2º dúvida, queres fazer um excutável, é isso?

sim, seria isso. todos os save as possíveis são apenas em formatos pascal...nada que execute o código como a opção run incluída no programa free pascal e afins...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não consigo perceber muito bem a tua duvida porque uso o dev-Pascal e ele  assim que compilo ele cria um .exe :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no freepascal ele cria efectivamente um .exe quando faço run, muito provavelmente numa pasta de temporários, porque quando fecho a janela de ms-dos, não encontro o .exe em lado nenhum. para mais nem me pede nome para ele, portanto é mais uma indicação de que deve ser só um tmp.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como não coneco o free-pascal não sei como te ajudar a unica coisa que posso te dizer e para tentares usares dev- pascal que já n tens esse problema o dev pascal tabem e free.  :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já solucionei o problema...e afinal era tão fácil  :wallbash:

basicamente tinha que gravar o projecto no formato .pas por exemplo, e somente depois de o ter feito, é que caso fizesse run ao projecto, passava a existir um ficheiro no sitio ond eu gravava o .pas em .exe

ps: já agora aproveito para colocar mais uma dúvida

caso tenha:

Var
    p1:char;
    total:integer;

//código cortado

    Write('Resposta: ':20);
    Read(p1);

//código cortado

    If (p1 = 'a') Then (total=1);
    Write('Pontuação: ',total);

pké k que ele me diz que "If (p1 = 'a') Then (total=1)" é uma expressão inválida?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

exprementa por assim ;

Var
    p1:char;
    total:integer;

//código cortado

    Write('Resposta: ':20);
    Read(p1);

//código cortado

    If (p1 = 'a') Then 
              total:=1;
    Write('Pontuação: ',total);

Quando compara fazes so = qd queres atribuir um valor a um variavel tens de por := :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então tá explicado. já tinha visto := ao longo do tutorial que estou a usar, mas  só faltou explicarem lá realmente para que é que servia... thanks  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora