Professional Documents
Culture Documents
ENG 390
Prof. Evandro de Castro Melo, DS
26 de novembro de 2012
http://wiki.lazarus.freepascal.org/Main_Page/pt
1. INTRODUO
O Projeto Lazarus surgiu em 1 de fevereiro de 1999 com trs pessoas: Cliff Baeseman,
Shane Miller e Michael A. Hess. Em agosto de 1999 Marc Weustink se junta ao grupo
seguido por Mattias Gaertner, que aderiu em setembro de 2001. O Projeto Lazarus, desde
ento, s vem crescendo cada vez mais, sempre incorporando novos componentes e recursos.
O Lazarus uma alternativa de cdigo aberto (open source) ao Delphi, com a grande
vantagem de ser multiplataforma. Trata-se de um Ambiente Integrado de Desenvolvimento
(IDE) com base na linguagem Pascal e no compilador Free Pascal, que h dcadas so
utilizados no meio acadmico.
O Free Pascal (FPC) um compilador de cdigo fonte aberto com duas notveis
caractersticas: um grau elevado de compatibilidade com Delphi e com capacidade para ser
executado em Windows, Mac e Linux.
Melo (2012)
2. AMBIENTE LAZARUS
2.1 Prefcio
Lazarus um ambiente (E) integrado (I) de desenvolvimento (D) - IDE Lazarus gratuito e de cdigo aberto para o compilador Free Pascal. O IDE uma parte importante
para se trabalhar com o Lazarus: ele quem ajuda a editar os cdigos, gerenciar os arquivos e
montar os projetos.
O ambiente Lazarus estvel e rico para criao de aplicaes grficas e de console
(antigo DOS dentro do Windows). Ele atualmente funciona nos sistemas operacionais: Linux,
FreeBSD, Win32 e Win64. Possui um editor de cdigo e um ambiente visual para criao de
formulrios, acompanhado de um gerenciador de pacotes, depurador de erros e uma completa
integrao da GUI com o compilador Free Pascal.
Existem duas verses para o Windows: 32 e 64 bits. Se o PC, onde for instalado o
programa, possuir processador de dois ncleos (AMD ou Intel) e 4 Gb de memria RAM,
pode-se optar pela verso 64 bits.
Free Pascal LAZARUS
Melo (2012)
Para mudar o idioma da interface para o portugus, deve-se acessar a aba Tools e
depois Options, como mostrado na Figura 3.
Ento aparecer a seguinte tela, onde se escolhe a opo Desktop, optando pelo
portugus do Brasil, como mostra a Figura 4, finalizando com o boto OK.
Free Pascal LAZARUS
Melo (2012)
2.4 O Editor
Quando se ativa o ambiente de programao Lazarus pela primeira vez, uma srie de
janelas flutuantes, separadas entre si, iro aparecer no desktop do computador.
A primeira, localizada no alto do desktop, chamada de Lazarus IDE v0.9.30 project1 (que ser modificada para refletir a mudana no nome do projeto em que se est
trabalhando). Esta a principal janela de controle de projetos e contm o Menu Principal, a
Barra de Botes e a Paleta de Componentes. Ver Figura 6.
Melo (2012)
Quando se inicia um novo projeto (ou quando se ativa o Lazarus), por padro, ir ser
construdo um formulrio Form1, que consiste de uma caixa preenchida com pontos (grid),
para ajudar no posicionamento dos componentes no mesmo e uma barra ao longo do topo,
que contm os usuais botes de janelas do Windows: Minimizar, Maximizar e Fechar. Se
clicar com o mouse dentro desta caixa, ver-se-o as propriedades deste formulrio no Inspetor
de Objeto, no lado esquerdo do desktop. Caso o Inspetor de Objetos no esteja visvel, devese pressionar a tecla F11.
Outras janelas que podem ser visveis durante o trabalho: o Inspetor de Projeto, que
contm detalhadamente os arquivos includos no projeto em que se est trabalhando. A janela
Mensagens, que exibe as mensagens do compilador, erros ou relatrios de progresso no
projeto.
Melo (2012)
Melo (2012)
Melo (2012)
Melo (2012)
Melo (2012)
10
Figura 12 Opo Ferramentas do Menu Principal com as opes de converso de arquivos tipo
Delphi para tipo Lazarus
Melo (2012)
11
Melo (2012)
12
Ordinais Define um conjunto de valores, onde cada valor desse conjunto, com exceo
do primeiro e do ltimo, tem um valor anterior e posterior. Os tipos ordinais na
linguagem FPL so: Integer, Character, Boolean e Enumerated.
Integer Representa um subconjunto de nmeros inteiros. Segue na tabela os limites e
formatos para armazenamento.
Tipo
Byte
Shortint
Smallint
Word
Integer
Cardinal
Longint
Longword
Int64
QWord
Faixa
0 .. 255
-128 .. 127
-32768 .. 32767
0 .. 65535
smallint ou longint
longword
-2147483648 .. 2147483647
0 .. 4294967295
-9223372036854775808 .. 9223372036854775807
0 .. 18446744073709551615
Tamanho em bytes
1
1
2
2
tamanho 2 ou 4
4
4
4
8
8
Caractere Um caractere pode ser qualquer smbolo que possa ser representado (um
nmero, uma letra ou smbolos especiais)
Boolean Este tipo de dado o responsvel pela representao de valores lgicos e
ocupa 1 byte de memria. Pode ser dois valores: True ou False.
Enumerated Um tipo de dado enumerado define um conjunto ordenador de valores
simplesmente listando identificadores que os denotem.
Type
Direction = ( North, East, South, West );
Reais Um tipo de dado real ou flutuante define um conjunto de nmeros que podem ser
representados com notao de ponto flutuante.
Tipo
Real
Single
Double
Extended
Comp
Currency
Faixa
depende da plataforma
1.5E-45 .. 3.4E38
5.0E-324 .. 1.7E308
1.9E-4932 .. 1.1E4932
-2E64+1 .. 2E63-1
-922337203685477.5808
Dgitos significativos
???
7-8
15-16
19-20
19-20
922337203685477.5807
Tamanho
4 ou 8
4
8
10
8
8
Melo (2012)
13
Uma Unit , na maioria das vezes, associada a um formulrio (Form) que contm seu
cdigo, ou seja, as declaraes de variveis, os componentes utilizados e as rotinas definidas.
possvel verificar que, medida que componentes so inseridos, so tambm adicionados
automaticamente linhas de cdigo na Unit relacionada. A Unit tem reas predefinidas e que
devem ser respeitadas para que a programao tenha xito. So elas:
unit xxxx Representa o nome fsico do arquivo onde est o cdigo da referida unidade.
Por meio desse nome, units podem usar outras units.
Melo (2012)
14
type Esta declarao especifica um identificador que denotar um novo tipo que,
normalmente, no oferecido pelo FPL.
var - Nessa rea, so declaradas todas as variveis que podem ser acessadas em qualquer
lugar do programa, portanto, consideradas pblicas.
Melo (2012)
15
RequireDerivedFormResource := True; -
Melo (2012)
16
Melo (2012)
17
Melo (2012)
18
Melo (2012)
19
Melo (2012)
20
Para rodar o programa aciona-se a tecla Executar, que se parece a um tringulo verde
como mostrado na Figura 17.
Deve-se ressaltar que, ao final do programa original, foram acrescentadas mais duas
linhas. A funo das mesmas permitir a visualizao do resultado do programa na janela do
prompt. Sem as mesmas, o programa seria executado e a sua janela ser fechada
imediatamente, sem que o usurio pudesse ver os resultados.
Melo (2012)
21
Melo (2012)
22
Como exemplo de aplicao, para ser o primeiro programa FPL executado no ambiente
grfico do Windows, desenvolver-se- um projeto que calcule a rea de um tringulo.
Portanto, a interface com o usurio dever solicitar-lhe os dados numricos referentes altura
e base desse tringulo.
Recomenda-se, como boa norma de programao em FPL, antes de iniciar qualquer
programa ou projeto para ambiente Windows, criar um diretrio especfico. Ento, o passo
seguinte gravar o projeto no disco. Cada projeto, com seus formulrios e unidades, dever
ser gravado no disco em pasta prpria, sendo recomendado ainda no se aceitar os diretrios
sugeridos pelo ambiente FPL. Os arquivos de unidade e de projeto no podem ter nomes
iguais. Sugerem-se os nomes u_triangulo.pas (unidade) e p_triangulo.lpr (projeto).
O projeto ser criado acessando-se Arquivo Novo / Projeto / Aplicao, de acordo
com a Figura 20:
Melo (2012)
23
Dois componentes Label funcionam como rtulos, sendo um para Altura e outro
para Base;
Trs componentes Edit funcionam como locais para entrada e sada de dados,
sendo um para o valor da Altura, um para o valor da Base e outro para exibir o
resultado do clculo da rea;
Dois componentes Button so botes que, quando pressionados, executam uma
ao, sendo um para calcular a rea e outro para permitir sair do programa.
Para colocar tais componentes no formulrio, deve-se clicar na Paleta de
Componentes (Standard neste caso), no componente desejado e depois clicar no formulrio.
As propriedades desses componentes so modificadas no Inspetor de Objetos, desde que o
componente esteja selecionado no formulrio.
O texto relativo a um componente, que aparece no formulrio, modificado no
Inspetor de Objetos na propriedade Caption. As variveis vinculadas aos componentes
podem ter seus nomes alterados no cdigo-fonte pela propriedade Name.
Free Pascal LAZARUS
Melo (2012)
24
Melo (2012)
25
Para alterar o texto que aparece escrito na barra de ttulo do programa, segundo a
Figura 26, deve-se selecionar o Form1 com um clique no seu ttulo e alterar o texto na
propriedade Caption no Inspetor de Objetos (Figura 27).
Melo (2012)
26
Analisando o Editor de Cdigo, depois de pulsar a tecla F12, tem-se a Figura 28,
com parte do cdigo referente ao projeto que se est desenvolvendo. Na referida unidade,
abaixo de { TForm1 } esto relacionados todos os objetos (Button, Edit, Label, procedure)
presentes no formulrio Form1 do programa.
Melo (2012)
27
Melo (2012)
28
(a)
(b)
(c)
(d)
Figura 29 Janelas para projeto que calcula rea de tringulo
Melo (2012)
29
O comando InputBox ('Digite a altura', 'Valor:', ' ') abre uma janela para leitura de
dados, cujo ttulo ser o primeiro texto entres aspas e o segundo texto entre aspas ser exibido
acima da caixa que recebe o dado (Figura 29b e 29c). O terceiro texto entre aspas est em
branco porque no se quer exibir um valor inicial na referida caixa.
Melo (2012)
30
Objeto
BitBtn1
Button1
Melo (2012)
31
Name
Caption
Form1
Label1
Label2
Label3
Edit1
Edit2
Edit3
BitBtn1
Form1
Label1
Label2
Label3
edNasc
edAtual
edIdade
bbCalcular
Calculando Idade
Ano de Nascimento
Ano Atual
Idade
Calcular
Melo (2012)
32
Melo (2012)
33
Objeto
Name
Caption
Form1
Label1
Label2
GroupBox1
MaskEdit
Label3
Label4
Label5
Edit1
Edit2
Edit3
Button
Form1
Label1
Label2
GroupBox1
meNasc
Label3
Label4
Label5
edAnos
edAtual
edIdade
btCalcular
Idade Completa
Data Atual
Data de Nascimento
Idade
VER Figura 37
Anos
Meses
Dias
Calcular a Idade
Melo (2012)
34
Melo (2012)
35
A captura da data do sistema, que inicializa o campo edAtual (Data Atual), se realiza
no procedimento TForm1.FormCreate, cujo cdigo gerado quando se escolhe, no Inspetor
de Objetos, no Evento OnCreate do Form1, a opo FormCreate (Figura 39). Realizada esta
opo, aparecer no Editor de Cdigos, o referido procedimento. Entre o begin e o end
digita-se:
edAtual.text:= DateToStr (Date);
onde Date retorna a data do sistema operacional e DateToStr transforma esse valor em string
para ser apresentado na tela do programa. J o comando StrToDate reverte a converso de
string para formato de data. Este evento usado para atribuir valores iniciais a componentes
de formulrio (como este caso), verificar e habilitar (desabilitar) componentes.
Na Figura 38, a varivel dias foi definida como variant, que um tipo genrico, que pode
receber e atribuir qualquer outro tipo. Essa declarao foi utilizada porque o retorno da
subtrao entre datas do tipo Extended.
Melo (2012)
36
Name
Caption
Form1
Label1
Label2
Label3
Edit1
Edit2
Edit3
Button
Button
Form1
Label1
Label2
lbResultado
edNum1
edNum2
edIdade
btCalcular
btSair
Comparar
SAIR
Melo (2012)
37
Melo (2012)
38
Melo (2012)
39
Melo (2012)
40
Exerccios Resolvidos
Sobre
FPL
Melo (2012)
41
Exerccio 01
Faa um projeto em Lazarus para transformar escalas de temperaturas em C
e em F, de acordo com o formulrio sugerido.
a. Sugesto para o formulrio Form1:
Melo (2012)
42
Exerccio 02
Faa um projeto em Lazarus que leia os trs lados de um tringulo e verifique
se realmente eles formam um tringulo. Caso afirmativo, classificar o tipo de
tringulo.
a. Aplicao dos componentes: Label, Edit, Button, Memo
b. Sugesto para o formulrio Form1:
Melo (2012)
43
Melo (2012)
44
Exerccio 03
Faa um projeto em Lazarus para reajuste salarial:
Melo (2012)
45
Melo (2012)
46
Exerccio 04
Aplicar o componente
temperaturas (C F)
TMainMenu - Este componente permite criar barras de menus contendo vrios nveis (como
o menu principal dos aplicativos Windows). Para us-lo, basta inserir a figura que o representa no
Formulrio do seu Projeto, localizando-o, por exemplo, no canto superior direito. Para inserir as
opes necessrias ao seu projeto, clique duas vezes no smbolo do MainMenu. Aparecer o Editor
de Menu. Para alterar seu nome, de acordo com o menu proposto, deve-se alterar a sua propriedade
Caption no Inspetor de Objetos.
Para criar outros tpicos, pressiona-se o boto direito do mouse em cima do item e
aparecer a seguinte janela, com as opes para edio de itens no seu menu:
Melo (2012)
47
Melo (2012)
48
Melo (2012)
49
Exerccio 05
Fazer um projeto no ambiente Lazarus para calcular o ndice de massa
corporal (IMC) e classificar a pessoa segundo a tabela da O.M.S.:
Melo (2012)
50
Melo (2012)
51
Exerccio 06
Fazer um projeto em Lazarus que calcula a Mdia das Provas de uma
disciplina em que no se conhece de antemo o nmero de notas.
a. Uso do componente InputBox (ver item 5.4)
Melo (2012)
52
Melo (2012)
53
Exerccio 07
Queda de presso em camada de gros Equao de Shedd Usando
esta equao, fazer um projeto em Lazarus com opo para arroz, milho, soja
e trigo. Os dados de entrada so os parmetros Q e hg.
a. Aplicao do comando CASE:
Melo (2012)
54
Melo (2012)
55
Exerccio 08
Faa um projeto em Lazarus para resolver o seguinte problema: tm-se
duas cidades A e B com populaes iniciais diferentes e taxas de crescimento
tambm diferentes. A cidade A tem menor populao inicial que B, porm
uma taxa de crescimento percentual ao ano maior que B. Ento, calcule o
tempo para a populao de A ultrapassar a populao da cidade B.
a. Aplicao do comando WHILE ... DO.
b. Sugesto para o formulrio Form1
Melo (2012)
56
Exerccio 09
Acrescente ao projeto anterior, o grfico que mostra a evoluo do
crescimento de ambas as populaes.
Melo (2012)
57
Melo (2012)
58
Melo (2012)
59
Exerccio 10
Fazer um projeto em Lazarus para calcular a potncia de um ventilador
em sistemas de secagem de gros.
Clculos
Melo (2012)
60
Melo (2012)
61