Jump to content

Recommended Posts

Posted

Boas utilizadores do Portugal-a-Programar,

É com gosto que sou administrador de um forum desta categoria e é com gosto que elaboro este pequeno tutorial com as bases da programação em Pascal.

Todos os utilizadores que nada sabem de Pascal podem consultar este tutorial porque será feito para esse públio em especial.Não é que eu mesmo seja um grande programador em Pascal ouq eu saiba muito de programação, mas penso que já tenho um contributo a dar a este mundo, nomeadamente áqueles que, como eu, pretendem seguir isto como futuro.

Neste tutorial irei focar os seguintes pontos da programação em Pascal:

1 - As bases das bases

1.1-Estrutura da programação

1.2 - Noções de algoritmia

2- Linguagens de Programação

2.1-Preparação e execução de um programa

2.2-Estrutura de um programa em Pascal

3- Conceitos fundamentais de Pascal

3.1.Identificadores

3.1.1.Identificadores Padrão

3.1.2.Identificadores definidos pelo utilizador

3.1.3 Regras de formação de identificadores

3.2.Palavras reservadas

3.3.Tipos de dados

3.3.1.Integer

3.3.2.Real

3.3.3.Boolean

3.3.4.Char

3.3.5.String

3.4.Constantes

3.5 Variáveis

3.6. Expressões

3.7. Instruções

3.8.Subprogramas

4- Tipos de dados elementares

5- Entrada e saída de dados

6-Estruturas de controlo

6.1 - Estruturas de selecção

6.2 - Estruturas de repetição

7- Subprogramação

7.1 - Procedimentos

7.2 - Funções

8- Dados definidos pelo programador

8.1 - Dados do tipo enumerado

8.2 - Dados do tipo subintervalo

9- Dados estruturados

9.1 - Matrizes ou arrays

9.2 Registos ou Records

9.3 - Ficheiros ou Files

Espero que gostem e que tirem proveito deste tutorial....

-------------------------------------------//----------------------------------------

Fase 0-As bases das bases

1.1-Estrutura da programação

  • Análise do enunciado do problema
    • Dados de entrada;
    • Dados de saída;
    • Relações de transformação;
  • Desenvolvimento do algoritmo
  • Codificação na linguagem de programação (neste caso irá ser Pascal, mas isto aplica-se a todas as outras linguagens de programação)
  • Execução e testes.

Dados de entrada: dados que é necessário fornecer para poderem ser calculados os dados de saída.

Dados de saída: resultados a obter.

Relações de transformação: relações matemáticas ou de qualquer outra espécie que permitam transformar os dados de entrada nos dados de saída.

Algoritmo: escrita, numa linguagem normalizada, da sequencia de operações que definem o problema.

1.2 - Noções de algoritmia

Para resolver os problemas em Programação recorreremos á utilização de Algoritmos.

E o que é um algoritmo

Um algoritmo é, nada mais nada menos, do que a sequencia de passos a utilizar de modo a que possamos chegar á solução para um determinado tipo de problema.

A utilização de algoritmos apenas visa tornar mais fácil a programação, visto que, ao elaborarmos um algoritmo, subdividimos o problema sistematicamente em partes mais pequenas e menos complexas chegando a um ponto em que compreendemos claramente cada uma das partes.

Assim podemos indicar sem ambiguidade os passos(algoritmo) para a resolução de problemas:

  • Analisar o problema
    • Conhecer o problema: ouvir o problema, entendê-lo, perceber qual o objectivo.
    • Descrever o problema: subdividir o problema(esquematizar), detalhar.
  • Resolver o problema: escrever passo-a-passo o raciocínio da solução do problema; verificar se não existe ambiguidade.
  • Implementar: esta fase acontece apenas após o problema estar resolvido e consiste em implementar o algoritmo numa linguagem de programação.

2-Linguagens de programação

Para que um computador produza resultados úteis é necessário indicar as ordens a que ele deve obedecer. Essas ordens serão uma série de instruções binárias - as únicas instruções que o computador entende, tambem designadas por código máquina.

Apesar de ser possível escrever um programa directamente em código máquina, dar ordens em números binários é fastidioso, lento e sujeito a erros, pelo que se desenvolveram linguagens de programação de baixo e alto nível, consoante estejam mais próximas do código máquina ou da linguagem humana, respectivamente.

É nessas linguagens que são escritos os programas com que os computadores funcionam e que se designam por programas fonte.

Assim, uma linguagem de programação é constituída por um conjunto de palavras(ou símbolos) que, colocados segundo determinadas regras, significam operações a realizar pelo computador - programa fonte.

As linguagens de programação têm, portanto, como função descrever todas as operações a serem efectuadas por um computador, necessárias a resolver um determinado problema.

Desta forma, uma linguagem de programação deve apresentar as seguintes facilidades:

  • Um vocabulário limitado;
  • Regras gramaticais simples;
  • Ser clara e concisa;
  • De aprendizagem simples.

Existe uma grande variedade de linguagens de programação:

Linguagens de baixo nível:

---->Linguagem máquina e linguagens Assembly

---->Vocabulário elementar;

---->Processamento de execução rápida;

---->Formulação dos problemas extremamente complicada e sujeita a erros.

Linguagens de alto nível:

---->BASIC,Fortran,Cobol,C,Pascal,Java, etc;

---->vocabulário adequado á expressão de grande complexidade;

---->processamento de execução morosa;

---->facilitam a tarefa do programador.

Actualmente programa-se com linguagens de alto nível, como o Pascal, salvo situações em que a velocidade de execução seja crítica.

O Pascal é uma das mais utilizadas, não apenas devido ao seu poder intrínseco mas também devido a ser particularmente adequada ao ensino dos conceitos básicos da programação estruturada.

Preparação e execução de um programa

  • Introduz-se o texto do programa no computador através de um programa Editor e o ficheiro fonte fica guardado em memória secundária.
  • Tradução do Ficheiro fonte para linguagem máquina, utilizando um Compilador para testar se há erros sintáticos.

Se os houver são indicados ao utilizador, recorre-se ao editor para introdução de correcções, compila-se novamente o ficheiro fonte corrigido.

Se não houver é produzido o ficheiro objecto com a versão traduzida.

Execução do programa:

--->O ficheiro objecto é colocado em memória pelo Loader

--->A unidade de controlo examina cada instrução do programa residente e gera os comandos necessários á sua execução.

Normalmente, o programador serve-se de um ambiente de desenvolvimento que integra todas as ferramentas necessárias á preparação de um programa (IDE):

Editor,Compilador, Loader;

2.2 - Estrutura de um programa em Pascal

Um programa em Pascal é composto por um cabeçalho e por um corpo de programa que inclui a zona de declarações e a zona de instruções:

  • Cabeçalho do programa;
  • Zona de declarações
    • Declaração de constantes;
    • Declaração de tipos;
    • Declaração de variáveis;
    • Declaração de subprograma.
  • Parte de execução

Exemplo(exemplo de um dos meus programitas em Pascal):

{aqui fica o cabeçalho do programa que explicarei a seguir}
Program Conversão(input,output);
{Este programa lê uma distancia em milhas e imprime o seu valor em Quilómetros}

{aqui fica então a zona de declaração do programa}

USES CRT;
CONST
KLMILHA=1.6;
VAR
KILOMETROS, MILHAS: real;

{aqui está a parte de execução do programa}

BEGIN
writeln('Escreva uma distancia em milhas');
readln(MILHAS);
KILOMETROS:=KLMILHA*MILHA;
writeln('A distância é de ',KILOMETROS, 'Quilómetros');
END.

Passando a explicar a estrutura de um programa em Pascal:

Cabeçalho do Programa:

Program
NomeProg(input,output);

>>>O nome do programa é indicado por NOMEPROG;

>>>(input,output) nomes associados aos dispositivos de entrada e saída utilizados;

>>>Os dados de entrada são lidos do ficheiro input;

>>>Os dados de saída são lidos do ficheiro output;

>>>Em Turbo Pascal é opcional a indicação desses ficheiros.

USES Crt (ou WinCrt);

>>>Instrução para o compilador;

>>>Faz a ligação da biblioteca que permite escrever em janelas do Windows.

>>>Apenas necessário quando se utiliza o Turbo Pascal para o Windows.

Declaração de constantes

{Estrutura da declaração de constantes}

const= NOMECONST=valor;

>>> O valor é associado ao identificador NOMECONST

>>>O valor associado ao NOMECONST não pode ser alterado (é constante a longo de todo o programa).

Declaração de variáveis

{declaração de uma variável}

var nome_da_variável: tipo;

>>>A cada variável é atribuída uma célula na memória;

>>>O tipo de dados a armazenar é especificado pelo tipo;

>>>A dimensão da célula reservada é determinada pelo tipo;

>>>Os identificadores de variáveis são separados por << , >>.

Parte de execução

BEGIN

sequencia de instruções;

END.

>>>Sequencia de instruções a serem executadas pelo computador aquando a execução do programa.

3. Conceitos fundamentais do Pascal

3.1.Identificadores

Palavras cuja função é a de servir de nome aos diversos objectos descritos na linguagem (constantes,variáveis,programar,subprogramar...)

3.1.1.Identificadores Padrão

  • Nomes de objectos predefinidos na linguagem Pascal;
  • Podem ser redefinidos pelo utilizador (mas não devem)
  • Exemplos: input, real, cos, char, writeln....

3.1.2. Identificadores definidos pelo utilizador

  • Nomes que identificam os objectos criados pelo utilizador;
  • exemplos:x,N,n1,Nomes,temperatura....

3.1.3.Regras de formação de identificadores

Utilizam-se conjuntos de:

  • letras de A a Z (maiúsculas e minúsculas);
  • dígitos de 0 a 9;
  • o símbolo underscore(_).

--->O primeiro caractere é obrigatoriamente uma letra ou underscore;

--->Podem ter um comprimento arbitrário;

--->O compilador apenas reconhece um determinado numero de caracteres (8 no Pascal Standard, 63 no Turbo Pascal);

---> As letras maiúsculas e minúsculas não são distinguíveis pelo compilador.

3.2. Palavras reservadas

São palavras que têm um significado bem definido dentro da especificaçao da linguagem:

  • São usadas apenas para o fim a que foram destinadas
  • Não podem ser redefinidas pelo utilizador
  • Exemplos: program, begin, end, const, var, for.....

3.3.Tipos de dados

A informação é armazenada na memória do computador de maneiras distintas: Tipos de Dados.

Os tipos de dados podem ser predefinidos ou definidos pelo utilizador.

Tipos de dados predefinidos:

  • quantidades numéricas: integer, real;
  • valores lógicos ou booleanos: boolean;
  • valores que representam caracteres gráficos: char;
  • cadeias de caracteres: string;

3.3.1. Integer

  • representação exacta de números inteiros até um certo limite, em módulo dado por MAXINT(=32767):
  • exemplo: -45, 0, 1, +23.

3.3.2.Real

Representação, normalmente não exacta de números:

  • com parte fraccionária;
  • extremamente grandes ou extremamente pequenos.

Exemplos: -6,35, 1.23E18, 1.2E-10.

3.3.3. Boolean

  • Representação dos valores lógicos "verdadeiro" e "falso";

Exemplos: true, false.

3.3.4.Char

Representação de caracteres gráficos.

Exemplos: 'A', 'a', '?', '+', '5'....

3.3.5.String

  • Representação de cadeias de caracteres;
  • Strings constantes devem ser colocadas entre plicas '';
  • Existe um numero máximo de caracteres permitidos por string (255 ou maior, na maioria das versões de Pascal)

Exemplos: 'Rita', 'lhidasdseret585???', aula n.1',....

3.4.Constantes

São representações do conteudo da memória do computador onde ser armazenam valores que não são alterados durante a execução do programa.

  • possuem um identificador e um valor;
  • são definidas na zona declarativa na forma:
const identificador=valor;
  • o tipo de constante encontra-se explicito no valor.

3.5.Variáveis

São representações do conteúdo da memória do computador onde se armazenam valores que podem ser alterados durante a execução do programa.

  • possuem um identificador, um valor e um tipo;
  • são declaradas na zona declarativa da forma:
var identificador: tipo;
  • o valor é atribuído á variável apenas durante a execução do programa;
  • o tipo de variável é explicitamente indicado através do tipo.

3.6. Expressões

Uma expressão é um grupo de operandos agrupados por operadores, constituindo formas algébricas que representam um valor.

As expressões numéricas:

  • representam um valor numérico real ou inteiro;
  • exemplo: (A*B-2*C)/3 em que A,B e C representam variáveis ou constantes numéricas.

As expressões booleanas:

  • representam um valor lógico: true ou false.
  • exemplo: 2*X>Y/5 (X e Y representam constantes numéricas)

3.7.Instruções

Uma instrução é uma ordem que obriga o computador a executar determinadas acções.

Existem as instruções simples:

  • instruções de atribuição;
  • instruções de entrada e saída de dados;
  • instruções de controle de sequenciação;
  • invocações de subprogramas.

Instruções compostas:

begin
sequencia de instruções;
end;

Dentro das instruções compostas existem a instrução atribuição:

variavel:=expressao;
  • é atribuído á variável o valor da expressão;
  • o resultado da expressão tem de ser de um tipo compatível com o da variável.

existe a entrada de dados:

readln(lista de variaveis);
  • lê para a memória a informação a partir do teclado;
  • o utilizador tecla um alor por cada variável da lista;
  • a ordem e entrada de dados tem de corresponder á ordem das variáveis na lista;
  • todos os dados devem ser teclados na mesma linha;
  • os dados numéricos devem ser separados por espaços;

existe ainda a visualização de dados:

 writeln(lista de valores);
  • visualiza no monitor de cada variável, expressão ou constante pela ordem em que figuram na lista;
  • após a impressão de toda a informação contida na lista, o cursor muda para a linha seguinte;
  • write(): o mesmo que writeln, mas sem mudar de linha.

(write()--->nao muda de linha; writeln--->muda de linha)

3.8.Subprogramas

A linguagem Pascal, sendo uma linguagem Modular, permite subdividir um programa em subprogramas ou módulos.

Subprogramas são elementos de programação autónomos:

  • a linguagem Pascal admite dois tipos de Subprogramas: procedimentos e funções

[*] podem ser acedidos de qualquer ponto dentro de um programa ou de outro subprograma;

[*] quando o Subprograma é acedido, é lhe fornecido normalmente informação para ser por si processada;

[*] quando gerada informação, é devolvida ao ponto de onde o Subprograma foi acedido;

[*] o Pascal admite procedimentos e funções predefinidos, e definidos pelo programador;

[*] os subprogramas predefinidos encontram-se incluídos na biblioteca de Pascal;

Posted

4-Tipos de Dados Elementares

Um tipo de dados define o conjunto de valores que uma variável ou constante pode assumir.

4.1-Dados de tipo elementar:

Podem ser:

  • Inteiros(INTEGER);
  • Reais(REAL);
  • Caracteres(CHAR);
  • Lógicos(BOOLEAN).

4.2-Dados de tipo ordinal: existem quando os elementos que compreendem o tipo de dados formam um conjunto ordenado e finito. ? o caso dos:

  • Inteiros
  • Caracteres
  • Booleanos
  • Dados de tipos definidos pelo programador

4.1.1-Dados inteiros

O tipo integer permite a utilização de valores inteiros entre -MAXINT e MAXINT.

Cada dado do tipo integer ocupa dois bytes em memória.

Os operadores válidos para numeros inteiros são a adição(+),subtracção(-),multiplicação(*),divisão inteira(/) e resto da divisão inteira (MOD).

DIV-Permite obter o quociente inteiro da divisão de dois números inteiros.

MOD-Permite obter o resto da divisão de dois numeros inteiros.

Exemplo:

17 DIV 5=3 e 17 MOD 5=2

4.1.2-Dados Reais

Os dados do tipo real representam quantidades numéricas reais:

  • Permite utilizar valores de +-2.9E-39 a +-1.7E38 com uma precisão de 12 dígitos.
  • Cada dado do tipo real ocupa 6 bytes de memória.
  • Os operadores válidos para os valores reais são os operadores aritméticos usuais: +,-,*,/.

Em Pascal, um valor inteiro pode surgir onde for esperado um valor real, visto que o conjunto de inteiros está contido no conjunto dos reais.

4.3-Funções padrão para valores numéricos

4.3.1-Funções reais

Estas funções apresentam sempre um resultado real, mas recebem um argumento que pode ser real ou inteiro.

  • ARCTAN(X)-Calcula o valor do ângulo, em radianos, cuja tangente é X;
  • COS(X)-Calcula o co-seno de C, expresso em radianos.
  • EXP(X)-Calcula a exponencial neperiana de C(e^X)
  • LN(X)-Calcula o logaritmo neperiano de X
  • SIN(X)-Calcula o seno de X
  • SQRT(X)-Calcula a raíz quadrada de X.

4.3.2-Funções inteiras

Estas funções representam um resultado inteiro, mas recebem um argumento real.

  • ROUND(X)-Arredonda o valor de X de forma a convertê-lo no inteiro mais próximo.
  • TRUNC(X)-Trunca o valor de X, eliminando a sua parte decimal.

4.3.3-Funções do tipo argumento

Estas funções apresentam um resultado do mesmo tipo do argumento.

  • ABS(X)-Calcula o valor absoluto do argumento X (|X|)
  • SQR(X)-Calcula o quadrado do argumento X(X^2)

4.4-Dados do tipo caracter

Os dados do tipo char representam caracteres individuais.

O conjunto completo de caracteres que pode ser usado com dados do tipo char forma o conjunto ordenado de caracteres ASCII.

O conjunto ASCII é formado por 128 caracteres.

Os caracteres estão ordenados e codificados num ordinal de 0 a 127.

Tabela do código ASCII

ascii.jpg

  • Cada caracter ASCII está associado ao seu numero de ordem no conjunto ASCII.
  • Os caracteres podem ser comparados entre si, com base na sua ordem relativa no conjunto ASCII.
  • As letras ordenadas segundo a sua ordem alfabética
  • Os dígitos de (0 a 9) estão ordenados na sua sequencia numérica própria.
  • Uma constante caracter é expressa atrav+es da sua inclusão entre plicas ' '
  • Cada dado do tipo caracter ocupa 1 byte de memória.

4.4.1-Funções padrão usadas em dados do tipo caracter

  • ORD(X)-Apresenta como resultado o ordinal associado ao caracter X no conjunto ASCII.
  • CHR(X)-Apresenta como resultado o caracter ASCII correspondente ao numero inteiro ordinal X

4.4.2-Funções utilizadas em dados do tipo ordinal (INTEGER; BOOLEAN; CHAR)

  • SUCC(X)-Apresenta como resultado o sucessor de X
  • PRED(X)-Fornece o predecessor de X.

4.5-Dados booleanos

Um tipo de dado booleano pode assumir um valor lógico entre dois possíveis: TRUE ou FALSE.

Os operadores lógicos são:

  • Conjunção--->AND
  • Disjunção---->OR
  • Disjunção exclusiva--->XOR
  • Negação------>NOT

(to be continued...este é o capítulo na minha opinião mais chato do Pascal...aind anão actuelizei o indice, actualizo apenas quando acabar o capítulo...comentem)

Posted

nao eh pa kriticar nem nada, mas axo k um tuturial num forum nao fika muito bem, num site eh sempre outra koisa, pois as koisas estao muito mais organizadas, tens espaço pa por mais cenas e nao deixa d poder haver comentarios.

tens uma boa iniciativa e estas de parabens por isso.

fikou o comentario

[[]]

Posted

Olha.. eu cá acho que tá mto bacano.

Pelo menos á primeira vista.. para mim que nunca toquei em programação dá pa ter uma ideia da estrutura e de como funciona Pascal.

Só começando a por as mãos nisso é que dá para ver se ha alguma lacuna no tutorial mas para já cumpre bem a sua função pq pelo menos a mim suscita-me uma enorme vontade de começar.. 😄

Cumps.

20COMER

  • 5 weeks later...
  • 2 weeks later...
  • 5 months later...
Posted

gande tutorial! parabens.. quando o acabas? dava ca um jeitaço..

Boas ptsnooper e bem-vindo ao forum. Espero acabar o tutorial nas férias de Carnaval ou algo do género. Já o estou para acabar há uns tempos, mas entretanto tenho tido outras prioridades a nível pessoal e comunitário. Seja como for, cá fica a promessa de o acabar brevemente.

Entretanto, como o d_pintassilgo referiu, nos próximos dias a minha presença online vai estar um pouco condicionada,visto que não tenho PC (estou a teclar no portátil da minha mãe).

Cumps

  • 3 weeks later...
Posted

Olha deathseeker25, isso que estás a faze,r se fosse eu agarrava nisso e punha no próximo número da nossa página dedicada à programação.

Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Posted

Olha deathseeker25, isso que estás a faze,r se fosse eu agarrava nisso e punha no próximo número da nossa página dedicada à programação.

Na próxima edição vai saír mais um capítulo do tutorial, podem ter a certeza. 🙂

  • 1 month later...
  • 3 weeks later...
  • 2 months later...
Posted

Está um tutorial muito bacano, com algumas explicações extra-Pascal pelo meio muito boas...

Mas continuo a preferir a linguagem C, não estou a ver nenhuma vantagem em aprender Pascal...

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

  • 2 months later...
Posted

Está um tutorial muito bacano, com algumas explicações extra-Pascal pelo meio muito boas...

Mas continuo a preferir a linguagem C, não estou a ver nenhuma vantagem em eprender Pascal...

Dahhh, o pascal é só para quem se inicia nestas andanças, para aprender como funcionam estas coisas. C é muito mais completo sem dúvida.

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
×
×
  • 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.