APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO E LINGUAGEM PASCAL

 0  0  63  2019-02-05 08:25:56 Report infringing document

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 estepossuí 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 utilizaros 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 emuma 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

  ) e regras de sintaxe que permitem aconstrução de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador. Por exemplo, regras de sintaxe podem especificar que cada parênteses aberto em uma expressão aritmética devecorresponder a um parênteses fechado, e que dois comandos quaisquer devem ser separados por um ponto-e-vírgula.

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 natab. Linguagens de Baixo Nível Utiliza mnemônicos para representar instruções elementaresEx.: Assembly Linguagens de Alto Nível Utiliza instruções próximas da linguagem humana de forma a facilitar o raciocínio.

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

  Linguagens de Máquina são projetadas levando-se em conta os seguintes aspectos : Por outro lado, linguagens de programação de alto nível são projetadas em função de : 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 ? MONTADOREfetua a tradução de linguagem de montagem ( Assembly ) para a linguagem de máquina, da seguinte forma: INTERPRETADOREfetua a tradução a de uma linguagem de alto nível para linguagem de máquina da seguinte forma: COMPILADOREfetua 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 doprograma.

1.3 Critérios de Qualidade de um Programa

  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 deprocessamento, 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.

1.4 A Linguagem Pascal

  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 DevelopmentEnvironment ), consistindo de um conjunto de ferramentas de desenvolvimento integradas.

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

  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. Após os nomes de cada variável deverá ser utilizado o símbolo dois-pontos( : ), e após estes é mencionado o tipo de dado que a variável irá receber, seguido de ponto-e-vírgula.

A, B, C :

  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.

3 VARIÁVEIS e CONSTANTES

  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; porexemplo, SalarioMinimo é mais fácil de se ler do que SALARIOMINIMO. Um tipo de dados especifica as características, ou seja os valores eoperações possíveis de serem utilizados com um dado desse tipo.

3.4.1 Tipos de Dados Inteiros

  Este tipo de dado é referenciado pelo identificador string, podendo armazenar de 1 até 255 caracteres. Sintaxe: variável : string[tamanho]; Vejamos um exemplo do uso de strings: var Frase : string;Nome : string[45]; Existe ainda o tipo char, utilizado da mesma forma que o tipo string, porém com uma pequena diferença: é usado para strings de apenas um caracter.

3.4.4 Tipos Lógicos

  Vejamos um exemplo da utilização do tipo de dado boolean: var Aprovado : boolean;Confirma : boolean; 3.5 Variáveis Variável, no sentido de programação, é uma região previamente identificada, que tem por finalidade armazenar informações (dados) de um programatemporariamente. onde: tipo-de-dado é um dos tipos predefinidos ou um tipo definido pelo usuário:Vejamos um exemplo: var Soma, Total, Salario : real;Idade, Contador : integer; 3.6 Constantes Uma constante é um valor que não pode ser alterado durante a execução do programa, sendo que seu tipo é definido por seu conteúdo.

4 OPERADORES E EXPRESSÕES

  Exemplo: o símbolo + é um operador que representa a operação aritmética de adição. Boolenas: Uma expressão é booleana quando seu resultado é do tipo boolean(TRUE ou FALSE), podendo seu operando serem de qualquer tipo de dados.

4.3 Tipos de Operadores

  4.3.1 Operador de Atribuição O operador de atribuição é utilizado para atribuir o valor de uma expressão a uma variável. Operador Símbolo Divisão Inteira ( truncada ) divResto da Divisão Inteira mod T ABELA 4.1 – OPERADORES ARITMÉTICOS var A, B : integer; C, D : real;beginA := 1; B := 3;C := 5; D := 10;A := 1 + B; A := B + D; { errado, D é real }B := 10 div 3; A := 10 mod 3;C := D / C; D := 10 div C; { errado, o operado div é só parainteiros } A := -1; B := 5 + A; B := -A;C := D * A; B := C * B; { errado, C é real }end.

4.3.3 Operador de Concatenação

  O operador de concatenação efetua a junção de duas variáveis ou constantes do tipo string. Vejamos um exemplo: varPreNome, SobreNome, NomeCompleto : string[ 30 ];begin{ Suponhamos o nome Josias Lima Santos } PreNome := ´Josias´;SobreNome := ´Santos´; NomeCompleto := PreNome + SobreNome;writeln( NomeCompleto ); NomeCompleto := ´Jose´ + ´Maria´;writeln( NomeCompleto ); ...end.

4.3.4 Operadores Relacionais

Os operadores relacionais são utilizados para efetuar a comparação entre dados tab.4.2. Operador Símbolo Maior que > Menor que < Maior ou igual >= Menor ou igual <= Igual = Diferente <> TABELA 4.2 – O PERADORES RELACIONAIS Vejamos um exemplo: varNota1, Nota2 : real; NomeAluno1, NomeAluno2 : string[ 30 ];

A, B, C : integer;

beginA := 2; B := 3;C := 1; if B = A + C thenwriteln( B ); Nota1 := 5.0;Nota2 := 10.0; if Nota1 < Nota2 thenwriteln( Nota1 ); NomeAluno1 := ´Maria Jose´;NomeAluno2 := ´MariaJose´; if NomeAluno1 < NomeAluno2 thenwriteln( NomeAluno1 ); end.

4.3.5 Operadores Lógicos

Os operadores lógicos são utilizados para se analisar duas ou mais expressões Operador Símbolo E andOU or NÃO not 4.3 –TABELA OPERADORES LÓGICOS Vejamos um exemplo: varNota1, Nota2 : real; NomeAluno1, NomeAluno2 : string[ 30 ];

A, B, C : integer;

  beginA := 2; B := 3;C := 1; NomeAluno1 := ´Maria Jose´;NomeAluno2 := ´MariaJose´;if ( B = A + C ) and ( NomeAluno1 <> NomeAluno2 ) thenwriteln( NomeAluno1, B ); if ( A = C ) or ( NomeAluno1 = NomeAluno2 ) thenwriteln( NomeAluno1 ); if not( A = C ) thenwriteln( NomeAluno1 ); end. Abaixo, segue três tabelas, chamadas tabela-verdade, contendo o resultado do uso dos operadores lógicos sobre dois operandos.

4.4 Funções predefinidas

  Inteiro ou real real sin( x ) Calcula o seno de x em radianos inteiro ou real realsqr( x ) Calcula o quadrado de x inteiro ou real o mesmo que x sqrt( x ) Calcula a raiz quadrada de x (x>=0) inteiro ou real realodd( x ) Determina se x é par ou impar TRUE, X é par / FALSE, X é impar inteiro booleanrandom( x ) Retorna um número pseudo-aleatório entre 0 e x. Se x não for especificadoretorna um valor entre 0.0 e 1.0 inteiro realpi Retorna o valor de PI (3.1415...) Nenhum real Nome Função Objetivo Tipo Parâmetro Tipo Retorno length( x ) Determina o número de caracteres string inteiro de xconcat( x1, x2, x3,...) Concatena duas ou mais strings string string (máx 255 caracteres) copy( x, y, z ) Retorna uma subcadeia da cadeia x, string, inteiro, stringcom z caracteres, começando no inteiro caracter y.

6 ESTRUTURAS DE REPETIđấO (LOOPS)

  Existem situações onde é necessário repetir um determinado trecho de um programa um certo número de vezes. Podemos chamar as estruturas de repetição de laços ou loops, sendo que podem existir dois tipos de laços de repetição: repetições que serão executadas; e repetições que serão executadas.

6.1 Instrução for

  Quando executado o programa, o conjunto de instruções situadas abaixo da instrução for serão executadas durante 5 vezes, pois a variável I (variável de controle)inicializada com o valor 1 é incrementada com mais 1 a cada vez que o processamento passa pela instrução for. Em seguia, a instrução repeat indica que todas as instruções situadas até a instrução until deverão ser executadas até que sua condição se torne verdadeira, ou seja que o usuário responda algo diferente de SIM, e também diferente de sim.

7 VETORES, MATRIZES E REGISTROS

  Agora, imagine um programa onde precisa-se armazenar as notas de 5 provas realizadas por umaluno. Desta forma: NOTA1, NOTA2, NOTA3, NOTA4, NOTA5 : integer; Em Pascal existem estruturas que nos permitem agrupar várias informações dentro de uma mesma variável.

7.1 Vetores

  Sintaxe: <vetor> :array[tamanho] of <tipo_de_dado>; onde: vetor é o nome atribuído ao vetor, tamanho é o tamanho atribuído ao vetor, em número de elementos e tipo_de_dado é o tipo de elemento armazenado(inteiro, real...). Podemos imaginar o vetor como uma tabela com cinco colunas: NOTA 5.2 8.0 9.2 7.5 8.3 “Desenvolver um programa que efetue a leitura de 10 elementos de um vetor A do índice for par, o valor deverá ser multiplicado por 5; sendo ímpar, deverá sersomado com 5.

A, B : array[1..10] of integer;

  Após a verificação desta condição, sendo o primeiro nome maior que o segundo, efetua-se então a sua troca com a seqüência: X := NOME[I];NOME[I] := NOME[J];NOME[J] := X; Considere o vetor NOME[I] com o valor “CARLOS” e o vetor NOME[J] com o valor “ALBERTO”. Para se conseguir este efeito é necessária a Para que o vetor NOME[I] fique livre para receber o valor do vetor NOME[J], X deverá receber o valor de NOME[I], assim sendo X passa a ter o valor “CARLOS”.

7.2 Matrizes

  Sintaxe: <matriz>: array[dimensão_linha,dimensão_coluna] of <tipo_de_dado>; onde: matriz é o nome atribuído à matriz, dimensão_linha é o tamanho da matriz em número de linhas, dimensão_coluna é o tamanho da matriz em número de colunas e tipo_de_dado é o tipo do elemento armazenado(inteiros, reais...). Vamos ver mais um exemplo para fixarmos nosso conhecimento: “Desenvolver um programa de agenda que cadastre o nome, endereço, CEP, bairro e telefone de 10 pessoas.

7.3 Registros

  Sintaxe: type <identificador> = record <lista de campos e seus tipos> end; var<variavel> : <identificador_registro> onde: identificador é o nome do tipo registro e lista de campos e seus tipos é a relação de variáveis que serão usadas como campos, bem como seu tipo(real, integer...). Após a instrução var, deverá ser indicada uma variável tipo registro e a declaração do seu tipo de acordo com um identificador definido anteriormente.

8 PROCEDURES E FUNCTIONS

  A programação modular consiste num método para facilitar a construção de grandes programas, através de sua divisão em pequenas etapas, que são os módulos ourotinas e para possibilitar o reaproveitamento de código, já que podemos utilizar um módulo quantas vezes for necessário, eliminando assim a necessidade de escrever omesmo código do programa em situações repetitivas. Pode-se, então, usar o nome do procedimento ou da função dentro do corpo do programa, sempre que desejarmos que o seu bloco de comandos seja executado, isso é o que chamamos de Chamada do Procedimento ou da Função.

8.1 Utilização de Units

  Uma unit é, naverdade, uma biblioteca de funções e procedimentos. uses <unidade>; À medida que formos estudando procedimentos e funções veremos a utilização das units.

8.2 Procedures

  Escolhida a opção desejada, deverá ser solicitada a entrada de dois números, e processada a operação, deverá ser exibido o resultado.” Algoritmo Note que este programa deverá ser um conjunto de cinco rotinas sendo uma principal e 2 secundárias. A rotina principal efetuará o controle sobre as duas rotinassecundárias, que por sua vez efetuarão o pedido de leitura de dois valores, farão a operação e apresentarão o resultado obtido.

8.2.1 Variáveis Globais e Locais

  Uma variável é considerada Global quando é declarada no início de um programa escrito em Pascal, podendo ser utilizada por qualquer procedimento oufunção. Assim sendo, este tipo de variável passa a ser visível a todas as funções ou procedimentos.

8.3 Parâmetros

  Os parâmetros têm por finalidade servir como um ponto de comunicação entreé possível passar valores de uma rotina a outra rotina, através do uso de parâmetros que poderão ser formais ou reais. Serão considerados parâmetros formais quando forem declarados através de variáveis juntamente com a identificação do nome da rotina, os quais serão tratadosexatamente da mesma forma que são tratadas as variáveis globais ou locais.

8.3.1 Passagem por Valor

  A passagem de parâmetro por valor caracteriza-se pela não alteração do valor do parâmetro real, quando este é manipulado dentro da rotina. Assim sendo, o valorpassado pelo parâmetro real é copiado para o parâmetro formal, que no caso assume o papel de variável local da rotina.

8.3.2 Passagem por Referência

  Dentro da rotina é encontrada a variável FAT que é do tipo passagem de parâmetro por referência. Ao término do looping o valor da variável FAT é transferido para fora da rotina, ou seja, seu valor é transferido para a variável RETORNO.

8.4 Functions

  A definição de tipo de dado fora do parênteses, na declaração da função, indica o tipo de dado que retornará à rotina chamadora. Vejamos um exemplo completo do uso de funções: “Desenvolver um programa que faça uso de uma rotina de função que retorne o valor da adição de dois valores fornecidos como parâmetros.”Algoritmo Programa Principal: 1.

9 ARQUIVOS

  9.1 Definição de um Arquivo A manipulação de um arquivo em Pascal ocorre com a definição do tipo file, o qual se caracteriza por ser uma estrutura formada por elementos do mesmo tipodispostos de forma seqüencial, tendo como finalidade fazer a comunicação entre a memória principal e a memória secundária. Sintaxe: type<arquivo> = [text][file [of <tipo>]]; var<variavel> : <arquivo>; ou<variavel> : [text][file [of <tipo>]]; onde: arquivo é o nome de um arquivo com tipo definido, tipo é o tipo de um arquivo (text, string, real, record, etc...) e variavel é a variável que será usada pararepresentar o arquivo.

9.3 Formas de Acesso em um Arquivo

Os arquivos criados poderão ser acessados para leitura e gravação na forma seqüencial, direta ou indexada.

9.3.1 Acesso Seqüencial

  O acesso seqüencial ocorre quando o processo de gravação e leitura é feito de forma contínua, um após o outro. A forma seqüencial de acesso se torna inconveniente, pois à medida que o arquivo aumenta de tamanho, aumenta também o tempo de acesso ao mesmo.

9.4 Arquivos do Tipo Texto

  O programa acima estabelece para a variável ARQUIVO_TXT o identificador text, que tem por finalidade definir para a variável indicada o tipo de arquivo texto. Observação: quando a instrução write ou writeln é utilizada para escrever um dado em um arquivo, esta não apresenta o dado no vídeo, ficando disponível apenaspara a operação de gravação do arquivo.

9.5 Arquivos com Tipo Definido

  O programa acima estabelece para a variável ARQUIVO_INT o identificador file of integer, que tem a finalidade de definir para a variável indicada de arquivo como sendo inteiro. Um pouco abaixo éapresentada uma linha com a instrução seek(ARQUIVO_INT, filesize(ARQUIVO_INT)); que executa em um arquivo definido o mesmo efeito que a instrução append em um arquivo texto, ou seja, se o arquivo já possuir algum registro, o próximo registro será sempre colocado após o último cadastrado.

9.6 Arquivo com Tipo Definido de Registro

Em Pascal, existe um arquivo do tipo record, que nos permite desenvolver uma aplicação de forma mais profissional e com acessos mais rápidos.Sintaxe: type<nome_arquivo> = record <campos do arquivo>end; var <variavel> : <nome_arquivo>;<variavel> : file of <nome_arquivo>; Vejamos um exemplo: type BIMESTRE = array[1..4] of real; REG_ALUNO = record FLAG : char; MATRICULA : integer; NOME : string[30]; NOTAS : bimestre; end; var ALUNO : reg_aluno; ARQALU : file of reg_aluno;
RECENT ACTIVITIES
Autor
Tags

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO E LINGUAG..

Livre

Feedback