3. 1. PROGRAMAÇÃO
• PROGRAMAR: É criar processos usando uma
linguagem de programação específica a fim de
fazer o processador realizar tarefas com o
hardware em que esteja conectado
comandando-o para objetivos específicos. Ex:
aplicativo para controle de caixa, controle de
alunos, controle escolar, controle de estoque
• A linguagem de programação que nós vamos
aprender é: Delphi na sua versão 5
• O Delphi usa a linguagem Pascal no seu IDE
4. 2. DELPHI E PASCAL
• PASCAL: linguagem de programação de fácil
aprendizado, muito parecida com o Inglês técnico
e muito usada no meio acadêmico
• DELPHI: é um ambiente integrado de
desenvolvimento gráfico (Graph IDE) que une a
linguagem Pascal com recursos de programação
gráfico com objetos herdados do próprio
Windows
• O Delphi usa a linguagem Pascal para sua
programação mas as
janelas, botões, listas, grades, são objetos
herdados da camada de biblioteca da API do
próprio Windows (API – Aplication Program
Interface = Interface de Programação de
Aplicativos)
5. 3. DELPHI
• Neste curso seguiremos aprendendo o Delphi
na sua versão 5, lançada em 2000 mas que até
hoje é a base principal de todas as versões
mais modernas
• Aprender Delphi é na verdade aprender a
programar em Pascal, o Delphi nada mais é
que um IDE para criar programas Pascal
usando recursos do Sistema Operacional
Gráfico – o Windows
6. 4. PASCAL
• Algoritmo: é a descrição, de forma lógica, dos passos a
serem executados para o cumprimento de uma tarefa
definida. Exemplo: Receita para fazer um café
• Programar em Pascal é quase como criar algoritmos
usando o idioma Inglês, a ressalva é que o Pascal é um
pouco mais rigoroso no observar as regras do
compilador. Por exemplo, não podemos atribuir um
texto a uma variável numérica
• O Pascal, e qualquer outra linguagem de
programação, consiste de símbolos + regras de sintaxe.
Os símbolos são textos especiais:
comandos, operadores e constantes. As regras são o
rege a forma de usar os símbolos.
• O Pascal é uma linguagem de álto nível, ou seja é mais
próxima do entendimento humano do que da máquina
7. 5. DELPHI COM PASCAL
• Todo processo deve estar em linguagem de
máquina para que possa ser executado pelo
processador, logo o programa em Pascal deve
ser transformado em linguagem de máquina.
• O “Borland Delphi” é o compilador que irá
transformar nossos programas em Pascal para
a linguagem de máquina do processador.
• O Delphi faz também a ligação (linkedição) dos
vários módulos (subprogramas) fundindo-os e
transformando num único processo que
resulta no aplicativo final criado.
8. 6. CARACTERÍSTICAS DO PROGRAMA
• INTEGRIDADE: tendo as entradas corretas os resultados
apresentados devem ser corretos
• CLAREZA: o programa deve ser feito de forma que
outros programadores o entendam, use muitos
comentários
• SIMPLICIDADE: devemos evitar dar voltas para chegar a
um objetivo, devemos ser objetivos.
• EFICIÊNCIA: o programa deve usar bem os recursos de
hardware disponíveis e ser rápido
• MODULARIDADE: os programas devem ser
estruturados de tal forma que possam ser
reaproveitados em outros projetos se for o caso
• GENERALIDADE: capacidade de ser utilizado em outros
projetos
9. 7. ESTRUTURA DO PROGRAMA
• program Project1; // Nome do Aplicativo Final
• Uses // Unidades da Biblioteca que serão usadas
• Forms, // Biblioteca de formulários
• {$R *.RES} // Parâmetro de compilação
• Var x:integer; // Variável inteira X declarada
• Begin // Início do Programa
• Application.Initialize; // Comando 1
• Application.CreateForm(TForm1, Form1); //C.2
• Application.Run; // Comando 3
• end. // Término do programa
10. 7. A LINGUAGEM PASCAL
• Origem: criada por Nicklaus Wirth, suiço, em 1970 e doou o
primeiro compilador
• Objetivo: foi criada para ensinar estrutura de dados e
programação estruturada para alunos
• Avanço: em 1983 a Borland criou o Pascal orientado a
objetos com Turbo Pascal
• Delphi: no final da década de 80 a Borland Lança o Delphi
1.0 que a seguir evoluiu até chegar na versão 5 em 2000
• O Delphi evoluiu e hoje temos versão 2012
• A grande jogada da Borland com o Delphi foi integrar o
compilador, o linkeditor e as bibliotecas da API do Windows
em um único ambiente de programação usando a
linguagem Pascal, isso foi seguido por todas as grandes
empresas de software como Microsoft (Visual Basic) e
outras.
11. 8. CONCEITOS DO DELPHI
• O Delphi usa o Pascal Orientado a Objetos o que significa que os recursos
do computador e do sistema operacional são tratados como “objetos” e
podem ser criados, destruídos, acessados, controlados, etc.
• Classe: em Delphi uma classe é uma família de objetos que possuem as
mesmas características. Uma classe existe para sempre. Exemplo: TForm
• Objeto: é um item pertencente a uma classe. Ele pode ser criado, existir
por um tempo, depois ser destruído. Exemplo: Janela da classe Tform
• Um objeto tem três características: propriedade, eventos e métodos
• Propriedade: são características passivas, recebem valores e podem ser
consultados. Exemplo: Janela.color
• Evetos: são subprogramas que são executados quando determinado
“evento” ocorre com o objeto. Exemplo: Janela.onclick
• Métodos: são subprogramas que são chamados pelo programador para
realizar determinadas funções com o objeto. Ex: Janela.close()
• Programar em Delphi é criar objetos e controlar as ações sobre eles por
parte do usuário ou do próprio programa sendo criado.
12. 9. Classes do Delphi
• TApplication: a principal classe, ela contem um único objeto
que se refere ao próprio programa sendo criado.
• TForm: classe que representa os objetos “janelas” do
Sistema Operacional Windows
• TButton: classe dos botões de ação
• TCheckBox: classe dos botões de opção
• TRadioBox: classe dos botões de opção exclusivos
• TListBox: classe das listas de opções
• TPanel: classe de painel gráfico
• TEdit: classe dos objetos entrada de texto
• TLabel: classe dos objetos textos fixos
• TComboBox: classe da caixa de texto combinada com a caixa
de lista para escolha, ... E outros que veremos mais a frente
13. 10. Hierarquia de Classes Delphi
• A principal vantagem do uso de Classes reside no fato de objetos
“filho” herdarem propriedades e métodos dos seus “pais” na
hierarquia de classes
• No Delphi temos a seguinte hierarquia de classes:
14. 11. Variáveis no Delphi
• Todo programa precisa de usar a memória RAM e nela vão ficar
os dados para trabalho: números, textos
(strings), caracter, booleanos.
• Esses “itens” usados na RAM são chamados de
“Variáveis”, semelhantes às da álgebra matemática elas servem
para conter dados: numéricos, textuais, lógicos ou objetos, como
já os vimos.
• No Delphi, o comando para declarar uma variável é o “var” e tem
a seguinte sintaxe:
• var Nome_Da_Variável : Tipo ;
• Por exemplo: var i:integer;
• Declara uma variável de nome “i” e que guarda valores
numéricos do tipo inteiro “integer”
• Uma variável de um determinado tipo só guarda elementos
desse mesmo tipo, senão ocorrerá um erro em tempo de
execução do programa. Mas existe a possibilidade de fazer
conversões através de funções destinadas a isso.
15. 12. Tipos no Delphi
• Os tipos básicos do Delphi para variáveis são:
• Integer: inteiros de -2.000.000 a +2.000.000
• Real: qualquer valor real
• Byte: um número de 0 a 255 (Hexa: $00 a $FF)
• Char: um caracter com código de 0 a 255
• Array: é um vetor ou grupo de itens de um mesmo tipo, pode ser
de inteiro, de real, de char. Exemplo: var Vetor:array[1..100] of
integer; - esse comando cria a variável “Vetor” que é um
arranjo de 100 elementos sendo todos do tipo inteiro. Para
acessar um elemento usamos o nome da variável seguido de
colchetes com o índice de 1 a 100 indicando qual elemento
queremos do conjunto. Ex: Vetor[10] é o número inteiro na
posição 10 da variável Vetor.
• String: é um array de 255 char, ou seja:
• string = array[1..255] of char; No máximo 255 caracteres
• Booelan: valor booleano somente True ou False
16. 13. Constantes no Delphi
• Alguns valores em matemática são constantes
absolutas e nesse caso você pode declara-las no
Delphi com o comando CONST
• CONST NOME : TIPO
• Exemplo: const Pi : real = 3.1416;
• As constantes devem ser declaradas antes mesmo
da definição das variáveis (var)
17. 14. Classes no Delphi
• Podemos definir novas classes no Delphi usando a
definição composta de tipos com opção de
herança a partir das classes ancestrais já prontas
no ambiente dele.
• Exemplo: TMinhaJanela = class(TForm)... Define
uma nova classe “TMinhaJanela” como sendo filha
da ancestral “TForm” que portanto herda todas as
propriedades, eventos e métodos da sua classe
pai, além das novas propriedades, eventos e
métodos que você pode incrementar nela.
18. 15. Exemplo de uma Unit Delphi
unit Unit1; // Nome da Unidade: Unit1
Interface // Seção de interface e definições
Uses // Bibliotecas a serem incluídas
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TMinhaJanela = class(TForm) // Nova classe descende de TForm
private
{ Private declarations } // Variáveis e métodos privados
public
{ Public declarations } // Variáveis e métodos públicos
end;
var
MinhaJanela: TMinhaJanela; // Variável (objeto)Global: MinhaJanela da classe TMinhaJanela
Implementation // Início dos Procedures e Functions
{$R *.DFM} // Diretiva de compilação
end. // Fim da Unidade: Unit1
19. 16. Arquivos do Delphi
• Os arquivos criados pelo Delphi para o seu programa são:
• Os “.pas”: arquivos que contem o programa propriamente
dito com comandos em Pascal
• Os “.dfm”: são arquivos que contem dados sobre os objetos
e classes usadas no seu projeto. Dados como: largura,
altura, posicionamento na tela, cores, estilos, enfim o
formato da interface
• Os “.dcu”: são arquivos resultantes da compilação dos
arquivos “.pas” que vão ser ligados para formar o projeto do
aplicativo final.
• Os “.dpr”: são arquivos de projeto, contem o módulo
principal do aplicativo, inclusive o seu nome é o que será
dado ao aplicativo criado.
• Os “.res”: são arquivos de recursos a serem usados pelo
projeto final, tipo: ícones, sons, vídeos, etc.
20. 17. Procedures e Functions
• Os programas em Delphi são sempre estruturados.
Isto quer dizer que são divididos em “subprogramas”
e a soma da realização desses gera o resultado final
do programa como um todo.
• Os subprogramas podem ser “procedures” ou podem
ser “functions” e podem ou não receber argumentos
(variáveis) de entrada.
• Um “procedure” não retorna valores, um “function”
sempre retorna
• Para chamar usamos o nome seguido de “(“ com as
variáveis de entrada separadas por “,” e finalmente
fechamos com “)”
• Exemplo: fatorial(10) somaDebitos(idCliente)
21. 18. Estrutura de Functions e Procedures
Function Soma (x,y:real):real;
Var n:real;
Begin
try
n := x + y;
except
ShowMessage(‘Erro nas entradas’);
end;
result := n;
End;
Procedure Soma (x,y:real; var r:real);
Var n:real;
Begin
try
n := x + y;
except
ShowMessage(‘Erro nas entradas’);
end;
r := n;
End;
• Passagem de argumento por valor: conforme o exemplo da Function Soma, as variáveis
“x” e “y” são passadas por valor, ou seja a função trabalha com cópias das variáveis “x” e
“y” originais
• Passagem de argumento por referência: a variável “r” na procedure Soma é passada por
referência, ou seja ela é a própria variável original e as mudanças feitas nela serão
permanentes
• No Delphi usamos “var” na declaração para indicar passagem por referência e sem indica
passagem por valor.
22. 19. Operadores e Precedências
• Os operadores do Pascal são:
• “:=“ : operador de atribuição, exemplo: x := 0; x recebe o inteiro zero.
• “+ - * /” : operador de soma, subtração, multiplicação e divisão
• OR AND NOT: operadores lógicos “Ou”, “E” e “Negação”, funcionam com booleanos
• Booleanos [boolean] são somente dois: True (verdadeiro) ou False (falso)
• Somando inteiro com data é como se tivesse somando dias à esta data.
• Somar decimais a uma data é acrescentar minutos a ela. Isso porquê em Pascal a data é
representada como um número real onde a parte inteira é a informação de quantos dias se
passaram desde o dia 01/01/01 (nascimento de Jesus). E a parte decimal é uma fração de
24 horas correspondente a um dia inteiro.
• div : esse operador divide dois inteiros retornando somente a parte inteira da divisão
• mod: esse operador divide dois inteiros e retorna somente o resto da divisão
• () são usados para alterar a precedência matemática comum
• A precedência dos operadores em Pascal segue a mesma da matemática:
• Primeiro: colchetes e mais internos para os mais externos
• Segundo: operações de multiplicação e divisão (div e mod também)
• Terceiro: operações de soma e subtração
• Nos booleanos: 1º) ( ) 2º) NOT 3º) AND e 4º) OR
23. 20. Funções de Conversão de Tipos
• String para Inteiro: StrToInt (s:string) -> inteiro
• String para Real: StrToFloat (s:string) -> real
• String para Data: StrToTime(s:string) -> data
• Inteiro para String: IntToStr(n:integer) -> string
• Real para String: FormatFloat (Mask:string; n:real) -> string
• Data para String: TimeToStr(d:TDateTime) -> string
• Inteiro para Real: é aceito diretamente não precisa conversão
• Real para Inteiro: trunc(n:real) -> inteiro sem decimais (não arredonda)
• Arredondamento de real: round(n:real; d:integer) -> real arredondado em “d” decimais
• Data para Real: já é direto, pois a data é um real, a parte inteira são dias passados desde a
data 01/01/01 até hoje e a parte decimal são a fração correspondente a 24 horas
• Booleanos não tem conversão
24. 21. Principais Comandos do Pascal
• BEGIN ... END;
• IF Condição THEN Faz_Se_Condição_Verdadeira ELSE Faz_Se_Condição_Falsa;
• TRY Comandos EXCEPT Faz_Se_Ocorrer_Erro_em_Comandos END;
• TRY Comandos FINALLY Faz_Sempre_mesmo_se_não_ocorrer_erros END;
• WHILE Condição_Verdadeira DO ... ;
• REAPEAT Comandos UNTIL Condição_Verdadeira;
• FOR i := Valor_Inicial TO Valor_Final DO ... ;
• FOR i := Valor_Final DOWNTO Valor_Inicial DO ... ;
• CASE Opção OF op1 : do1 op2 : do2 ... opN : doN ELSE faz_noutro_caso; END;
25. 22. Variáveis e Escopo no Delphi
• Escopo de uma variável é a visão que podemos ter desta
variável no programa. Uma variável pode ser: Global, Local ou
de uma Classe.
• Variável Global: são definidas na cláusula var da Unidade (unit)
e são visíveis por todo o código pascal daquela mesma
unidade, podendo inclusive ser consultada ou alterada
• Variável Local: são definidas dentro de functions ou procedures
nas suas cláusulas var e são visíveis somente dentro destas
estruturas, sendo destruídas depois de sair das suas rotinas
• Variáveis de Classe: são variáveis internas a uma classe e são
declaradas nas cláusulas public ou private das mesmas.
• Variável Pública: são definidas dentro de uma classe e são
visíveis para qualquer programa que use objetos derivados
desta. Podendo ser lidas e alteradas
• Variáveis Privadas: são definidas dentro de uma classe e são
visíveis somente para os métodos e eventos da própria classe
não sendo acessadas por outros objetos ou programas.