Baixe Linguagem Técnica de Programação Delphi e outras Notas de estudo em PDF para Informática, somente na Docsity!
UNIVERSIDADE TIRADENTES
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Prof. José Maria Rodrigues Santos Júnior
Linguagem Técnica de Programação
DELPHI
Aracaju 4 de fevereiro de 1997
- CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS...................................
- INTRODUÇÃO
- Fatos..............................................................................................................................................................................................
- Problemas......................................................................................................................................................................................
- Solução..........................................................................................................................................................................................
- Evolução........................................................................................................................................................................................
- CONCEITOS..................................................................................................................................
- COMPONENTES BÁSICOS DA ORIENTAÇÃO A OBJETOS........................................
- CONCEITOS ADICIONAIS..............................................................................................................
- HERANÇA................................................................................................................................
- CONCEITOS..................................................................................................................................
- CLASSES ABSTRATAS..................................................................................................................
- POLIMORFISMO............................................................................................................................
- SOBRECARGA DE OPERADORES...................................................................................................
- MÉTODOS VIRTUAIS....................................................................................................................
- UM EXEMPLO DE ORIENTAÇÃO A OBJETOS.................................................................................
- END..........................................................................................................................................
- OBJECT PASCAL..................................................................................................................
- INTRODUÇÃO.............................................................................................................................
- Estrutura de um Programa...........................................................................................................................................................
- Identificadores.............................................................................................................................................................................
- Características..............................................................................................................................................................................
- Seções de Declaração..................................................................................................................................................................
- Estrutura de uma Unit..................................................................................................................................................................
- Comentários.................................................................................................................................................................................
- PROCEDIMENTOS BÁSICOS DE ENTRADA E SAÍDA....................................................................
- Entrada.........................................................................................................................................................................................
- Saída............................................................................................................................................................................................
- TIPOS.........................................................................................................................................
- Tipos Inteiros...............................................................................................................................................................................
- Tipos Booleanos..........................................................................................................................................................................
- Tipo Sub-Faixa............................................................................................................................................................................
- Tipo Enumerado..........................................................................................................................................................................
- Tipos Ordinais.............................................................................................................................................................................
- Tipos Reais..................................................................................................................................................................................
- Tipo String...................................................................................................................................................................................
- Seção de Declaração de Tipos Definidos pelo Usuário...............................................................................................................
- Declaração de Tipos....................................................................................................................................................................
- VARIÁVEIS.................................................................................................................................
- Seção de Declaração de Variáveis...............................................................................................................................................
- Declaração de Variáveis..............................................................................................................................................................
- OPERADORES.............................................................................................................................
- Aritméticos..................................................................................................................................................................................
- Lógicos........................................................................................................................................................................................
- Bit-a-bit........................................................................................................................................................................................
- Relacionais..................................................................................................................................................................................
- Precedência..................................................................................................................................................................................
- CONSTANTES.............................................................................................................................
- Seção de Declaração de Constantes............................................................................................................................................
- Declaração de Constantes Simples..............................................................................................................................................
- Declaração de Constantes Tipadas..............................................................................................................................................
- Funções Constantes.....................................................................................................................................................................
- BLOCOS......................................................................................................................................
- ATRIBUIÇÃO..............................................................................................................................
- SELEÇÃO....................................................................................................................................
- Seleção Simples...........................................................................................................................................................................
- Seleção Múltipla..........................................................................................................................................................................
- REPETIÇÃO.................................................................................................................................
- Repetição Contada.......................................................................................................................................................................
- Repetição Condicional.................................................................................................................................................................
- Instruções de Salto.......................................................................................................................................................................
- Resumo........................................................................................................................................................................................
- CONJUNTO.................................................................................................................................
- Definição do Conjunto................................................................................................................................................................
- Conjunto Constante.....................................................................................................................................................................
- Operadores...................................................................................................................................................................................
- VETORES E MATRIZES...............................................................................................................
- Vetores.........................................................................................................................................................................................
- Matriz..........................................................................................................................................................................................
- Acesso aos Elementos.................................................................................................................................................................
- Vetor Constante...........................................................................................................................................................................
- REGISTROS.................................................................................................................................
- Definição do Registro..................................................................................................................................................................
- Acesso aos Elementos.................................................................................................................................................................
- Cláusula with...............................................................................................................................................................................
- Registro Constante.......................................................................................................................................................................
- PROCEDIMENTOS E FUNÇÕES....................................................................................................
- Escopo.........................................................................................................................................................................................
- Visibilidade..................................................................................................................................................................................
- Tempo de Vida............................................................................................................................................................................
- Procedimentos.............................................................................................................................................................................
- Funções........................................................................................................................................................................................
- Parâmetros Formais.....................................................................................................................................................................
- Parâmetro com Passagem por Valor............................................................................................................................................
- Parâmetro com Passagem por Referência...................................................................................................................................
- Parâmetro Constante....................................................................................................................................................................
- Parâmetro Aberto.........................................................................................................................................................................
- Valor de Retorno.........................................................................................................................................................................
- Chamada a um Procedimento ou Função....................................................................................................................................
- PONTEIROS.................................................................................................................................
- Definição do Tipo........................................................................................................................................................................
- Alocação de Memória..................................................................................................................................................................
- Alocação de Memória..................................................................................................................................................................
- Acesso a uma variável apontada..................................................................................................................................................
- ARQUIVOS..................................................................................................................................
- Associação com Nome Externo...................................................................................................................................................
- Abrir Arquivo para Leitura..........................................................................................................................................................
- Criar e Abrir um Arquivo Novo..................................................................................................................................................
- Abrir um Arquivo Texto para Expansão.....................................................................................................................................
- Fechar um Arquivo......................................................................................................................................................................
- Fim de Arquivo............................................................................................................................................................................
- Leitura de Dados..........................................................................................................................................................................
- Gravação de Dados......................................................................................................................................................................
- CLASSES....................................................................................................................................
- Definição de uma Classe Base....................................................................................................................................................
- Atributos e Métodos....................................................................................................................................................................
- Visibilidade..................................................................................................................................................................................
- Definição de uma Herança..........................................................................................................................................................
- Métodos Virtuais.........................................................................................................................................................................
- Métodos Abstratos.......................................................................................................................................................................
- Método Construtor.......................................................................................................................................................................
- Método Destrutor.........................................................................................................................................................................
- Referência para um Objeto..........................................................................................................................................................
- Conversão de Tipo.......................................................................................................................................................................
- Verificação de Tipo.....................................................................................................................................................................
- TRATAMENTO DE EXCEÇÃO......................................................................................................
- Aplicações Robustas....................................................................................................................................................................
- Criação de um Bloco Protegido...................................................................................................................................................
- Tratamento de Exceções..............................................................................................................................................................
- Tratamento de um Exceção.........................................................................................................................................................
- Principais Classes de Exceção.....................................................................................................................................................
- Criação de Classes de Exceção....................................................................................................................................................
- end.............................................................................................................................................
Conceitos de Programação Orientada a Objetos
Introdução
Fatos
Crescimento no tamanho das aplicações.
Aumento na complexidade das aplicações.
Necessidade de manutenção de sistemas antigos.
Aumento da demanda por sistemas novos.
Baixa produtividade.
Problemas
Necessidade de rescrever algoritmos e estruturas de dados para novas aplicações.
Mudanças em sistemas necessitam alterações em muitos módulos.
Solução
Estruturas de dados associadas às operações.
Evolução
Conceitos
Objeto Características Comportamentos Crise Evolução Programação Tradicional Programação Tradicional Programação Estruturada Programação Estruturada Programação Orientada a Objetos Programação Orientada a Objetos
Classes Abstratas
Não pode ser instanciada.
Possui métodos que não estão implementados.
Definida para ser a base de uma hierarquia.
Polimorfismo
Sobrecarga do Nome do Método
Objetos de classes diferentes podem ter métodos com mesmo nome e cada objeto responderá
adequadamente de acordo com seu método.
Métodos da mesma classe podem ter o mesmo nome, desde que possuam quantidade ou tipo de
parâmetros diferentes.
Métodos da classe derivada podem ter nomes iguais aos da classe base, inclusive com parâmetros iguais.
Sobrecarga de Operadores
Todos os operadores da linguagem, se possível, devem ser passíveis de sobrecarga.
Permite uma melhor legibilidade do código implementado.
Permite que novos tipos de dados fiquem totalmente integrados com a linguagem.
Métodos Virtuais
As mensagens são vinculadas ao objeto no momento da execução - Vínculo Tardio.
Permite maior flexibilidade de envio de mensagem.
A mesma implementação de método pode se comportar de maneira diferente, em função do objeto que
enviou a mensagem.
Diminui a eficiência.
A maior parte das linguagens deixa a cargo do programador definir quais métodos serão virtuais.
Um exemplo de Orientação a Objetos
unit Datas; interface type TData = Class (TObject) private Dia, Mes, Ano : Integer; public constructor Init (d,m,a : integer); procedure DefVal (d,m,a : integer); function AnoBis : boolean; procedure Incrementa; procedure Decrementa; procedure Adiciona (NumDeDias : integer); procedure Subtrai (NumDeDias : integer); function GetText : string; private function DiasNoMes : Integer; end; implementation constructor TData.Init (d,m,a : integer); begin dia := d; Mes := m; ano := a; end; procedure TData.DefVal (d,m,a : integer); begin dia := d; Mes := m; ano := a; end; function TData.AnoBis : boolean; begin if (ano mod 4 <> 0) then AnoBis := false else if (ano mod 100 <> 0) then AnoBis := true else if (ano mod 400 <> 0) then AnoBis := False else AnoBis := True; end; function TData.DiasNoMes : integer; begin case Mes of 1,3,5,7,8,10,12 : DiasNoMes := 31; 4,6,9,11 : DiasNoMes := 30; 2 : if (AnoBis) then DiasNoMes := 29 else DiasNoMes := 28; end; end;
procedure TData.Adiciona (NumDeDias : integer); var n : integer; begin for n := 1 to NumDeDias do Incrementa; end; procedure TData.Subtrai (NumDeDias : integer); var n : integer; begin for n := 1 to NumDeDias do Decrementa; end; end.
Object Pascal
Introdução
Estrutura de um Programa
Program ;
[uses ;]
<seções de declaração>
begin.
<instruções>
end.
Identificadores
São nomes assinalados a qualquer elemento em um programa escrito em Object Pascal. É formado por uma seqüência de letras, dígitos e sublinhados, onde somente os 63 primeiros caracteres são significativos. Não pode iniciar com um dígito. Não são permitidos espaços em branco na formação do nome.
Características
Tamanho Máximo da Linha: 126 caracteres Toda instrução finaliza em um ponto-e-vírgula.
Seções de Declaração
<Seção de declaração de constantes>
<Seção de declaração de tipos>
<Seção de declaração de variáveis>
<Seção de declaração de procedimentos e funções>
Procedimentos Básicos de Entrada e Saída
Entrada
Readln ( <lista de variáveis> )
Preenche uma variável com dados vindos do teclado. Exemplos:
Read ( Dia, Mes, Ano );
Read ( Nome );
Saída
Write ( )
ou
Writeln ( )
Imprime os valores na janela principal da aplicação. O procedimento writeln move o cursor de impressão para a linha seguinte, após a impressão dos valores Exemplos:
Writeln ( Dia, '/', Mes, '/', Ano );
Write ( Nome );
Tipos
Tipos Inteiros
Tipo Faixa Formato Shortint -128 .. 127 8 bits Sinalizado Integer -32768 .. 32767 16 bits Sinalizado Longint -2147483648 .. 2147483647 32 bits Sinalizado Byte 0 .. 255 8 bits não Sinalizado Word 0 .. 65535 16 bits não Sinalizado
Tipos Booleanos
Tipo Memória False True Boolean 1 byte 0 1 ByteBool 1 byte 0 diferente de 0 WordBool 2 bytes (uma word) 0 diferente de 0 LongBool 4 bytes (duas words) 0 diferente de 0
Tipo Sub-Faixa
..
É definido por um subconjunto de um tipo ordinal. Possui as mesmas propriedades do tipo original. Não é permitido faixa com valores do tipo longint.
Tipo Enumerado
( )
Define uma seqüência de identificadores como valores válidos para um tipo. Cada elemento da lista de identificadores é associado seqüencialmente a números inteiros, iniciando pelo número 0.
Tipos Ordinais
Tipos Inteiros e Booleanos Char (armazena um caracter) Tipo Sub-Faixa Tipo Enumerado Os tipos ordinais permitem a utilização das seguintes funções: Função Descrição Ord Retorna o número de ordem do elemento no conjunto. Pred Retorna o elemento anterior. Succ Retorna o elemento seguinte. Low Retorna o primeiro elemento do conjunto. High Retorna o último elemento do conjunto.
Tipos Reais
Tipo Faixa Dígitos Significativos Tamanho em Bytes Real 2.9 * 10-39 .. 1.7 * 1038 11-12 6 Single 1.5 * 10-45 .. 3.4 * 1038 7-8 4 Double 5.0 * 10-324 .. 1.7 * 10308 15-16 8 Extended 3.4 * 10-4932 .. 1.1 * 104932 19-20 10 Comp -2 63 +1 .. 2 63 -1 19-20 8 O tipo Comp armazena somente números inteiros na faixa aproximada de -9.2 * 10^18 a 9.2 * 10^18. Todos os tipos reais são armazenados no formato de ponto flutuante. As operações em ponto flutuante podem ser executadas tanto por Hardware como emuladas por Software.
Tipo String
string
ou
string [ ]
Armazena uma string com o tamanho máximo de até 255 caracteres. Pode ser especificado um tamanho máximo menor que 255. Permite a concatenação utilizando-se o operador +.
Operadores
Aritméticos
- Multiplicação / Divisão real div Divisão Inteira mod Resto da Divisão Inteira
Lógicos
not Não and E or OU Inclusivo xor OU Exclusivo
Bit-a-bit
not Não and E or OU Inclusivo xor OU Exclusivo shl Deslocamento a esquerda shr Deslocamento a direita
Relacionais
= Igual
Maior < Menor <> Diferente = Maior ou Igual <= Menor ou Igual
Precedência
- (unário), - (unário), not *, /, div, mod, and, shl, shr
- (binário), - (binário), or, xor =, <>, <, >, <=, >=
Constantes
Categoria Definição Numérica Inteira Qualquer seqüência de dígitos decimais (0 a 9), sinalizados ou não, entre 2.147.483.648 e 2.147.483.647. Numérica Real Qualquer seqüência de dígitos decimais (0 a 9), sinalizados ou não, com um separador decimal ou em notação científica. Hexadecimal Qual seqüência de dígitos hexadecimais (0 a F), precedidos por um sifrão ($),
entre $00000000 e $FFFFFFFF. Caracter Um único caracter entre apóstrofos ou o caracter # seguido de um número inteiro entre 0 e 255 (código ASCII). String Qualquer seqüência de caracteres escrito em uma linha de programa e delimitado por apóstrofos. Dois apóstrofos ëm seqüência dentro de uma string representam um único.
Seção de Declaração de Constantes
const
<declarações de constantes>
Declaração de Constantes Simples
= ;
Declaração de Constantes Tipadas
: = ;
Utilizadas como variáveis inicializadas no momento da definição.
Atribuição
<variável> := <expressão>
Armazena um valor em uma variável. Exemplos:
Dia := 20;
Nome := 'José';
Seleção
Seleção Simples
Permite que o fluxo de execução seja desviado em função de uma condição
if <condição> then
<instrução>
else
<instrução>
Exemplos:
if Nota < 5 then
Writeln('Reprovado')
else
Writeln('Aprovado');
Seleção Múltipla
Permite que o fluxo de execução seja desviado em função de uma condição
case <expressão ordinal> of
<lista de opções> : <instrução>;
[else
<instrução>;]
end
Exemplos:
case EstadoCivil of
'C': Writeln('Casado');
'S': Writeln('Solteiro');
'D': Writeln('Divorciado');
'V': Writeln('Viúvo');
else
Writeln('Estado Civil Desconhecido');
end;
A lista de opções pode ser um valor ordinal, uma seqüência de valores ordinais separados por vírgula ou uma faixa de valores. A cláusula else é opcional e será executada caso nenhuma das opções corresponda ao resultado da expressão. Os valores devem ser colocados em ordem crescente e não devem ser repetidos em mais de uma opção.
Repetição
Repetição Contada
for <variável> := <início> to do
<instrução>
ou
for <variável> := <início> downto do
<instrução>
A cláusula to da estrutura for incrementa um ao valor da variável a cada iteração. A cláusula downto da estrutura for decrementa um do valor da variável a cada iteração. O valor da variável é indefinido ao finalizar o precesso de repetição. Exemplos:
for Contador := 1 to 10 do
Writeln(Contador);
Repetição Condicional
while <condição> do
<instrução>
ou
repeat
<instrução 1>;
<instrução 2>;
<instrução 3>;
<instrução n>
until <condição>
A estrutura while é executada enquanto a condição for verdadeira A estrutura repeat é executada até que a condição seja verdadeira, ou seja, enquanto for falsa. Exemplos:
Soma := 0;
Read(Valor);
while Valor <> 0 do
begin
Soma := Soma + Valor;
Read(Valor)
end;
Writeln(Soma);
Soma := 0;
repeat
Read(Valor);
Soma := Soma + Valor;
until Valor = 0;
Writeln(Soma);