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

melSpeedl.ine

Um principio....

53 mensagens neste tópico

Bem pessoal...

pa inaugurar aqui o Pascal... deixo-vos aqui um pequeno tutorial para iniciantes na Programação...

É uma montagem "rápida" de dois tutoriais brasileiros que encontrei... mas que acho que vai ajudar bastante - pelo menos a mim ajudou...

Ainda estou a trabalhar nele por isso... desculpem os erros...

http://melspeedlinefttp.no.sapo.pt/Pascal.doc

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bem pessoal...

pa inaugurar aqui o Pascal... deixo-vos aqui um pequeno tutorial para iniciantes na Programação...

É uma montagem "rápida" de dois tutoriais brasileiros que encontrei... mas que acho que vai ajudar bastante - pelo menos a mim ajudou...

Ainda estou a trabalhar nele por isso... desculpem os erros...

http://melspeedlinefttp.no.sapo.pt/pascal.doc

Cumps

mel, corrige o link pk n tá a dar =(

Deixo aki tb outro tutorial k tou a seguir e axo tb bastante bom (tá em inglês): http://rulgla.leidenuniv.nl/Researchers/Somers_files/pascal_lessons.pdf

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Bem pessoal...

pa inaugurar aqui o Pascal... deixo-vos aqui um pequeno tutorial para iniciantes na Programação...

É uma montagem "rápida" de dois tutoriais brasileiros que encontrei... mas que acho que vai ajudar bastante - pelo menos a mim ajudou...

Ainda estou a trabalhar nele por isso... desculpem os erros...

http://melspeedlinefttp.no.sapo.pt/pascal.doc

Cumps

Upa uma iniciativa dessas não vai passar sem prémio aqui no forum...e o banner?! ai meu Deus, ESSE VAI SER O NOSSO BANNER...altamente melSpeedl.ine

Só há um problema...o Url não está a funcionar...

P.S. Manda-me esse banner para o mail please...será o banner oficial do nosso forum o da tua sig...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Aqui fica um outro tutorial que eu considero 5* e que tenho seguido atentamente....

http://library.thinkquest.org/27297/

Cumps

Bons programas

Tb o descubri ontem e realmente tá mt fixe, fezme perceber algumas coisas k n percebia, tipo os Loops e os Procedures.

Agora tenhu aki um problema para me ajudarem :P

Program FormulaResolvente;
uses
crt;
var
A : real;
B : real;
C : real;
D : real; {o k ta dentro da raiz kuadrada da formula resolvente}
X : real; {coordenada X do vertice}
raiz1 : real;
raiz2 : real;
Begin
clrscr;
writeln( 'Introduz o valor de A:' );
readln( A );
writeln( 'Introduz o valor de B:' );
readln( B );
writeln( 'Introduz o valor de C:' );
readln( C );
d:= (b*b)-(4*a*c);
if d < 0 then
writeln('Raizes de nºs negativos nao existem ')
else
raiz1:= (-b+sqrt(d))/(2*a);
raiz2:= (-b-sqrt(d))/(2*a);
BEGIN
writeln('1ª Raiz = ',raiz1);
writeln('2ª Raiz = ',raiz2);
END;
X:= (raiz1+raiz2)/2;
Begin
writeln('Coordenada X do vertice : ',X);
writeln('Coordenada Y do vertice : ',(A*sqr(x))+(B*X)+C);
while not keypressed do;
end;
end.

Tenhu esse código feito por mim, k é um programa k calcula a fórmula resolvente. Funciona bem, dá os 2 zeros da função e indica a posição do vértice. Onde preciso de ajuda é com o comando: while not keypressed do; k pára o programa até ser carregada uma tecla. Isto só funciona com o Else activado (ou seja kuando o D n fôr menor k 0), para o D menor k 0 ele termina o programa logo, n pára para carregarmos numa tecla.

Vejam lá se sabem ajudar :P (já tentei diversas posições para o comando: while not keypressed do; e nunca pára kuando D > 0).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação

Tb o descubri ontem e realmente tá mt fixe, fezme perceber algumas coisas k n percebia, tipo os Loops e os Procedures.

É um tutorial que explica todos os conceitos muito bem explicados....tenho-o seguido e tenho seguido um outro brasileiro que tenho cá em casa e posso dizer que o Pascal já cá canta...não na perfeição é claro, mas já domino os conceitos.

Tambem, muito sinceramente, só aprendi Pascal para me ajudar a perceber com mais facilidade o C...

No entanto, ainda não vou para o C, mas sim para o Turing....depois de aprender a calcular em TI-83 BASIC.. :D:D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação

Tb o descubri ontem e realmente tá mt fixe, fezme perceber algumas coisas k n percebia, tipo os Loops e os Procedures.

Agora tenhu aki um problema para me ajudarem :P


Program FormulaResolvente;
uses
crt;
var
A : real;
B : real;
C : real;
D : real; {o k ta dentro da raiz kuadrada da formula resolvente}
X : real; {coordenada X do vertice}
raiz1 : real;
raiz2 : real;
Begin
clrscr;
writeln( 'Introduz o valor de A:' );
readln( A );
writeln( 'Introduz o valor de B:' );
readln( B );
writeln( 'Introduz o valor de C:' );
readln( C );
d:= (b*b)-(4*a*c);
if d < 0 then
writeln('Raizes de nºs negativos nao existem ')
else
raiz1:= (-b+sqrt(d))/(2*a);
raiz2:= (-b-sqrt(d))/(2*a);
BEGIN
writeln('1ª Raiz = ',raiz1);
writeln('2ª Raiz = ',raiz2);
END;
X:= (raiz1+raiz2)/2;
Begin
writeln('Coordenada X do vertice : ',X);
writeln('Coordenada Y do vertice : ',(A*sqr(x))+(B*X)+C);
while not keypressed do;
end;
end.
 

Tenhu esse código feito por mim, k é um programa k calcula a fórmula resolvente. Funciona bem, dá os 2 zeros da função e indica a posição do vértice. Onde preciso de ajuda é com o comando: while not keypressed do; k pára o programa até ser carregada uma tecla. Isto só funciona com o Else activado (ou seja kuando o D n fôr menor k 0), para o D menor k 0 ele termina o programa logo, n pára para carregarmos numa tecla.

Vejam lá se sabem ajudar :P (já tentei diversas posições para o comando: while not keypressed do; e nunca pára kuando D > 0).

É por isso que eu gosto de C...o comando system("PAUSE") dá para tudo..... :D:D

Pascal sei mais ou menos, mas não estou bem a ver....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já experimentaste por o "while not keypressed do" entre os dois ends?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Já experimentaste por o "while not keypressed do" entre os dois ends? ;)

Com o while not keypressed do; entre os dois end's faz o mm k no sitio onde o tenhu =(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Com o while not keypressed do; entre os dois end's faz o mm k no sitio onde o tenhu =(

Vou rever uns e-books e vou tentar responder-lhe á dúvida, que, pelo que parece, tambem é minha....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação

Vou rever uns e-books e vou tentar responder-lhe á dúvida, que, pelo que parece, tambem é minha...

Thks pela ajuda =) E btw "Responder-te" :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Thks pela ajuda =) E btw "Responder-te" :P

LOL..ok vou rever os e-books e depois vou responder-te

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Btw mais uma dúvida, ele dáme os resultados em notação cientifica, como meter em números reais? Tipo 1, 2 ou 1.2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Btw mais uma dúvida, ele dáme os resultados em notação cientifica, como meter em números reais? Tipo 1, 2 ou 1.2

Em vez de real quando declaras, põe integer.... :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Em vez de real quando declaras, põe integer.... :P:P

Hmm, mas integer n me vai dar números decimais certo? Precisava de todos os números reais, mas que não apareçam em notação cientifica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Hmm, mas integer n me vai dar números decimais certo? Precisava de todos os números reais, mas que não apareçam em notação cientifica.

Segundo os tutoriais que andei a rever, existem alguns tipos de variáveis que tu tambem conheces:

-real;

-integer;

-longint;

-boolean;

-char;

-string;

Ora, não é real nem integer, long int tambem não....

Entre estas todas e segundo este tutorial sé mesmo o real é que cabe nas exigências que fizeste...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação

Program FormulaResolvente;
uses
crt;
var
A : real;
B : real;
C : real;
D : real; {o k ta dentro da raiz kuadrada da formula resolvente}
X : real; {coordenada X do vertice}
raiz1 : real;
raiz2 : real;
Begin
clrscr;
writeln( 'Introduz o valor de A:' );
readln( A );
writeln( 'Introduz o valor de B:' );
readln( B );
writeln( 'Introduz o valor de C:' );
readln( C );
d:= (b*b)-(4*a*c);
if d < 0 then
writeln('Raizes de nºs negativos nao existem ')
else
raiz1:= (-b+sqrt(d))/(2*a);
raiz2:= (-b-sqrt(d))/(2*a);
BEGIN
writeln('1ª Raiz = ',raiz1);
writeln('2ª Raiz = ',raiz2);
END;
X:= (raiz1+raiz2)/2;
Begin
writeln('Coordenada X do vertice : ',X);
writeln('Coordenada Y do vertice : ',(A*sqr(x))+(B*X)+C);
while not keypressed do;
end;
end.
 

Tenhu esse código feito por mim, k é um programa k calcula a fórmula resolvente. Funciona bem, dá os 2 zeros da função e indica a posição do vértice. Onde preciso de ajuda é com o comando: while not keypressed do; k pára o programa até ser carregada uma tecla. Isto só funciona com o Else activado (ou seja quando o D n for menor k 0), para o D menor k 0 ele termina o programa logo, n pára para carregarmos numa tecla.

Vejam lá se sabem ajudar :P (já tentei diversas posições para o comando: while not keypressed do; e nunca pára kuando D > 0).

assim à primeira vista.. um noob como eu não vai lá...

isto com uma noite bem dormida... ;)

Fiquem bem pessoal!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Estive num forum de programação internacional, com bastantes mais users que este nosso novo forum e coloquei lá a tua dúvida....

A verdade é que ela já lá está há quase um dia e ainda não obtive resposta....

A ver vamos se eles lá dão uma ajudinha, senão vou entrar para as pms para o administrador desse mesmo forum....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Acho que achei uma solução....temporária é claro, porque temos de saber qual o verdadeiro erro do programa...

Usa o getkey no final e ve o que acontece....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!!! como eu tinha dito...

estive a ver o teu código e o prob a meu ver não tem mt que s lhe diga...

(claro que existe muita forma de caçar mosquitos... mas acho que isto resolve.. pelo menos aqui funcionou...)

se reparares... na parte onde:

d:= (b*b)-(4*a*c);
if d < 0 then
writeln('Raizes de nºs negativos nao existem Razz')
else
raiz1:= (-b+sqrt(d))/(2*a);
raiz2:= (-b-sqrt(d))/(2*a);

ora tu tens o if que escreve ('Raizes de nºs negativos nao existem Razz') se for menor que zero... e o else que continua o programa... que se tudo correr bem te vai levar ao final onde o while not keypressed do pode actuar... o prob é que se d<0 for True... o programa acaba e fecha-se pois não existe outro comando a ser executado...

agora tens que fazer como achares melhor.. eu acho que usaria um Goto para ir para o final do programa... onde iria criaria a possibilidades de poder voltar ao inicio do programa utilizando mais uma vez um Goto...

Mas bem.. isto é só a opinião de um noob... mas acho que resulta.. vá e depois diz qualquer coisa...

Tá fixe o prog... acho que o vou adaptar para a minha maquina de calcular... o que eu tenho só me indica os zeros...

Fica bem e depois dá noticias...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Goto's ainda n "aprendi" :P N keres dizer +- o k tenhu de meter no código (se n der mt trabalho :P), k assim vendo como se faz já aprendo =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim num ápice deixo-to aqui uma uma pequena introdução, mas depois o melhor vai ser veres e estudar em alguns exercícios dos tutoriais que tás a seguir...

V.2 - Labels e Goto

A instrução Goto permite desviar a sequência de execução do programa para um determinado Label pré-definido. Para utilizarmos algum Label, ele deve, obrigatoriamente, ser declarado na subárea Label.

Exemplos:

	Program Exemplo_1;

{Programa para colocar em ordem crescente 3 números lidos do teclado}

Uses CRT;
Label Inicio;
Var x,y,z : Integer;
	tecla : Char;
Begin
   Inicio:
   ClrScr;
   Write('Primeiro numero --> ');
   Readln(x);
   Write('Segundo numero ---> ');
   Readln(y);
   Write('Terceiro numero --> ');
   Readln(z);
   Writeln;
   Writeln;
   If (x>=y)
	  Then If (x>=z)
			  Then If (y>=z)
					  Then Writeln(x,' ',y,' ',z)
					  Else Writeln(x,' ',z,' ',y)
			  Else Writeln(z,' ',x,' ',y)
	  Else If (y>=z)
			  Then If (x>=z)
					  Then Writeln(y,' ',x,' ',z)
					  Else Writeln(y,' ',z,' ',x)
			  Else Writeln(z,' ',y,' ',x);
   Writeln;
   Write('Deseja Continuar --> ');
   Tecla:=Readkey;
   If ((Tecla = 'S') OR (Tecla = 's')) Then Goto Inicio;
End.

Program Exemplo_2;

{Programa para determinar se 3 valores lidos do teclados são lados de um triângulo
Observações:
Supondo que x,y,z, sejam os valores lidos, então:
1-) Se x<y+z e y<x+z e z<x+y então x,y,z são lados de um triângulo e se:
2-) x=y=z então é um triângulo Equilátero
3-) x=y ou x=z ou y=z então é um triângulo Isósceles
4-) x<>y<>z então é escaleno}

Label INICIO;
Uses CRT;
Var x,y,z : Real;
	Tecla : Char;
Begin
INICIO:
   ClrScr;
   Write('X = ');
   Readln(x);
   Write('Y = ');
   Readln(y);
   Write('Z = ');
   Readln(z);
   Writeln;Writeln;
   If (x<y+z) and (y<x+z) and (z<x+y)
	  Then If (x=y) and (x=z)
			  Then Writeln('TRIÂNGULO EQUILÁTERO')
			  Else If (x=y) Or (x=z) Or (y=z)
					  Then Writeln('TRIÂNGULO ISÓSCELES')
					  Else Writeln('TRIÂNGULO ESCALENO')
	  Else Writeln('X,Y,Z NÃO SÃO LADOS DE UM TRIÂNGULO');
   Writeln;Writeln;
   Write('Deseja Continuar ? --> ');
   Tecla:=ReadKey;
   If (Tecla='s') Or (Tecla='S')
	  Then Goto INICIO;
End.

com vês, no principio guardas "nomes de pontos" - como fazes com as variáveis e que irão ficar espalhadas pelo teu programa - são as Labels

depois essas labels serão atribuídas partes do teu programa - como uma espécie de titulo... com o comando Goto e o nome da label que quiseres... irás saltar para a parte que quiseres no programa.. deste que este tenha a sua label.

no teu prog.. usarias uma label no início - para depois poderes voltar ao principio... e outro no final ante do while not keypressed do. como te expliquei no post anterior.. se tiveres usado labels e o comando goto. quando ele D<0 irá aparecer a tua mensagem... e irás saltar para o while not keypressed do.

Desculpem os termos pouco científicos... e qualquer coisas que tenha ficado mal explicada... mas vou ter que ir...

amanhã posto aqui o teu trabalho com essas pequenas alterações para ficares com uma pequena ideia...

até lá fiquem bem

cumps a tds!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este é o meu primeiro post. Espero que ninguém entenda este post como um flame, porque não pretende sê-lo, mas não achei outra forma de dizer o seguinte:

1 - Goto's não devem ser considerados necessários num programa (ou parte dele) devidamente estruturado. Para resolver os problemas sem goto, usam-se funções ou métodos (function ou procedure) ou então ciclos. É claro que se eles estão disponíveis é porque se podem utilizar, mas só se devem utilizar em último recurso.

2 - Quem começa a programar deve aprender que a indentação do código é uma das coisas mais importantes na programação.

Alterei o "Exemplo_1" para não usar goto.

Program Exemplo_1;
Uses CRT;

Var
 x,y,z : Integer;
 tecla : Char;

Begin
 repeat
ClrScr;
Write('Primeiro numero --> ');
Readln(x);
Write('Segundo numero ---> ');
Readln(y);
Write('Terceiro numero --> ');
Readln(z);
Writeln;
Writeln;
If (x>=y) Then
  If (x>=z) Then
	If (y>=z) Then
	  Writeln(x,' ',y,' ',z)
	Else
	  Writeln(x,' ',z,' ',y)
  Else
	Writeln(z,' ',x,' ',y)
Else
  If (y>=z) Then
	If (x>=z) Then
	  Writeln(y,' ',x,' ',z)
	Else
	  Writeln(y,' ',z,' ',x)
  Else
	Writeln(z,' ',y,' ',x);
Writeln;
Write('Deseja Continuar --> ');
Tecla:=Readkey;
 until ((Tecla <> 'S') AND (Tecla <> 's'));
End.

Falta indentação porque o phpBB come os espaços.

Daqui a pouco já faço post com a correcção para o outro programa, se conseguir dar com o bug. :)

Cumps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Este é o meu primeiro post. Espero que ninguém entenda este post como um flame, porque não pretende sê-lo, mas não achei outra forma de dizer o seguinte:

1 - Goto's não devem ser considerados necessários num programa (ou parte dele) devidamente estruturado. Para resolver os problemas sem goto, usam-se funções ou métodos (function ou procedure) ou então ciclos. É claro que se eles estão disponíveis é porque se podem utilizar, mas só se devem utilizar em último recurso.

2 - Quem começa a programar deve aprender que a indentação do código é uma das coisas mais importantes na programação.

Alterei o "Exemplo_1" para não usar goto.

Program Exemplo_1;
Uses CRT;

Var
 x,y,z : Integer;
 tecla : Char;

Begin
 repeat
ClrScr;
Write('Primeiro numero --> ');
Readln(x);
Write('Segundo numero ---> ');
Readln(y);
Write('Terceiro numero --> ');
Readln(z);
Writeln;
Writeln;
If (x>=y) Then
  If (x>=z) Then
	If (y>=z) Then
	  Writeln(x,' ',y,' ',z)
	Else
	  Writeln(x,' ',z,' ',y)
  Else
	Writeln(z,' ',x,' ',y)
Else
  If (y>=z) Then
	If (x>=z) Then
	  Writeln(y,' ',x,' ',z)
	Else
	  Writeln(y,' ',z,' ',x)
  Else
	Writeln(z,' ',y,' ',x);
Writeln;
Write('Deseja Continuar --> ');
Tecla:=Readkey;
 until ((Tecla <> 'S') AND (Tecla <> 's'));
End.

Falta indentação porque o phpBB come os espaços.

Daqui a pouco já faço post com a correcção para o outro programa, se conseguir dar com o bug. :)

Cumps,

Boas,

Kabong bem-vindo ao Portugal-a-Programar...

Obrigado pela ajuda que forneceu ao nosso utilizador...

Cumps

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