























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Curso pascal
Tipologia: Notas de estudo
1 / 31
Esta página não é visível na pré-visualização
Não perca as partes importantes!
























A primeira linguagem deve, desta forma, ser tal que forneça ao aprendiz a possibilidade de desenvolver algoritmos lógicos, sistemáticos, facilmente compreensíveis segundo os métodos modernos de programação e deve até possibilitá-lo a “dar asas à sua imaginação”.
Um computador não pode entender nem tão pouco executar instruções em linguagens de alto nível. Ele só entende linguagem de máquina. Desta forma, os programas em linguagens de alto nível devem ser traduzidos antes de serem executados pelo computador. Quem faz essa tradução são os programas tradutores. Existem basicamente 2 tipos de programa tradutor: o interpretador; e o compilador. Os dois aceitam como entrada um programa em linguagem de alto nível (fonte) e produzem como saída um programa em linguagem de máquina (objeto). A diferença entre eles está na forma de executar a tarefa de tradução. O interpretador traduz para a linguagem de máquina e roda uma linha por vez, até que todo programa seja executado. Já o compilador traduz para a linguagem de máquina todo o programa fonte e só então ele é executado. Existem linguagens de programação interpretadas e compiladas. O cobol é compilado, o basic pode ser tanto compilado como interpretado e assim por diante. A linguagem Pascal ‚ tradicionalmente compilada. Por outro lado, o processo de compilação‚ de certa forma moroso, pois deve seguir as seguintes etapas:
Após todo esse processo, suponha que você chegue à conclusão de que o programa tenha que sofrer modificações, pois bem, você terá que repetir os três passos descritos, e assim sucessivamente até que o programa fique ao seu gosto. O compilador Turbo Pascal facilita todo esse processo, pois ele possui numa forma integrada, um editor de textos compatível com o Wordstar, um compilador e um linkeditor. O processo de compilação pode ser feito tanto em disco como em memória, o que faz com que ele seja muito rápido. Além disso, o Turbo Pascal atende aos padrões da linguagem Pascal definidos por Niklaus Wirth, “o pai da linguagem”. Na realidade, o Turbo Pascal vai muito além, pois ele possui inúmeras Procedures e funções a mais do que as existentes no padrão da linguagem Pascal.
Todos os exemplos e programas contidos neste curso, foram escritos num compatível 486DX 50 Mhz, com dois drivers de discos de dupla face de alta densidade, um HD de 340 Mb, um monitor monocromático e 640 Kbytes de memória RAM.
No entanto, a configuração mínima poderia ser um IBM/PC-XT com um HD de 40 Mb.
Bom, acho que aqueles que nunca tiveram a oportunidade de fazer um programa em Pascal, devem estar muito curiosos para saber como deve ser o seu aspecto. Por isso, antes de prosseguir com os meandros da linguagem Pascal, eu mostrarei um pequeno programa devidamente comentado.
Programa Exemplo: Pequeno exemplo de um programa em Pascal. Tem a finalidade única e exclusiva de mostrar os diversos componentes de um programa em Pascal. { Tudo que estiver entre chaves são comentários e não são levados em conta pelo compilador. }
Program Primeiro_exemplo; { Este é o cabeçalho do programa } USES Crt; { Aqui estou utilizando uma UNIT, chamada CRT, existem várias, e inclusive você pode criar as suas. Nestas units temos Procedures e Functions previamente compiladas. } Label fim; { A partir deste instante posso utilizar o label fim. } Const Meu_Nome = ‘Alex’; { Nesta área podemos definir todas as constantes que quisermos utilizar no programa. } Type n = (Brasileira, portuguesa, inglesa, francesa, alemã, americana);
{ O Turbo Pascal possui diversos tipos de variáveis predefinidas, mas também permite definir novos tipos na sub-área type. }
Var idade : integer; altura : real; nome : string[30]; sexo : char; nacionalidade : n;
{ Todas as variáveis que forem utilizadas no corpo do programa deverão ser declaradas na sub-área Var. }
Procedure Linha; { A Procedure eqüivale ao conceito de sub-rotina. Sua estrutura pode se tornar tão complexa como de um programa. Esta Procedure, traçar uma linha na posição atual do cursor. }
Var i:integer; Begin
Darei agora, uma breve explicação de cada sub-área, pois mais para frente estudaremos cada uma delas com profundidade. Na sub-área Label, devemos declarar todos os labels que forem utilizados no corpo do programa. Os labels são utilizados em conjunto com a instrução goto. Todas as constantes que formos utilizar no nosso programa, podem se assim desejarmos, ser definidas na sub-área Const. O Turbo Pascal tem basicamente 6 tipos de variáveis pré-definidas a saber: Integer, Real, Byte, Boolean, Char e String. No entanto, podemos definir novos tipos de variáveis na sub-área Type. Todas as variáveis utilizadas no programa devem ser declaradas na sub-área Var, pois a alocação de espaço de memória para as variáveis‚ feita durante a compilação. Na sub-área Procedures, podemos definir quantas sub-rotinas quisermos. Elas são chamadas durante o programa pelos seus respectivos nomes. Finalmente, na sub-área Functions podemos definir novas funções que depois poderemos utilizar no programa embora o Turbo Pascal possua inúmeras funções pré- definidas. Estas sub-áreas só são obrigatórias caso nós estejamos precisando. Exemplo: se não vamos utilizar variáveis no nosso programa (coisa rara) então não precisamos utilizar a sub-área Var. De acordo com a definição padrão da Linguagem Pascal, estas sub-áreas devem aparecer na seqüência que foi dada anteriormente, ou seja, Label - Const - Type - Var - Procedures - Functions. Mas no Turbo Pascal isto é livre. Por fim, como dito no programa exemplo, existe a possibilidade de se usar a declaração USES, que nos permite utilizar UNITS que nada mais são do que bibliotecas de funções e Procedures previamente declaradas.
Os caracteres que podem ser utilizados no Turbo Pascal são divididos em:
Letras : ‘A’ até ‘Z’, ‘a’ até ‘z’ Números : 0,1,2,3,4,5,6,7,8 e 9 Especiais : + - * / = ^ < > ( ) [ ] { }. , : ; ‘ # $
Observações:
que achar mais conveniente.
A = 100 Em Basic. A := 100 Em Pascal.
1..30 -> Todos inteiros entre 1 e 30 inclusive.
As palavras reservadas do Turbo Pascal são palavras que fazem parte da sua estrutura e têm significados pré-determinados. Elas não podem ser redefinidas e não podem ser utilizadas como identificadores de variáveis, Procedures, Functions etc. Algumas das palavras reservadas são:
Absolute() And Array Begin Case Const Div Do Downto Else End External() File For Forward Function Goto If In Inline() Label Mod Nil Not Of Or Packed Procedure Program Record Repeat Set Shl() Shr() String() Then To Type Until Var While With xor(*)
(*) -> Não definidos no Pascal Standard.
O Turbo Pascal possui inúmeros identificadores pré-definidos, que não fazem parte da definição padrão da linguagem Pascal. Esses identificadores consistem em Procedures e Functions, que podem ser utilizados normalmente na construção de programas. Exemplos:
ClrScr : Limpa a tela de vídeo. DelLine : Deleta a linha em que está o cursor e assim por diante.
Constantemente, novas Procedures e Functions estão sendo criadas pela Borland (criadora do Turbo Pascal), aumentando desta forma o número de identificadores. São UNITS que tornam o Turbo Pascal mais poderoso do que ele já é.
Tipo Faixa Digitos Bytes
real 2.9e-39..1.7e38 11-12 6 single 1.5e-45..3.4e38 7-8 4 double 5.0e-324..1.7e308 15-16 8 extended 3.4e-4932..1.1e4932 19-20 10 comp -9.2e18..9.2e18 19-20 8
Strings são conjunto de caracteres entre aspas simples. Exemplos:
‘isto é uma string’. ‘123456’. Etc.
Existem alguns caracteres que têm significados especiais. São os caracteres de controle. Exemplos:
Control G -> Bell ou beep. Control L -> Form Feed. Etc.
Em Turbo Pascal, também podemos utilizar estes caracteres. Para tanto, eles devem ser escritos pelo seus valores ASCII correspondentes, precedidos do símbolo #, ou então a letra correspondente precedida do símbolo ^. Exemplo:
Control G -> #7 ou ^G.
Como já dissemos, todas as variáveis que forem utilizadas no corpo do programa, devem ser declaradas numa sub-área específica chamada Var. Para estudarmos essa sub-área devemos primeiro ver os tipos de variáveis pré- definidos em Turbo Pascal.
Os tipos de dados pré-definidos em Turbo Pascal são divididos em duas categorias:
Escalares Simples:
Escalares estruturados:
Inicialmente, iremos estudar os escalares simples e o tipo String pela sua utilização prática inicial. Os demais tipos estruturados serão vistos mais para a frente.
Char: O tipo char corresponde a todos os caracteres que podem ser gerados pelo teclado tais como dígitos, letras e símbolos tais como &, #, * e etc. Os caracteres devem vir entre aspas simples. Boolean: O tipo boolean só pode assumir os valores FALSE e TRUE. String: Este tipo é chamado de estruturado ou composto pois‚ constituído a partir de um tipo simples que é o char. O tipo string‚ composto por um conjunto de caracteres entre aspas simples. Shortint, Integer, Longint, Byte, Word: Ver tabela acima. Real, Single, Double, Extended, Comp: Ver tabela acima.
Esta é a sub-área onde devemos declarar todas as variáveis que iremos utilizar em nosso programa. Exemplo:
Program Exemplo; (* Cabeçalho do programa. *) Var idade, numero_de_filhos : byte; altura : real; sexo : char; nome : string[30]; sim_ou_nao : boolean; quantidade : integer;
(* Aqui começa o programa. *)
Begin idade:=34; numero_de_filhos:=2;
O identificador deve seguir as regras dadas anteriormente e entre os parênteses estão os valores que podem ser assumidos. Exemplos:
Type cor = (azul, vermelho, branco, verde, amarelo); dia_util = (segunda, terça, quarta, quinta, sexta); linha = string[80]; idade = 1..99;
(* A partir deste instante, além dos tipos de dados pré-definidos, podemos também utilizar os novos tipos definidos cor, dia_util, linha e idade. *)
Var i : integer; d : idade; nome : linha; dia : dia_util; cores : cor;
(* Etc. *)
Observação: Quando damos os valores que os dados podem assumir através da declaração type, o Turbo Pascal assume, automaticamente, que o valor da direita vale mais que o da esquerda e assim por diante. Por exemplo: no caso da definição de cor, amarelo vale mais que verde, que por sua vez vale mais que branco e assim por diante.
Nesta sub-área, podemos definir tantas constantes quantas quisermos. Sintaxe:
Const meu_nome = ‘Alex’; cor_preferida = ‘verde’; numero_maximo = 24345;
(* E assim por diante. *)
Toda vez que nos referirmos às constantes acima, o Turbo Pascal substituí- las-á pelos seus respectivos valores.
Existem algumas constantes pré-definidas e que podemos utiliza-las sem ter que declará-las. São elas:
NIL Pointer nulo, veremos mais adiante. MAXINT = 32767
A declaração de variáveis na sub-área Var, apenas reserva espaço de memória para elas, mas não as inicializa, ou seja, até que se atribua valores a elas, seus valores serão desconhecidos. Sob certas circunstâncias, seria interessante que pudéssemos ao mesmo tempo em que declaramos a variável, dar seu valor inicial. Isto é possível com o conceito de constante tipada cuja sintaxe é:
Const variável : tipo = valor;
Exemplos:
Const Contador : integer = 100; c : char = ‘A’;
Estamos definindo duas variáveis, uma chamada contador que é inteira e vale inicialmente 100, e outra chamada c que é do tipo char e cujo valor inicial é ‘A’.
Programa exemplo: Mostra como utilizar operadores aritméticos.
Program Operadores_aritimeticos; Uses CRT;
Var x,y,z : integer; r1,r2 : real; Begin
O Turbo Pascal possui ao todo 7 operadores relacionais que são muito utilizados nas tomadas de decisões, são eles:
= Igual. <> Diferente.
Maior que. < Menor que. = Maior ou igual que. <= Menor ou igual que. IN Testa se um elemento está incluso em um conjunto.
Exemplos:
( A = B ) FALSE. ( A < B ) TRUE.
( A <> B ) TRUE. ( A = B ) FALSE.
A avaliação ser verdadeira se uma ou outra expressão for verdadeira, no caso, como C < D então a resposta é TRUE.
Os operadores entre bits só podem ser aplicados em dados dos tipos byte ou integer e o resultado é do tipo integer. Eles agem bit a bit e podem ser aplicados na notação hexadecimal ou decimal. São eles:
SHL - SHift Left
Desloca n bits à esquerda. Durante o deslocamento, os bits à esquerda são perdidos e dígitos zeros preenchem a posição direita. Exemplos:
X Shl 2 = 01010100. X Shl 5 = 10100000.
55 = 00110111 deslocando 3 à esquerda ficaria: 10111000 que é igual a 184.
$F0 = 11110000 deslocando 2 à esquerda ficaria: 11000000 que é igual a $C0.
SHR - SHift Right.
Desloca n bits à direita. Durante o deslocamento, os bits à esquerda são preenchidos com zeros e os da direita são perdidos. Exemplos:
X Shr 3 = 00010101. X Shr 6 = 00000010.
55 = 00110111 deslocando 3 à direita ficaria: 00000110 que é igual a 6.
$F0 = 11110000 deslocando 2 à direita ficaria: 00111100 que é igual a $3C
OBS: Já sei, você não entende a numeração de base 2, bem vou tentar em poucas palavras explicar a base 2. Nós operamos na base 10, porque trabalhamos com 10 algarismos, 0..9, certo? Bem na base 2 operamos somente com 2 algarismos, o 0 e o
Base 10 Base 2
ClrScr; i:=255; j:=NOT(i); Writeln(j); (* Será escrito 0. *) End.
Este operador realiza a operação E lógico bit a bit. Relembrando, a operação E resulta em 1 se e somente se os dois operandos forem iguais a 1, caso contrário, o resultado será igual a 0. Exemplos:
$0F AND $F0 = $0 pois. $0F = 00001111. $F0 = 11110000. 00001111 AND 11110000 = 00000000.
255 AND 55 = 55 pois. 255 = 11111111. 55 = 00110111. 11111111 AND 00110111 = 00110111.
34 AND 76 = 0 pois. 34 = 00100010. 76 = 01001100. 00100010 AND 01001100 = 00000000.
OR
Este operador realiza a operação OU lógico bit a bit. Relembrando, a operação OU resulta em 1 se um ou os dois operandos forem iguais a 1. Exemplos:
$0F OR $F0 = $FF pois. $0F = 00001111. $F0 = 11110000. 00001111 OR 11110000 = 11111111.
255 OR 55 = 255 pois. 255 = 11111111. 55 = 00110111. 11111111 OR 00110111 = 11111111.
34 OR 76 = 110 pois. 34 = 00100010. 76 = 01001100. 00100010 OR 01001100 = 01101110.
Este operador realiza a operação OU EXCLUSIVO lógico bit a bit. Relembrando, a operação OU EXCLUSIVO resulta em 1 se os operandos forem diferentes entre si. Exemplos:
$0F XOR $F0 = $FF pois. $0F = 00001111. $F0 = 11110000. 00001111 XOR 11110000 = 11111111.
255 XOR 55 = 200 pois. 255 = 11111111. 55 = 00110111. 11111111 XOR 00110111 = 11001000.
34 XOR 76 = 110 pois. 34 = 00100010. 76 = 01001100. 00100010 XOR 01001100 = 01101110.
Esta operação‚ representada pelo sinal de adição, ou seja, +. Os operandos devem ser do tipo string ou char. Exemplo:
‘Isto é uma ‘ + ‘String’ = ‘Isto é uma String’.
Estas são as principais Procedures destinadas a exibir todos os tipos de dados no vídeo. A diferença entre Write e Writeln reside no fato de que a Procedure Write escreve o parâmetro, e mantém o cursor do lado daquilo que foi escrito, enquanto que Writeln passa o cursor para a próxima linha. Estas Procedures possuem 3 formas de sintaxes, a saber:
Primeira forma:
Write(parâmetro_1, Parâmetro_2, ...);
Exemplo:
Program Exemplo; Uses CRT;