Você está na página 1de 76

1

Linguagem de programao 2 engenharia eltrica



Captulo 1
Vb.Net: ferramentas, objetos, atributos e eventos

Introduo
O VB.NET a verso atualizada do Visual Basic. Nesse pacote a Microsoft fez uma mudana
significativa. A Microsoft acrescentou recursos e reestruturou completamente o Visual Basic
tornando a tarefa de escrever e distribuir aplicaes para a Web ou para sistemas com n-
camadas mais fcil e simples (MACORATTI, 2001).
O Visual Basic.NET vem com duas opes de desenvolvimento de formulrios: Windows
Forms e Web Forms. Um outra grande mudana no .Net que o vb.Net torna-se uma
linguagem orientada a objetos.
Nesse captulo, vamos trabalhar com os principais objetos, eventos e atributos que utilizaremos
no decorrer do estudo dessa linguagem.

Objetivos

Ao final dos estudos deste captulo, esperamos que voc seja capaz de:
Criar um novo projeto em vb.Net.
Criar vrios formulrios no projeto em vb.Net e optar por qual formulrio ser
executado.
Utilizar os operadores matemticos, relacionais, lgicos e strings.
Declarar e inicializar variveis.
Manipular propriedades de objetos no modo design e em tempo de execuo do
formulrio.
Atribuir valores s variveis e ao objetos de um formulrio.
Utilizar as estruturas de controle IF, SELECT CASE, WHILE, FOR.
Fazer validaes de valores informados pelo usurio.
Manipular os objetos textBox, Label, Button, radioButton, checkBox, groupBox.


Esquema do captulo

2




1. Como criar e salvar um projeto no vb.net

Para criar um novo projeto em vb.Net, necessrio abrir o ambiente. Para isso, acesse Todos
os Programas no menu do Windows, e escolha a opo Microsoft Visual Studio 2012, e clique
na opo Visual Studio 2012. O formulrio exibido como mostrado na Figura 1. Observe que,
ao abrir o Visual Studio, voc pode j definir a linguagem com a qual vai trabalhar. Ento,
escolha a opo Visual Basic Development Settings, e clique no boto Start Visual Studio para
abrir o ambiente.:


3


Figura 1: Tela inicial do executar o Visual Studio 2012.

Quando clicar no boto Star Visual Studio, o ambiente ser carregado para a memria, e ento
ser mostrado um formulrio informando a voc que dever aguardar por alguns minutos. Esse
tempo depender da configurao computador em que estiver executando esse software.



Figura 2: Tela de mensagem ao carregar o Visual Studio 2012 para a memria.


4

Ao carregar o Visual Studio, voc ter uma tela inicial do Visual Studio (Figura 3), onde poder
optar por abrir um projeto em vb.Net, j existente, ou dar incio a um novo projeto.


Figura 3: Tela de inicial do Visual Studio.

Ento, vamos dar incio a um novo projeto. Voc clicar New Project que est ao lado esquerdo
da janela, como mostrado na Figura 3, ou clicar no menu File, e escolher a opo New Project
(Figura 4).

5


Figura 4: Tela de solicitando a criao de um novo projeto em vb.Net.

Em seguida, ser mostrada uma tela (Figura 5), onde dever informar alguns dados para
configurao do projeto a ser criado. Primeiramente, ao lado esquerdo da janela, dever
escolher trabalhar com a linguagem Visual Basic. No dentro, o tipo de projeto em Visual Basic
que ir criar escolha a opo Windows Forms Application, que nos permitir criar um projeto
para ambiente Windows. Na parte inferior, d um nome ao seu projeto.


Figura 5: Tela de configurando a criao de um novo projeto em vb.Net.

6

Ao finalizar essa configurao e clicar no boto Ok que se encontra na parte inferior, do lado
direto, um formulrio vazio (Figura 6) ser criado e exibido no modo Design, ou seja, esse o
modo que permitir que voc desenhe o formulrio, acrescentando os objetos que iro
comp-lo, conforme a necessidade. To importante como criar o projeto, salv-lo. Ento,
salve o projeto, definindo o local onde ser gravado. Para isso, ou voc clica no cone que
representa dois discos, conforme destacado na Figura 6, ou Clique no menu File, e escolha a
opo Save All.



Figura 6: Formulrio vb.Net vazio, no modo Design.


Assim, o formulrio representado na Figura 7 ser exibido. necessrio que confirme o nome
do projeto, no nosso caso, demos o nome de Teste, e a localizao, que determina onde sero
gravados todos os arquivos que comporo o projeto vb.Net. Voc pode optar em escolher a
opo Create directory for soluction. Caso selecione essa opo, ser criada uma pasta com o
nome do seu projeto, onde todos os arquivos que o compe estaro organizados l.


7

Figura 7: Formulrio para salvar o projeto vb.Net pela primeira vez.

Aps salvar o projeto, vamos observar as partes que compe a tela apresentada (Figura 8). Na
parte superior, encontra-se a barra de menu e a barra de ferramentas. Como estamos em um
software da Microsoft, voc pode perceber certa padronizao nas opes com algumas
opes familiares, tanto na barra de menu como na de barra de ferramentas. Do lado
esquerdo, encontra-se a barra de ferramentas, que possui vrios objetos para compor seus
formulrios, e outros objetos que se faam necessrios. Vamos trabalhar com algumas
ferramentas em breve. No centro, um pouco para a esquerda, encontra-se a janela onde temos
um formulrio em branco, pronto para ser editado. Do lado direito, superior, encontra-se o
Solution Explorer. Nessa janela, esto listados todos os arquivos que esto compondo o seu
projeto formulrios, relatrios, classes, e outros. Do lado direito, inferior, fica a janela de
Propriedades, ou tambm conhecidas como atributos, ou ainda, caractersticas do objeto que
estiver selecionado no formulrio. Cada objeto selecionado pode ser personalizado de acordo
com as suas propriedades. Vamos comentando sobre as propriedades de acordo com a
necessidade encontrada.


Figura 8: Tela inicial do vb.Net.


1.1. Criando o primeiro formulrio

Ento, vamos ao nosso primeiro formulrio clssico! Geralmente, os livros de programao
comeam sugerindo que seja feito um formulrio onde enviada uma mensagem: Hello, world!.
Vamos fazer um formulrio que tenha um boto, e que ao clicar nesse boto, aparea a
mensagem: Al, mundo!.

8

Na barra de ferramentas, tem um objeto chamado Button. Ento de um clique com o boto
esquerdo do mouse e clique e arraste o mouse no formulrio. Voc desenhar o boto no
formulrio como ilustrado na Figura 9.


Figura 9: Criando um boto.

Com o boto criado, observe na Figura 9 que o boto est selecionado. Ento, as propriedades
exibidas agora, so relacionadas a esse boto (Figura 10). Observe que na parte superior da
caixa de propriedades encontra-se a identificao Button1 System.Windows.Forms.Button.
Nesse local, voc poder se certificar de qual objeto est selecionado. Voc tambm pode
selecionar um objeto por aqui, clicando nesse local. Um pouco abaixo dessa informao,
encontram-se alguns botes que podem ser muito teis: o primeiro, para voc classificar as
propriedades por tipo. E o segundo, voc classifica as propriedades em ordem alfabtica. Note
que na Figura 10, as propriedades esto classificadas em ordem alfabtica. O terceiro boto,
est selecionado, pois estamos utilizando essa caixa para exibir as propriedades. O quarto
boto, quando selecionado, exibe os eventos desse objeto.


9


Figura 10: Parte da caixa de propriedades exibida com o boto selecionado.


<< Para saber mais!>>
Evento o momento, em relao a esse objeto, em que alguma coisa pode acontecer. Por
exemplo, eu posso programar para que esse boto faa alguma coisa quando o usurio
passar o mouse em cima dele. Ou, posso programar quando o usurio clicar nesse boto. Ou
ainda, posso programar alguma coisa quando o usurio escrever alguma coisa nesse boto.

Evento um dos conceitos bsicos da Programao Orientada a Objetos (POO). No vamos
detalhar sobre POO aqui, mas voc pode pesquisar um pouco a respeito.

Procure o conceito de Objeto, Evento, Propriedade, Classe, Herana e Polimorfismo.

Esses conceitos podem lhe ser teis, considerando que o vb.Net uma linguagem orientada a
objeto.

<<fim Para saber mais>>

Agora, observe na Figura 10 que temos a propriedade Text. Essa propriedade configura o texto
que est escrito no objeto selecionado. A propriedade contm Button1 (Figura 10), e
observando no formulrio (Figura 9) o texto do boto Button 1. Ento, vamos alterar a
propriedade para Ok. Ao pressionar Enter, ou mudar de propriedade, imediatamente, o texto
do boto modificado.

Uma outra propriedade que tambm utilizamos com frequncia, a propriedade Name. Essa
propriedade refere-se do nome desse objeto. Quando estivermos programando e eu precisar
manipular esse objeto, eu preciso me referenciar a ele utilizamos o nome dele. Quando a sua
caixa de propriedades estiver em ordem alfabtica, como a apresentada na Figura 10, essa
10

propriedade aparece na parte superior da caixa (Figura 11). Vamos alterar o nome do nosso
boto para btnOk.


Figura 11: Parte da caixa de propriedades exibida com o boto selecionado, acessando a propriedade
Name.

At o momento, apenas modificamos as propriedades do boto. Agora, vamos programa-lo
para que ao clicar nesse boto exiba a mensagem Al, mundo!. Para isso, d duplo clique no
boto Ok. Ser exibida a tela de cdigo (Figura 12). Observe que a janela de cdigo j possui
uma classe Form1, que iniciada com Public Class Form1 e finalizada com End Class. Note
que tambm apareceu um Private sub do boto Ok, do evento Click, que iniciado com Private
Sub btnOk_Click e finalizado com End Sub. Entre a linha que inicializa e que finaliza que
vamos programar o que desejamos.

<<fique atento!>>
Tudo que inicializado dever ser finalizado.
<<fim do fique atento>>



Figura 12: Cdigo do boto Ok, evento Click.

Para exibirmos a mensagem Al, mundo!, vamos utilizar um mtodo para auxiliar nesse
processo. Esse mtodo mostra uma mensagem em uma caixa de dilogo, e fica aguardando
11

que o usurio clique em um boto. Quando um boto clicado, esto funo retorna um valor
numrico indicando qual boto o usurio clicou. Ento, entre o bloco Private Sub e End Sub,
vamos escrever uma linha de comando, como mostrado na Figura 13:


Figura 13: Mtodo MsgBox sendo utilizado.

Note que, apenas inserimos a mensagem Al, mundo!. Esse mtodo nos permite ainda
trabalhar com outros parmetros, como ttulo da mensagem ou ainda mostrar um cone
ilustrativo de acordo com o tipo de mensagem que est enviado.

<<Para saber mais>>
Conhea melhor esse mtodo, ele pode vir a ser muito til.

Quando digitar o mtodo MsgBox, selecione o mtodo e pressione F1 no teclado.

<<fim do Para saber mais>>

Agora, vamos executar o nosso projeto! Voc tem trs formas para execut-lo: ou voc vai no
menu Debug e colhe a opo Start Debugging, ou pressiona a tecla F5 no teclado, ou clica no
boto destacado a seguir (Figura 14).


Figura 14: Formas para compilar e executar um projeto (menu ou barra de ferramentas).


O formulrio ser exibido apenas com o boto que criamos anteriormente. Quando voc clicar
nesse boto, a caixa de mensagem ser exibida com a mensagem Al, mundo!, conforme
nos propomos acima (Figura 15).


12


Figura 15: Formulrio para exibir a mensagem Al,mundo sendo executado.

Ao clicar em Ok, na caixa de mensagem, a caixa de mensagem se fecha, e o formulrio com o
boto volta a ficar disponvel para o usurio.

<Inserir cone de interrogao>
Vamos incrementar essa mensagem?
Que tal solicitarmos ao usurio um nome e personalizarmos a mensagem?

Vamos s aes necessrias! Feche o formulrio que est sendo executado, e volte para o
modo design. Agora, insira um textBox no formulrio, e altere a propriedade Nome para
TxtNome (Figura 16).

13


Figura 16: Acrescentando o objeto TextBox e alterando a propriedade Name dele.

Ento, vamos para o modo de desenvolvimento clicando na aba Form1.vb ou dando dois
cliques no boto Ok. Agora, vamos concatenar o texto Al, com o nome que estar no
textbox.

<<Para saber mais>>
O que concatenar?
Concatenar o mesmo que aglutinar, juntar.

No vb.Net, os operadores utilizados so & ou + . Muitos autores sugerem que tenha o
hbito de utilizar o & para concatenar, e deixar o + apenas para ser utilizado para uma
operao matemtica.

Seguem alguns exemplos:

Universidade & de & Uberaba Universidade de Uberaba
Universidade + de + Uberaba Universidade de Uberaba
123 + 1 1231
Maria & Silva Universidade de Uberaba

<<fim do Para saber mais>>

Para acessarmos o que o usurio digitou no textBox, utilizaremos a propriedade Text. Essa
propriedade o texto propriamente dito que est no textBox nesse momento. Para acessar
qualquer propriedade, necessrio digitar o nome do objeto e um . (ponto) logo em seguida.
Todos as propriedades sero exibidas. Selecione ou digite Text (Figura 17).
14



Figura 17: Acrescentando o mtodo MsgBox no boto Ok.

Salve o projeto e execute-o novamente. Agora, o usurio ter disponvel para ele o textbox e o
boto. No exemplo a seguir (Figura 18), digitei o nome Maria e cliquei no boto Ok.


Figura 18: Formulrio para exibir a mensagem Al,mundo personalizada com o nome inserido no
TextBox sendo executado.


2. Operadores Suportados

Para que possamos incrementar esse formulrio, vamos conhecer os operadores suportados
no vb.Net.

Vamos apresentar os operadores matemticos, relacionais, lgicos e strings.

2.1. Operadores Matemticos:
Os operadores matemticos retornam sempre um valor numrico. Segue a identificao
destes:
Adio .................................. +
Subtrao ............................. -
Multiplicao ........................ *
Diviso ................................. /
Exponenciao ..................... ^
Diviso inteira ....................... \
Resto da Diviso Inteira ....... Mod
15


Veja os exemplos a seguir:

Var1 = 2 + 2 ................... Var1 = 4
Var2 = 2 - Var1 ............... Var2 = 2
Var3 = 2 * Var2 .............. Var3 = 4
Var4 = Var3 / 2 ............... Var4 = 2
Var5 = 2 ^ 3 .................... 'Var5 = 8
Var6 = 5 \ 3 .................... 'Var6 = 1
Var7 = 5 Mod 3 .............. 'Var7 = 3


2.2. Operadores Relacionais:
Os operadores relacionais retornam valores booleanos True ou False, indicando se a relao
verdadeira ou no entre os valores relacionados.

Igualdade .............................. =
Menor .................................... <
Menor e Igual ....................... <=
Maior ..................................... >
Maior e Igual ......................... >=
Diferente ............................... <>

Veja os exemplos a seguir:

Var1 = (3 = 3) ........................ Var1 = True
Var2 = (1 < 5) ........................ Var2 = True
Var3 = (1 <= 1) ...................... Var3 = True
Var4 = (2 > 6) ........................ Var4 = False
Var5 = (5 >= 2) ...................... Var5 = True
Var6 = (4 <> 4) ...................... Var6 = False

2.3. Operadores Lgicos
Os operadores lgicos executam as operaes lgicas, que retornam um valor booleano. Os
valores de retorno dependem da semntica de cada operador


And ....................................... E lgico
Or .......................................... Ou Lgico Inclusivo
Not ........................................ No Lgico

Veja os exemplos a seguir:

Var1 = (2 = 2) and (3 < 1) ...... Var1 = True
16

Var2 = (2 < 3) and (2 < 1) ...... Var2 = False
Var3 = (Var2 or Var1) ............ Var3 = True
Var6 = (not True) ................... Var6 = False
Var7 = (not Var6)................... Var7 = True


2.4. Operadores de String:
Como vimos anteriormente, no exemplo Al, mundo!, os operadores de string concatenam
duas expresses formando uma nica string.

Os caracteres so: +, &.

Veja os exemplos:

"Uni" + "ube" ......................... ' Resultado: imprimira "Uniube"
"Uni" & "ube" ......................... ' Resultado: imprimira "Uniube"
"Valor: " & 100 ....................... ' Resultado: imprimira "Valor: 100"
"Hoje: " & Date ...................... ' Resultado: imprimira "Hoje: 01/12/2013"


3. Variveis e Tipos de Dados Suportados

3.1. Os Tipos de Dados Fundamentais

Os tipos de dados suportados pelo VB.net so:

Tipo de dado em
VB.NET
Descrio
Byte Inteiro sem signo de 8 bit.
Sbyte (No nativo) Inteiro sem signo de 8bit (Tipo no conforme com o CLS)
Short Inteiro com signo de 16 bit.
Integer Inteiro com signo de 32 bit.
Long Inteiro com signo de 64 bit.
UInt16 (No nativo) Inteiro sem signo de 16 bit. (Tipo no conforme com o CLS)
Uint32 (No nativo) Inteiro sem signo de 32 bit. (Tipo no conforme com o CLS)
Uint64 (No nativo) Inteiro sem signo de 64 bit. (Tipo no conforme com o CLS)
Single Nmero com vrgula flutuante de preciso simples, de 32 bit.
Double Nmero com vrgula flutuante de preciso dupla, de 64 bit.
Boolean Valor lgico
Char Caractere unicode de 16 bit.
Decimal Valor decimal de 96 bit.
IntPtr (No nativo) Inteiro com signo cujo tamanho depende da plataforma: 32 bit
em plataformas de 32 bit e 64 bit em plataformas de 64 bit.
17

(Tipo no conforme com o CLS)
UintPtr (No nativo) Inteiro sem signo cujo tamanho depende da plataforma: 32 bit
em plataformas de 32 bit e 64 bit em plataformas de 64 bit.
(Tipo no conforme com o CLS)
String Cadeia de caracteres.
Tabela 1: Tipos de dados vb.Net.
Fonte: Adaptado de RECIO, PROVENCIO (2013).


3.2. Declarao de Variveis

Variveis so os elementos bsicos que so manipulados na memria em um programa.

Uma varivel um espao reservado na memria do computador para armazenar, em
tempo de execuo, um tipo de dado determinado.

As variveis so indentificadas por um nome. A denominao varivel em consequncia da
possibilidade dos valores poderem variar.

Para declarar uma varivel basta utilizar uma das sintaxes abaixo:

Dim <Nome da Variavel> As <Tipo de Dado>

Na sintaxe anterior, mostrado como declarar uma nica varivel de um tipo especificado.
Caso necessite declarar mais de uma varivel, pode escolher uma das alternativas a seguir.


Dim <Nome da Variavel> As <Tipo de Dado>
Dim <Nome da Variavel> As <Tipo de Dado>







Dim <Nome da Variavel 1>, <Nome da Variavel 2> As <Tipo de Dado>






Veja a seguir alguns exemplos de declarao, inicializao e referncia variveis:
Uma linha com comando para
declarar cada varivel.

Uma linha nica linha de comando
para declarar as variveis, de
mesmo tipo de dado.
18


Dim VarA As Integer
Dim VarB As String

VarA = 837
VarB = "Ol aluno " & textbox1.text

Ento, vamos praticar um pouco o que aprendemos at agora.

J fizemos um formulrio para exibir a mensagem Al, mundo!. Ento, na janela Solution
Explorer, vamos adicionar um novo formulrio. Observe que, nessa janela, aparece na parte
superior, em negrito, o nome que demos ao nosso projeto Teste. Clique com o boto direito do
mouse em cima no nome do projeto. Um menu aparecer, e, ento, escolha a opo Add para
adicionar, e depois escolha o que deseja adicionar, no nosso caso, Windows Form, conforma
ilustrado a seguir (Figura 19).


Figura 19: Procedimento para criao de um novo formulrio dentro de um projeto.

A tela exibida mostrar a opo j escolhida (Windows Form), dando possibilidade de voc
poder dar um novo nome para o seu formulrio. Eu vou deixa-lo com o nome de Form2. Agora,
s clicar no boto Add.





19


Figura 20: Janela exibida ao criar um novo formulrio dentro de um projeto.

Salve o projeto no menu File, opo Save All, ou clique no cone com dois discos. Nesse
momento, a janela Solution Explorer exibir dois formulrios: Form1 e Form2. Se voc executar
o projeto, o Form1 que ser exibido. Ento, vamos configurar o vb.Net para que, ao executar
o projeto, o Form2 seja exibido. Na janela Solution Explorer, clique com o boto direito do
mouse novamente sobre o nome do projeto, que est em negrito. Agora, escola a opo
Properties. Uma janela ser exibida, onde vrias opes podem ser configuradas. Mas a que
nos interessa agora configurar o formulrio que dever ser exibido ao executar o projeto. Na
opo Startup Form voc deve selecionar o Form2 (Figura 21). Configurao feita. Agora, se o
projeto for executado, ser exibido o Form2.

Pode fechar a janela de propriedades, e vamos ao trabalho, construir o nosso Form2.


20


Figura 21: Janela de propriedades do projeto.

Vamos fazer um formulrio onde o usurio entrar com dois valores (textBox), e ao clicar em
um boto (button), vamos mostrar a soma desses dois valores para o usurio (em outro
textBox). Vamos trabalhar com o Form2 no modo Design, e criar os objetos necessrios: 3
textBox, 1 button (Figura 22). Utilizaremos o Label para identificar as informaes que sero
digitadas/exibidas nos textBoxs.


Figura 22: Form2 no modo Design.

Vamos mudar as propriedades que j comentamos anteriormente: Name e Text, onde so
necessrias. Veja como fica o Design do formulrio na Figura 23.

Foram alteradas as seguintes propriedades nos objetos referidos objetos:
No Label1:
Text ........... 1 nmero
21


No Label2:
Text ........... 2 nmero

No Label3:
Text ........... Resultado

No TextBox1:
Name ......... txtNum1

No TextBox2:
Name ......... txtNum2

No TextBox3:
Name ......... txtResult


Figura 23: Form2 no modo Design, com as propriedades dos objetos j modificadas.

Vamos, ento, programar o btnOk. D duplo clique no boto btnOk. Na janela de
desenvolvimento, vamos criar as variveis que recebero os dois valores digitados pelo usurio
(Figura 24).


Figura 24: Janela de desenvolvimento do boto btnOk declarao de variveis.

<incio Ateno!>
Fique atento!
22


Um objeto e uma varivel tero nomes distintos! Se voc definir o mesmo nome para um
objeto no formulrio e o mesmo nome para uma varivel, o vb.Net no saber o que est
sendo referenciado naquele momento: o objeto ou a varivel?

<fim Ateno!>

As variveis formam declaradas na mesma linha, pois elas tm o mesmo tipo de dado. Foram
definidas como Integer, pois vamos aliment-las com nmeros.

Agora, vamos inicializar as variveis (Figura 25):

Figura 25: Janela de desenvolvimento do boto btnOk atribuio de valores nas variveis.

A varivel num1 foi inicializadas com o texto que foi digitado no textBox de nome txtNum1. E a
varivel num2 foi inicializadas com o texto que foi digitado no textBox de nome txtNum2.

Vamos ao clculo que dever ser mostrado no txtResult (Figura 26).


Figura 26: Janela de desenvolvimento do boto btnOk resultado do clculo atribudo ao textBox.

Como o resultado ser apenas mostrado, e no ser manipulado, podemos mostrar o
resultado direto no textBox, no havendo a necessidade de criar uma varivel para tal. Por
isso, atribudos a somatria dos dois valores, que j se encontram em variveis, ao texto do
txtResult.

23

Ao executar o projeto e inserir valores, o resultado ser como apresentado na Figura 27. Foram
digitados os valores 10 e 20, assim a soma dos dois valores foi calculada chegando ao
resultado 30.


Figura 27: Form2 sendo executado.

Salve o projeto.


4. Estruturas de Controle

Como qualquer linguagem, o vb.Net possui estruturas de controle do fluxo de execuo.
Podem ser condicionais e de repetio.

A seguir sero explicadas aquelas que julgamos mais importantes.

4.1. IF
A instruo IF utilizada para que um bloco de instrues seja executado apenas quando a
condio for verdadeira, ou para escolher entre duas opes. A condio deve ser uma
expresso boleana (lgica) (Figura 28).

24


Figura 28: Variaes da sintaxe do IF.

Na primeira opo (comeando pelo lado esquerdo), a condio avaliada, e apenas se a
condio tiver um resultado verdadeiro, o primeiro bloco de instrues executado. E caso a
instruo tenha um resultado falso, o segundo bloco de instrues executado. Se a condio
no for verdadeira, o cdigo segue para o prximo comando que est aps o IF.

Na segunda opo, caso a condio avaliada obtenha um resultado verdadeiro, a instruo
executada.

<incio Fique atento!>
A segunda opo somente utilizada se a condio for verdadeira quando deve ser executada
apenas uma instruo.
<fim Fique atento!>

Na terceira opo, uma condio avaliada. Caso seja verdadeira, o primeiro bloco de
instrues executado. Caso seja falsa, pode-se fazer uma nova condio, e se essa condio
for verdadeira, o segundo bloco de instrues executado. E, caso nenhuma das condies
forem verdadeira, o terceiro bloco de instrues executado.

<inserir interrogao>
Vamos praticar?

Vamos acrescentar o Form3 no nosso projeto. E j configure as propriedades para que esse
formulrio seja exibido ao executar o projeto.

Nesse formulrio, vamos incrementar a nossa calculadora. Agora, nesse formulrio, vamos
solicitar ao usurio que entre com dois valores numricos e escolha um dos operadores (+ ou
ou * ou /). Veja o design do formulrio:
Variaes da sintaxe do IF
IF <condio> THEN
<bloco de instrues 1>
ELSE
<bloco de instrues 2>
ENDIF
IF <condio> THEN instruo
IF <condio> THEN
<bloco de instrues 1>
ELSEIF <condio> THEN
<bloco de instrues 2>
ELSE
<bloco de instrues 3>
ENDIF
25



Figura 28: Design do Form3 calculadora simples.

Foram utilizados labels, textboxs e buttons. Foram alteradas as propriedades Name e Text,
quando necessrio.

Nesse formulrio, teremos algumas preocupaes:
1. Validar os valores antes de inicializarmos as variveis.
2. Criao de um boto para que se realize um novo clculo.
3. Bloquear o textBox que apresenta resultado.

importante validarmos os valores antes de iniciarmos as variveis, pois, veja nesse caso: se
o usurio no digitar nada no textBox onde o primeiro valor inserido, significa que a
propriedade Text do texBox est vazia. Quando voc iniciar a varivel (que integer
numrica) com esse textBox vazio, ocorrer um erro, pois, vazio um valor compatvel com o
tipo de dado String (texto).

Ento, essa a primeira validao que fazemos: verificar se os valores necessrios foram
informados. E, depois, validar ser foram inseridos corretamente.

Vamos validao se os valores foram informados.

Ao dar duplo clique no boto btnCalcular, vamos testar cada objeto que o usurio deve entrar
com uma informao. Essa a primeira validao a ser feita.

<inserir Importante!>

importante destacar que a validao deve ser feita antes da atribuio dos valores de um
objeto uma varivel.

<fim importante>

Para fazermos essa validao, vamos perguntar se o usurio escreveu, ou no, alguma coisa
nos textboxs. Quando o usurio escreve algo no textbox, esse texto fica armazenado na
26

propriedade Text. Ento, vamos perguntar se essa propriedade est vazia. Se estiver, significa
que o usurio no digitou, e vamos inform-lo a respeito (Figura 29).


Figura 29: Validao se o primeiro valor foi informado.

Observando o cdigo, fazemos a primeira validao com o contedo da propriedade Text, se
ele est vazio. Se estiver vazia, informamos ao usurio e solicitamos que seja preenchido
corretamente.

Mas, temos outros textboxs no formulrio que devem ser validados. Vamos fazer essas
validaes com ELSEIF (Figura 30).


Figura 30: Validao se todos os textboxs foram preenchidos.

27

Fizemos, inclusive, a validao para sabermos se o usurio informou um operador. Agora,
vamos verificar se o usurio digitou um valor vlido. No caso dos valores, preciso que o
usurio tenha digitado um valor numrico (apenas nmeros). Para nossa felicidade, j existe
um mtodo: o ISNUMERIC. Esse mtodo verifica se so nmeros na cadeira de caracteres, e
retorna um resultado boleano verdadeiro ou falso. Ento, se existirem apenas nmeros, traz o
resultado Verdadeiro. E, se no existirem apenas nmeros, traz o resultado Falso. Vamos s
validaes (Figura 31):


Figura 31: Validao se todos os textboxs foram preenchidos, com valores vlidos.


Precisamos ter em mente que no necessariamente seremos ns, que estamos construindo o
programa, que vamos manipul-lo. Ento, se o usurio entrou com algo que no um valor
numrico, vamos limpar o textbox, para que ele entre com um novo valor, e mover o foco para
l, ou seja, vamos deixar o cursor dentro do textBox para que o usurio possa imediatamente
digitar um novo valor.

Para limpar um textBox, ou voc utiliza o mtodo Clear, ou move vazio para a propriedade Text
do textbox. E para mover o foco, utilizamos o mtodo Focus (Figura 32).

28


Figura 30: Utilizao dos mtodos Clear e Focus.

No caso do operador, preciso verificar se o usurio digitou um operador vlido: ou +, ou -,
ou *, ou /. Ento, se o usurio tiver informado algo diferente dessas quatro opes, algo
que no vlido. Por isso, utilizaremos o operador lgico AND (E). Assim se o caracter
informado for diferente dos quatro ao mesmo tempo, exibiremos uma mensagem ao usurio o
informando. E, finalmente, caso nenhuma das alternativas sejam verdadeira, podemos
programar a calculadora simples (Figura 31). Esse o nosso ELSE de todos os IFs realizados.

29


Figura 30: Validao do operador informado.

Aps validaes, vamos alimentar as variveis, e, em seguida, precisaremos identificar qual
operador foi escolhido. Agora j sabemos que trata-se de uma das opes vlidas, pois se o
programa chegou at aqui, porque no entrou em nenhuma opo de erro valor invlido.
Faremos essa verificao com IF, sem utilizar o ELSEIF para que perceba que chegaremos no
mesmo lugar, mas o cdigo fica muito mais clean (Figura 31).

30


Figura 30: Validao do operador informado, para realizao da operao.

Agora, veja o mesmo cdigo com o IF ELSEIF (Figura 31):


Figura 31: Validao do operador informado, para realizao da operao (com ELSEIF).


31

< incio Fique atento!>

Note que, a ltima opo, a diviso, no foi feito um IF para ela, pois como j fizemos a
validao dos valores invlidos, e se no +, nem -, nem *, s nos resta o /.

<fim Fique atento>

Para programarmos o boto Novo Clculo, basta limpar todos os textboxs do formulrio (Figura
32).



Salve o projeto e vamos compila-lo!

Veja o resultado (Figura 32) quando informado dois valores vlidos e clicado no boto Calcular:


Figura 31: Executando o formulrio de calculadora simples ao pressionar o boto Calcular.

Ao clicar no boto Novo Clculo, o formulrio fica pronto para que novos dados sejam
informados (Figura 32). Como se o formulrio fosse reinicializado.

32


Figura 32: Executando o formulrio de calculadora simples ao pressionar o boto Novo Clculo.

Vamos inserir um caracter no 1 nmero. Veja a mensagem de advertncia ao usurio, quanto
ao valor incorreto fornecido (Figura 33).


Figura 33: Executando o formulrio de calculadora simples inserindo um valor invlido.

O mesmo acontecer se o usurio inserir um valor invlido para o 2 nmero ou para o
operador. Faa os testes!

Para finalizarmos, vamos ter mais um cuidado! O textBox que apenas apresenta resultado,
deve ser impedido do usurio mexer na propriedade Text. Assim, no correremos o erro do
usurio editar o resultado calculado. Para isso, vamos alterar a propriedade Enabled deste
textBox. Geralmente, essa propriedade vem o valor True, ou seja, est liberado para edio.
Vamos muda-la para False. Vamos impedir a edio nesse textBox (Figura 34).

33


Figura 34: Alterando a propriedade Enabled.

Ao executar o projeto, voc vai perceber que a aparncia deste textBox fica diferente dos
outros (Figura 35).


Figura 35: Formulrio executando, com textBox bloqueado.

Observe que o textBox bloqueado fica acinzentado, e os outros, que esto liberados, ficam com
aparncia padro de um textBox.

Solucionamos nossa preocupaes com esse exemplo:
1. Validar os valores antes de inicializarmos as variveis.
2. Criao de um boto para que se realize um novo clculo.
3. Bloquear o textBox que apresenta resultado.

Calculadora simples, feita!


34

4.2. SELECT CASE

A instruo SELECT CASE tem como objetivo facilitar a realizao de vrios testes em relao
a uma determinada varivel, ou expresso. Essa a diferena entre o IF e SELECT CASE. O
IF permite que se faa condio com mais de uma varivel ao mesmo tempo.

Uma vantagem dessa estrutura de controle que voc escreve o nome da varivel uma nica
vez para validar quantos valores forem necessrios.

Veja a sintaxe do SELECT CASE:

SELECT CASE <Varivel>
CASE valor1
<bloco de instrues 1>
CASE valor2
<bloco de instrues 2>
CASE valor3
<bloco de instrues 3>
CASE ELSE
<bloco de instrues 4>
END SELECT

Nessa estrutura de controle uma varivel selecionada. Se essa varivel, em relao ao
valor1, obter um resultado verdadeiro, o bloco de instrues 1 executado. Se o resultado for
falso, essa varivel testada com o valor 2. E se o resultado for verdadeiro, ento, o bloco de
instrues 2 executado. E assim por diante. Caso nenhuma validao seja verdadeira, ento,
o bloco de instrues 4 executado.

O CASE ELSE opcional. Apenas utilizado, e for necessrio.

Voc percebe que voc pode optar entre o IF e o SELECT CASE para fazer condies? Mas
fique atento! Para ser vivel utilizar o SELECT CASE, a expresso de teste deve ter mais de
dois resultados, caso contrrio a instruo IF torna-se a melhor escolha. Outra observao que
de ser feita ao escolher um,a das estruturas, que a instruo CASE ser avaliada at que
uma condio verdadeira tenha sido encontrada ou CASE ELSE seja executada. Desta forma,
para que tenha otimizao na execuo dessa estrutura, voc deve colocar as instrues
CASE em ordem de probabilidade.

As instrues CASE podem conter uma expresso simples, apenas comparando com um valor
absoluto, ou expresses complexas. Veja a seguir alguns exemplos.

Expresso simples ........................... CASE 5
Vrios itens ...................................... CASE 5,10,15
Intervalos ......................................... CASE 5 to 20
35

Expresso de comparao ............... CASE IS > 13
Expresso Composta ....................... CASE 5,8, 11 to 14, IS > 40

<inserir interrogao>
Vamos praticar?

Vamos acrescentar o Form4 no nosso projeto. E j configure as propriedades para que esse
formulrio seja exibido ao executar o projeto.

Nesse formulrio, vamos fazer um controle de notas. Nesse formulrio, vamos solicitar ao
usurio que entre com dois valores numricos e clique no boto gerar notas. Vamos calcular a
soma das notas e a mdia aritmtica do aluno, e ainda, informa-lo se est de aprovado, de
exame final ou reprovado. Veja o design do formulrio (Figura 34):


Figura 34: Design formulrio de notas.

Foram utilizados labels, textboxs e buttons. Foram alteradas as propriedades Name e Text,
quando necessrio.

Nesse formulrio, teremos os seguintes objetivos:
1. Validar os valores ser foram informados e se esto corretos (valores entre 0 e 10).
2. Calcular a soma das notas.
3. A mdia aritmtica do aluno.
4. Informa-lo se est aprovado, de exame final ou reprovado.
5. Bloquear textBoxs que tero dados calculados.
6. Preparar o formulrio para novo clculo.

Lembra-se da validao que destacamos no formulrio anterior? Nesse formulrio tambm
faremos as validaes: se o usurio informou dados e se so dados corretos. Ento, dar duplo
clique no boto Calcular, vamos iniciar com a declarao das variveis, e, em seguida, com as
validaes. Primeiro, se os valores (as notas) foram informados, e, depois, se esto corretos
(Figura 36).

36

< incio Fique atento!>
Ateno!

Como vamos trabalhar com notas, vamos trabalhar com o tipo de dados numrico com casas
decimais DOUBLE.

<fim Fique atento!>

Ento, para que as notas sejam valores vlidos, os textBoxs no podem estar vazios, devem
ser valores numricos. E mesmo se forem valores numricos, precisamos validar se as notas
esto fora do intervalo de 0 a 10, ou seja, se as notas so menor que 0 ou maior que 10. Caso
positivo, vamos mostrar uma mensagem ao usurio solicitando que entre com um valor vlido
(entre 0 e 10, inclusive!).


Figura 36: Validaes e atribuio de valores nas variveis.

Com as variveis iniciadas com os valores informados, vamos aos clculos! Vamos primeiro,
calcular o total. E depois, calcular a mdia. Com a mdia calculada, vamos verificar se o aluno
est reprovado (mdia menor que 4), de exame final (mdia maior ou igual a 4 e menor ou
igual a 6) ou aprovado (mdia maior que 6). Para isso, vamos comparar o valor da mdia com
os intervalos que definem o resultado final. Nesse exemplo, foi utilizado o Select Case. E,
finalmente, vamos atribuir os valores encontrados para os textBoxs (Figura 37).

37


Figura 37: Clculos do programa e atribuio de resultados nos textBoxs.

Agora, vamos bloquear os objetos que recebero dados calculados. No formato Design, a
propriedade Enabled modificada para False, nos textBox de Total, Mdia e Resultado Final.
Para facilitar, selecione os trs textBoxs e em seguida altere o valor da propriedade (Figura 38).

38


Figura 38: Alterao da propriedade Enabled nos textBoxs que recebero dados calculados.

A programao do boto Calcular est pronta. Falta a programao do boto Novo Clculo.
Neste boto, vamos limpar todos os textBoxs, e, em seguida, mover o focu para o primeiro
textBox que o usurio vai informar um dado (Figura 39).


Figura 39: Programao do boto Novo Clculo.


Salve o projeto! E vamos execuo (Figura 40):

39


Figura 40: Formulrio sendo executado.


Formulrio pronto!


4.3. While ... End While

A estrutura While (Enquanto) uma das estruturas de repetio. Essa estrutura faz uma
condio. E apenas se essa condio for verdadeira, o bloco de instrues executado at
que essa condio se torne falsa. Ento, nessa estrutura, existe a possibilidade de nunca ser
executado o seu bloco de instrues.

A sua forma bsica :
While <condio>
<bloco de instrues>
End While

Para finalizar a estrutura WHILE utiliza-se o comando END WHILE.

H uma forma de interromper essa estrutura, ou seja, fazer com que saia da estrutura WHILE
sem que a condio se torne falsa. Utiliza-se o comando EXIT WHILE. importante destacar
que, esse comando de interrupo da estrutura apenas utilizado em casos extremamente
necessrios.

Vamos ver como essa estrutura funciona!

Suponha que devemos listar uma sequncia numrica de 1 a 10. Se eu estivesse fazendo isso
em um textBox, eu deveria fazer uma linha de comando para cada nmero, sempre
acumulando (concatenando o que j existe na propriedade Text do textBox.

40

Para fazermos esse exemplo, vamos adicionar mais um formulrio no nosso projeto o Form5.
Nesse formulrio, vamos precisar de um textBox para o usurio visualizar a lista de nmeros de
1 a 10. Vamos precisar tambm de um boto para gerar a lista e outro para limpar o textBox.
Veja como ficou o design (Figura 41):


Figura 41: Design do formulrio para mostrar lista de nmeros.

Quando o usurio clicar no boto Gerar Lista, vamos gerar essa lista composta de nmeros
de 1 a 10. Como no o usurio que vai informa algum dado, no h necessidade de se fazer
validaes. Veja como ficou (Figura 42):


Figura 42: Programao para gerar lista de 1 a 10, sem estrutura de repetio.

Observe que na linha 6, movemos o caracter 1 para o txtLista.text. Na linha 7, ns
concatenamos o que j existia no txtLista.text com um espao e o caracter 2. O que j existia
era 1, e acrescentando um espao e o caracter 2 fica: 1 2.
41


Na linha 8, nos concatenamos o que j existia no txtLista.text com um espao e o caracter 3.
O que j existia era 1 2, e acrescentando um espao e o caracter 3 fica: 1 2 3. E assim por
diante.

Ento, veja o resultado no txtLista ao executar o projeto e clicar no boto Gerar Lista (Figura
43):


Figura 43: Formulrio sendo executado mostrando a lista gerado pelo boto Gerar Lista.

Voltando programao (Figura 42). Percebe que repetimos praticamente a mesma linha de
programao 10 vezes? A estrutura de repetio est a para nos ajudar em casos assim.

Vamos fazer uma estrutura de repetio para linha que est se repetindo, e programa-la para
que repita 10 vezes. Vamos precisar de uma varivel que ser incrementada de 1 a 10. Veja o
cdigo modificado (Figura 44):


Figura 44: Programao para gerar lista de 1 a 10, com estrutura de repetio While.
42


Vamos analisar linha a linha:
Na linha 6, declaramos a varivel.
Na linha 8, inicializamos a varivel com 1.
Na linha 10, demos incio ao bloco While: enquanto a varivel conter um valor menor ou
igual a 10, faa o bloco a seguir.
Na linha 11, concatenamento o que j havia no txtLista com um espao com o contedo
da varivel cont.
Na linha 13, incrementamos o valor da varivel cont, acrescentando + 1.
Na linha 14, finalizando o While.

< inserir uma interrogao>
Percebe como o cdigo ficou melhor?

Desta forma, eu posso fazer um outro formulrio, onde possvel solicitar o valor inicial e/ou
final. Basta trabalhar com variveis.

Vamos ao Form6. Acresce mais um formulrio no seu projeto. Veja como ficou o design (Figura
45):


Figura 45: Design do formulrio para mostrar sequncia de um determinado intervalo.

Quando o usurio clicar no boto Gerar sequncia, vamos:
Validar os valores informados:
o Os dois valores devem ser informados.
o Os dois valores devem ser numricos.
o O valor final deve ser maior que o valor inicial.
Gerar lista.

A validao se o nmero final igual ou menor que o nmero inicial trata-se de uma
comparao numrica. Mas lembre-se que ainda no alimentamos as variveis numricas, e
43

estamos trabalhando com a propriedade Text dos textBoxs, ou seja, estamos trabalhando com
texto. Ento, se eu entrar com o valor inicial 10 e o valor final 2, e se eu fizer a comparao
se o final menor ou igual ao inicial, o resultado ser False. Analise, se estamos comparando
texto, o 2 vem depois do 10 que comea com 1. Entendeu?

Ento, para resolvermos esse problema, vamos utilizar o mtodo Val (abreviao de Value).
Esse mtodo transforma a sequncia de caracter em nmero. Veja alguns exemplos:

Val(123) = 123
Val(01) = 1

A validao consiste em verificar se os valores foram informados e se so valores vlidos,
conforme especificado anteriormente (Figura 46):


Figura 46: Validaes do formulrio.

Validaes feitas e testadas, vamos ao clculo. Vamos, agora, programar o Else, ou seja, caso
no tenha nenhuma falha, vamos alimentar as variveis, e gerar a lista que se inicia e finaliza
nos valores informados pelo usurio, utilizando a estrutura de repetio While (Figura 47).


44


Figura 47: O processo de gerar a lista.

Salve o projeto e execute. Veja o resultado (Figura 48):


Figura 48: Execuo do formulrio com valores informados e lista gerada.


45

O boto Limpar, deve limpar os textBoxs e mover o foco para o textBox do valor inicial (Figura
49):


Figura 49: Programao do boto Limpar.

Formulrio pronto!


4.4. For ... Next

O loop for no VB baseia-se estritamente em num contador, o qual pode ser aumentado ou
diminudo cada vez que o loop for executado. O contador inicializado, e o loop ir se repetir
enquanto o contador no chegar ao fim da contagem. O seu formato bsico :
For contador [ As TipoDado ] = Inicio To Fim[ Step passo ]
[ Instrues ]
[ Exit For ]
[ Instrues ]
Next [ contador ]

O parmetro Step no obrigatrio, se voc for utilizar o incremento +1. Esse o valor default.
Caso deseje incrementar com outro valor diferente de +1, seja positivo ou negativo, essa
informao obrigatria.

Para finalizar a estrutura FOR utiliza-se o comando EXIT FOR.

H uma forma de interromper essa estrutura, ou seja, fazer com que saia da estrutura FOR
sem que se chegue ao valor final estipulado na estruturura. Utiliza-se o comando EXIT FOR.
importante destacar que, esse comando de interrupo da estrutura apenas utilizado em
casos extremamente necessrios.

Vamos ver como a estrutura For funciona!

Vamos voltar ao exemplo da estrutura WHILE... Suponha que devemos listar uma sequncia
numrica de 1 a 10.

46

Para fazermos esse exemplo, vamos adicionar mais um formulrio no nosso projeto o Form6.
Nesse formulrio, vamos precisar de um textBox para o usurio visualizar a lista de nmeros de
1 a 10. Vamos precisar tambm de um boto para gerar a lista e outro para limpar o textBox.
Veja como ficou o design (Figura 49):


Figura 49: Design do formulrio para mostrar lista de nmeros, com a estrutura FOR.

Quando o usurio clicar no boto Gerar sequncia, vamos:
Validar os valores informados:
o Os dois valores devem ser informados.
o Os dois valores devem ser numricos.
o O valor final deve ser maior que o valor inicial.
Gerar lista.

As validaes devem ser feitas como no exemplo anterior (Figura 46).

Validaes feitas e testadas, vamos ao clculo. Vamos, agora, programar o Else, ou seja, caso
no tenha nenhuma falha, vamos alimentar as variveis, e gerar a lista que se inicia e finaliza
nos valores informados pelo usurio, utilizando a estrutura de repetio While (Figura 50).

A nica varivel informada a que recebe o limite final, pois a varivel destinada para o limite
inicial deve ser inicializada, obrigatoriamente, na estrutura FOR. Observe que no utilizamos o
Step, pois vamos incrementar de um em um (+1).

< incio Importante!>

Lembre-se que se o incremento for +1 no obrigatrio essa informao. Mas se o incremento
for diferente de +1, ento, deve ser informado.

<fim importante>

47


Figura 50: O processo de gerar a lista, com a estrutura FOR.

Salve o projeto e execute. Veja o resultado (Figura 51):


Figura 51: Execuo do formulrio com valores informados e lista gerada.

Vamos fazer uma alterao! Vamos agora mostrar apenas os nmeros pares?

Veja a alterao no bloco FOR. Temos duas formas de fazermos essa lista de nmeros pares.
Ou fazemos um IF para verificar se o nmero par antes de mostra-lo, e apenas mostra-lo se
essa condio for verdadeira (e o step continua +1), ou fazemos essa condio com o nmero
inicial (Figura 52). Se o nmero inicial for par, fazemos o lao FOR com step +2, assim
mostraremos apenas os nmeros pares, e se o nmero for mpar, somamos +1 ao nmero, e
assim temos o primeiro nmero par, e fazemos o lao FOR com step +2 (Figura 53).

< incio Ateno!>
48

Para sabermos se um nmero par, basta divid-lo por 2. E se o resto da diviso for 0 (zero), o
nmero par, seno, mpar.

<fim ateno>


Figura 52: O processo de gerar a lista de nmeros pares, com a estrutura FOR fazendo a condio
dentro do FOR.


49

Figura 53: O processo de gerar a lista de nmeros pares, com a estrutura FOR fazendo a condio
antes do FOR, utilizando STEP 2.

Salve o projeto, e execute. Veja o formulrio em execuo (Figura 54):


Figura 54: O processo de gerar a lista de nmeros pares, com a estrutura FOR fazendo a condio
antes do FOR, utilizando STEP 2.

Formulrio pronto!


5. Trabalhando com alguns objetos: radioButtons, checkBox e groupBox

5.1. RadioButton

Voc j deve ter se deparado com algum formulrio pela internet, onde solicitado que voc
escolha apenas uma das opes mostradas. Veja o exemplo a seguir (Figura 55):



Figura 55: Design de um formulrio com radioButton.
50


Esse objeto utilizado chamado de RadioButton. Ele tem a caracterstica de garantir,
automaticamente, que o usurio escolha apenas uma das opes.

Esse objeto, o radioButton, possui uma propriedade chamada Checked. Quando essa
propriedade est com o valor True, significa que esse radioButton est selecionado. Isso
significa que todos os outros esto com o valor da propriedade Checked com o valor False.

Vamos fazer esse formulrio? Para isso, insira mais uma formulrio no nosso projeto, o Form8.
Nele vamos precisar de um label, 6 radioButtos e um button. Os objetos foram renomeados de
acordo com a necessidade.

< incio Importante!>

Geralmente, os objetos radioButtons so nomeados com as inicias rdb seguidos de uma
nomenclatura significativa.

No exemplo dado, o primeiro radioButton recebeu o nome de rdbC.

Mas fique atento, nenhum objeto aceita caracteres especiais no nome deles!

<Fim Importante>

Ao clicar no boto Enviar, vamos avaliar qual boto foi selecionado. Se o usurio tiver
escolhido Vb.Net, vamos lhe dar os parabns. Se no, vamos sugerir que conhea Vb.Net, ok?

No vamos nos esquecer da validao. Nesse caso, um dos radioButtons deve ter sido
escolhido (Figura 56).


Figura 56: Validao do formulrio com radioButton.

Note que no final da linha que contm o IF possui um _ (conhecido como underscore ou
underline). Esse smbolo tem a funo de concatenar essa linha que continuar na linha de
baixo. Usei desse artifcio para que possa visualizar a linha toda de comando!

51

Para checar se o usurio no escolheu nenhuma opo, fizemos um IF para identificar se todos
os radioButtons esto com o Checked igual a False. Isso significa que nenhum foi escolhido.
Ento, mostramos uma mensagem informando que uma das opes deve ser escolhida.

Caso contrrio, vamos verificar qual opo foi escolhida, tendo em vista que apenas uma pode
ser escolhida, por se tratarem de radiobuttons, certo? Ento, vamos perguntar se o vb.Net foi
escolhido, e mostramos a mensagem de parabns, e caso contrrio, seja qual for a opo,
vamos sugerir que conhea o vb.Net. (Figura 57)


Figura 56: Verificando qual radioButton foi selecionado.

Antes de executar o projeto para ver o formulrio sendo executado, importante garantir que o
usurio no seja induzido a escolher uma das opes. Para isso, voc deve se assegurar que
nenhum radioButton vir selecionado. Para isso, volte para o Design do formulrio, e selecione
todos os radioButtons. Mude a propriedade TabStop para False. Essa propriedade significa que
esses objetos somente recebero o foco se o usurio clicar em um deles (Figura 57).

52


Figura 57: Alterando a propriedade TabStop dos radioButtons.

Salve o projeto e execute-o! (Figura 58 e Figura 59)


Figura 58: Formulrio com radioButtons sendo executado opo selecionado o vb.Net.


53


Figura 59: Formulrio com radioButtons sendo executado outra opo qualquer selecionado que no
seja o vb.Net.


5.2. CheckBox

O CheckBox se parece muito com o radioButton, mas ele permite que o usurio escolha mais
de uma opo (Figura 60).


Figura 60: Design de um formulrio com chkbox.

Esse objeto, o checkBox tambm possui uma propriedade chamada Checked, como o
radiobutton. Quando essa propriedade est com o valor True, significa que esse checkBox est
selecionado. Diferentemente do radioButton, outro(s) checkBoxs podem estar selecionados
tambm.

Vamos fazer esse formulrio? Para isso, insira mais um formulrio no nosso projeto, o Form9.
Nele vamos precisar de um label, 6 checkBoxs e um button. Os objetos foram renomeados de
acordo com a necessidade.

Ao clicar no boto Enviar, vamos avaliar, dessa vez, a quantidade de linguagens que o usurio
selecionou. Se o usurio tiver escolhido apenas 1 linguagem, vamos sugerir conhea mais
54

linguagens. Caso ele tenha escolhido de 2 a 4 linguagens, vamos informa-lo que vrias
linguagens esto aparecendo no mercado, e vamos sugerir que conhea mais algumas. E caso
ele tenha escolhido 5 ou 6 linguagens, vamos lhe dar parabns, pois est bem antenado.

No vamos nos esquecer da validao. Nesse caso, um dos checkBoxs deve ter sido escolhido
(Figura 61).


Figura 61: Validao do formulrio com checkboxs.

Desta vez, vamos utilizar uma varivel inteira para contarmos quantas linguagens foram
selecionadas.

Para checar se o usurio no escolheu nenhuma opo, fizemos um IF para identificar se todos
os checkBoxs esto com o Checked igual a False. Isso significa que nenhum foi escolhido.
Ento, mostramos uma mensagem informando que uma das opes deve ser escolhida.

Caso contrrio, vamos verificar quantas opes foram escolhidas. (Figura 62)

55


Figura 62: Verificando quantos checkBoxs foram selecionados.


E, em seguida, de acordo com a quantidade de linguagens que foram selecionadas, vamos
mostrar uma das mensagens que sugerimos anteriormente (Figura 63).


Figura 63: Verificando quantos checkBoxs foram selecionados, para mostrar a mensagem de acordo.

56

Salve o projeto e execute-o (Figura 64).


Figura 64: Formulrio com checkBoxs sendo executado, com 3 linguagens selecionadas.

Formulrio pronto!


5.3. GroupBox

Mas em algumas situaes, pode-se precisar identificar mais de uma informao utilizando o
radioButton. Veja o exemplo a seguir, no Form10 (Figura 65), inserido no nosso projeto:


Figura 65: Design de um formulrio com mais de um grupo de radioButtons.
57


Salve esse formulrio e execute o projeto. Selecione, ento, uma opo de Sexo, duas opes
de Esporte e uma opo de Regio (Figura 66).


Figura 66: Formulrio com mais de um grupo de radioButtons sendo executado.

Observe que, voc seleciona uma opo de Sexo, duas de Esporte, e quando seleciona uma
Regio, o Sexo anteriormente selecionado desmarcado.

O que acontece o seguinte: lembra-se que comentamos aqui que o radioButton permite
apenas um ser selecionado? E como resolver esse impasse?

Utilizamos o GroupBox!

Esse objeto permite que faamos uma delimitao para cada grupo, seja composto por
qualquer objeto. No nosso caso, vamos utilizar um grupo para Sexo, um para Esporte e outro
para Regio. Veja o design como ficou (Figura 67):

<incio Importante!>
O objeto GroupBox fica na categoria Containers! Observe a seguir (Figura 68):

58



Figura 68: Localizao do objeto GroupBox na caixa de ferramentas.

<fim Importante>


Figura 67: Formulrio utilizando GroupBoxs.

Nesse formulrio utilizamos a propriedade Text do GroupBox para identificar o assunto
referente a cada grupo.

Agora, salve o projeto e execute-o. Assim voc consegue selecionar uma opo de cada!
(Figura 68)

59


Figura 68: Formulrio utilizando GroupBoxs sendo executado, permitindo a seleo de uma opo em
cada GroupBox.


Resumo

O referido captulo apresentou um ambiente de programao do visual basic.Net,
desenvolvendo formulrio para uma aplicao Windows. A Microsoft tem colaborado de forma
significativa com o pacote .Net, com linguagens orientadas a objeto.

O captulo trouxe a apresentao desse ambiente de desenvolvimento da linguagem Visual
Basic, demonstrando como se criar e manipula um projeto em vb.Net. Tambm utilizamos os
operadores matemticos, relacionais, lgicos e strings. Por meio desses operadores pudemos
trabalhar com as estruturas de controle IF, SELECT CASE, WHILE E FOR.

As validaes tambm se tornaram padro nos formulrios, com o objetivo de antes de se dar
o incio aos clculos, prever se algum dado pode interferir e gerar um erro em tempo de
execuo.

Foram trabalhados tambm os objetos textBox, Labe, Button, RadioButto, CheckBox e
GroupBox. Vale ressaltar que existem outro objetos, mas abordamos aqui os mais importantes
e comumente utilizados na programao.


Atividades

Questo 1

60










Com base nos dados acima, julgue os
itens que completam o seguinte
enunciado.
Sabendo-se que o caracter & utilizado
para concatenao, que mod um
operador utilizado para retornar o resto
da diviso inteira, ento programa acima
mostra como resultado final no textbox 2:

a) Todos os nmeros divisores do nmero num, que compreendem do intervalo de 1 at num.
b) Todos os nmeros pares que compreendem do intervalo de 1 at num.
c) Mais de um valor para i.
d) O resto da diviso dos nmeros 2 de at num.
e) Todos os nmeros mpares que compreendem do intervalo de 1 at num.


Questo 2
























Sabe-se que a funo de uma estrutura de repetio que um determinado grupo de comandos seja executado n
vezes. As estruturas de repetio podem ser executadas incrementando ou decrementando valores.

Com base no programa acima apresentado, responda.

61

a) O resultado apresentado ser o texto inverso.
b) Nenhum valor, pois h um erro na linha 6.
c) Nenhum valor, pois h um erro na linha 5.
d) O resultado apresentado ser a reproduo do texto informado.
e) O resultado apresentado sero os caracteres de posio par do texto informado.


Questo 3

Em vb.net 2008, quando se deseja limpar o contedo que est escrito em um objeto textbox, correto afirmar que:
I. Textbox1.text =
II. Textbox1.text =
III. Textbox1.text = null
IV. Textbox1.clear
V. Textobox1.clear = true

a) I e IV apenas.
b) II e IV apenas.
c) II e III apenas.
d) I e IV apenas.
e) III e V apenas.


Questo 4

Dado o cdigo desenvolvido em vb.net 2008 a seguir:




















O VAR1 (textbox1.text) e VAR2 (textbox2.text) tero respectivamente os valores:

a) 4 e 6
b) 4 e 24
c) 41 e 24
d) 4 e 15
e) 45 e 15




62

Questo 5

Analise o programa a seguir:






















Com base no programa desenvolvido em vb.net acima, e supondo que o valor fornecido para B na linha B_ =
TextBox1.Text seja 3, pode-se afirmar que o programa apresentar como sada no objeto TextBox2,
respectivamente, a sequncia:

a) 1, 1, 1, 0
b) 0, 0, 1, 1
c) 0, 1, 0, 1
d) 1, 0, 1, 0
e) 1, 1, 0, 0


Questo 6

Analise o programa a seguir, considerando que o objeto que receber o valor de A TextBox1, e o objeto que
receber o valor de C TextBox2.















63





Com base no programa, e supondo que o valor fornecido para A seja 2, pode-se afirmar que o valor do objeto
TextBox2, que receber o valor de C :

a) 4
b) 2
c) 6
d) 0
e) 8


Questo 7

Em alguns momentos, quando necessrio, fazemos uso da implementao de variveis. Uma implementao em
uma determinada varivel, por exemplo de nome C, pode ser implementada, em vb.net, por meio da linha de cdigo:

a) C == 1
b) C = C + 1
c) C == C + 1
d) C := C + 1;
e) C =: C + 1;


Questo 8

Sejam A, B e C variveis numricas contendo os valores 2, 4 e 5, respectivamente, e S uma varivel string contendo
a expresso POSITIVO. Assinale a expresso lgica cujo resultado possui valor lgico verdadeiro.

a) (A) A + B < C or S = FALSO
b) (B) A *B > C and S = VERDADEIRO
c) (C) (B * A) > C and S = VERDADEIRO
d) (D) A > B or S = POSITIVO
e) (E) (A < B) and C > 5 or S = POSITIVO


Questo 9

Julgue as linhas de comando em VB.net apresentadas a seguir.
I. For cont = 10 To 1
II. cont = cont Mod 2
III. a(4) = 3
IV. Dim a integer

As expresses que possuem comandos corretos so:

a) I e II apenas.
b) III e IV apenas.
c) II e IV apenas.
d) II e III apenas.
e) I e IV apenas.


Questo 10

64



Considerando o trecho de cdigo acima, julgue os itens seguintes.
I. Para a estrutura de repetio For utilizada no cdigo, faltou a linha de programao para incrementar a
varivel cont.
II. O vetor vet ser alimentado apenas com nmeros pares.
III. A varivel de incremento cont apenas ser incrementada se o resto da diviso de cont por 2 for 0 (zero).

Esto certos apenas os itens:

a) I, II e III
b) II e III apenas.
c) III apenas
d) I e III apenas.
e) II apenas


Questo 11

Em vb.net, uma varivel possui um invlido:

a) _var_teste
b) var-teste
c) var_
d) var.nasc
e) var


Questo 12

Considere o cdigo a seguir desenvolvido em vb.net:



A varivel Resul ao final da execuo ter o resultado de:

a) 7
b) 0
c) 3
65

d) 4
e) 5


Questo 13

Analise as afirmativas a seguir:
I. a propriedade text de um textbox utilizada para ler informaes digitadas pelo usurio.
II. A propriedade text de um label pode ser utilizada para mostrar informaes processadas/geradas em
tempo de execuo.
III. por meio da propriedade visible que o programador pode ou no exibir um objeto.
IV. A propriedade text de um Button para dar nome ao objeto que poder ser manipulado na programao.

Esto corretas apenas as afirmativas:

a) I, II e IV apenas.
b) I e IV apenas..
c) II e III apenas..
d) III e IV apenas..
e) I, II e III apenas..


Questo 14

Os radio buttons so componentes de interface do usurio do vb.net que possui caractersticas idnticas as do
objeto denominado:

a) Labels
b) Buttons
c) Textboxs
d) Check boxes
e) Labels e Textboxs


Questo 15

Uma varivel definida como Double, em vb.net, refere-se tambm aos dados do tipo:

a) Caractere.
b) Numrico inteiro.
c) Boleano.
d) Numrico com casas decimais.
e) Pblica.


Questo 16

Em Visual Basic.net, para declarar variveis utiliza-se o comando:

a) Dim
b) Declare
c) Uses
d) Vartype
e) FormVar




66

Questo 17

utilizada para avaliar uma determinada expresso e definir se um bloco de cdigo deve ou no ser executado.
Essa a definio da estrutura condicional:

a) For
b) If... Then Else
c) While
d) Do While
e) Next


Questo 18

While cond
grupo de comandos
End-while

Considere a instruo de repetio acima, escrita em vb.net. Sabendo-se que cond uma expresso booleana e
que essa estrutura de repetio executa o grupo de instrues sob seu controle, enquanto a condio cond for
verdadeira, correto afirmar que:

a) O grupo de comandos da instruo While necessariamente ser executado mais de uma vez.
b) O grupo de comandos da instruo While ser executado pelo ao menos uma vez.
c) A condio da instruo While ser avaliada para decidir se o grupo de comandos ser executado.
d) Na estrutura de repetio While apenas se pode utilizar uma condio verdadeira.
e) Pode-se substituir a condio da instruo While por uma instruo If.


Questo 19

















Com base nos dados acima, julgue os itens que completam o seguinte enunciado.

Sabendo-se que o comando int e mod so operadores que correspondem, respectivamente, parte inteira de um
nmero e ao resto da diviso inteira, ento o algoritmo acima mostra no textbox2:

I. nmeros pares at num.
II. quantidade de divisores de num.
III. valores encontrados para j.
IV. um nico valor para j.
67


Esto certos apenas os itens:

a) I e II apenas..
b) II apenas
c) III apenas
d) I e III apenas.
e) II e IV apenas..


Questo 20

Analise o cdigo a seguir desenvolvido em vb.net para responder esta questo:



A varivel b chegar ao final da execuo do programa com o resultado de:

a) ABCD
b) D0C0B0A
c) DCBA
d) D0C0B0A0
e) 0D0C0B0A0



Questo 21
Considere as linhas de cdigo a seguir:
I. if (x = 4) then y = x
II. if (x = = 4) then y = x
III. if (x <> 4) then y = x
IV. if x = 4 then y = x
V. if x <> 4, y = x;

As sentenas que possuem comando vlido, que quando compiladas no acusaro erro(s) so:

a) I e II apenas..
b) I, II e III apenas..
c) II, IV, V apenas.
d) I, III, IV apenas..
e) II, III, IV apenas..







68


Referencial de respostas


Questo 1











Com base nos dados acima, julgue os itens que completam o seguinte enunciado.
Sabendo-se que o caracter & utilizado para concatenao, que mod um operador utilizado para retornar o resto
da diviso inteira, ento programa acima mostra como resultado final no textbox 2:

f) Todos os nmeros divisores do nmero num, que compreendem do intervalo de 1 at num.
g) Todos os nmeros pares que compreendem do intervalo de 1 at num.
h) Mais de um valor para i.
i) O resto da diviso dos nmeros 2 de at num.
j) Todos os nmeros mpares que compreendem do intervalo de 1 at num.


Questo 2


















69







Sabe-se que a funo de uma estrutura de repetio que um determinado grupo de comandos seja executado n
vezes. As estruturas de repetio podem ser executadas incrementando ou decrementando valores.

Com base no programa acima apresentado, responda.

f) O resultado apresentado ser o texto inverso.
g) Nenhum valor, pois h um erro na linha 6.
h) Nenhum valor, pois h um erro na linha 5.
i) O resultado apresentado ser a reproduo do texto informado.
j) O resultado apresentado sero os caracteres de posio par do texto informado.


Questo 3

Em vb.net 2008, quando se deseja limpar o contedo que est escrito em um objeto textbox, correto afirmar que:
VI. Textbox1.text =
VII. Textbox1.text =
VIII. Textbox1.text = null
IX. Textbox1.clear
X. Textobox1.clear = true

f) I e IV
g) II e IV
h) II e III
i) I e IV
j) III e V



Questo 4

Dado o cdigo desenvolvido em vb.net 2008 a seguir:


















70




O VAR1 (textbox1.text) e VAR2 (textbox2.text) tero respectivamente os valores:

f) 4 e 6
g) 4 e 24
h) 41 e 24
i) 4 e 15
j) 45 e 15


Questo 5

Analise o programa a seguir:
























Com base no programa desenvolvido em vb.net acima, e supondo que o valor fornecido para B na linha B_ =
TextBox1.Text seja 3, pode-se afirmar que o programa apresentar como sada no objeto TextBox2,
respectivamente, a sequncia:

f) 1, 1, 1, 0.
g) 0, 0, 1, 1.
h) 0, 1, 0, 1.
i) 1, 0, 1, 0.
j) 1, 1, 0, 0.


Questo 6

Analise o programa a seguir, considerando que o objeto que receber o valor de A TextBox1 e o objeto que
receber o valor de C TextBox2.
71


















Com base no programa, e supondo que o valor fornecido para A seja 2, pode-se afirmar que o valor do objeto
TextBox2, que receber o valor de C :

f) 4
g) 2
h) 6
i) 0
j) 8


Questo 7

Uma implementao em uma varivel C, pode ser implementada em vb.net por meio da linha de cdigo:

f) C == 1
g) C = C + 1
h) C == C + 1
i) C := C + 1;
j) C =: C + 1;


Questo 8

Sejam A, B e C variveis numricas contendo os valores 2, 4 e 5, respectivamente, S uma varivel string contendo a
expresso POSITIVO. Assinale a expresso lgica cujo resultado possui valor lgico verdadeiro.

f) (A) A + B < C or S = FALSO
g) (B) A *B > C and S = VERDADEIRO
h) (C) (B * A) > C and S = VERDADEIRO
i) (D) A > B or S = POSITIVO
j) (E) (A < B) and C > 5 or S = POSITIVO


Questo 9

Julgue as linhas de comando em VB.net apresentadas a seguir.
V. For cont = 10 To 1
VI. cont = cont Mod 2
VII. a(4) = 3
72

VIII. Dim a integer

As expresses que possuem comandos corretos so:

f) I e II
g) III e IV
h) II e IV
i) II e III
j) I e IV


Questo 10



Considerando o trecho de cdigo acima, julgue os itens seguintes.
IV. Para a estrutura de repetio For utilizada no cdigo, faltou a linha de programao para incrementar a
varivel cont.
V. O vetor vet ser alimentado apenas com nmeros pares.
VI. A varivel de incremento cont apenas ser incrementada se o resto da diviso de cont por 2 for 0 (zero).

Esto certos apenas os itens:

f) I, II e III
g) II e III
h) III apenas
i) I e III
j) II apenas


Questo 11

Em vb.net, uma varivel possui nome invlido:

f) _var_teste
g) var-teste
h) var_
i) var.nasc
j) var









73



Questo 12

Considere o cdigo a seguir desenvolvido em vb.net:



A varivel Resul ao final da execuo ter o resultado de:

f) 7
g) 0
h) 3
i) 4
j) 5


Questo 13

Analise as afirmativas a seguir:
V. a propriedade text de um textbox utilizada para ler informaes digitadas pelo usurio.
VI. A propriedade text de um label pode ser utilizada para mostrar informaes processadas/geradas em
tempo de execuo.
VII. por meio da propriedade visible que o programador pode ou no exibir um objeto.
VIII. A propriedade text de um Button para dar nome ao objeto que poder ser manipulado na programao.

Esto corretas apenas as afirmativas:

f) I, II e IV.
g) I e IV.
h) II e III.
i) III e IV.
j) I, II e III.


Questo 14

Os radio buttons so componentes de interface do usurio do vb.net que possui caractersticas idnticas as do
objeto denominado:

f) Labels
g) Buttons
h) Textboxs
i) Check boxes
j) Labels e Textboxs


Questo 15
74


Uma varivel definida como Double, em vb.net, refere-se tambm aos dados do tipo:

f) Caractere.
g) Numrico inteiro.
h) Boleano.
i) Numrico com casas decimais.
j) Pblica.




Questo 16

Em Visual Basic.net, para declarar variveis utiliza-se o comando:

f) Dim
g) Declare
h) Uses
i) Vartype
j) FormVar


Questo 17

utilizada para avaliar uma determinada expresso e definir se um bloco de cdigo deve ou no ser executado.
Essa a definio da estrutura condicional:

f) For
g) If... Then Else
h) While
i) Do While
j) Next


Questo 18

While cond
grupo de comandos
End-while

Considere a instruo de repetio acima, escrita em vb.net. Sabendo-se que cond uma expresso booleana e
que essa estrutura de repetio executa o grupo de instrues sob seu controle, enquanto a condio cond for
verdadeira, correto afirmar que:

f) O grupo de comandos da instruo While necessariamente ser executado mais de uma vez.
g) O grupo de comandos da instruo While ser executado pelo ao menos uma vez.
h) A condio da instruo While ser avaliada para decidir se o grupo de comandos ser executado.
i) Na estrutura de repetio While apenas se pode utilizar uma condio verdadeira.
j) Pode-se substituir a condio da instruo While por uma instruo If.


Questo 19




75



Com base nos dados acima, julgue os itens que completam o seguinte enunciado.

Sabendo-se que o comando int e mod so operadores que correspondem, respectivamente, parte inteira de um
nmero e ao resto da diviso inteira, ento o algoritmo acima mostra no textbox2:

V. nmeros pares at num.
VI. quantidade de divisores de num.
VII. valores encontrados para j.
VIII. um nico valor para j.

Esto certos apenas os itens:

f) I e II.
g) II apenas
h) III apenas
i) I e III
j) II e IV.


Questo 20

Analise o cdigo a seguir desenvolvido em vb.net para responder esta questo:



A varivel b chegar ao final da execuo do programa com o resultado de:

f) ABCD
g) D0C0B0A
h) DCBA
i) D0C0B0A0
j) 0D0C0B0A0



Questo 21
Considere as linhas de cdigo a seguir:
VI. if (x = 4) then y = x
VII. if (x = = 4) then y = x
VIII. if (x <> 4) then y = x
IX. if x = 4 then y = x
X. if x <> 4, y = x;

As sentenas que possuem comando vlido, que quando compiladas no acusaro erro(s) so:

f) Apenas I e II.
76

g) Apenas I, II e III.
h) Apenas II, IV e V.
i) Apenas I, III e IV.
j) Apenas II, III e IV.



Referncias

HERGERT, Douglas. Programando em Visual Basic: com aplicaes em ambiente Windows.
Rio de Janeiro (RJ): Livros Tcnicos e Cientficos, 1992.

MACORATTI. Preparando a migrao para o VB.NET - uma viso Geral. Disponvel em:
http://www.macoratti.net/vbnet.htm. Acesso em: Nov. 2013,.

PRESSMAN, Roger S. Engenharia de software. 5.ed. So Paulo : McGraw-Hill, 2002.

TARIFA, Alexandre; FACUNTE, Emerson; GARCIA, Marcus. Visual Basic .NET: desenvolvendo
uma aplicao comercial. Rio de Janeiro (RJ): Brasport, 2005.

RECIO, Francisco. PROVENCIO. David. Tipos de dados em .NET. Disponvel em:
http://www.criarweb.com/artigos/tipos-de-dados-em-net.html. Acesso em: dez. 2013.

REYNOLDS, Matthew. Joo Eduardo Nbrega Tortello (trad). Beginning visual basic .net
programando . So Paulo: Pearson Education do Brasil, 2002.


Sobre o autor

Maria Aparecida Reis Frana dos Santos

Mestre em Biblioteconomia e Cincia da Informao, pela PUCCampinas; especialista em
Gerenciamento Estratgico da Informao (UNIUBE / UNESC), em Formao de Professores
em EAD (UFPR / UNIUBE) e em Anlise de Sistemas (UFU); graduada em Tecnologia e
Processamento de Dados (UNIUBE). Professora dos cursos de Engenharia da Computao,
Engenharia Eltrica, Sistemas de Informao e membro da equipe de Educao a Distncia da
Universidade de Uberaba.