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

UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

  • Upload
    lammien

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 •Versões disponíveis: VB5; VB6; .Net2003; .Net2005; .Net2008 e .Net2010 Express (gratuita)

Page 3: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

INICIANDO UM PROJETO EM VISUAL BASIC. .NET

Após iniciar o Visual Basic2010 Express, utilize o menu “TOOLS - OPTIONS” e marque a opção “save newprojects when created”, tal como mostrado acima. Isto possibilitará a escolha do possibilitará a escolha do caminho (pasta) e nome do projeto.

Page 4: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Começando um projeto...

A versão .Net2010 do Visual Basicpossibilita, 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 PresentationFoundation ) 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Um formulário funciona como um pano de fundo para inserção dos controles que serão visíveis em tempo de execução.

Após acionar o botão “OK” aparece (automaticamente) um formulário vazio; o “Solution Explorer” ; o “toolbox” ; a”lista de propriedades”;...

Page 6: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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

enumerador

Para adicionar um controle ao formulário Arraste-o e solte-o no local desejado ou

caixas de lista

barra de rolagem

enumerador local desejado ou execute um “duplo click” sobre ele.

Page 7: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Tipos e declaração de variáveisTipos 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 simplesVariá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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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

Single “Ponto flutuante” com precisão simples

-3,402823 x 1038

a

-1,401298 x 10-45

para números negativos e

4

para números negativos e

1,401298 x 10-45

a

3,402823 x 1038

para positivos

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - unidimensionalDim arrt2D(I, J) As Single – bidimensional Dim arrt3D(I, J, K) As Double - tridimensionalDim 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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) = 12345arr1D(4) = 12345

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

Page 12: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 StructureEnd 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO

Dentro de um módulo:

Structure varestrDim a As IntegerDim b As Integer

End Structure

Public var1() As varestr – é um array dinâmico de uso públicoPublic 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

OPERADORES

ARITMÉTICOS:

OPERADOR SIGNIFICADO= Atribuição de valor

+ Soma

- Subtração

* Multiplicação

/ Divisã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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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

Page 19: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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.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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 * 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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) retornauma string (sequencia de caracteres) de tamanho definidopelo argumento length dentro da string (strB) iniciando naposição definida pelo argumento start.

Page 23: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Exemplos:Dim strA, strB As String

strB = "máquina"strA = Mid(strB, 1, 3) 'máqstrA = strB.Substring(1, 4) 'áquistrA = 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Busca por caracteres em uma string

Finalidade: encontrar a posição (número inteiro) de um dado caracteredentro de uma string. Isto é útil para aplicação dos métodos: insert, removee 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)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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 enumeradorcomeça com 1

Page 29: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Formatação de strings

Finalidade: converter um dado valor em uma string com um formatoespecí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) 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Exemplos:

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

Page 31: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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.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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Selecionando o evento “keypress”

Page 35: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 StringstrB = "TORNO"strA = strB.ToUpper 'retorna TORNOstrB = "toRNo"strA = strB.ToLower 'retorna tornostrA = UCase(strB) 'retorna TORNOstrA = LCase(strB) 'retorna torno

Page 36: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Exemplos:Dim strA, strB As StringDim id As IntegerDim bol As BooleanstrA = "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 diferentesid = 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 IntegerDim ltr As StringDim strAAs String = "brunimento"tmh = strA.Length 'retorna a quantidade de caracteres: 10

ltr = strA.Chars(5)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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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çãofor 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 LongDim fat As Long = 1N = TextBox1.Text 'pega o valor a ser processado na caixa de textoFor i = 1 To N

fat *= i 'executa a multiplicaçãoNext iTextBox2.Text = fat 'transfere o valor para a caixa de texto

Page 41: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO 'transfere os nomes dos processos até (inclusive) o processo indicado como marcador

dim i As Integer = 0 ' contadordim tmh As Integer = ListBox1.Items.Countdim mcd As String = TextBox1.Text ' marcadordim prc As String ' nome do processoprc = ListBox1.Items.Item(i)ListBox2.Items.Clear() 'limpa o conteúdo da lista a ser atualizadaDo While i < tmh And Not (prc.Equals(mcd))

prc = ListBox1.Items.Item(i)ListBox2.Items.Add(prc)i += 1 'soma 1 ao indexador

LoopLoop

Page 44: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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}

Sintaxes:

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

ELSE{ação alternativa}

ENDIF

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

ELSE{ação alternativa}

ENDIF

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

ELSE{ação alternativa}

ENDIF

{ação}ENDIF

Page 45: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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)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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO

Const NMAX = 6000 'rotação máxima da máquinadim rot As Integer 'valor a ser informado pelo usuáriodim Ttl As String = "TESTE DA ROTAÇÃO LIMITE" 'título do msgboxrot = TextBox1.Text 'pega o valor digitadoIf IsNumeric(rot) Then 'testa se é um número

If rot > NMAX Then ‘testa contra a rotação máximaMsgBox("ROTAÇÃO EXCEDE O LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl)

ElseIf rot = NMAX ThenMsgBox("ROTAÇÃO IGUAL AO LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl)

Else 'rot < NMAXMsgBox("ROTAÇÃO DENTRO DO LIMITE PERMITIDO", MsgBoxStyle.Exclamation, Ttl)

End IfElse ' entrada não numérica

MsgBox("DIGITE UM NÚMERO", MsgBoxStyle.Exclamation, Ttl)MsgBox("DIGITE UM NÚMERO", MsgBoxStyle.Exclamation, Ttl)End If

A função MsgBox mostra umamensagem em uma caixa de diálogoe 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO

Page 49: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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

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

DO WHILE NOT (EOF (num))var = LINEINPUT (num)

LOOPFILECLOSE(num)

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

Page 50: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLOEXEMPLO

Page 51: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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)

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

FILEOPEN(num,nome,modo)PRINTLINE (num, var)

FILECLOSE(num)

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 FILEOPENcriará 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLOEXEMPLO

Page 53: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

CONTROLES PARA LEITURA E GRAVAÇÃO DE DADOS EM ARQUIVOS

O VISUAL BASIC CONTÉM UM CONTROLE PARA ABERTURA DEAQUIVOS (openfiledialog) E OUTRO PARA GRAVAÇÃO (savefiledialog)SIMILARES AQUELES UTILIZADOS EM TODOS OS APLICATIVOS PARAO WINDOWS

ESSES CONTROLES ESTÃO DISPONÍVEIS NO“TOOLBOX” E APÓS DAR UM DUPLO CLICK ELESSE INSTALAM NA PARTE INFERIOR DOFORMULÁRIO, TAL COMO MOSTRADO NAFIGURA AO LADO, JUNTAMENTE O CONTROLEPARA CRIAÇÃO DE MENUS (Mainmenu)

Page 54: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO: abertura EXEMPLO: abertura

Obs.: MenuItem2 foi o nome dado ao menu ABRE

Page 55: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO: gravaçãoEXEMPLO: gravação

Obs.: MenuItem3 foi o nome dado ao menu GRAVA

Page 56: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

FUNÇÕES E SUB-ROTINAS

O USO DE FUNÇÕES E SUB-ROTINAS POSSIBILITA A MODULARIDADE DOPROGRAMA POR MEIO DA SEPARAÇÃO DE TRECHOS DO CÓDIGO. ISTO FACILITA AMANUTENÇÃO E PERMITE O COMPARTILHAMENTO DESSAS ROTINAS COMOUTROS 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 ENÃO RETORNAM VALORES DIRETAMENTE.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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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. 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 - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

EXEMPLO :

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

Page 59: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

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

Page 60: UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC - Lab usinagem · Após iniciar o Visual Basic 2010 Express, ... O Visual Basic suporta e exige a declaração de diferentes tipos de

Funções utilizadas na sub-rotina