o que é um programa em visual basic? - departamento de ...asilva/page14/page16/assets/teoricas...

28
APROG Civil ISEP–DEI, Angelo Martins © 2006 Programas Básicos ISEP–DEI, António Silva © 2007 O que é um programa em Visual Basic? 1

Upload: dinhphuc

Post on 11-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

O que é um programa em Visual Basic?

1

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Conteúdo

• Exemplo de um programa– Apresentação sumária da construção de um

programa em VB.• Objectos e o mecanismo de eventos

– Apresentação dos conceitos básicos de programação em ambiente MS Windows.

• Tipos de objectos e dados– Apresentação do conjunto limitado de objectos que

são utilizados nos primeiros programas e dos principais tipos de dados.

2

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Construção do programa

• O que é um Programa?• A construção de um programa obedece a um

conjunto de passos:– Definir objectivos e funcionalidades do programa– Desenhar a interface do programa com o utilizador– Ajustar (configurar) as propriedades dos objectos– Escrever o código– Testar

3

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Exemplo de programa

• Pretende-se um programa que:– efectue a conversão ente graus Celsius e Farenheit– as formulas de conversão são:

▪ ºC = (ºF - 32) * 5/9▪ ºF = ºC * 9/5 + 32

• Decidiu-se que:– devem ser visíveis os valores nas duas escalas– a interface deve ser simples e auto-explicativa.

4

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Desenho da Interface

Duas TextBox para o utilizador introduzir valores da temperatura.

Um Label a indicar qual a função do programa.

Dois Labels para identificar a função de cada uma das TextBox.

Dois CommandButton, um para cada sentido de conversão. Quando o utilizador carrega num destes botões é efectuada a conversão correspondente.

Um CommandButton para terminar o programa.

5

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Configurar a Interface

txtC

Label1

Label2

cmdFToCcmdSair

A form do programa já tem o aspecto final, mas falta ainda atribuir nomes aos objectos.

Label3txtF

cmdCToF

Form1

6

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Escrever o Código

Option Explicit

Private Sub cmdCToF_Click() Dim c As Single c = Val(txtC.Text) txtF.Text = 9 / 5 * c + 32End Sub

Private Sub cmdFToC_Click() Dim f As Single f = Val(txtF.Text) txtC.Text = (f - 32) * 5 / 9End Sub

Private Sub cmdSair_Click() EndEnd Sub

O código do programa é o seguinte:

Código do botão cmdFToC

Código do botão cmdCToF

Código do botão cmdSair

Instrução para o interpretador do VB

7

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Teste do programa

Uma vez terminado o programa, é preciso efectuar testes. Para t a l , i n t r o d u z e m - s e valores conhecidos e v e r i f i c a - s e s e o resultado está mesmo correcto. Não adianta introduzir valores à sorte!

8

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Explicação do Código

Private Sub cmdFToC_Click()

Dim f As Single

f = Val(txtF.Text)

txtC.Text = (f - 32) * 5 / 9

End Sub

Analisemos o código associado ao botão cmdFToC:

Lê valor de txtF, converte-o para um número e guarda-o em f

Subr

otina

asso

ciada

a ca

rrega

r (cli

ck) n

o botã

o.

Efectua as operações e guarda o resultado em txtC

Declara que a a variável f é um número real (com casas decimais)

9

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Atribuição

c (f - 32) * 5 / 9

c = (f - 32) * 5 / 9

Atenção! A operação de Atribuição é destrutiva!

10

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Objectos e Eventos

• A interface de um programa em VB é composta por objectos. No exemplo utilizamos 4 tipos:

– Form – Label (Etiqueta)– TextBox (Caixa de Texto)– CommandButton (Botão de Comando)

• Quando o utilizador interage com o programa (introduz valores, arrasta a janela, carrega num objecto, etc.) são desencadeados eventos. No exemplo o programa só reage a 3 eventos:

– Click() em cada um dos botões: cmdSair, cmdFToC e cmdCToF

11

!

!

!"#$%$&'()

*+,-. # -/0 # /

123/ # 4/516 # /

/576-3/

*/00289!

:1/-69,0683/!" # $%$&'"*+,-. #(")*$ # "")+$,'"*/00289!

-"'." # !$,"/0&!"

10)$2#+5+;30450 # !$ # 6$5'"3<3!

;"# # =64>/432# 9/#/576-3/#2/#6?683/

@"#A-BC/#4/516#/#

/576-3/#+5+;

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Eventos

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Objectos• Form

– usualmente traduzido como formulário– contentor rectangular (janela) onde são colocados

os outros objectos• Label

– traduzido como etiqueta– pode conter apenas texto (caracteres e

algarismos), sendo utilizado para dar indicações ao utilizador ou para apresentar resultados.

– o utilizador não consegue alterar directamente o conteúdo do label.

13

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Objectos II• TextBox

– usualmente traduzido como caixa de texto– pode conter apenas texto (caracteres e

algarismos), sendo utilizado para o utilizador introduzir dados ou para apresentar resultados.

• CommandButton– traduzido como botão de comando– pode afixar texto (caracteres e algarismos) ou uma

figura, sendo utilizado para desencadear acções.– o utilizador não consegue alterar o texto ou figura

apresentada no botão.

14

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Propriedades

• Cada classe de objectos pa r t i l ha um con jun to de propriedades.

• Através delas pode-se controlar a a p a r ê n c i a e o u t r a s características dos objectos.

• Sintaxe: nomeObjecto.propriedadeEx.: nome = txtNome.Text

Exemplos de propriedades: NameCaptionFontVisibleLeft

15

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Propriedades• Caso se omita a propriedade do objecto, o VB

presume que se trata da propriedade principal, ou propriedade por defeito.– Exemplo:

numero = txtNum.Text equivale a numero = txtNum• No entanto, atenção a que

• A propriedade por defeito difere de classe para classe de objectos:

TextBoxLabel

• Qualquer outra propriedade terá obrigatoriamente que ser especificada de forma explícita.

16

TextCaption

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Tipos de Dados

• A representação de informação em VB usa um conjunto de tipos de dados básicos predefinidos.

– Podem ainda ser criados tipos de dados compostos por vários elementos dos tipos básicos

– Podem ser definidos objectos, que expandem as facilidades de manipulação dos tipos de dados compostos

• Só vamos utilizar quatro tipos de dados básicos:– Números Inteiros– Números Reais– Caracteres– Valores lógicos

17

25

72.5

Memória

peso = 72.5 Kg (real)idade = 25 anos (inteiro)

Dados

Variáveis

peso

idade

Nomes das variáveis

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Tipos de Dados

Dados de tipos diferentes necessitam de espaço de armazenamento diferente.

18

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Números Inteiros• Os números inteiros permitem representar valores

numéricos inteiros positivos e negativos. • Há vários tipos, mas só serão utilizados dois:

– Integer▪ Gama de valores: -32768 a 32767 ⇒ [-215, 215-1]▪ Declaração: Dim myvar as Integer

– Long▪ Gama de valores: -2147483648 a 2147483647 ⇒ [-231, 231-1]▪ Declaração: Dim myvar as Long

• As operações suportadas são:– Operações aritméticas: +, -, /, *– Quociente e resto: \, mod

19

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Números Reais

• Valores numéricos positivos e negativos com casas decimais.

• Utilizam a forma mantissa + expoente, e há dois tipos:– Single (precisão simples ⇒ 32-bit)

▪ Gama de valores: [-3.4028235E+38, -1.401298E-45] ∪ 0 ∪ [1.401298E-45, 3.4028235E+38]

▪ Declaração: Dim myvar as Single

– Double (precisão dupla ⇒ 64-bit)▪ Gama de valores:[-1.79769313486231570E+308, -4.94065645841246544E-324] ∪ 0 ∪

[4.94065645841246544E-324, 1.79769313486231570E+308]▪ Declaração: Dim myvar as Double

20

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Caracteres • Permitem representar caracteres do alfabeto,

algarismos, operadores e outros símbolos gráficos.– Exemplos

▪ “olá!”▪ “O resultado foi 3-1”

– Declaração▪ Dim st as String

– Operações▪ + e &, ambas fazem a concatenação (“colagem”) de strings.:

“eu” + “fui” -> “eufui”“marquei” & “ “ & 3 & “ golos” -> “marquei 3 golos”

▪ Há um conjunto alargado de funções que permitem manipular strings. Um exemplo:

– val(“25”) -> 25 (retorna o valor numérico representado na string)

21

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Valores Lógicos

• Permitem representar valores lógicos (verdadeiro e falso). Em VB estes estas variáveis podem tomar os valores True ou False.

– Exemplos:Dim res as Boolean, m as Booleanres = True

– Operadores▪ And, Or, Not, Xor ▪ >, <, >=, <=, <>

• O tipo de dados boolean traduz também o resultado da avaliação de condições (Ex.: peso > 100).

22

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Constantes

• Definição: Uma constante consiste num nome associado a um valor numérico, a um valor booleano ou a uma string, e que pode ser usado num programa em substituição desse valor. Tal valor não pode ser alterado durante a execução do programa.

• Utilidade: Se for definida uma constante com um valor, bastará alterar uma só vez essa definição para que tal mudança se repercuta automaticamente em todas as ocorrências da constante no programa.

– Definição:Const <nome> As <tipo> = <expressão>

– Exemplos:Const numElem As Integer = 25Const meuEmail As String = “[email protected]

23

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Variáveis• Uma variável é um contentor onde informação de um

dado tipo pode ser guardada de modo a poder ser utilizada num programa

• Cada variável é caracterizada por:– um nome

▪ identificador da variável; tem que começar por uma letra e não pode conter espaços ou outros caracteres de pontuação:

– Nomes válidos: abc, a12, ola_mundo– Nomes inválidos: 1qa, ola-mundo, num!, ab cd (são duas variáveis)

– um tipo de dados▪ Pode ser qualquer tipo de dados predefinido ou definido pelo

programador– âmbito (visibilidade)

▪ Uma variável só está acessível dentro do bloco em que foi definida.

24

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Variáveis II

• Uma variável pode ser definida explicitamente ou ser criada pelo VB automaticamente com o tipo de dados apropriado à primeira utilização.

– Definição ExplícitaDim <nome> As <tipo>Dim a as Integer, b as Double

– Definição Implícita Dim <nome> ‘ ou omitir por completoDim a, ba = 2 ‘ variável inteirab = 3.5 ‘ “ realc = True ‘ “ booleana

– Atribuição<nome_da_variável> = <expressão>

O programador pode i n t r o d u z i r c o m e n t á r i o s n o programa, que são ignorados pelo VB. U m c o m e n t á r i o começa com um apóstrofe e termina no fim da linha.

[Desaconselhada]

25

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Porque é uma má ideia usar a declaração implícita?

Como funciona este tipo de declaração?Na ausência de uma declaração explícita, quando o interpretador de VB encontra um identificador desconhecido, presume que se trata duma variável e cria-a com os dados de que dispõe.

Caso 1...peso = 125...peso = 76.5

Caso 2...velocidade = 110...velocodade = 80

Criada a variável peso e do tipo integer

Truncagem da parte fraccionária na atribuição!

Criada a variável velocidade e do tipo integer

Criação indesejada da variável velocodade!

Em ambos os casos, os erros ocorridos não são detectados pelo Visual Basic!

26

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Uso da função val

27

Extrai a informação numérica contida numa string (texto).

Conteúdo da variável texto

val(texto)

“123” 123“123quatro” 123

“um23” 0

Em instruções como num = val(txtNum.Text) a chamada da função val pode ser omitida. O VB fará a conversão necessária entre texto e valor numérico. Porém...

RISCO!peso_total = txtPeso1.Text + txtPeso2.TExt⎨StringString ⎨

interpretado como operador de concatenação...

APROG Civil

ISEP–DEI, Angelo Martins © 2006Programas Básicos ISEP–DEI, António Silva © 2007

Conclusão

• Foram introduzidos os conceitos de:– Programa– Objecto– Propriedades– Evento– Tipo de dados– Constante– Variável

• Estes conceitos vão ser explorados nas aulas práticas, resolvendo exercícios.

28