O QUE SERÁ ABORDADO:



Documentos relacionados
4 Criação de macros e introdução à linguagem VBA

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Programação Básica em Arduino Aula 2

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Resumo da Matéria de Linguagem de Programação. Linguagem C

Introdução aos cálculos de datas

Componentes da linguagem C++

OPERADORES E ESTRUTURAS DE CONTROLE

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Introdução à Linguagem

Orientação a Objetos

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Laboratório de Programação I

Internet e Programação Web

Excel Planilhas Eletrônicas

Manipulando Strings no VBA (Replace, Mid e InStr)

Aluísio Eustáquio da Silva

ÍNDICE... 2 INTRODUÇÃO... 4

CRIANDO UM BANCO DE DADOS

INTRODUÇÃO OBJECT PASCAL/DELPHI

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Pesquisa e organização de informação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Capítulo 2: Introdução à Linguagem C

2. ENTRADA DE DADOS 2.1. TEXTOS

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Parte 5 LibreOffice Base

MICROSOFT EXCEL AVANÇADO

e à Linguagem de Programação Python

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

2 echo "PHP e outros.";

Algoritmos em Javascript

Introdução à Programação

BARRA DE PROGRESSO EM VBA

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Algoritmos e Programação _ Departamento de Informática

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

INF 1005 Programação I

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

JSP - ORIENTADO A OBJETOS

Arquitetura de Computadores. Tipos de Instruções

Organização e Arquitetura de Computadores I

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Microsoft Excel 2003

Manipulando Strings no VBA (Replace, Mid e InStr)

Tutorial de Matlab Francesco Franco

Banco de Dados Microsoft Access: Criar tabelas

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Prof. Esp. Adriano Carvalho

Introdução à Lógica de Programação

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Algoritmos e Programação Estruturada

PDFsam. Manual de Operação. Superior Tribunal de Justiça. Fevereiro/2012 versão 01 - Manual montado por Rafael Verlangieri

Programação WEB I Estruturas de controle e repetição

Banco de Dados. Microsoft Access

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda:

Resolução de problemas e desenvolvimento de algoritmos

Microsoft Office PowerPoint 2007

Roteiro 1: Dados, variáveis, operadores e precedência

INTRODUÇÃO À LINGUAGEM C++

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Iniciação à Informática

CAPITULO 5 COMANDO DE FLUXO IF

CRIANDO FUNÇÕES EM VISUAL BASIC PARA TRANSFORMAÇÕES DE GRAUS SEXAGESIMAIS

ROTINAS PADRÕES DO SISTEMAS

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Expressões Lógicas Comandos de Seleção

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

1. FUNÇÕES NO EXCEL 2007

2. Representação Numérica

AMBIENTE DE PROGRAMAÇÃO PYTHON

Estruturas de Dados. Profa. Juliana Pinheiro Campos

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

APOSTILA DE EXCEL 2007

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

20 Caracteres - Tipo char

Laboratório de Programação I

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Algoritmos com VisuAlg

Associação Educacional Dom Bosco Curso de Engenharia 1º ano

Versão PIMACO AUTOADESIVOS LTDA. Assistente Pimaco Ajuda ao Usuário

Lab - Monitorar e Gerenciar os Recursos do Sistema no Windows 7

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Dicas para usar melhor o Word 2007

Transcrição:

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

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)

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.

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.

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

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 caixas de texto rótulos enumerador barra de rolagem caixas de lista Para adicionar um controle ao formulário Arraste-o e solte-o no local desejado ou execute um duplo click sobre ele.

Tipos e declaração de variáveis Variável é um local reservado na memória RAM para armazenar dados de entrada e resultados do processamento. O Visual Basic suporta e exige a declaração de diferentes tipos de variáveis!! Variáveis simples TIPO SIGNIFICADO Abrangência TAMANHO OCUPADO (bytes) Chr String Armazena um caractere de texto Armazena textos extensos Um caractere 2 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 Byte Short Armazena inteiros positivos Armazena números inteiros em um pequeno intervalo 0 a 255 1-32768 a 32767 2 8

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 10 38 a 4-1,401298 x 10-45 para números negativos e 1,401298 x 10-45 a 3,402823 x 10 38 para positivos Double Ponto flutuante com precisão dupla Armazena duas vezes mais dígitos significativos que o single (15 casas decimais) 8

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

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)

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

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.

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

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

OPERADORES COMPARAÇÃO: OPERADOR SIGNIFICADO > Maior que < Menor que = Igual <> Diferente >= Maior ou igual <= Menor ou igual LÓGICOS OPERADOR AND OR XOR (OR exclusivo) SIGNIFICADO comparação de dois valores booleanos (true ou false) Retorna verdadeiro (true) se os dois valores forem verdadeiros. Retorna falso (false) caso contrário. Retorna verdadeiro (true) se pelo menos um dos valores for verdadeiro (true). Retorna falso (false) caso contrário. 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

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

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}

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

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.

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,

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

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.

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.

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

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

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

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

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

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.

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

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.

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

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

Selecionando o evento keypress

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

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

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

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

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.

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

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.

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 loop until cond {trecho do código}

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

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). Sintaxes: IF <cond1> THEN {ação} ENDIF IF <cond1> THEN {ação} ELSE {ação alternativa} ENDIF IF <cond1> OR <cond2> THEN {ação} ELSE {ação alternativa} ENDIF IF <cond1> AND <cond2> THEN {ação} ELSE {ação alternativa} ENDIF

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

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.

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.

EXEMPLO

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

EXEMPLO

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.

EXEMPLO

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)

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

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

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

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.

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

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

Funções utilizadas na sub-rotina