utilizaÇÃo da linguagem ms-visual basic .net

60
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

Upload: josette-roux

Post on 01-Jan-2016

33 views

Category:

Documents


3 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 2: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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)

Page 3: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 4: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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”.

Page 5: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 6: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Utilizando os controles gráficos disponíveis, faça o leiaute do projeto. Caso necessário adicione um novo formulário.

botõescaixa 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.

Page 7: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

TIPO SIGNIFICADO Abrangência TAMANHO OCUPADO (bytes)

Chr Armazena um caractere de texto

Um caractere 2

String Armazena textos extensos

Até dois bilhões de caracteres

10 + 2 por caractere

Boolean Booleano Verdadeiro ou falso 2

Date Data De 01/01/100 até 31/12/9999

8

Byte Armazena inteiros positivos

0 a 255 1

Short Armazena números inteiros em um pequeno intervalo

-32768 a 32767 2

Page 8: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Variáveis simples (continuação)

TIPO SIGNIFICADO Abrangência TAMANHO OCUPADO (bytes)

Integer Números inteiros em um intervalo médio

-2.147.483.648 a 2.147.483.647

4

Long Nú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 1038

a -1,401298 x 10-45

para números negativos e1,401298 x 10-45

a 3,402823 x 1038

para positivos

4

Double “Ponto flutuante” com precisão dupla

Armazena duas vezes mais dígitos significativos que o single (15 casas

decimais)

8

Page 9: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 10: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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)

Page 11: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLOS (declarações e inicializações)

Dim arr1D(5) as integerDim arr2D(2,2) as singleDim arr3D(2,2,3) as double

arr1D (0) = 87arr1D(3) = 48arr1D(4) = 12345

arr2D(0,0) = 12,456arr3D(0,1,2) = 90,667776698

Page 12: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 namevariabledeclarations End Structure

Name: sequencia alfa-numéricaVariabledeclarations: 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.

Page 13: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 = 78var1(3).b = 65var1(7).b = 567

Page 14: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

OPERADORES

ARITMÉTICOS:

OPERADOR SIGNIFICADO= Atribuição de valor

+ Soma

- Subtração

* Multiplicação

/ Divisão

\ Divide, mas só retorna a parte inteira

Mod Retorna o resto de uma divisão

^ Exponenciação

& Associa duas strings

+= Soma e atribui

-= Subtrai e atribui

*= Multiplica e atribui

/= Divide e atribui

Page 15: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

OPERADORES

COMPARAÇÃO:

OPERADOR SIGNIFICADO> Maior que

< Menor que

= Igual

<> Diferente

>= Maior ou igual

<= Menor ou igual

LÓGICOS

OPERADOR SIGNIFICADO – comparação de dois valores booleanos (true ou false)

AND Retorna verdadeiro (true) se os dois valores forem verdadeiros. Retorna falso (false) caso contrário.

OR Retorna 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

Page 16: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 integerVar1 = 0 --- inicializa com zero (0) em outra linha do programa

Page 17: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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}

Page 18: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 longCSng – converte para singleCDbl – converte para doubleCbool – converte para booleanCbyte – converte para byte

Page 19: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 20: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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,

Page 21: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 stringstrB= “máquina”strC = “ferramenta”strA = strB & strC ‘máquinaferramentastrA = strB & “ “ & strC ‘máquina ferramentastrA = strB & “-” & strC ‘máquina-ferramenta

Page 22: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 23: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 24: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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çãostrA.replace (strB, strC) ‘substituição

Exemplos:Dim strA,strB,strC as stringstrB= “máquina operatriz”strC = “ferramenta”strA = strB.remove(7,10)‘máquinastrA = strB.replace (“operatriz”, strC )‘máquina ferramenta

Page 25: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 stringstrB= “mána ferramenta”strA = strB.insert(2,”qui”)‘máquina

Page 26: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 separadorDim strC as char ‘separadorstrB= “torno,fresadora,retificadora,plaina”strC = “,”strA = strB.split(strC )‘strA(0) = torno ::: strA(1) = fresadora :::: strA(2) ‘= retificadora e strA(3) = plaina

Page 27: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 = 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

Page 28: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 29: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 30: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 31: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 32: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Definindo o ponto como separador decimal.

'INCLUIR ANTES DA CLASSE "FORM1” ou formulário – PRINCIPAL:

Imports System.ThreadingImports 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

Page 33: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 textoIf 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

Page 34: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Selecionando o evento “keypress”

Page 35: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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úsculasStrA = StrB.ToUpper ‘ retorna de strB em letras maiúsculasStrA = Ucase(strB)‘ retorna de strB em letras maiúsculasStrA = 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

Page 36: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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); 0 se forem iguais e 1 se (strA > strB)Id = strA.compareto (strB) ‘ retorna de modo idêntico ao comparebol = 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.

Page 37: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 38: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 39: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 <cntd> = <vlri> to <vlrf> [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.

Page 40: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 41: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 42: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 43: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 44: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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 <cond1> THEN{ação}

ELSE{ação alternativa}

ENDIF

Sintaxes:

IF <cond1> AND <cond2> THEN{ação}

ELSE{ação alternativa}

ENDIF

IF <cond1> OR <cond2> THEN{ação}

ELSE{ação alternativa}

ENDIF

IF <cond1> THEN{ação}

ENDIF

Page 45: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Sintaxes:

IF <cond1> THEN{ação}

ELSEIF <cond2> THEN{ação alternativa1}

ELSE {ação alternativa1}

ENDIF

<cond1> 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).

Page 46: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

SELECT <testcond>CASE <cond1)

{alternativa 1}CASE <cond2>

{alternativa 2}CASE <cond3>

{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 <testcond> 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.

Page 47: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 48: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO

Page 49: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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)LOOPFILECLOSE(num)

FILEOPEN função que abre o arquivoNum é o número a ser dado ao arquivoNome é a variável que armazena o caminho e o

nome do arquivo a ser lidoModo 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

Page 50: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO

Page 51: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 52: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO

Page 53: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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)

Page 54: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO: abertura

Obs.: MenuItem2 foi o nome dado ao menu ABRE

Page 55: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO: gravação

Obs.: MenuItem3 foi o nome dado ao menu GRAVA

Page 56: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 57: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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.

Page 58: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

EXEMPLO :

• Representação vetorial; produto escalar e produto vetorial

Page 59: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

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

Page 60: UTILIZAÇÃO DA LINGUAGEM  MS-VISUAL BASIC  .NET

Funções utilizadas na sub-rotina