A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC.NET Objetivo: apresentar os principais recursos da linguagem “Visual Basic” necessários à criação de macros para.

Apresentações semelhantes


Apresentação em tema: "UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC.NET Objetivo: apresentar os principais recursos da linguagem “Visual Basic” necessários à criação de macros para."— Transcrição da apresentação:

1 UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC.NET Objetivo: apresentar os principais recursos da linguagem “Visual Basic” necessários à criação de macros para programação CN O QUE SERÁ ABORDADO: Criação de um programa no MS-Windows Formulário principal Montagem do leiaute com controles de texto e rótulos para entrada e saída de dados Tipos e declarações de variáveis Operadores Atribuição de valores Manipulação de strings Iterações Condicionais Arquivos (leitura e gravação) Controles para leitura e gravação de dados em arquivos Funções e sub-rotinas Gráficos

2 PROGRAMAÇÃO EM MS VISUAL BASIC Baseada em elementos gráficos (controles) e, atualmente, com recursos para programação orientada por objetos Possibilita o desenvolvimento de aplicativos para Windows com baixo custo e tempo Versões disponíveis: VB5; VB6;.Net2003;.Net2005;.Net2008 e.Net2010 Express (gratuita)

3 INICIANDO UM PROJETO EM VISUAL BASIC..NET Após iniciar o Visual Basic 2010 Express, utilize o menu “TOOLS - OPTIONS” e marque a opção “save new projects when created”, tal como mostrado acima. Isto possibilitará a escolha do caminho (pasta) e nome do projeto.

4 Começando um projeto... A versão.Net2010 do Visual Basic possibilita, além de aplicativos baseados em formulários, a criação de versões do tipo console, biblioteca de classes e as WPF (Microsoft Windows Presentation Foundation ) Selecione a opção “windows form application” Crie uma pasta específica para armazenar o projeto. Dê um nome para o mesmo e acione o botão “OK”. Evite manter o nome genérico para o projeto, tal como “windowsapplication1”.

5 Após acionar o botão “OK” aparece (automaticamente) um formulário vazio; o “Solution Explorer” ; o “toolbox” ; a”lista de propriedades”;... Um formulário funciona como um pano de fundo para inserção dos controles que serão visíveis em tempo de execução.

6 Utilizando os controles gráficos disponíveis, faça o leiaute do projeto. Caso necessário adicione um novo formulário. botões caixa de seleção seleção exclusiva rótulos caixas de texto caixas de lista barra de rolagem enumerador Para adicionar um controle ao formulário Arraste-o e solte-o no local desejado ou execute um “duplo click” sobre ele.

7 Tipos e declaração de variáveis O Visual Basic suporta e exige a declaração de diferentes tipos de variáveis!! Variável é um local reservado na memória RAM para armazenar dados de entrada e resultados do processamento. Variáveis simples TIPOSIGNIFICADOAbrangênciaTAMANHO OCUPADO (bytes) ChrArmazena um caractere de texto Um caractere2 StringArmazena textos extensos Até dois bilhões de caracteres 10 + 2 por caractere BooleanBooleanoVerdadeiro ou falso2 DateDataDe 01/01/100 até 31/12/9999 8 ByteArmazena inteiros positivos 0 a 2551 ShortArmazena números inteiros em um pequeno intervalo -32768 a 327672

8 Variáveis simples (continuação) TIPOSIGNIFICADOAbrangênciaTAMANHO OCUPADO (bytes) IntegerNúmeros inteiros em um intervalo médio -2.147.483.648 a 2.147.483.647 4 LongNúmeros inteiros em um intervalo grande -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 8 Single“Ponto flutuante” com precisão simples -3,402823 x 10 38 a -1,401298 x 10 -45 para números negativos e 1,401298 x 10 -45 a 3,402823 x 10 38 para positivos 4 Double“Ponto flutuante” com precisão dupla Armazena duas vezes mais dígitos significativos que o single (15 casas decimais) 8

9 Declaração das variáveis As variáveis podem ser declaradas para uso local ou geral. A declaração local significa que elas valerão durante um evento,execução de uma função ou procedimento (procedure). Para uso geral elas terão duração equivalente ao tempo de execução do aplicativo (programa). Exemplos. Dim var1 as integer – declaração (criação) de uma variável de nome “var1” do tipo inteiro para uso local Public var2 as string - declaração de uma variável de nome “var2” do tipo texto para uso geral

10 ARRAYS Um array é uma alternativa para criação de um conjunto de variáveis do mesmo tipo. As variáveis são arranjadas e indexadas (enumeradas) em uma ou mais dimensões. SINTAXE: Dim arrt1D(I) As Integer - unidimensional Dim arrt2D(I, J) As Single – bidimensional Dim arrt3D(I, J, K) As Double - tridimensional Dim arr() As String – declaração dinâmica arr, arrt1D, arrt2D e arrt3D são os nomes dos arrays. I,J,K são os indexadores. O tamanho do array (quantidade de variáveis simples) é dado pelo indexador + 1. O primeiro item do array é sempre 0 (zero)

11 EXEMPLOS (declarações e inicializações) Dim arr1D(5) as integer Dim arr2D(2,2) as single Dim arr3D(2,2,3) as double arr1D (0) = 87 arr1D(3) = 48 arr1D(4) = 12345 arr2D(0,0) = 12,456 arr3D(0,1,2) = 90,667776698

12 VARIÁVEIS ESTRUTURADAS São utilizadas para a criação de um tipo especial (personalizado) de variável. Um variável estruturada pode conter uma ou mais variáveis simples de tipos diferentes. SINTAXE: Structure name variabledeclarations End Structure Name: sequencia alfa-numérica Variabledeclarations: uso,nome e tipo das variáveis. Pelo menos uma variável tem que ser declarada. Obs.: uma variável estruturada só pode ser criada em um módulo ou classe.

13 EXEMPLO Dentro de um módulo: Structure varestr Dim a As Integer Dim b As Integer End Structure Public var1() As varestr – é um array dinâmico de uso público Dentro de um evento (ou procedimento) Redim var1(12) – redimensionamento do array dinâmico p/ tamanho 13 var1(3).a = 78 var1(3).b = 65 var1(7).b = 567

14 OPERADORES ARITMÉTICOS: OPERADORSIGNIFICADO =Atribuição de valor +Soma -Subtração *Multiplicação /Divisão \Divide, mas só retorna a parte inteira ModRetorna o resto de uma divisão ^Exponenciação &Associa duas strings +=Soma e atribui -=Subtrai e atribui *=Multiplica e atribui /=Divide e atribui

15 OPERADORES COMPARAÇÃO: OPERADORSIGNIFICADO >Maior que <Menor que =Igual <>Diferente >=Maior ou igual <=Menor ou igual LÓGICOS OPERADORSIGNIFICADO – comparação de dois valores booleanos (true ou false) ANDRetorna verdadeiro (true) se os dois valores forem verdadeiros. Retorna falso (false) caso contrário. ORRetorna verdadeiro (true) se pelo menos um dos valores for verdadeiro (true). Retorna falso (false) caso contrário. XOR (OR exclusivo)Retorna verdadeiro um dos valores for verdadeiro e ou outro for falso. Retorna falso em qualquer outra condição. NOT (negação)Retorna o oposto do valor

16 ATRIBUINDO VALORES ÀS VARIÁVEIS De um modo geral as variáveis recebem valores durante a execução do programa (tempo de execução), resultantes de processamentos ou entradas (valores informados pelos usuários). Entretanto, em alguns casos elas podem receber valores (inicialização) na fase de projeto (tempo de projeto). EXEMPLO DE INICIALIZAÇÃO: Dim var1 as integer = 0 --- inicializa com zero (0) juntamente com a declaração Ou.... Dim var1 as integer Var1 = 0 --- inicializa com zero (0) em outra linha do programa

17 ALTERAÇÃO DE VALORES DURANTE A EXECUÇÃO Dim X,Y,Z as integer X = textbox1.text -- armazena o valor digitado pelo usuário no controle textbox1 {12} Y = textbox2.text -- armazena o valor digitado pelo usuário no controle textbox2 {25} X ^=2 --eleva X ao quadrado {X=144} Y *=10 – multiplica Y por 10 {Y=250} Z = X + Y -- armazena o resultado da soma {Z = 394} Textbox3.text = Z – transfere o valor de Z para o controle textbox3 {394}

18 FORMATANDO NÚMEROS... Os números podem ser convertidos de um tipo para outro por meio de funções de conversão. Exemplos: Cint(num) – converte num, de um tipo single por exemplo, para inteiro. Cint arredonda o número para o inteiro superior caso a parte fracionária seja maior que 0,5 e para o inteiro inferior caso contrário. Outras funções de conversão: CLng – converte para long CSng – converte para single CDbl – converte para double Cbool – converte para boolean Cbyte – converte para byte

19 FORMATANDO NÚMEROS... Com a utilização da biblioteca matemática (classe math) outros métodos podem ser utilizados para o tratamento de números: Valor absoluto: math.abs(num) retorna o módulo (valor positivo) do número. Inteiro superior: math.ceiling(num) retorna o inteiro superior, independente do valor da mantissa. Inteiro inferior: math.floor(num) retorna o inteiro inferior, independente do valor da mantissa.

20 MANIPULAÇÃO DE STRINGS (FILTROS) Strings são sequencias de caracteres alfanuméricos (textos) e, geralmente, são manipuladas durante aplicação de filtros sobre arquivos ou textos digitados pelo usuário. Os filtros podem demandar, entre outras, as seguintes tarefas: * união * subtração *substituição e remoção * inserção *separação *busca *formatação *comparação O Visual Basic oferece duas alternativas para essa manipulação: funções e métodos. As funções principais são: &,len, mid, instr, StrComp,trim,Ltrim, Rtrim, Format, Ucase e Lcase. Os métodos são herdados da classe “string” e os mais importantes são: Length, Split, Substring, Compare, IndexOf, LastIndexOf, ToLower, ToUpper, Format,

21 União de strings Finalidade: converter duas ou mais strings em uma. Sintaxe: strA = strB & strC & strD &.... O operador “&” – ampersand funciona como operador de soma. Exemplos: Dim strA,strB,strC as string strB= “máquina” strC = “ferramenta” strA = strB & strC ‘máquinaferramenta strA = strB & “ “ & strC ‘máquina ferramenta strA = strB & “-” & strC ‘máquina-ferramenta

22 Subtração de strings Finalidade: subtrair parte de uma string, convertendo-a em outra. Sintaxe 1: strA = mid(strB, start, length) A função mid retorna uma string (sequencia de caracteres) de tamanho definido pelo argumento length dentro da string (strB) iniciando na posição definida pelo argumento start. Sintaxe 2: strA = strB.substring (start, length) O método substring (disponível na classe string) retorna uma string (sequencia de caracteres) de tamanho definido pelo argumento length dentro da string (strB) iniciando na posição definida pelo argumento start.

23 Exemplos: Dim strA, strB As String strB = "máquina" strA = Mid(strB, 1, 3) 'máq strA = strB.Substring(1, 4) 'áqui strA = strB.Substring(2, 5) 'quina ‘observe que na função Mid o enumerador começa em 1. No método substring ele começa em zero. Uma mensagem de erro (veja figura abaixo) aparecerá caso o comprimento( length)ou o início (start) excedam o tamanho da string.

24 Remoção ou Substituição de parte da string Finalidade: remover um ou mais caracteres de uma string ou substituir um ou mais caracteres Sintaxes: strA.remove (start, length) ‘remoção strA.replace (strB, strC) ‘substituição Exemplos: Dim strA,strB,strC as string strB= “máquina operatriz” strC = “ferramenta” strA = strB.remove(7,10)‘máquina strA = strB.replace (“operatriz”, strC )‘máquina ferramenta

25 Inserção de caracteres (ou string) em outra string Finalidade: inserir um ou mais caracteres em uma string já existente Sintaxe: strA.insert (start, srtB) Exemplos: Dim strA,strB as string strB= “mána ferramenta” strA = strB.insert(2,”qui”)‘máquina

26 Separação de uma string em duas ou mais Finalidade: separar uma string em posições conhecidas. Um recurso essencial para construção de filtros. Sintaxe: strA.split (srtB) ‘strB deve funcionar como um marcador (caractere utilizado como separador) conhecido. Exemplos: Dim strA(3) as string‘array Dim strB as string ‘string e separador Dim strC as char ‘separador strB= “torno,fresadora,retificadora,plaina” strC = “,” strA = strB.split(strC )‘strA(0) = torno ::: strA(1) = fresadora :::: strA(2) ‘= retificadora e strA(3) = plaina

27 Busca por caracteres em uma string Finalidade: encontrar a posição (número inteiro) de um dado caractere dentro de uma string. Isto é útil para aplicação dos métodos: insert, remove e substring. Sintaxes: Int = strA.indexof(srtB) ‘retorna um inteiro com a primeira ocorrência do caractere armazenado em srtB Int = strA.indexof(start, srtB) ‘retorna um inteiro com a primeira ocorrência do caractere armazenado ‘em srtB, a partir ‘da posição definida em start Int = Instr(strA, strB) ‘retorna um inteiro contendo o ponto de início da ocorrência de strB dentro de strA Int = strA.lastindexof(strB) ‘ ‘retorna um inteiro com a última ocorrência do caractere armazenado em ‘srtB

28 Exemplos: Dim strA, strB as string Dim id as integer strA = “programação cnc” strB = “cnc” Id = strA.indexof(“a”) ‘retorna 5 Id = strA.indexof(“a”,6) ‘retorna 7 Id = strA.lastindexof(“o”) ‘retorna 10 Id = strA.indexof(“cnc” ‘retorna 12 Id = instr(strA, strB) ‘ retorna 13 o valor é diferente do anterior, pois nas funções o enumerador começa com 1

29 Formatação de strings Finalidade: converter um dado valor em uma string com um formato específico (personalizado) Sintaxes: StrA= string.format(modelo,vlr) ‘ retorna o valor passado em vlr formatado de acordo com modelo. StrA = string.format(local, modelo,vlr) ‘ retorna o valor passado em vlr formatado de acordo com ‘modelo e o padrão regional (ou país) definido em local. StrA = format(vlr, modelo) ‘ retorna o valor passado em vlr formatado de acordo com modelo. StrA = vlr.tostring( modelo) ‘ retorna o valor de vlr formatado de acordo com modelo. Format pode ser utilizado como um método da classe string ou uma função (própria do Visual Basic). O método tostring está disponível para as variáveis de todos os tipos.

30 Exemplos: Dim strA As String Dim vlr1 As Double = Math.E ‘ NEPERIANO: 2,7182818284590... Dim vlr2 As Integer = 100 strA = Format(vlr1, "#.###") 'retorna 2,718 strA = vlr1.ToString("#.###") 'retorna 2,718 strA = String.Format("{0:#.###}", vlr1) 'retorna 2,718 strA = String.Format("{0:e}", vlr1) 'retorna 2,718282e+000 – notação de engª vlr1 = 55 / 7 strA = Format(vlr1, "#.###") 'retorna 7,857 vlr1 *= vlr2 strA = Format(vlr1, "#.###") 'retorna 785,714 strA = Format(vlr2, "#.###") 'retorna 100 strA = Format(vlr2, "#.##0") 'retorna 100,000 Dim reg1 As New System.Globalization.CultureInfo("pt-BR") 'portugues - brasil Dim reg2 As New System.Globalization.CultureInfo("en-US") 'inglês - USA strA = String.Format(reg1, "{0:#.##}", vlr1) 'retorna 2,72 strA = String.Format(reg2, "{0:#.##}", vlr1) ' retorna 2.72 Dim vlrD As Date = "15/09/09" strA = String.Format(reg1, "{0:dd/MMMM/yyyy}", vlrD) 'retorna 15/setembro/2009 strA = String.Format(reg2, "{0:MMMM/dd/yyyy}", vlrD) 'retorna september/15/2009 strA = String.Format(reg2, "{0:#.##0}", vlr1) ‘retorna 785.714 strA = String.Format(reg2, "{0:#.##0}", vlr2) ‘retorna 100.000

31 Outras considerações sobre os separadores decimais... O separador decimal a ser escolhido varia de acordo com a região, ou país, na qual o programa será executado. Entretanto, isto não é tão simples assim. No nosso caso a vírgula “,” deve ser utilizada como separador, porém a maioria dos software que utilizamos são importados de locais aonde o ponto “.” é o separador decimal utilizado. Isto nos impõe a necessidade de restringirmos as entradas numéricas, de controlar o formato dos números para que as operações matemáticas e as saídas não sejam afetadas. De um modo geral, os métodos e funções vistos anteriormente são ineficientes para atender a essas tais necessidades. Diante disso, devemos fazer o seguinte: 1)Alterar as configurações do sistema operacional para que o ponto seja adotado como separador decimal. 2)Monitorar a digitação, por exemplo pelo evento “keypress” e impedir o usuário de digitar a vírgula.

32 Definindo o ponto como separador decimal. 'INCLUIR ANTES DA CLASSE "FORM1” ou formulário – PRINCIPAL: Imports System.Threading Imports System.Globalization 'INCLUIR NO EVENTO LOAD DO FORMULARIO (FORM) PRINCIPAL: Dim sep As New System.Globalization.NumberFormatInfo If sep.CurrentInfo.NumberDecimalSeparator = "," Then 'troca para ponto Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us") sep.CurrentInfo.NumberDecimalSeparator = "." End If

33 Monitorando o evento “keypress” Obs.: O Sistema Windows, e todo aplicativo desenvolvido para ele, é baseado em eventos. Isto nos possibilita o monitoramento de todos os eventos externos (feitos pelo usuário ou outros aplicativos) e internos (gerados pelo sistema operacional). Um desses eventos é o “keypress” que ocorre quando o usuário pressiona uma tecla qualquer. Ao monitorar esse evento, podemos impedir que determinado caractere seja introduzido ou podemos também modificá-lo, tal como mostrado abaixo. ‘inserir no evento “keypress” de um controle de texto If e.KeyChar = "," Then ‘muda para ponto e.KeyChar = "." End If Obs.: para utilizar o evento “keypress” em determinado controle, basta selecioná-lo da lista de eventos, tal como mostrado na figura a seguir

34 Selecionando o evento “keypress”

35 Formatação de strings Outro tipo de formatação é a conversão de letras maiúsculas em minúsculas ou vice-versa. Sintaxes: StrA= StrB.ToLower ‘ retorna de strB em letras minúsculas StrA = StrB.ToUpper ‘ retorna de strB em letras maiúsculas StrA = Ucase(strB)‘ retorna de strB em letras maiúsculas StrA = Lcase(strB) ‘ retorna de strB em letras minúsculas Exemplos: Dim strA, strB As String strB = "TORNO" strA = strB.ToUpper 'retorna TORNO strB = "toRNo" strA = strB.ToLower 'retorna torno strA = UCase(strB) 'retorna TORNO strA = LCase(strB) 'retorna torno

36 Comparação de strings Finalidade: comparar uma string digitada pelo usuário com uma constante ou valor de referência em tempo de execução. Sintaxes: Id = string.compare (strA, strB) ‘ retorna -1 se as strings forem diferentes (strA strB) Id = strA.compareto (strB) ‘ retorna de modo idêntico ao compare bol = strA.equals (strB) ‘esse método diferencia maiúsculas de minúsculas. Retorna verdadeiro (true) se as strings forem iguais ou falso (false), caso contrário. bol = strA.startswith (strB) ‘esse método retorna true se a string strA iniciar com strB ou false caso contrário. bol = strA.endswith (strB) ‘esse método retorna true se a string strA terminar com strB ou false caso contrário. Tanto startswith como endswith distinguem maiúsculas de minúsculas.

37 Exemplos: Dim strA, strB As String Dim id As Integer Dim bol As Boolean strA = "FRESAS" strB = "fresa" id = String.Compare(strA, strB) 'retorna 1 - strings diferentes id = String.Compare(strA, "FRESAS") 'retorna 0 strings iguais id = String.Compare(strA, "fresas") 'retorna 1 - strings diferentes id = String.Compare(strA, "fresas", True) 'retorna 0 --desconsidera ‘maiúsculas/minúsculas id = String.Compare(strB, strA) ' retorna -1 - strings diferentes id = strA.CompareTo(strB) 'retorna 1 - strings diferentes id = strA.CompareTo("fresas") 'retorna 1 - strings diferentes bol = String.Equals(strA, strB) ' retorna TRUE bol = String.Equals(strA, "FRESAS") 'retorna TRUE bol = String.Equals(strA, "fresas") 'retorna FALSE bol = strA.Equals("FRESAS") 'retorna TRUE bol = strA.Equals(strB) 'retorna FALSE bol = strA.StartsWith(strB) 'retorna FALSE bol = strA.EndsWith("sas") 'retorna FALSE bol = strA.EndsWith("SAS") ' retorna TRUE

38 ALGUMAS PROPRIEDADES DA CLASSE STRING Length - armazena a quantidade de caracteres da string chars - retorna o caracter de uma dada posi ç ão na string informada pelo indexador Exemplos: Dim tmh As Integer Dim ltr As String Dim strA As String = "brunimento" tmh = strA.Length 'retorna a quantidade de caracteres: 10 ltr = strA.Chars(5) 'retorna m ltr = strA.Chars(0) 'retorna b ltr = strA.Chars(10) 'gera uma mensagem de erro tal como mostrado abaixo

39 ITERAÇÕES Possibilita a racionalização e o controle do fluxo da programação sem necessidade de repetição do mesmo trecho do código For - Next Sintaxe: for = to [step stp] Next [cntd] for marca o in í cio da iteração cntd é a variável do contador, que deve ser numérica. Geralmente um byte, inteiro ou long, mas pode ser, dependendo do caso um single ou double. Vlri é o valor incial que pode ser passado diretamente ou por referência (outra variável). Vlrf é o valor final. Stp é o valor do incremento (passo). Ele é opcional. Caso não seja declarado, a iteração ocorrerá com passo 1. Next marca o fim do processo (trecho do código) que é executado a cada passo. Ele pode ser seguido no nome da variável contador, mas é opcional.

40 EXEMPLO ‘calcula o fatorial de um número natural N, digitado no controle de texto ‘(textbox1.text) e coloca o resultado em textbox2.text, tal como mostrado na ‘figura abaixo Dim i, N As Long Dim fat As Long = 1 N = TextBox1.Text 'pega o valor a ser processado na caixa de texto For i = 1 To N fat *= i 'executa a multiplicação Next i TextBox2.Text = fat 'transfere o valor para a caixa de texto

41 do - while - loop é utilizado aonde não se sabe, com antecedência, o número de interações a serem feitas. Sintaxe: do while cond {trecho do código} loop do marca o início da iteração while cond é o teste a ser executado. Se verdadeiro (TRUE) o processo continua. Se falso (FALSE) o processo será interrompido. loop marca o fim do trecho de código a ser executado do - until - loop é utilizado aonde não se sabe, com antecedência, o número de interações a serem feitas. Sintaxe: do until cond {trecho do código} loop until cond é o teste a ser executado. Se falso (FALSE)) o processo continua. Se verdadeiro (TRUE o processo será interrompido.

42 Tanto o while como o until podem ser colocados na linha do loop. Nesse caso, o trecho de c ó digo é executado pelo menos uma vez. do - while - loop do {trecho do código} loop while cond do - until - loop do {trecho do código} loop until cond

43 EXEMPLO 'transfere os nomes dos processos até (inclusive) o processo indicado como marcador dim i As Integer = 0 ' contador dim tmh As Integer = ListBox1.Items.Count dim mcd As String = TextBox1.Text ' marcador dim prc As String ' nome do processo prc = ListBox1.Items.Item(i) ListBox2.Items.Clear() 'limpa o conteúdo da lista a ser atualizada Do While i < tmh And Not (prc.Equals(mcd)) prc = ListBox1.Items.Item(i) ListBox2.Items.Add(prc) i += 1 'soma 1 ao indexador Loop

44 CONDICIONAIS São utilizados para controlar (desviar) o fluxo de dados. A estrutura é sempre baseada em teste lógico, o qual desvia o fluxo de acordo com a resultado (verdadeiro ou falso). IF THEN {ação} ELSE {ação alternativa} ENDIF Sintaxes: IF AND THEN {ação} ELSE {ação alternativa} ENDIF IF OR THEN {ação} ELSE {ação alternativa} ENDIF IF THEN {ação} ENDIF

45 Sintaxes: IF THEN {ação} ELSEIF THEN {ação alternativa1} ELSE {ação alternativa1} ENDIF deve ser um teste cujo resultado seja booleno (true or false) Ex: (a >b)?? ELSEIF realiza um outro teste. As instruções (linhas de código) após o THEN serão executadas caso teste seja verdadeiro. A instrução após ELSE será executada somente se os testes anteriores (IF e ELSEIF) falharem (caso falso).

46 SELECT CASE <cond1) {alternativa 1} CASE {alternativa 2} CASE {alternativa 3}... CASE <condN) {alternativa N} CASE ELSE {alternativa do else} END SELECT A estrutura SELECT-CASE é uma alternativa ao IF-THEN para os casos onde o resultado do teste (condicional) não seja booleano (falso ou verdadeiro). O teste é avaliado “CASE” por “CASE” até que a condição (variável) a ser testada seja válida. Caso isto não aconteça, o fluxo é trasferido para a linha subsequente ao “END SELECT” ou para as linhas após o “CASE ELSE” caso ele exista.

47 EXEMPLO Const NMAX = 6000 'rotação máxima da máquina dim rot As Integer 'valor a ser informado pelo usuário dim Ttl As String = "TESTE DA ROTAÇÃO LIMITE" 'título do msgbox rot = TextBox1.Text 'pega o valor digitado If IsNumeric(rot) Then 'testa se é um número If rot > NMAX Then ‘testa contra a rotação máxima MsgBox("ROTAÇÃO EXCEDE O LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl) ElseIf rot = NMAX Then MsgBox("ROTAÇÃO IGUAL AO LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl) Else 'rot < NMAX MsgBox("ROTAÇÃO DENTRO DO LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl) End If Else ' entrada não numérica MsgBox("DIGITE UM NÚMERO", MsgBoxStyle.Exclamation, Ttl) End If A função MsgBox mostra uma mensagem em uma caixa de diálogo e aguarda a resposta do usuário. Retorna um interiro indicando a resposta dada. A função IsNumeric testa um dado valor. Ela retorna um booleano (true) se ele for numérico ou false caso contrário.

48 EXEMPLO

49 RETIRANDO INFORMAÇÕES DE UM ARQUIVO SEQUENCIAL Finalidade: abrir um arquivo sequencial (linha a linha) no formato texto e transferir o conteúdo das linhas para a memória RAM (dentro de um variável) SINTAXE FILEOPEN(num,nome,modo) DO WHILE NOT (EOF (num)) var = LINEINPUT (num) LOOP FILECLOSE(num) FILEOPEN função que abre o arquivo Num é o número a ser dado ao arquivo Nome é a variável que armazena o caminho e o nome do arquivo a ser lido Modo informa as alternativas para abertura do arquivo. No caso de leitura ele pode ser aberto nos modos: input, random ou binary. DO-WHILE-LOOP já foi explicado anteriormente. EOF função que retorna verdadeiro (true) se o fim do arquivo foi atingido. Válida apenas para arquivos abertos nos modos input e random. LINEINPUT função que transfere para uma variável do tipo string a linha corrente do arquivo. Válida apenas para arquivos abertos no modo input. FILECLOSE fecha o arquivo aberto

50 EXEMPLO

51 GRAVANDO INFORMAÇÕES DE UM ARQUIVO SEQUENCIAL Finalidade: gerar um arquivo novo ou abrir um já existente e gravar o conteúdo da memória RAM (variáveis) SINTAXE FILEOPEN(num,nome,modo) PRINTLINE (num, var) FILECLOSE(num) Modo define o tipo de gravação: append ou output. append insere novas linhas ao final de um arquivo já existente. output apaga, caso exista, o arquivo atual e grava a partir do início. PRINTLINE grava uma linha no arquivo aberto (num) com a string armazenada (var) e acrescenta um “fim de linha”. Obs: caso o arquivo não exista, o FILEOPEN criará um novo (com o nome e caminho informados). Entretanto, se a pasta (caminho) não existir, será gerada uma mensagem de erro.

52 EXEMPLO

53 CONTROLES PARA LEITURA E GRAVAÇÃO DE DADOS EM ARQUIVOS O VISUAL BASIC CONTÉM UM CONTROLE PARA ABERTURA DE AQUIVOS (openfiledialog) E OUTRO PARA GRAVAÇÃO (savefiledialog) SIMILARES AQUELES UTILIZADOS EM TODOS OS APLICATIVOS PARA O WINDOWS ESSES CONTROLES ESTÃO DISPONÍVEIS NO “TOOLBOX” E APÓS DAR UM DUPLO CLICK ELES SE INSTALAM NA PARTE INFERIOR DO FORMULÁRIO, TAL COMO MOSTRADO NA FIGURA AO LADO, JUNTAMENTE O CONTROLE PARA CRIAÇÃO DE MENUS (Mainmenu)

54 EXEMPLO: abertura Obs.: MenuItem2 foi o nome dado ao menu ABRE

55 EXEMPLO: gravação Obs.: MenuItem3 foi o nome dado ao menu GRAVA

56 FUNÇÕES E SUB-ROTINAS O USO DE FUNÇÕES E SUB-ROTINAS POSSIBILITA A MODULARIDADE DO PROGRAMA POR MEIO DA SEPARAÇÃO DE TRECHOS DO CÓDIGO. ISTO FACILITA A MANUTENÇÃO E PERMITE O COMPARTILHAMENTO DESSAS ROTINAS COM OUTROS PROJETOS. A DIFERENÇA BÁSICA ENTRE UMA FUNÇÃO OU SUB-ROTINA ESTÁ NO SEUS EFEITOS. AS FUNÇÕES SEMPREM RETORNAM UM VALOR, EQUANTO QUE AS SUB-ROTINAS TÊM EFEITOS SECUNDÁRIOS E NÃO RETORNAM VALORES DIRETAMENTE. SINTAXE PARA SUB-ROTINAS (SUB) Sub nome(prmt1 as type, prmt2 as type,..., prmtN as type) {código} End sub

57 SINTAXE PARA FUNÇÃO Sub nome(prmt1 as type, prmt2 as type,..., prmtN as type) as type {código} return vlret End sub prmt1 a prmtN são os parâmetros (ou argumentos) da sub-rotina ou função. Obs.: geralmente, mas não necessariamente, as funções são criadas nos módulos para facilitar uso das mesmas em outros projetos.

58 EXEMPLO : Representação vetorial; produto escalar e produto vetorial

59 Sub-rotina: disparada pelo botão “CÁLCULO”

60 Funções utilizadas na sub-rotina


Carregar ppt "UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC.NET Objetivo: apresentar os principais recursos da linguagem “Visual Basic” necessários à criação de macros para."

Apresentações semelhantes


Anúncios Google