(Parte 1 de 13)

APRESENTAÇÃO8
CAPÍTULO I – INTRODUÇÃO9
1. A Linguagem Pascal9
2. Turbo Pascal9
3. Compilação e Linkedição9
4. Ambiente de Desenvolviment o10
5. Execução de um Programa1
CAPÍTULO I – DADOS NO PASCAL12
1. Manipulando Dados12
2. Variáveis12
3. Tipos de Dados12
3.1. O Tipo Integer13
3.2. O Tipo Byte13
3.3. O Tipo Real13
3.4. O Tipo Char14
3.5. O Tipo Boolean15
3.6. O Tipo String15
3.7. O Tipo Word15
3.8. O Tipo Shortint15
3.9. O Tipo Longint15
3.10. O Tipo Single16
3.1 O Tipo Double16
3.12. O Tipo Comp16
3.13. O Tipo Extended16
4. Comando de Atribuição16
5. Operadores Aritméticos17
6. Operadores Lógicos17
7. Operadores Relacionais18
CAPÍTULO I – CRIANDO OS PRIMEIROS PROGRAMAS19
1. Estrutura de um Programa19
2. Área de Cabeçalho19
3. Área de Definições e Declarações19
3.1. Definição de Units19
3.2. Declaração de um Label19
3.3. Declaração de Constantes20
3.4. Declaração de Variáveis20
4. Área do Programa Principal20
5. Procedimentos de Entrada e Saída21
5.1. Procedimento READ21
5.2. Procedimento WRITE21
6. Procedimentos de Controle de Vídeo2
6.1. Textmode2
6.2. TextColor23
6.3. Textbackground23
6.4. Clrscr23
6.5. Gotoxy(x,y)23
CAPÍTULO IV – ESTRUTURAS DE CONDIÇÃO25
1. Decisão25
2.1. Aninhamento de Estruturas IF26
3. A Estrutura CASE26
CAPÍTULO 5 – ESTRUTURAS DE REPETIÇÃO29
1. Introdução29
2. Estrutura de Repetição FOR29
2.1. Aninhamento de Estruturas FOR30
3. Estrutura de Repetição WHILE30
4. Estrutura de Repetição REPEAT UNTIL31
CAPÍTULO VI – FUNÇÕES E PROCEDIMENTOS PREDEFINIDOS3
1. Funções e Procedimentos Matemáticos3
1.1. EXP(num)3
1.2. LN(num)3
1.3. SQR(num)3
1.4. SQRT(num)3
1.5. ABS(num)3
1.6. INT(num)3
1.7. TRUNC(num)3
1.8. ROUND(num)3
1.9. FRAC(num)34
1.10. SIN(num)34
1.1. COS(num)34
1.12. VAL(atr,num,code)34
1.13. STR(num,str)34
2. Funções e Procedimentos Booleanos34
2.1. Keypressed34
2.2. ODD(num)34
3. Funções e Procedimentos Ordinais35
3.1. INC(num, val)35
3.2. DEC(num,val)35
3.3. SUCC(num)35
3.4. PRED(num)35
3.5. ORD(par)35
4. Funções e Procedimentos de Caracter35
4.1. UPCASE(char)35
4.2. CHR(code)36
4.3. READKEY36
5. Funções e Procedimentos de String36
5.1. INSERT(str,str_destino,pos_inicio)36
5.2. DELETE(str,pos_inicio,quant)36
5.3. CONCAT(str1,str2,...,strN)36
5.4. COPY(str,pos_ inicio,quant)36
5.5. LENGTH(str)36
5.6. POS(str_proc,str)37
6. Funções e Procedimentos Diversos37
6.1. CLREOL37
6.2. DELLINE37
6.3. INSLINE37
6.4. SOUND (freq)37
6.5. NOSOUND37
6.6. DELAY(ms)37
6.8. RANDOMIZE38
6.9. WHEREX38
6.10. WHEREY38
6.1. EXIT38
CAPÍTULO VII – UNITS39
1. Definição39
1.1.System39
1.2.Crt39
1.3. Dos39
1.4. Graph39
1.5. Printer39
1.6. Overlay39
2. Criando Units40
CAPÍTULO VIII – A UNIT CRT42
1. Unit CRT42
1.1. ASSIGNCRT42
1.2. WINDOW42
1.3. HIGHVIDEO42
1.4. LOWVIDEO42
1.5. NORMVIDEO42
CAPÍTULO IX – A UNIT DOS43
1. Unit DOS43
2. Funções e Procedimentos de Data e Hora43
2.1. GETDATE (ano,mês,dia,semana)43
2.2. GETTIME(hora,min,s,cent_s)43
2.3. SETDATE (ano,mes,dia)4
2.4. SETTIME (hora,min,s ,cent_s)4
2.5. PACKTIME (VAR <dt>: DATETIME; VAR <ftime>: LONGINT)4
2.6. UNPACKTIME (<ftime>: LONGINT; VAR <dt>: DATETIME)4
2.7. GETFTIME (VAR <arquivo>; VAR <dh>:LONGINT)45
2.8. SETFTIME (VAR <arquivo>; VAR <ftime>:LONGINT)45
3. Funções e Procedimentos de Disco45
3.1. DISKFREE (drive)45
3.2. DISKSIZE(drive)45
3.3. GETVERIFY(bol)45
3.4. SETVERIFY(bol)46
4. Funções e Procedimentos Diversos46
4.1. DOSVERSION46
4.2. GETCBREAK(bol)46
4.3. SETCBREAK(bol)46
4.4. ENVCOUNT46
4.5. ENVSTR(ind)46
4.6. GETENV(str)46
4.7. EXEC47
4.8. DOSEXITCODE47
4.9. FEXPAND47
4.10. FSEARCH47
4.1. FSPLIT47
4.12. FINDFIRST47
4.14. GETFATTR48
4.15. SETFATTR48
4.16. GETINTVEC48
4.17. SETINTVEC48
4.18. SWAPVECTORS48
4.19. INTR48
4.20. MSDOS48
4.21. KEEP48
CAPÍTULO X – A UNIT GRAPH49
1. Unit GRAPH49
2. Procedimentos Diversos49
2.1. DETECTGRAPH49
2.2. INITGRAPH49
2.3. GETDRIVERNAME49
2.4. GETMODENAME49
2.5. GETMODERANGE49
2.6. GRAPHRESULT49
2.7. GETGRAPHMODE49
2.8. SETGRAPHMODE50
2.9. GETMAXMODE50
2.10. GRAPHERRORMSG50
2.1. CLOSEGRAPH50
2.12. ARC50
2.13. GETARCCOORDS50
2.14. BAR50
2.15. BAR3D50
2.16. CIRCLE50
2.17. ELLIPSE51
2.18. LINE51
2.19. LINEREL51
2.20. LINETO51
2.21. MOVETO51
2.2. MOVEREL51
2.23. GETY51
2.24. GETX51
2.25. GETMAXX51
2.26. GETMAXY51
2.27. RECTAN GLE51
2.28. DRAWPOLY52
2.29. SECTOR52
2.30. FILLPOLY52
2.31. SETGRAPHBUFSIZE52
2.32. FILLELLIPSE52
2.3. FLOODFILL52
2.34. GETASPECTRATIO52
2.35. SETASPECTRATIO52
2.36. GETCOLOR52
2.37. GETMAXCOLOR53
2.38. SETCOLOR53
2.39. GETBKCOLOR53
2.41. GETPALETTE53
2.42. SETPALETTE53
2.43. GETDEFAULTPALETTE53
2.4. SETALLPALETTE53
2.45. OUTTEXT53
2.46. OUTTEXTXY53
2.47. GETPALETTESIZE54
2.48. SETRGBPALETTE54
2.49. CLEARDEVICE54
2.50. SETTEXTJUSTIFY54
2.51. SETTEXTSTYLE54
2.52. GETTEXTSETTINGS54
2.53. TEXTHEIGHT54
2.54. TEXTWIDTH54
2.5. GETPIXEL54
2.56. PUTPIXEL5
2.57. GETLINESETTINGS5
2.58. SETLINESTYLE5
2.59. PIESLICE5
2.60. SETFILLPATTERN5
2.61. GETF ILLPATTERN5
2.62. SETFILLSTYLE5
2.63. GETFILLSETTINGS5
2.64. REGISTERBGIDRIVER5
2.65. REGISTERBGIFONT56
2.6. INSTALLUSERDRIVER56
2.67. INSTALLUSERFONT56
2.68. SETUSERCHARSIZE56
2.69. SETWRITEMODE56
2.70. SETVIEWPORT56
2.71. CLEARVIEWPORT56
2.72. GETVIEWSETTINGS56
2.73. GRAPHDEFAULTS57
2.74. RESTORECRTMODE57
2.75. IMAGESIZE57
2.76. GETIMAGE57
2.7. PUTIMAGE57
2.78. SETACTIVEPAGE57
2.79. SETVISUA LPAGE57
CAPÍTULO XI – A UNIT OVERLAY58
1. Unit OVERLAY58
2. Procedimentos Diversos58
2.1. OVRINIT58
2.2. OVRINITEMS58
2.3. OVRGETBUF58
2.4. OVRSETBUF58
2.5. OVRCLEARBUF58
2.6. OVRGETRETRY58
2.7. OVRSETRETRY59
CAPÍTULO XII – TIPOS DEFINIDOS PELO USUÁRIO60
2. Definição60
3. Operações com Tipos Enumerados60
4. Tipo Derivado Faixa61
CAPÍTULO XIII – PROCEDURES63
1. Procedimentos63
2. Definição63
3. Chamadas a Procedures64
4. Parâmetros das Procedures65
5. Localidade65
CAPÍTULO XIV – FUNCTIONS67
1. Funções67
2. Definição67
CAPÍTULO XV – ARRAYS UNIDIMENSIONAIS70
1. Introdução70
2. Definição e Declaração de um Array Unidimensional70
3. Constante Array Unidimensional72
CAPÍTULO XVI – ARRAYS MULTISIMENSIONAI S73
1. Matrizes73
1.1. Acessando Elementos da Matriz73
2. Matriz Constante74
3. Aplicações com Matrizes74
3.1. Construção de Matrizes74
3.2. Somando Duas Matrizes75
3.3. Matrizes Transpostas76
CAPÍTULO XVII – TIPOS ESTRUTURADOS - REGISTRO78
1. Introdução78
2. Declaração78
3. Operações com tipo Record79
4. O comando WITH80
5. Record dentro de Record80
6. Constante Record81
7. Array de Records81
8. Record com Variante82
CAPÍTULO XVIII – TURBO DEBBUGER84
1. Definição84
2. Execução Linha-a-linha Usando o Debugger84
CAPÍTULO XIX – I/O CHECKING86
1. Run-time Error86
CAPÍTULO X – O TIPO TEXT - ARQUIVOS87
1. Introdução87
2. Arquivos de Dados87
3. Tipos de Arquivos87
4. Declaração e Assinalamento de Arquivos -Texto8
5. Abrindo um Arquivo -Texto89
6. Escrevendo Dados num Arquivo -Texto90
8. Lendo Dados de um Arquivo -Texto91
APÊNDICE A – ERROS DE COMPILAÇÃO93
APÊNDICE B – ERROS DE EXECUÇÃO96
APÊNDICE C – PALAVRAS RESERVADAS97
APÊNDICE D – TECLAS DE FUNÇÃO9
APÊNDICE E – GRÁFICOS NOS PASCAL100
1. Introdução100
2. Inicialização da BGI100
1.1. Escrita de um Programa Básico Usando a BGI100
1.2. Trabalhando com Coordenadas101
1.3. Endereçamento por linha e coluna da tela101
3. Padrões de Preenchimento Pré -Definidos102
4. Padrões de preenchimento pré -definidos102

Apostila de Turbo Pascal 7.0 8

Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo.

Algoritmo é um caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos.

O aprendizado de algoritmos não se consegue a não ser através de muitos exercícios. Não se aprende algoritmos apenas copiando e estudando. Algoritmos só se aprendem construindo e testando.

"A rocha é imensa e dura. O cortador bate uma, duas, três, dez vezes, nenhuma rachadura. Ele dá 100 marteladas, só tirando lascas. Na centésima primeira batida, a rocha imensa e dura se parte em duas. O cortador de pedras sabe que não foi somente aquela martelada a que conseguiu, mas também todas as que vieram antes".

"E na próxima pedra, o cortador pode pegar uma ferramenta mais apropriada e cortar a pedra mais rapidamente".

Comentários, críticas e sugestões serão muito bem-vindos e podem ser enviados para o email giselle@ucam-capos.br.

Home page da disciplina: http://www.ucam-campos.br/graduacao/computacao/disciplinas/matriz2/2periodo/tec_prog1/tec_prog1.htm

Giselle Teixeira de Almeida Campos dos Goytacazes, março de 2003.

Apostila de Turbo Pascal 7.0 9

Este capítulo tem por objetivo dar ao leitor os principais conhecimentos necessários ao aprendizado da Linguagem Turbo Pascal.

1. A Linguagem Pascal

A Linguagem Pascal destina-se à programação de computadores. Seu nome trata-se de uma homenagem ao matemático e filósofo francês, Blaise Pascal (1623-1662), criador da primeira calculadora mecânica. Esta linguagem foi desenvolvida por volta de 1968, por Niklaus Wirth, no Technical University, em Zurique, na Suíça, com o objetivo de ensinar aos seus alunos a programar em ALGOL e PLI. Desde então, as qualidades da Linguagem Pascal vêm sendo universalmente reconhecidas.

A criação da Linguagem Pascal teve por objetivo a obtenção de uma linguagem simples, capaz de incentivar a confecção de programas claros e facilmente legíveis, favorecendo a utilização de boas técnicas de programação. Suas características foram criteriosamente escolhidas visando a permitir a obtenção de programas confiáveis, modularizados e bem estruturados, processáveis por compiladores compactos, eficientes e econômicos.

Sob outros aspectos, a Linguagem Pascal inovou, em relação às linguagens existentes até então, ao apresentar e utilizar outros conceitos: criação de novos tipos e subtipos dentro de um programa; manipulação de tipos enumeráveis; a estruturação de dados, que permite criar e manipular, além de arranjos, também registros, conjuntos e arquivos; a alocação dinâmica de variáveis, com o auxílio de ponteiros; declaração de identificadores para constantes: utilização de procedimentos que lêem e escrevem em campos individuais em vez de registros completos, uso de procedimentos e função recursivos, etc.

2. Turbo Pascal

Em 1970 foi disponibilizado o primeiro compilador para a Linguagem Pascal, ainda um produto acadêmico. Foi em novembro de 1983 que surgiu a primeira versão do Turbo Pascal, criada pela Borland International, logo atualizada para a versão 2.0. Naquela época, a Borland era uma pequena e desconhecida empresa de

Scotts Valley. Ainda na década de 80, foram lançadas outras versões: 3.0, 4.0, 5.0, 5.5, 6.0, e o 7.0. O nosso objetivo de estudo é a versão 7.0. A mesma apresenta várias características importantes:

· É uma linguagem extremamente rápida, tanto no tempo de compilação quanto no tempo de execução dos programas.

• Embora o compilador possa usar arquivos criados por muito editores de texto, o editor do Turbo Pascal é extremamente eficiente e está diretamente ligado às rotinas de manipulação de erros do compilador. Quando o compilador detecta um erro, o controle é automaticamente transferido para o editor e o cursor indica a localização do erro juntamente com uma mensagem de descrição.

• O Turbo Pascal permite utilizar com eficiência os recursos de hardware do seu computador assim, por exemplo, utilizando declarações do Pascal, você pode desenhar na tela e compor músicas. Os programadores mais experientes podem combinar programas em Pascal com subrotinas em linguagem de máquina e se comunicarem diretamente com os terminais de entrada e de saída (I/O) e com o sistema operacional do computador.

3. Compilação e Linkedição

Quando escrevemos um programa em qualquer linguagem de alto nível (como C, Pascal, Delphi, Java, VisualBasic, etc), utilizamos um editor de textos para escrever uma série de comandos e códigos que desejamos que o computador execute. Este arquivo contendo estes códigos e comandos em linguagem de alto nível é chamado programa fonte.

Apostila de Turbo Pascal 7.0 10

Entretanto, o computador não é capaz de compreender os comandos contidos neste programa (ou arquivo) fonte, pois a única linguagem que o computador entende é a linguagem de baixo nível, conhecida como linguagem de máquina, extremamente complexa e desagradável para os padrões humanos. Assim, deve haver um processo de “tradução” que transforma o nosso programa fonte em um programa equivalente escrito em linguagem de máquina. As duas principais maneiras de realizar este processo de tradução são chamadas de interpretação e compilação.

No processo de interpretação, o programa interpretador analisa cada linha de seu programa fonte separadamente, verifica se esta linha está correta e, caso esteja, gera uma linha equivalente em linguagem de máquina e realiza a execução. Este processo se repete até que a última linha do seu programa tenha sido executada. No final, o código em linguagem de máquina resultante da tradução das linhas de seu programa fonte não é guardado. Todas as linhas são descartadas e todo o processo de tradução deve ser repetido em uma nova execução.

Já no processo de compilação, o programa compilador da linguagem analisa todo o programa fonte gerado.

Caso nenhum erro seja encontrado, todo o programa fonte será traduzido para uma linguagem de baixo nível e armazenado em um arquivo separado, chamado de arquivo objeto. Um processo adicional chamado de linkedição, transforma este arquivo objeto em um arquivo executável, também capaz de ser compreendido pela máquina. O arquivo executável, como o próprio nome indica, está pronto para ser executado pelo computador.

Uma das principais vantagens da compilação está no fato de que, uma vez gerado o arquivo executável, ele pode ser utilizado inúmeras vezes sem a necessidade da presença do compilador ou qualquer outro utilitário, ao passo que os interpretadores são sempre necessários para a execução de seus programas.

Outra vantagem está na velocidade de execução. Um programa compilado possui uma execução muito mais rápida que um equivalente interpretado, pois a interpretação sempre tem de realizar a tradução de cada linha do seu programa fonte.

Por último, os compiladores garantem segurança em relação ao seu código-fonte, já que ele não é necessário para a execução de um programa já compilado.

4. Ambiente de Desenvolvimento

O ambiente de desenvolvimento do Turbo Pascal é composto de um editor de texto, um compilador, um programa ligador (link) e um depurador (debugger), harmonicamente integrados.

O número de janelas que podem ser abertas simultaneamente na área de trabalho está limitado pelo espaço na memória RAM do equipamento. Cada janela pode conter um arquivo. Um mesmo arquivo pode ser colocado em várias janelas diferentes, caso haja necessidade de visualizar simultaneamente áreas diferentes. Apenas a janela ativa é completamente visível.

TECLAS EFEITO F5 Zoom da janela ativa F6 Próxima janela F3 Abrir arquivo F2 Salvar arquivo Alt+x Sair do Turbo Pascal Alt+n Ativar a janela n Alt+F3 Fechar arquivo Alt+F5 Janela do Usuário Alt+F9 Compilar o programa Ctrl+Ins Copiar conteúdo marcado para a memória intermediária (clipboard) Ctrl+F9 Rodar o programa Shift+Del Mover conteúdo marcado para o clipboard Shift+F6 Janela anterior Shift+Ins Colar o conteúdo copiado para o clipboard

Tabela 1.1 - Tabela de teclas de atalho para janelas e operações.

Apostila de Turbo Pascal 7.0 1

5. Execução de um Programa

Após editar um arquivo é natural compilá-lo e rodá-lo, para ver os resultados do programa. Durante esse processo, o Pascal irá procurar erros em tempo de compilação. Senão houver erros, o programa rodará normalmente. Caso contrário, o processo de compilação será interrompido e o compilador indicará o erro e a sua posição.

Para executar um programa, ative a opção RUN do Menu RUN ou pressione Ctrl+F9.

Ao terminar a execução, o Pascal volta para a janela de edição. Para ver os resultados do programa, basta pressionar Alt+F5.

A compilação normalmente é feita na memória. Se desejar compilar o programa para um disco em um arquivo executável, mude a opção DESTINATION do menu COMPILE para DISK.

Apostila de Turbo Pascal 7.0 12

Este capítulo tem por objetivo demonstrar ao leitor a utilização de dados nos seus programas escritos em Pascal.

1. Manipulando Dados

Quando escrevemos nossos programas, trabalhamos com dados que nós fornecemos ao programa (literais) e dados são fornecidos ao programa através do usuário (variáveis). No Turbo Pascal, esses dados são divididos em diversos tipos, cada qual com a sua função específica.

2. Variáveis

O objetivo das variáveis é armazenar dados na memória do computador. Podemos utilizar as literais em nossos programas, mas sem as variáveis não seria possível, por exemplo, solicitar dados ao usuário para alimentar o programa.

Uma variável, no Pascal, é referenciada por um identificador e, por isso, sua criação segue as regras da formação dos identificadores: (os identificadores servem para nomear procedimentos, funções, tipos de dados, etc).

· Os identificadores devem começar com uma letra (A..Z) ou por um sinal de sublinhado/underscore (_).

(Parte 1 de 13)

Comentários