Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Pascal, Notas de estudo de Informática

Programação em Pascal

Tipologia: Notas de estudo

2010

Compartilhado em 18/08/2010

clodoaldo-antunes-garcia-1
clodoaldo-antunes-garcia-1 🇧🇷

5

(3)

7 documentos

1 / 64

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
LINGUAGEM DE PROGRAMAÇÃO
PROGRAMAÇÃO PASCAL
AGOSTO / 2005
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40

Pré-visualização parcial do texto

Baixe Pascal e outras Notas de estudo em PDF para Informática, somente na Docsity!

LINGUAGEM DE PROGRAMAÇÃO

PROGRAMAÇÃO PASCAL

AGOSTO / 2005

/LQJXDJHPGH3URJUDPDomR  3iJ

1. ALGORITMOS

1.1. DEFINIÇÃO DE ALGORITMO

A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:

  • instruções para se utilizar um aparelho eletrodoméstico;
  • uma receita para preparo de algum prato;
  • guia de preenchimento para declaração do imposto de renda;
  • a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
  • a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc. São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui: “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH] “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY] “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

1.2. POR QUE PRECISAMOS DE ALGORITMOS?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo:

“A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”] “O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA -2] A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.

1.3. CARACTERÍSTICAS

Todo algoritmo deve apresentar algumas características básicas:

/LQJXDJHPGH3URJUDPDomR  3iJ

1.4.2. FLUXOGRAMA

Utilização de símbolos gráficos para representar algoritmos. No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

VANTAGENS:

  • Uma das ferramentas mais conhecidas;
  • Figuras dizem muito mais que palavras;
  • Padrão mundial DESVANTAGENS:
  • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;
  • Complica-se à medida que o algoritmo cresce.

1.4.3. LINGUAGEM ALGORÍTMICA

Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, para representar algoritmos.

EXEMPLO: Algoritmo CALCULA_DOBRO NUM,DOBRO : inteiro início Leia NUM DOBRO <- 2 * NUM Escreva DOBRO fim VANTAGENS:

  • Usa o português como base;
  • Pode-se definir quais e como os dados vão estar estruturados;
  • Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

/LQJXDJHPGH3URJUDPDomR  3iJ

DESVANTAGENS:

  • Exige a definição de uma linguagem não real para trabalho;
  • Não padronizado.

1.5. UM AMBIENTE PARA ESCREVER ALGORITMOS

Descreveremos uma máquina hipotética para a qual escreveremos nossos algoritmos. O nosso computador hipotético apresentará a seguinte organização:

Cada uma das partes constituintes da figura acima tem os seguintes significados: (1) Dispositivo de entrada (o teclado): É o meio pelo qual os dados que serão trabalhados pelo algoritmo vão ser introduzidos em nosso computador hipotético; (2) Unidade Lógica e Aritmética (ULA): Parte responsável pelas operações matemáticas e avaliações lógicas; (3) Unidade de Controle: Exerce controle sobre as demais partes do nosso computador. É uma verdadeira gerente que distribui tarefas às outras unidades; (4) Memória: Guarda o algoritmo a ser executado e os dados a serem utilizados pelo mesmo. Todo dado fornecido ao computador e o resultado de suas operações ficam guardados na memória; (5) Dispositivo de Saída (vídeo e impressora): É o meio que se dispõe para apresentação dos resultados obtidos.

/LQJXDJHPGH3URJUDPDomR  3iJ

1.6. ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS

Existem 3 estruturas básicas de controle nas quais se baseiam os algoritmos: sequenciação, decisão e repetição.

1.6.1. SEQUENCIAÇÃO

Os comandos do algoritmo fazem parte de uma seqüência, onde é relevante a ordem na qual se encontram os mesmos, pois serão executados um de cada vez, estritamente, de acordo com essa ordem. De uma forma genérica, poderíamos expressar uma seqüência da seguinte maneira:

Comando- Comando- Comando- : Comando-n Tem-se uma sequenciação de n comandos na qual os comandos serão executados na ordem em que aparecem, isto é, o comando de ordem i+1 só será executado após a execução do de ordem i (o 3o só será executado após o 2o).

Todo algoritmo é uma seqüência. A sequenciação é aplicada quando a solução do problema pode ser decomposta em passos individuais.

1.6.2. DECISÃO OU SELEÇÃO

Essa estrutura também é conhecida por estrutura condicional. Há a subordinação da execução de um ou mais comandos à veracidade de uma condição. Vejamos o funcionamento:

Se <condição> então <seq. de comandos-1> senão <seq. de comandos-2> Se a <condição> for verdadeira será executado a <seq. de comandos-1> e, em caso contrário, teremos a execução da

<seq. de comandos-2>. A decisão deve ser sempre usada quando há a necessidade de testar alguma condição e em função da mesma tomar uma atitude. Em nosso dia-a-dia, estamos sempre tomando decisões, vejamos um exemplo:

Se tiver dinheiro suficiente, então vou almoçar em um bom restaurante. Caso contrário (senão) , vou comer um sanduíche na lanchonete da esquina.

1.6.3. REPETIÇÃO OU ITERAÇÃO

Essa estrutura também é conhecida por “looping” ou laço. A repetição permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quantas uma condição lógica permita. Vejamos alguns exemplos:

a) vou atirar pedras na vidraça até quebrá-la; b) baterei cinco pênaltis; c) enquanto tiver saúde e dinheiro, vou desfrutar a vida.

/LQJXDJHPGH3URJUDPDomR  3iJ

No exemplo (a), vai-se repetir a ação de atirar pedras na janela até que seja satisfeita a condição de quebrar a janela.

No exemplo (b), haverá a repetição da atitude de bater um pênalti um número determinado de vezes (cinco).

No exemplo (c), a condição que me permitirá continuar desfrutando a vida é ter dinheiro e saúde.

A utilização combinada dessas 3 estruturas descritas vai permitir expressar, usando qualquer que seja a ferramenta, a solução para uma gama muito grande de problemas. Todas as linguagens de programação oferecem representantes dessas estruturas.

1.7. REFINAMENTOS SUCESSIVOS

Um algoritmo é considerado completo se os seus comandos forem do entendimento do seu destinatário.

Num algoritmo, um comando que não for do entendimento do destinatário terá que ser desdobrado em novos comandos, que constituirão um refinamento do comando inicial, e assim sucessivamente, até que os comandos sejam entendidos pelo destinatário.

Por exemplo, o algoritmo para calcular a média aritmética de dois números pode ser escrito da seguinte forma:

Algoritmo CALCULA_MÉDIA Início Receba os dois números Calcule a média dos dois números Exiba o resultado Fim Podemos desdobrar o comando “Calcule a média dos dois números” em: Soma os dois números Divida o resultado por 2 Após esse refinamento, o algoritmo pode ser considerado completo, a menos que o destinatário não saiba fazer as operações de adição e divisão, ou não seja capaz de entender diretamente algum comando.

O algoritmo estando completo, podemos reescrevê-lo, inserindo o refinamento na posição do comando que foi refinado.

Assim sendo, obtém-se: Algoritmo CALCULA_MÉDIA Início Receba os dois números Soma os dois números Divida o resultado por 2 Exiba o resultado Fim Reescrever um algoritmo completo, com os refinamentos sucessivos inseridos nos seus devidos lugares, permite ter uma visão global de como o algoritmo deve ser executado.

/LQJXDJHPGH3URJUDPDomR  3iJ

2.1. LINGUAGENS DE PROGRAMAÇÃO

Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável.

Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo computador.

Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos, ausente e presente.

Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).

Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina.

2.2. TRADUTORES

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.

/LQJXDJHPGH3URJUDPDomR  3iJ

COMPILADOR - traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto).

INTERPRETADOR - traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte.

Exemplos de linguagens de programação: PASCAL, C, CLIPPER, COBOL, HTML, JAVA, etc.

EXERCÍCIOS PROPOSTOS

  1. Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) tradutor
  2. Qual a diferença entre linguagem de baixo nível e linguagem de alto nível?
  3. Explique a diferença entre compilador e interpretador.

/LQJXDJHPGH3URJUDPDomR  3iJ

3.3. PALAVRAS RESERVADAS

As palavras reservadas da linguagem Pascal são as seguintes:

EXERCÍCIOS PROPOSTOS

  1. Defina variável.
  2. O que são identificadores?
  3. Quais as regras básicas para a formação de identificadores?
  4. Assinalar os identificadores inválidos, justificando. a) A1BC b) XA,1d c) NomeDoAluno d) 198aberto e) TO.begin 4. TIPOS DE DADOS

A linguagem Pascal suporta os seguintes tipos de dados:

4.1. SIMPLES

INTEGER - Envolve os números inteiros. A partir da versão 5.0 do Turbo Pascal passaram a existir também outros tipos de números inteiros: SHORTINT, BYTE, WORD e LONGINT.

REAL - abrange os números reais. A partir da versão 5.0 passaram a existir também outros tipos de números reais: SINGLE, DOUBLE, EXTENDED e COMP.

/LQJXDJHPGH3URJUDPDomR  3iJ

CHAR - representa um único caracter, escrito entre apóstrofos ( ‘ ). A maioria dos computadores utiliza a tabela de códigos ASCII para representar todos os caracteres disponíveis.

Exemplos: 'A', 'B', 'a', '1', '@', ' ' BOOLEAN - representa um valor lógico. Utiliza apenas duas constantes lógicas: TRUE (verdadeiro) e FALSE (falso).

4.2. ESTRUTURADOS

STRING - formado por um conjunto de elementos do tipo CHAR. O tamanho máximo é de 255 caracteres.

Exemplos: 'CPU', 'Processamento de Dados', '123’ Os outros tipos de dados estruturados são: ARRAY, RECORD, FILE, SET e TEXT.

4.3. DEFINIDOS PELO USUÁRIO

A linguagem Pascal permite que os programadores, além de usarem os tipos predefinidos na linguagem, também possam criar novos tipos de dados. Isto se torna bastante útil quando lidamos com estruturas de dados complexas, como também ajuda a tornar o programa mais legível. Este assunto, pela sua complexidade, será abordado mais adiante.

EXERCÍCIOS PROPOSTOS

  1. Escreva o tipo de dado ideal para se representar as seguintes informações: a) O número da conta bancária b) A altura de uma pessoa em metros c) A placa de um veículo d) O número de filhos de uma pessoa e) A população de um país f) A cor de um objeto
  2. Quais os tipos de dados simples existentes na linguagem Pascal?
  3. Quais os tipos de dados estruturados existentes na linguagem Pascal?
  4. Quais os valores possíveis em um dado do tipo Boolean?
  5. O que é uma string?
  6. Qual o tamanho máximo de uma string?
  7. Identificar os tipos dos seguintes dados: a) 'Processamento Dados' b) 0. c) '4.5E10' d) TRUE e) '?'

f) ' ' g) -5.3E- h) '.05' i) 'FALSE' j) 0

/LQJXDJHPGH3URJUDPDomR  3iJ

EXEMPLOS:

5.3. EXPRESSÕES LÓGICAS

São expressões cujos operadores são lógicos e cujos operandos são

relações, tendo como resposta sempre um valor booleano (true ou false). Uma

relação é uma comparação entre valores do mesmo tipo. Os operadores

relacionais são:

/LQJXDJHPGH3URJUDPDomR  3iJ

5.3.1 OPERADORES LÓGICOS

5.4. PRIORIDADE

Em uma expressão, a ordem de avaliação dos operadores segue a tabela abaixo:

Como a ordem de precedência dos operadores lógicos é maior que a dos operadores relacionais, devem sempre ser usados parênteses quando se escrever uma expressão lógica complexa. Por exemplo:

( A > B ) OR ( B = C )

EXERCÍCIOS PROPOSTOS

  1. O que são expressões aritméticas?
  2. Qual o resultado das expressões aritméticas abaixo, sabendo-se que os valores de X, Y e Z são, respectivamente, 1, 2 e 5?

a) Z mod Y div Y b) X + Y + Z / 3 c) FRAC( X / Z) + ROUND(Z / y) * TRUNC(Z / Y) d) SQRT( Z div Y + X * Y) e) Z - ABS(X - SQR(Y))

  1. O que são Funções Predefinidas?
  2. Escreva o resultado das seguintes funções: a) ABS(-4) b) ABS(5.2) c) FRAC(23.0) d) FRAC(-3.1) e) TRUNC(1.8) f) TRUNC(2.2) g) ROUND(1.8)

/LQJXDJHPGH3URJUDPDomR  3iJ

6. FORMATO DE UM PROGRAMA PASCAL

Pascal é uma linguagem altamente estruturada que possui uma rigidez definida, embora sua estrutura de programa seja flexível. Cada seção ou parte de um programa em Pascal deve aparecer numa seqüência apropriada e ser sistematicamente correta, senão ocorrerá um erro.

Por outro lado, no Pascal não há regras específicas para o uso de espaço, linhas quebradas, requisições e assim os comandos podem ser escritos no formato livre em quase todos os estilos em que o programador deseja utilizar.

Um programa escrito em Pascal tem o seguinte formato: PROGRAM ; . O , por sua vez, está dividido em seis áreas, onde somente a última é obrigatória e devem obedecer a seqüência abaixo. São elas:

  • Área de declaração de uso de unidades
  • Área de declaração de constantes
  • Área de declaração de tipos
  • Área de declaração de variáveis
  • Área de declaração de procedimentos e funções
  • Área de comandos Observação: no Turbo Pascal, a cláusula PROGRAM, bem como a seqüência correta das declarações, não são obrigatórios.

6.1. DECLARAÇÃO DE USO DE UNIDADES

Um programa Pascal pode fazer uso de algumas unidades padrão que estão disponíveis no Sistema Turbo, tais como: CRT, DOS, PRINTER, GRAPH, etc.

A área de declaração de uso de unidades possui o seguinte formato: USES , ... , ; EXEMPLO: USES CRT,PRINTER;

6.2. DECLARAÇÃO DE CONSTANTES

Serve para associarmos nomes às constantes utilizadas no programa. Possui o seguinte formato:

CONST =;...;=; EXEMPLO: CONST BRANCO = ' '; PI = 3.1416; MAX = 10; OK = TRUE;

/LQJXDJHPGH3URJUDPDomR  3iJ

6.3. DECLARAÇÃO DE TIPOS

Serve para definirmos novos tipos e estruturas de dados. Não detalharemos esse tópico agora por ser assunto dos próximos capítulos.

6.4. DECLARAÇÃO DE VARIÁVEIS

Todas as variáveis que serão utilizadas em um programa devem ser declaradas dentro do mesmo.

A declaração de uma variável tem como finalidade:

  • especificar o tipo de dado que poderá ser armazenado na variável;
  • alocar um espaço na memória onde possa ser armazenado o conteúdo da variável;
  • dar um nome (identificador) à variável. Possui o seguinte formato: VAR <lista-de-identificadores> : ; ... <lista-de-identificadores> : ; Onde:

<lista-de-identificadores> é uma lista de variáveis de um mesmo tipo, separadas por vírgula.

é o nome de um dos tipos predefinidos ou criado pelo programador.

EXEMPLO: VAR X,Y,Z : REAL; I,J : INTEGER; ACHOU : BOOLEAN; LETRA : CHAR; PALAVRA,FRASE : STRING;

6.5. DECLARAÇÃO DE PROCEDIMENTOS E FUNÇÕES

Nesta área são definidos os procedimentos e funções utilizados pelo programa.

6.6. ÁREA DE COMANDOS

É nesta área onde é inserido o algoritmo do programa. Os comandos são separados entre si pelo delimitador ponto-evírgula.

A forma geral é: BEGIN ; ... ; END