Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Lazarus
Apostila Lazarus
ENG 390
Prof. Evandro de Castro Melo, DS
29 de junho de 2011
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 se junta ao grupo Marc Weustink
seguido por Mattias Gaertner, que aderiu em setembro de 2001. O Projeto Lazarus desde
ento s vem crescendo com cada vez mais 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 (2011)
2. AMBIENTE LAZARUS
2.1 Prefcio
Lazarus um ambiente (E) integrado (I) de desenvolvimento (D) - IDE Lzarus gratuito e de cdigo aberto para o compilador Free Pascal.
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.
A verso que se trabalhar nesta apostila a Lazarus-0.9.30-fpc-2.4.2 para o sistema
operacional Windows 32 bits.
Melo (2011)
Para mudar o idioma da interface para o portugus, deve-se acessar a aba Environment
e depois Options, como mostrado na Figura 3.
Melo (2011)
Ento aparecer a seguinte tela, onde se escolhe a opo Desktop, optando pelo
portugus, como mostra a Figura 4, finalizando com o boto OK.
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.28.2 beta
- 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 (2011)
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 (2011)
Melo (2011)
Melo (2011)
Melo (2011)
Melo (2011)
10
Figura 12 Opo Ferramentas do Menu Principal com as opes de converso de arquivos tipo
Delphi para tipo Lazarus
Melo (2011)
11
Melo (2011)
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 (2011)
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 (2011)
14
mesmas podem ser usadas por quaisquer outras unidades dentro do mesmo programa. A
declarao de procedure e function, na seo interface, refere-se apenas ao cabealho das
mesmas. O seu contedo ser descrito na seo implememntation.
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 (2011)
15
Melo (2011)
16
Melo (2011)
17
Melo (2011)
18
Melo (2011)
19
Melo (2011)
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 fechada imediatamente,
sem que o usurio pudesse ver os resultados.
Melo (2011)
21
Melo (2011)
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 computador. 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 (2011)
23
Melo (2011)
24
Melo (2011)
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 (2011)
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 (2011)
27
Melo (2011)
28
(a)
(b)
(c)
(d)
Figura 29 Janelas para projeto que calcula rea de tringulo
Melo (2011)
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 (2011)
30
Objeto
Button1
Melo (2011)
31
Name
Caption
Form1
Label1
Label2
Label3
Edit1
Edit2
Edit3
BitBtn1
Form1
Label1
Label2
Label3
edNasc
edAtual
edIdade
btCalcular
Calculando Idade
Ano de Nascimento
Ano Atual
Idade
Calcular
Melo (2011)
32
Melo (2011)
33
Exerccios Resolvidos
Sobre
FPL
Melo (2011)
34
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 (2011)
35
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 (2011)
36
Melo (2011)
37
Exerccio 03
Faa um projeto em Lazarus para reajuste salarial:
Melo (2011)
38
Melo (2011)
39
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 (2011)
40
Melo (2011)
41
Melo (2011)
42
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 (2011)
43
Melo (2011)
44
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 (2011)
45
Melo (2011)
46
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 (2011)
47
Melo (2011)
48
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 (2011)
49
Exerccio 09
Acrescente ao projeto anterior, o grfico que mostra a evoluo do
crescimento de ambas as populaes.
Melo (2011)
50
Melo (2011)
51
Melo (2011)
52
Exerccio 10
Fazer um projeto em Lazarus para calcular a potncia de um ventilador
em sistemas de secagem de gros.
Clculos
Melo (2011)
53
Melo (2011)
54