Вы находитесь на странице: 1из 8

Pgina Web 1 de 8

Pascal: o bsico dos bsicos :- Pascal for Dummies Experts -: LOL


Caros colegas e amigos camaradas. Ento vamos l a aprender esta treta de uma vez por todas!!! Os comentrios que fao aos programas to a cinzento e comeam com <- no entanto, para fazer comentrios em pascal deve-se usar a seguinte notao: {comentario bla bla bla} Alguns programas: Ola Mundo, Calcular Volume Circulo, Usar Units - Unit CRT, Maior Valor numa Array, Dicionario - Arrays 2 dimensoes, procurar na array ... :> Para fazerem o download do Turbo Pascal 7 clikem aki. -----------------------------------------------------------------------------------------------------------------------Index Linguagem de Programao Instrues Programa Varivel Funes (e j agora Procedimentos) Input Output Ciclo ou Loop Porque que se usam os "ponto e virgula"? E quando que se usam? Diferenas entre writeln e write e read e readln Os IF's, THEN e ELSE's (e j agora um programa- Formula Resolvente (de equacoes do 2 grau) Como escrever variveis no ecr, usando por exemplo a funo writeln ? Diferenas entre = e := -----------------------------------------------------------------------------------------------------------------------Linguagem de Programao: Epa.. uma notao na qual so escritas instrues que vo ser parte de um programa. O pascal uma linguagem de programao. Instrues: (ou instruo) quando o programador escreve uma "frase" a ser executada pelo computador. Por exemplo: ola := 12 mod 3 (up) Programa: Isto bsico! Um programa um conjunto de instrues escritas numa determinada linguagem de programao (neste caso Pascal). Essas instrues so depois compiladas para cdigo mquina (acho http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com 26-06-2004

Pgina Web 2 de 8

k isto n eh preciso saber). Por exemplo:


program ola; BEGIN writeln('adeus'); readln; END.

(Isto um programa que est escrito em pascal e no est compilado) necessrio ainda saber que os programas tem uma finalidade. Neste caso, a finalidade deste programa (ola) meio ftil, dado que a nica coisa que faz mostrar uma palavra no ecr (adeus). (up) Varivel: Como j sabem da matemtica, uma varivel o x, por exemplo. Essa varivel vai reter determinada informao. Ou seja quando dizemos que x := 2 estamos a definir que o x vale 2. Se fizermos qualquer coisa como x^2 isto vai ser igual a 2^2=4. Ok, mas a particularidade das variveis que podem conter vrios tipos de informao. y := "co" uma varivel que contem texto. Isto quer dizer que vo ter de existir vrios TIPOS de variveis, por isso, as variveis do tipo INTEGER permitem guardar valores numricos inteiros entre -32000 e 32000 (mais ou menos). As variveis do tipo REAL permitem guardar valores numricos reais. Quando temos uma varivel de texto essa do tipo STRING. Para declarar (definir.. criar) uma varivel faz-se o seguinte:
var x : integer; -> isto define uma varivel (x) como sendo do tipo integer var caozito : real; -> isto define uma varivel (caozito) como sendo do tipo real var x,y,z : real; -> isto define 3 variveis (x, y e z) como sendo do tipo real

Esta treta toda escreve-se entre o PROGRAM e o BEGIN:


program ola; var x :integer; BEGIN writeln('adeus'); readln; END.

Ok, agora falta s explicar que muitas vezes aparece algo como:
program ola; var x : integer; w : string; d : real; BEGIN writeln('adeus'); readln; END.

No se atrapalhem com isto porque o que acontece a definio de vrias variveis de tipos diferentes. Notas finais: geralmente o que acontece a nvel de erros quando queremos usar funes que devolvam valores no inteiros com variveis de tipo inteiro. O Pascal baralha-se todo e d erro. (up)

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 3 de 8

Funes: (e j agora Procedimentos) Ento assim, a grande diferena entre as funes e tudo o resto que uma funo devolve valores. Por exemplo: Sin(30)=0.5 Assim podemos dizer que Sin uma funo (a nvel de programao). Acho que as funes no vem pros testes mas de qualquer maneira convm saber a diferena entre funes e procedimentos. Um procedimento um conjunto de instrues (pode conter funes). Tipo se queremos fazer caf na republica dominicana temos de 1) abrir a embalagem de caf dominicano 2) abrir o tampo da mquina 3) colocar o caf com o filtro na mquina 4) fechar o tampo 5) ligar a mquina. Em programao a mesma coisa. A isto se chama um procedimento. Muitas vezes, uma funo um procedimento mas que devolve um valor. (up) Output: aquilo que sai. Espero que j tenham visto o pascal no computador. Ou seja, espero que j tenham visto um programa a ser executado e compilado. Enfim, todos (ou alguns) sabemos que o objectivo de um programa de certa forma mostrar qualquer coisa ao utilizador. Quando abrimos o programa Internet Explorer, o output deste uma janela com uns botes e uma pgina da net no centro. Isto a definio rasca de Internet Explorer e de output. Por exemplo, em pascal o output realiza-se essencialmente atravs da funo write() ou writeln(). Quando fazemos writeln('vais ter nega'); o resultado desta instruo aparecer escrito no ecr vais ter nega. Tipo:
program ola; BEGIN writeln('adeus'); readln; END.

O Output deste programa :


adeus

(up) Input: aquilo que entra. Quando o utilizador introduz dados isso tido como input. Para o utilizador introduzir dados precisamos de usar a seguinte funo read() ou readln(). Quando fazemos readln(x); sendo x uma variavel do tipo integer, o programa vai "pedir" ao utilizador que introduza um valor para ser atribuido a x. Tipo:
program ola; var x :integer; BEGIN writeln('quantos anus tens?'); readln(x); writeln('entao tens ',x,' anos! muito bem'); readln; END.

O Output deste programa ser:


quantos anus tens? 1 entao tens 1 anos! muito bem

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 4 de 8

Ateno que o 1 no aparece do nada, teoricamente o utilizador introduziu este nmero. A esta introduo chama-se input. (up) Ciclo ou Loop: Heheheh... esta parte que mesmo difcil (ou fcil?!) lol Ento assim, como sabemos um ciclo algo que tem uma continuidade. Por exemplo o ciclo da gua sabemos que de "grosso modo" infinito e vai sempre executar as mesmas tarefas. Ou outro exemplo. Imaginemos o seguinte procedimento: 1) abrir o feixe das calas 2) encontrar o coiso 3) tirar o coiso 4) efectuar a descarga 5) agitar 6) recolher o coiso para dentro das calas 7) fechar o feixe Este procedimento efectuado uma vez apenas. Mas imaginemos que queremos repetir o procedimento vrias vezes (umas a seguir s outras). Para fazer isso teramos de escrever mais 7 linhas iguais s que j tnhamos escrito. Hmm... por isso (acho eu) que se inventaram os ciclos ou loops. Ento se quiser executar aquele procedimento 20 vezes fao o seguinte: Desde um at vinte fazer isto: 1) abrir o feixe das calas 2) encontrar o coiso 3) tirar o coiso 4) efectuar a descarga 5) agitar 6) recolher o coiso para dentro das calas 7) fechar o feixe fim. Assim, aquelas 7 linhas vo ser executadas 20 vezes. Bom, mas isto no pascal. Em pascal um ciclo for tem a seguinte notao:
for x:=1 to 20 Do ...... os afazeres ...... ..... .... ...;

Mas convem dizer k existem varios tipos de ciclos (todos tem o mesmo propsito). Por exemplo um ciclo repeat until tem a seguinte notao:
Repeat ...... os afazeres ...... .....

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 5 de 8

x:=x+1 ... Until x=20;

S que neste caso o ciclo no altera o x. Temos de o fazer " mo" (x:= x+1). Assim, o x vai sendo sempre mais um at chegar ao 20, e pra. Se no se escrever aquela instruo (x:=x+1) o ciclo nunca vai acabar porque o x nunca vai ser igual a 20. Se por exemplo, fizermos em vez de x:=x+1 , apenas x:=20 , o ciclo s executado uma vez, porque j atingiu o valor pretendido. Se o ciclo nunca acabar, o programa vai bloquear e o computador morre!!! lolo.. a segunda parte no acontece.. n se assustem. Ora bem.. talvez no seja m ideia inventar um programa srio para se ver como isto . Por exemplo: vou criar um programa que pede ao utilizador um nmero (input) e que devolve (output) uma frase escrita n vezes sendo n o nmero introduzido pelo utilizador.
program estupidez; var numero,i : integer; BEGIN write('Ola! Escreve um numero:'); -> ouput a pedir ao utilizador um numero readln(numero); -> aqui o user escreve o numero e esse numero vai estar na variavel numero for i:=0 to numero Do writeln('Esta frase esta a ser escrita pela ',i,' vez. Que estupidez!'); -> aqui acontece o loop desde 0 ate ao numero inserido pelo user. writeln('Adeus e Obrigado!'); END.

(up) Porque que se usam os "ponto e virgula"? E quando que se usam? O ponto e virgula serve para o computador saber quando comea a linha seguinte, ou seja, a instruo seguinte. Por vezes no se usa porque ainda estamos na mesma instruo. Exemplos:
program ola; BEGIN writeln('ola'); writeln('adeus'); readln; END.

Podemos tambm escrever o programa assim:


program ola; BEGIN writeln('ola'); writeln('adeus'); readln; END.

Outra coisa que s vezes parece ser completamente estpido quando temos um ciclo do tipo
for i := 0 to 3 Do write('ola a todos'); write('adeus a todos');

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 6 de 8

Output:
ola a ola a ola a ola a adeus todos todos todos todos a todos

(aparecem 4 'ola a todos' porque comea em 0) O ponto e virgula acaba o ciclo portanto se quisermos ter vrias instrues dentro do ciclo convm fazer com o BEGIN e END:
for i := 0 to 3 Do BEGIN write('ola a todos'); write('adeus a todos'); END;

Output:
ola a adeus ola a adeus ola a adeus ola a adeus todos a todos todos a todos todos a todos todos a todos

(up) Diferenas entre writeln e write e read e readln Isto s vezes costuma baralhar um pouco mas trs simple. O objectivo das funes precisamente o mesmo a unica diferena que uma 'faz um enter' no final. Vejamos os outputs de alguns exemplos:
write('ola a todos'); write('adeus a todos'); > Output: ola a todosadeus a todos writeln('ola a todos'); write('adeus a todos'); > Output: ola a todos adeus a todos

A mesma coisa acontece para as funes read e readln. (up) Os IF's, THEN e ELSE's Se no fossem estas instrues nada seria possvel, ou pouco. O if o se o then o ento e o else caso contrio. to difcil quanto isto. Agora se experimentarmos traduzir isto num programa, est tudo feito.
if a >= 2 then writeln('Errado! vai-te embora.');

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 7 de 8

if a = 223 then writeln('ok, prontosss esta bem') else writeln('ja nao sabes fazer contas'); if a = 100 then BEGIN writeln('ola, bem vindo'); writeln('entao quer tomar alguma coisa hoje?'); writeln('esta um bom tempo, nao esta?'); END; else BEGIN writeln('se soubesses o que eu sei...'); writeln('e melhor ires-te embora'); writeln('vai vai vai'); END;

J agora um programa inteiro (programa da formula resolvente):


program pergunta; var a,b,c,d : integer; BEGIN write('Olaaa! Diz-me qual e o A:'); readln(a); write('Entao e o B?'); readln(b); write('Pronto, este e o ultimo.. o C:'); readln(c); d:= (b*b)-(4*a*c); <- isto o delta (o k ta dentro da raiz) if d < 0 then writeln('Epaaa.. isso nao da! raizes de numero negativos.. (so mesmo em complexos :P)') else BEGIN writeln('Primeira raiz = ',(-b+sqrt(d))/(2*a)); writeln('Segunda raiz = ',(-b-sqrt(d))/(2*a)); END; END.

(up) Como escrever variveis no ecr, usando por exemplo a funo writeln ? Isso fcil! Quando estamos a usar a funo writeln para escrever uma frase e l no meio queremos colocar uma varivel (tipo.. um nmero) fica algo do tipo: admitindo que y = 5
writeln('Ola, hoje soube que tiveste um ',y,' no teste de pascal.');

> Output:
Ola, hoje soube qye tiveste um 5 no teste de pascal.

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Pgina Web 8 de 8

Portanto, o que se tem de fazer por ex: 'textotextotextotexto',variavel,'textotextotexto',variavel,'texto',variavel2 (up) Diferenas entre = e := Outra coisa bastante bsica. lol que o igual com os dois pontos serve para atribuir (isto matemtica!). Ou seja, x := 2 e x = 2 diferente. Quando fazemos x := 2 estamos a atribuir o valor 2 varivel x. Quando fazemos x = 2 estamos simplesmente a verificar se x = 2. Isso nota-se quando se usa um if. Por exemplo:
if x=2 then writeln('como que possivel?') else x:=2;

No se esqueam de declarar a varivel no inicio do programa, se no d erro! Ja agora uma ltima coisa, se querem adicionar variveis quando estao a atribuir uma varivel faam:
y := x + 'Ola' + z + 'adeus';

(Ateno aos tipos das variveis! String, integer, boolean, etc). (up) Mais sobre pascal? Ve os links: http://www.geocities.com/~franzglaser/tp.html http://www.devq.net/pascal/ bill productions

http://pascal4dummies.no.sapo.pt/ PDF created with pdfFactory Pro trial version www.pdffactory.com

26-06-2004

Вам также может понравиться