O que é um programa em Visual Basic? 1
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
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
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
Desenho da Interface 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. Duas TextBox para o utilizador introduzir valores da temperatura. 5
Configurar a Interface A form do programa já tem o aspecto final, mas falta ainda atribuir nomes aos objectos. Label1 cmdctof Label2 Label3 txtf txtc Form1 cmdsair cmdftoc 6
Escrever o Código O código do programa é o seguinte: Option Explicit Private Sub cmdctof_click() Dim c As Single c = Val(txtC.Text) txtf.text = 9 / 5 * c + 32 End Sub Private Sub cmdftoc_click() Dim f As Single f = Val(txtF.Text) txtc.text = (f - 32) * 5 / 9 End Sub Private Sub cmdsair_click() End End Sub Instrução para o interpretador do VB Código do botão cmdctof Código do botão cmdftoc Código do botão cmdsair 7
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
Explicação do Código Analisemos o código associado ao botão cmdftoc: Subrotina associada a carregar (click) no botão. Private Sub cmdftoc_click() End Sub Dim f As Single f = Val(txtF.Text) txtc.text = (f - 32) * 5 / 9 Declara que a a variável f é um número real (com casas decimais) Lê valor de txtf, converte-o para um número e guarda-o em f Efectua as operações e guarda o resultado em txtc 9
Atribuição c = (f - 32) * 5 / 9 c (f - 32) * 5 / 9 Atenção! A operação de Atribuição é destrutiva! 10
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
30450 #!$ # 6$5'" 3<3! 10)$2#+5+; -"'." #!$,"/0&!" Eventos @"#A-BC/#4/516#/# /576-3/#+5+; ;"# # =64>/432# 9/# /576-3/#2/#6?683/!"#$%$&'() *+,-. # -/0 # / 123/ # 4/516 # / /576-3/ */00289! :1/-69,0683/!" # $%$&'" *+,-. #(")*$ # " ")+$,'" */00289!
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
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
Propriedades Cada classe de objectos p a r t i l h a u m c o n j u n t o d e 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.propriedade Ex.: nome = txtnome.text Exemplos de propriedades: 15 Name Caption Font Visible Left
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: TextBox Text Label Caption Qualquer outra propriedade terá obrigatoriamente que ser especificada de forma explícita. 16
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
Tipos de Dados Nomes das variáveis Variáveis Memória Dados de tipos diferentes necessitam de espaço de armazenamento diferente. peso idade 25 72.5 Dados peso = 72.5 Kg (real) idade = 25 anos (inteiro) 18
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 Long Gama de valores: -32768 a 32767 [-2 15, 2 15-1] Declaração: Dim myvar as Integer Gama de valores: -2147483648 a 2147483647 [-2 31, 2 31-1] Declaração: Dim myvar as Long As operações suportadas são: Operações aritméticas: +, -, /, * Quociente e resto: \, mod 19
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
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
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 Boolean res = 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
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 = 25 Const meuemail As String = amm@isep.ipp.pt 23
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
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ícita Dim <nome> As <tipo> Dim a as Integer, b as Double Definição Implícita Dim <nome> Dim a, b a = 2 ou omitir por completo variável inteira b = 3.5 real c = True booleana Atribuição [Desaconselhada] <nome_da_variável> = <expressão> 25 O programador pode i n t r o d u z i r comentários 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.
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! Em ambos os casos, os erros ocorridos não são detectados pelo Visual Basic! Criada a variável velocidade e do tipo integer Criação indesejada da variável velocodade! 26
Uso da função val 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! String String peso_total = txtpeso1.text + txtpeso2.text interpretado como operador de concatenação... 27
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