(Parte 1 de 5)

1 INTRODUÇÃO À PROGRAMAÇÃO4
1.1 DEFINIÇÃO DE ALGORITMO4
1.1.1 Algoritmo x Programa4
1.2 LINGUAGEM DE PROGRAMAÇÃO4
1.2.1 Tipos de Linguagens de Programação4
1.2.2 Processo de Criação e Execução de um Programa5
1.3 CRITÉRIOS DE QUALIDADE DE UM PROGRAMA6
1.4 A LINGUAGEM PASCAL7
1.4.1 Histórico7
1.4.2 O Turbo Pascal7
2 ESTRUTURA DE UM PROGRAMA EM PASCAL9
2.1 CABEÇALHO DO PROGRAMA9
2.2 ÁREA DE DECLARAÇÕES9
2.3 CORPO DO PROGRAMA10
2.4 EXEMPLO DE UM PROGRAMA EM PASCAL10
3 VARIÁVEIS E CONSTANTES12
3.1 IDENTIFICADORES12
3.2 PALAVRAS RESERVADAS12
3.3 COMENTÁRIOS13
3.4 TIPOS DE DADOS13
3.4.1 Tipos de Dados Inteiros13
3.4.2 Tipos de Dados Reais14
3.4.3 Tipos de Dados Caracteres14
3.4.4 Tipos Lógicos15
3.5 VARIÁVEIS15
3.6 CONSTANTES15
4 OPERADORES E EXPRESSÕES17
4.1 PRIORIDADE DAS OPERAÇÕES17
4.2 TIPOS DE EXPRESSÕES17
4.3 TIPOS DE OPERADORES18
4.3.1 Operador de Atribuição18
4.3.2 Operadores Aritméticos18
4.3.3 Operador de Concatenação19
4.3.4 Operadores Relacionais20
4.3.5 Operadores Lógicos21
4.4 FUNÇÕES PREDEFINIDAS2
5 ESTRUTURAS DE DECISÃO24
5.1 A INSTRUÇÃO IF..THEN24
5.2 A INSTRUÇÃO IF...THEN...ELSE26
6 ESTRUTURAS DE REPETIÇÃO (LOOPS)29
6.1 INSTRUÇÃO FOR29
6.2 INSTRUÇÃO WHILE...DO30
6.3 INSTRUÇÃO REPEAT...UNTIL32
7 VETORES, MATRIZES E REGISTROS35
7.1 VETORES35
7.2 MATRIZES39
7.3 REGISTROS43
8 PROCEDURES E FUNCTIONS46
8.2 PROCEDURES47
8.2.1 Variáveis Globais e Locais51
8.3 PARÂMETROS52
8.3.1 Passagem por Valor53
8.3.2 Passagem por Referência54
8.4 FUNCTIONS5
9 ARQUIVOS58
9.1 DEFINIÇÃO DE UM ARQUIVO58
9.2 OPERAÇÕES DE UM ARQUIVO58
9.3 FORMAS DE ACESSO EM UM ARQUIVO59
9.3.1 Acesso Seqüencial59
9.3.2 Acesso Direto60
9.3.3 Acesso Indexado60
9.4 ARQUIVOS DO TIPO TEXTO60
9.5 ARQUIVOS COM TIPO DEFINIDO61

1 INTRODUÇÃO À PROGRAMAÇÃO

1.1 Definição de Algoritmo

É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa.

É a forma pela qual descrevemos soluções de problemas do nosso mundo, afim de serem implementadas utilizando os recursos do mundo computacional. Como este possuí severas limitações em relação ao nosso mundo, exige que sejam impostas algumas regras básicas na forma de solucionar os problemas para que possamos utilizar os recursos de hardware e software disponíveis.

1.1.1 Algoritmo x Programa

Um algoritmo é uma seqüência lógica de ações a serem executadas para se executar uma determinada tarefa. Um programa é a formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma a permitir que o computador possa entender a seqüência de ações.

1.2 Linguagem de Programação

identificadores, caracteres ASCII, etc) e regras de sintaxe que permitem a

Uma linguagem de programação é um conjunto de símbolos ( comandos, construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador.

Uma linguagem de programação é uma notação formal para descrição de algoritmos que serão executados por um computador. Como todas as notações formais, uma linguagem de programação tem dois componentes: Sintaxe e Semântica. A sintaxe consiste em um conjunto de regras formais, que especificam a composição de programas a partir de letras, dígitos, e outros símbolos. Por exemplo, regras de sintaxe podem especificar que cada parênteses aberto em uma expressão aritmética deve corresponder a um parênteses fechado, e que dois comandos quaisquer devem ser separados por um ponto-e-vírgula. As regras de semântica especificam o “significado” de qualquer programa, sintaticamente válido, escrito na linguagem.

1.2.1 Tipos de Linguagens de Programação

Existem diversas linguagens de programação, cada uma com suas características específicas e com níveis de complexidade e objetivos diferentes, como pode ser visto na tab. 1.1.

Linguagem de Máquina Única compreendida pelo computador.

Específica de cada computador.

Linguagens de Baixo Nível Utiliza mnemônicos para representar instruções elementares Ex.: Assembly

Ex.: Uso Científico: Fortran

Linguagens de Alto Nível Utiliza instruções próximas da linguagem humana de forma a facilitar o raciocínio.

Propósito Geral : Pascal, C, Basic Uso Comercial : Cobol, Clipper

Uso específico : Lisp, Prolog

TABELA 1.1 – TIPOS DE LINGUAGENS DE PROGRAMAÇÃO E SUAS CARACTERÍSTICAS

1.2.2 Processo de Criação e Execução de um Programa

Embora seja teoricamente possível a construção de computadores especiais, capazes de executar programas escritos em uma linguagem de programação qualquer, os

linguagem de baixo nível, a Linguagem de Máquina

computadores, existentes hoje em dia são capazes de executar somente programas em

Linguagens de Máquina são projetadas levando-se em conta os seguintes aspectos :

• rapidez de execução de programas; • custo de sua implementação; e

• flexibilidade com que permite a construção de programas de nível mais alto.

Por outro lado, linguagens de programação de alto nível são projetadas em função de :

• facilidade de construção de programas; e

• confiabilidade dos programas.

O PROBLEMA É: Como a linguagem de nível mais alto pode ser implementada em um computador, cuja linguagem é bastante diferente e de nível mais baixo ?

nível para a linguagem de baixo nível do computador

SOLUÇÃO: Através da tradução de programas escritos em linguagens de alto

Para isso existem três tipos de programas tradutores : Montadores, Interpretadores e Compiladores. Vejamos o que cada um deles representa.

MONTADOR Efetua a tradução de linguagem de montagem ( Assembly ) para a linguagem de máquina, da seguinte forma:

• obtém a próxima instrução do Assembly;

• traduz para as instruções correspondentes em linguagem de máquina;

• executa as instruções em linguagem de máquina; e

• repete o passo 1 até o fim do programa.

INTERPRETADOR Efetua a tradução a de uma linguagem de alto nível para linguagem de máquina da seguinte forma:

• obtém próxima instrução do código-fonte em linguagem de alto nível;

• traduz para as instruções correspondentes em linguagem de máquina;

• executa as instruções em linguagem de máquina; e

• repete o passo 1 até o fim do programa

COMPILADOR Efetua a tradução de todo o código-fonte em linguagem de alto nível para as instruções correspondentes em linguagem de máquina, gerando o código-objeto do programa. Em seguida é necessário o uso de um outro programa ( Link-Editor ) que é responsável pela junção de diversos códigos-objeto em um único programa executável.

CÓDIGO-FONTE

Possibilidades de Erros no Programa:

• Erros de Compilação : erros de digitação e de uso da sintaxe da linguagem.

• Erros de Link-Edição : erro no uso de bibliotecas de sub-programas necessárias ao programa principal.

• Erros de Execução : erro na lógica do programa (algoritmo).

1.3 Critérios de Qualidade de um Programa Vejamos alguns critérios para escrevermos um programa com qualidade:

Integridade: refere-se à precisão das informações manipuladas pelo programa, ou seja, os resultados gerados pelo processamento do programa devem estar corretos, caso contrário o programa simplesmente não tem sentido;

Clareza: refere-se à facilidade de leitura do programa. Se um programa for escrito com clareza, deverá ser possível a outro programador seguir a lógica do programa sem muito esforço, assim como o próprio autor do programa entendê-lo após ter estado um longo período afastado dele. O Pascal favorece a escrita de programas com clareza e legibilidade;

Simplicidade: a clareza e precisão de um programa são normalmente melhoradas tornando seu entendimento o mais simples possível, consistente com os objetivos do programa. Muitas vezes torna-se necessário sacrificar alguma eficiência de processamento, de forma a manter a estrutura do programa mais simples;

Eficiência: refere-se à velocidade de processamento e a correta utilização da memória. Um programa deve ter performance SUFICIENTE para atender às necessidade do problema e do usuário, bem como deve utilizar os recursos de memória de forma moderada, dentro das limitações do problema;

Modularidade: consiste no particionamento do programa em módulos menores bem identificáveis e com funções específicas, de forma que o conjunto desses módulos e a interação entre eles permite a resolução do problema de forma mais simples e clara; e

Generalidade: é interessante que um programa seja tão genérico quanto possível de forma a permitir a reutilização de seus componentes em outros projetos.

1.4 A Linguagem Pascal

Origem: desenvolvida nos anos entre 1968 e 1970 por Nicklaus Wirth na

Universidade Técnica de Zurique, Suíça. Em 1970 é disponibilizado o primeiro compilador para a linguagem.

Objetivo: desenvolver uma linguagem de programação disciplinada de alto nível para ensinar programação estruturada. Esta linguagem foi batizada com o nome de Pascal, em homenagem a Blaise Pascal, filósofo e matemático francês que viveu entre

Padronização: ANSI ( American National Standars Institute ) e IEEE ( Institute of Eletrical and Eletronics Engineers )

Padrão de Fato: Borland International cria em 1983 o Turbo Pascal.

Atualizações: durante os últimos anos foram lançadas diversas variações da linguagem Pascal-Padrão, implementando recursos que não são encontrados na estrutura padrão da linguagem. Nas mãos da Borland, já foram lançadas as versões 3.0, 4.0, 5.0 e

5.5 na década de 80. Durante a década de 90 foram lançadas as versões 6.0, 7.0 e o lançamento da linguagem Delphi, para programação em ambiente Windows.

1.4.2 O Turbo Pascal

O Turbo Pascal é mais que um simples compilador da linguagem Pascal, ele é um Ambiente Integrado de Desenvolvimento ( IDE - Integrated Development

Environment ), consistindo de um conjunto de ferramentas de desenvolvimento integradas. Entre as ferramentas que compõem o Turbo Pascal temos:

• Editor de Código-Fonte

• Compilador

• Link-Editor

• Depurador

• Ajuda On-Line da Linguagem e do próprio IDE

Podemos citar alguns comandos principais do Turbo Pascal :

• Compilar o programa : ALT + F9

• Compilar e Executar o Programa : CTRL + F9

• Acessar o Menu : ALT + Letra realçada.

• Criar um novo programa : menu FILE | NEW

• Salvar o programa atual : F2

• Sair do Turbo Pascal : ALT + X

• Ver tela com os resultados do programa executado : ALT + F5

2 ESTRUTURA DE UM PROGRAMA EM PASCAL

Todo programa escrito em Pascal é subdividido em três áreas distintas: cabeçalho do programa, área de declarações e corpo do programa.

2.1 Cabeçalho do Programa

Esta área é utilizada para se fazer a identificação do programa com um nome. O cabeçalho de um programa é atribuído pela instrução program seguida de um nome. Ao final do nome deve-se colocar o símbolo ponto-e-vírgula ( ; ). Não pode existir nenhuma variável no programa que tenha o mesmo nome dado ao programa.

Vejamos um exemplo: program CALCULA_AREA;

Caso você tenha atribuído ao programa o nome Soma e também tenha atribuído este nome a uma variável no programa, quando for executado apresentará um mensagem de erro.

2.2 Área de Declarações

Esta área é utilizada para validar o uso de qualquer tipo de identificador que não seja predefinido, estando subdividida em sete sub-áreas: uses, label, const, type, var, procedure e function.

Inicialmente, vamos estudar apenas a sub-área var. As demais serão estudadas em capítulos posteriores. A sub-área var é utilizada na declaração das variáveis que serão utilizadas durante a execução de um programa, bem como, também o seu tipo.

Desta forma, a linguagem Pascal efetua a reserva de espaço na memória para que as variáveis sejam utilizadas.

variáveis. Após os nomes de cada variável deverá ser utilizado o símbolo dois-pontos

A declaração das variáveis é atribuída pela instrução var seguida da relação de ( : ), e após estes é mencionado o tipo de dado que a variável irá receber, seguido de ponto-e-vírgula.

Vejamos um exemplo: var

NOME : string; IDADE : integer; ALTURA : real;

por vírgula. Vejamos um exemplo:

Caso as variáveis sejam de mesmo tipo, estas poderão ser relacionadas separadas A, B, C : integer;

2.3 Corpo do Programa

O programa propriamente dito em Pascal está escrito na área denominada corpo do programa. esta área tem início com a instrução begin e é finalizada pela instrução end seguida do símbolo ponto ( . ). O uso destas instruções caracteriza o que é chamado de bloco, como indicado abaixo:

begin instruções; (...) end.

Na área denominada corpo do programa, poderão existir, dependendo da necessidade, vários blocos.

2.4 Exemplo de um Programa em Pascal

Para se colocar em prática o que foi explicado até este momento, considere o seguinte exemplo de um problema:

“Desenvolver um programa que efetue a leitura de dois valores numéricos. Faça a operação de adição entre os dois valores e apresente o resultado obtido.”

Note que sempre estaremos diante de um problema, e que este deverá ser resolvido primeiro por nós, para que depois seja resolvido por um computador. Primeiramente, você deve entender bem o problema, para depois buscar a sua solução dentro de um computador, ou seja, você deverá “ensinar” a máquina a resolver seu problema, através de um programa. Desta forma, o segredo de uma boa lógica está na compreensão adequada do problema a ser solucionado. Vejamos nosso problema citado acima:

Algoritmo: 1. Ler um valor para a variável A; 2. Ler outro valor para a variável B; 3. Efetuar a soma das variáveis A e B, colocando o resultado na variável X; 4. Apresentar o valor da variável X após a operação de soma dos dois valores fornecidos.

Completada a fase de interpretação do problema e da definição das variáveis a serem utilizadas passa-se para a fase de codificação de nosso programa para a linguagem Pascal.

Programa em Pascal program ADICIONA_NUMEROS; var

X : integer; A : integer; B : integer; begin readln(A); readln(B); X := A + B; writeln(X); end.

Entrada e Saída dos Dados

Você deve ter observado os comandos readln e writeln. Estes comandos são chamados de entrada e saída dos dados, respectivamente. A instrução readln permite a entrada de dados via teclado e a instrução writeln gera a saída de dados via vídeo.

Poderiam também ser utilizadas as instruções write e read. Mas qual a diferença entre elas?

É muito simples: a colocação da ln indica line new, ou seja, nova linha. Será realizado um “pulo” de linha após a leitura ou exibição dos dados. As instruções write e read permitem manter o cursor na mesma linha, após a exibição das mensagens ou leitura de dados.

3 VARIÁVEIS e CONSTANTES

3.1 Identificadores

Os identificadores são nomes a serem dados a variáveis, tipos definidos, procedimentos, funções e constantes nomeadas.

Devem seguir as seguintes regras de construção:

• iniciar sempre por uma letra (a - z , A - Z) ou um underscore ( _ );

• o restante do identificador deve conter apenas letras, underscores ou dígitos

(0 - 9). Não pode conter outros caracteres; e

• pode ter qualquer tamanho, desde que os primeiros 63 caracteres sejam significativos.

Não existe distinção entre letras maiúsculas e minúsculas no nome de um identificador. Por exemplo, os nomes ALPHA, alpha e Alpha são equivalentes.

Atenção para o fato de que identificadores muito longos são mais fáceis de serem lidos pelas as pessoas quando se usa uma mistura de letras maiúsculas e minúsculas; por exemplo, SalarioMinimo é mais fácil de se ler do que SALARIOMINIMO.

Vejamos alguns exemplos de identificadores válidos: PAGAMENTO

Soma_Total MaiorValor Media1 _Media e alguns exemplos de identificadores inválidos:

4VendedorNão pode começar com um número
Soma TotalNão pode ter espaços entre as letras

%Quantidade O símbolo % não é permitido

Observação : Um identificador deverá ficar inteiramente contido em uma linha do programa, ou seja você não pode começar a digitar o nome do identificador numa linha e acabar em outro.

3.2 Palavras Reservadas

Pascal reconhece certo grupo de palavras como sendo reservadas. Essas palavras tem significado especial e não podem ser usadas como identificadores em um programa. A tab. 3.1 apresenta todas as palavras reservadas do Pascal Padrão:

and downto In packed to array else inline procedure type asm End interface program unit begin File Label record until case For mod repeat until const Foward nil set uses constructor Function not shl var destructor Goto object shr while div If of string with do implementation or then xor TABELA 3.1 – PALAVRAS RESERVADAS DO PASCAL

3.3 Comentários

Comentários são textos escritos dentro do código-fonte para explicar ou descrever alguns aspectos relativos ao mesmo. Os comentários podem ser colocados em qualquer lugar do programa onde um espaço em branco possa existir.

chaves “{..}” ou entre “ (**)”. Quando o compilador encontra o símbolo “{“ ele salta

Você pode colocar comentários de duas formas: ou envolvendo o texto entre todos os caracteres até encontrar um “}”. Da mesma forma, todos os caracteres que seguem “(*” são pulados até ser detectado o símbolo ”*)”. Como resultado disso, qualquer uma das formas pode ficar dentro da outra; por exemplo {...(*...*)...} é um comentário.

3.4 Tipos de Dados

Os dados são representados pelas informações a serem processadas por um computado. Um tipo de dados especifica as características, ou seja os valores e operações possíveis de serem utilizados com um dado desse tipo. Toda variável e constante usada em um programa tem um tipo associado a ela. A linguagem Pascal fornece ao programador um conjunto de tipos de dados predefinidos.

3.4.1 Tipos de Dados Inteiros

São caracterizados tipos inteiros, os dados numéricos positivos ou negativos, excluindo-se qualquer número fracionário. Em Pascal, este tipo de dado pode ser referenciado por um dos seguintes identificadores:

(Parte 1 de 5)

Comentários