Você está na página 1de 33

UNIANCHIETA

Ambiente de Programação I
Sistemas de Informação – Ambiente de Programação I

1- .NET Framework 4
Common Language Runtime (CLR) 4
.NET Base Class Library 5
Linguagens e o .NET Framework 5
Compilação e execução de uma aplicação .NET 6
Gerenciamento da memória - Garbage Collection (GC) 7
2- Orientação a Objetos 8
Classes 8
Objetos e Membros 8
Agregação 8
Encapsulamento 8
Polimorfismo 9
Herança 9
Herança com Polimorfismo 9
Orientação a Eventos 9
3- Variáveis 10
As Características de uma Variável 10
O Comando Dim 10
Abrangência e Tempo de Vida de uma Variável 12
Conversão de dados 12
4- Operadores 13
Operadores Matemáticos 13
Operadores Relacionais 13
Operadores Lógicos 13
5- Comandos Condicionais 15
Clausula If 15
Clausula If ...Then ...Else 16
Clausula ElseIf 16
Cláusula Select Case 17
Uso de Operadores 17
6- Comandos de Laço 18
Comandos de Laço 18
7- IDE do Visual Studio 2005 e Componentes de Interface 21
Barra de Menus e Barra de Ferramentas 21
Propriedades Gerais de Controle e Layout dos Componentes 22
Formulário 23
Labels, TextBoxes e Buttons 23
GroupBox e Panels 24
CheckBox e RadioButtons 24
ComboBox 25

Ednilson 2
Sistemas de Informação – Ambiente de Programação I
ListBox 25
PictureBox 26
Tratamento de Eventos do Mouse 26
Tratamento de Eventos do Teclado 27
Prefixos de Controles 27
8- Funções, Módulos e Sub Main 28
Procedimentos definidos pelo programador 28
9- Tratamento de Erros 30
Tratamento de Erros no .NET Framework 30
Principais Propriedades da Classe Exception 30
10 - Classe String 32
11 - Classe Matemática (Math) 33

Ednilson 3
Sistemas de Informação – Ambiente de Programação I

1- .NET Framework
O .NET Framework possui dois componentes principais: o Common Language Runtime (CLR) e o
.NET Base Class Library.

A figura a seguir exemplifica a estrutura do .Net Framework.

Arquitetura .NET

Linguagens de Programação (VB.NET, C#, etc)

Base Class Library

Common Language Runtime

Common Type System Common Language Specification

Common Language Runtime (CLR)

O CLR gerencia a execução do código. Ele é responsável pela compilação do código, alocação e
gerenciamento de memória (Garbage Collection) e gerenciamento de thread.

O gerenciamento de memória feito pelo CRL torna os programas menos susceptíveis a erros. Como
o próprio nome diz o CRL é compartilhado e, portanto, não temos um runtime específico para cada
linguagem.

Common Type System (CTS)

O Common Type System (CTS) que também faz parte do CRL, define os tipos suportados pelo
.NET e suas características. Cada linguagem que suporta .NET tem de necessariamente, suportar esses
tipos.

Common Language Specification (CLS)

O CLS, ou Especificação Comum da Linguagem, define um conjunto de regras que qualquer


linguagem que implemente a .NET deve seguir a fim de que o código gerado resultante da compilação de
um programa, seja entendido pelo runtime .NET. Seguir essas regras é um imperativo porque, caso
contrário, um dos grandes ganhos do .NET, que é a independência da linguagem de programação e a sua
interoperabilidade, fica comprometido.

A grosso modo, dizer que uma linguagem é compatível com o CLS significa dizer que mesmo
quando esta é sintaticamente diferente de qualquer outra que implemente .NET, semanticamente ela é
igual, porque na hora da compilação será gerado um código intermediário (e não código em linguagem de
máquina dependente da arquitetura do processador) equivalente para duas peças de código iguais, porém
escritas em linguagens diferentes. É importante entender esse conceito para não pensar que o código
desenvolvido em C# não pode interagir com código desenvolvido em VB ou outras linguagens, porque
mesmo estas sendo diferentes, todas são compatíveis com o CLS.

Ednilson 4
Sistemas de Informação – Ambiente de Programação I
.NET Base Class Library

A .NET Base Class Library fornece uma coleção de classe úteis e reutilizáveis. Elas são orientadas
a objetos e totalmente extensíveis e podem ser facilmente integrados às suas aplicações desenvolvidas em
.NET Framework.

A Base Class Library é organizada dentro de “namespaces”. Um namespace é um agrupamento


lógico de classes relacionadas. Os namespaces são organizados hierarquicamente sendo que a raiz é o
namespace System.

A tabela a seguir apresenta exemplos dos principais namespaces:

Alguns namespaces. NET


System Contém algumas classes de baixo nível usadas para trabalhar com
tipos de dados primitivos. É a raiz para todos os namespaces da
Base Class Library.
System.Collections Implementações prontas de pilhas, filas, listas encadeadas.
System.Data Aqui você vai encontrar tudo o que é necessário para lidar com
bases de dados. É aqui se encontra o ADO.NET.
System.Drawing O .NET oferece uma biblioteca de componentes para trabalhar
com gráficos, chamada GDI+, que se encontra neste namespace.
System.IO Biblioteca par lidar com leitura, gravação e gerenciamento de
arquivos.
System.Math Local onde se encontram funções matemáticas.
System.NET Aqui você encontra bibliotecas para programação de redes,
sockets, etc.
System.Reflection Em .NET você pode gerar códigos em tempo de execução,
descobrir tipos de variáveis etc. As bibliotecas necessárias para
isso encontram-se neste namespace.
System.Runtime Fornecem bibliotecas para interagir com código não-gerenciado.
System.Security Contém suporte a criptografia, permissões e segurança.
System.Threading Biblioteca necessária para o desenvolvimento de aplicações
multithread.
System.Web ASP.NET, Web Services e tudo o que tenha a ver com Web pode
ser encontrado aqui.
System.Windows.Forms Bibliotecas para o desenvolvimento de aplicações Windows
tradicionais.
System.XML Bibliotecas que permitem a interação com documentos XML.

Linguagens e o .NET Framework

Quando uma aplicação .NET é compilada, ela é convertida para a Microsoft Intermediate Language
(MSIL).

A MSIL é uma linguagem de baixo nível que a CLR (Common Language Runtime) pode ler e
entender. Como todas as DLLs e Executáveis estão na forma de MSIL, eles podem interagir entre si,
independente da linguagem em que foram desenvolvidas inicialmente.

A Common Language Specification (CLS) define os padrões que devem ser seguidos por uma
linguagem que faça parte do .NET Framework.

Ednilson 5
Sistemas de Informação – Ambiente de Programação I

Compilação e execução de uma aplicação .NET

Para podermos falar sobre este assunto vamos introduzir alguns conceitos essenciais para a
compreensão da execução de um aplicativo .NET.

Tempo de Compilação

Entende-se por tempo de compilação a parte do processo de compilação que diz respeito à geração
de código em MSIL (linguagem intermediária) e de informações específicas da aplicação necessárias para a
sua correta execução. Mas onde estas informações são armazenadas? Como resposta a esta pergunta
vamos introduzir o conceito de metadados:

Metadados

São um conjunto de instruções geradas no processo de compilação de qualquer programa .NET,


junto com a MSL, que contém as seguintes informações específicas da aplicação:

• A descrição dos tipos (classes, estruturas, tipos enumerados etc.) usados na aplicação, podendo
esta ter sido gerada em forma de DLL ou de executável.
• A descrição dos membros de cada tipo (propriedades, métodos, eventos, etc.).
• A descrição de cada unidade de código externo (assembly) usada na aplicação e que é requerida
para que esta execute adequadamente.
• Resolução da chamada de métodos.
• Resolução de versões diferentes de uma aplicação.

Dada a informação contida nos METADADOS, podemos dizer que uma aplicação .NET é auto-
explicativa, dispensando a utilização do registro do Windows para armazenar informações adicionais a seu
respeito. Mais ainda, nos METADADOS é armazenada a versão da aplicação, o que permite que duas
aplicações, mesmo sendo homônimas, possam conviver amigavelmente sem gerar conflitos de versões no
sistema.
O CLR vai procurar nos METADADOS a versão correta da aplicação a ser executada. Esse é um
ganho muito grande no que diz respeito à implementação e manutenção de sistemas em produção, dadas
as dificuldades associadas à manutenção de DLLs e de componentes cujas versões são diferentes, mas
cuja convivência no mesmo ambiente é necessária por razões de compatibilidade com outros aplicativos
que precisam de uma ou de outra DLL.

Assembly

Toda aplicação .NET, quando compilada, é armazenada fisicamente numa unidade de código
denominada assembly. Uma aplicação pode ser composta de um ou mais assemblies, os quais são
representados no sistema de arquivos do sistema operacional na forma de arquivos executáveis (EXE), ou
de DLL.

Porém, as aplicações .NET não são aplicações Win32, apesar de executarem no ambiente
Windows, razão pela qual o runtime Win32 não sabe como executá-las. O Win32, ao identificar uma
aplicação .NET, dispara o runtime .NET que, a partir desse momento, assume o controle da aplicação.

PE (Portable Executable)

Quando um aplicativo é compilado, são geradas instruções em MSIL. Como já dissemos acima,
METADADOS como informações da aplicação também são gerados, e obviamente armazenados na forma

Ednilson 6
Sistemas de Informação – Ambiente de Programação I
de uma DLL ou de um arquivo executável. Isso é conhecido como Executável Portável (Portable
Executable) ou simplesmente PE. Diz-se portável porque ele poderá ser executado em qualquer plataforma
que suporte .NET, sem necessidade de recompilação, operação que será efetuada automaticamente pelo
runtime quando da execução da aplicação.

Compilação JIT (“Just in Time”)

Um compilador JIT, também conhecido como JITTER, converte instruções MSIL para instruções
específicas da arquitetura do processador onde a aplicação .NET está sendo executada.

• Pré-JIT: Compila de uma só vez todo o código da aplicação .NET que está sendo executada e o
armazena no cache para uso posterior.

• Exono-JIT: Este tipo de compilador é usado em dispositivos como hand-helds onde a memória é um
recurso precioso. Sendo assim, o código é compilado sob demanda, e a memória alocada que não
está em uso é liberada quando o dispositivo assim o requer.

• Normal-JIT: O Normal-JIT compila o código sob demanda e coloca o código resultante no cache, de
forma que esse código não precise ser recompilado quando houver uma nova invocação do mesmo
método.

Gerenciamento da memória - Garbage Collection (GC)

O gerenciamento da memória é efetuado pelo runtime, permitindo que o desenvolvedor se


concentre na resolução do seu problema específico. O que diz respeito ao sistema operacional, como o
gerenciamento da memória, é feito pelo runtime.

Como isso é efetuado? À medida que uma área de memória é necessária para alocar um objeto, o
GC ou coletor de lixo (Garbage Collection) realizará essa tarefa, assim como a liberação de espaços de
memória que não estiverem mais em uso.

Ednilson 7
Sistemas de Informação – Ambiente de Programação I

2- Orientação a Objetos

Classes

Uma classe descreve um grupo de objetos com propriedades semelhantes (atributo), o mesmo
comportamento (métodos), os mesmos relacionamentos com outros objetos e a mesma semântica. Pessoa,
empresa, animal, processo e janela são classes de objetos.

A Classe é a abstração de um objeto.

Objetos e Membros

Um objeto é a instanciação de uma classe.

Objetos são compostos de Membros. Membros são Propriedades, Campos, Métodos e Eventos
e eles representam dados e funcionalidades de um objeto.

Campos e Propriedades representam dados de um objeto. Métodos são as ações que um objeto
pode desempenhar e Eventos são notificações que um objeto recebe ou envia para outros objetos quando
atividades acontecem na aplicação.

Considerando o exemplo de um objeto carro, ele pode ter propriedades como: cor, fabricante,
modelo, ano e assim por diante. Essas propriedades descrevem o estado do objeto. Um objeto carro pode
possuir diversos métodos, como acelerar, brecar, virar, etc. Os métodos representam comportamentos que
um objeto pode representar. E eventos representam notificações. Por exemplo, um objeto carro poder gerar
um evento batida quando interage com um objeto árvore.

Agregação

Um modelo de objeto é uma organização hierárquica com objetos subordinados a um objeto


principal.

Para ilustrar vamos retornar ao exemplo do objeto carro. Um objeto carro pode conter: um objeto
motor, 4 objetos rodas e assim por diante. A composição desses objetos subordinados afeta diretamente as
funções e as regras do objeto carro. Por exemplo, se a propriedade cilindro do objeto motor por igual a 4,
este carro terá um comportamento diferente de outro carro cuja a propriedade cilindro do motor for igual a 8.

O .NET Framework utiliza-se do conceito de agregação em vários objetos presentes no Windows


Forms. Por exemplo: o objeto TextBox possui a propriedade Fonte que consiste no objeto Fonte. Um objeto
Form pode conter uma coleção de outros objetos, como caixas de texto, checagem, seleção, etc.

Encapsulamento

Objetos podem interagir uns com outros através das propriedades, métodos e eventos públicos.
Porém, um objeto não necessita saber a implementação de um método público de outro objeto para acioná-
lo. Basta saber que ele existe e que pode ser acionado.

Por exemplo, um objeto carro possui os métodos AndarParaFrente, AndarParaTrás e Parar. Porém
um objeto Motorista pode se utilizar desses métodos sem saber o que o objeto Carro faz internamente para
que esses métodos funcionem.

A isso, damos o nome de Encapsulamento.

Ednilson 8
Sistemas de Informação – Ambiente de Programação I
Polimorfismo

Polimorfismo é a habilidade de diferentes classes proverem diferentes implementações da mesma


interface.

Uma interface são as regras de comunicação com o ambiente. Ela define os membros que uma
classe deve implementar mas não detalha a forma que eles devem ser implementados.

Por exemplo, um objeto Carro e um objeto Caminhão interagem com o objeto Motorista através da
mesma interface. Desta forma o objeto Motorista poderá interagir tanto com o objeto Carro quanto o objeto
Caminhão, mesmo a implementação dos métodos podendo ser diferentes.

Um exemplo de polimorfismo existe entre as linguagens Visual Basic.NET e C#.

Herança

Herança significa partir de algo já pronto e modificá-lo com o propósito de deixá-lo mais adequado a
determinada finalidade. Supondo que você tem uma classe botão com propriedades básicas; você pode
herdar aquelas características básicas e adicionar ainda mais funcionalidade. O detalhe é que, ao “derivar”
uma classe a partir de outra, você não precisa conhecer o código da classe anterior. A sua nova classe não
trará os códigos da classe base. Eles continuarão encapsulados lá e você poderá usá-los se quiser. O dado
importante é que você não precisa manipular os códigos da classe base.

Herança com Polimorfismo

Membros herdados de uma classe base podem ser alterados na nova classe, sobrepondo a
implementação da classe base. Isso se chama Polimorfismo. Ou seja, cada novo “descendente” de uma
classe pode entender a propriedades e métodos de uma forma diferente e aplicar seus próprios códigos de
modo a redefinir seu comportamento.

Orientação a Eventos

Uma linguagem de programação pode ser orientada a objetos, sem ser orientada a eventos e vice-
versa. Porém a união desses dois conceitos torna uma linguagem muito mais poderosa e interessante.

Como o próprio nome sugere uma linguagem orientada a eventos é uma linguagem capaz de
responder a determinados “acontecimentos” dentro de um determinado ambiente. Os eventos podem ser
muitos: clique do mouse, uma tecla pressionada, a mudança de foco de um componente, etc.

Ednilson 9
Sistemas de Informação – Ambiente de Programação I

3- Variáveis

As Características de uma Variável

Para darmos nomes a uma variável é necessário seguir algumas regras básicas:

1. Sempre iniciar com letras (A até Z). Não use números ou símbolos para iniciar o nome de uma variável.

2. Na composição do nome não podemos usar espaço em branco, sinal de hífen, símbolos como @#*&^$%
ou sinais de pontuação.

3. Cuidado para não usar nomes reservados pela linguagem. Exemplo: If, Caption, Name, Sub, End, etc.

O Comando Dim

Comando utilizado para declaração de variáveis.

Sintaxe: Dim NomeDaVariável As TipoDeVariável

Exemplo:

Dim valor As Integer


Dim nome As String

Ednilson 10
Sistemas de Informação – Ambiente de Programação I

Tipos de Dados

Tipo do Visual Basic Tipo no Espaço para Intervalo de Valor


Common Alocação
Language
Runtime
Boolean Boolean 2 bytes. True ou False
Byte Byte 1 byte 0 a 255 (valores positivos)
Char (caracter único) Char 2 bytes 0 a 65535 (valores positivos)
Date DateTime 8 bytes 0:00:00 (meia noite) de 1 de Janeiro de
0001 às 23:59:59 de 31 de Dezembro de
9999
Decimal Decimal 16 bytes 0 a +/-
79.228.162.514.264.337.593.543.950.335

(+/-7,9...E+28) sem casas decimais; E de
0 à +/-7,9228162514264337593543950335
com 28 casas decimais à direita;
Número mais próximo de zero +/-
0,0000000000000000000000000001 (+/-

1E-28)
Double Double 8 bytes -1,79769313486231570E+308 a -

(ponto flutuante de 4,94065645841246544E-324 para
dupla precisão) valores negativos;
4,94065645841246544E-324 a

1,79769313486231570E+308 para
valores positivos
Integer Int32 4 bytes -2.147.483.648 à 2.147.483.647
Long (inteiro longo) Int64 8 bytes -9.223.372.036.854.775.808 à
9.223.372.036.854.775.807 (9,2...E+18 †)
Object Object (class) 4 bytes em Qualquer tipo pode ser armazenado numa
plataforma 32-bit e variável do tipo Object.
8 bytes em
plataforma 64-bit
SByte SByte 1 byte -128 a 127 (signed)
Short (inteiro curto) Int16 2 bytes -32.768 a 32.767
Single (ponto Single 4 bytes -3,4028235E+38 a -1,401298E-45 † para
flutuante de precisão valores negativos;

simples) 1,401298E-45 a 3,4028235E+38 para
valores positivos
String (tamanho String (class) Varia de acordo com 0 a aproximadamente 2 bilhões de
variável) a plataforma. caracteres Unicode
UInteger UInt32 4 bytes 0 a 4.294.967.295 (somente valores
positivos)
ULong UInt64 8 bytes 0 a 18.446.744.073.709.551.615

(1,8...E+19 ) (somente valores positivos)
User-Defined (Herança de Varia de acordo com Cada membro da estrutura tem um
(Estrutura) ValueType) a plataforma. intervalo determinado por seu tipo de dado.
UShort UInt16 2 bytes 0 a 65.535 (somente valores positivos)

Ednilson 11
Sistemas de Informação – Ambiente de Programação I

Abrangência e Tempo de Vida de uma Variável

Variáveis criadas dentro de uma rotina valem somente para a rotina que a criou.

Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnEnviar.Click ()
Dim Nome as String
Nome = “Fechar”
btnEnviar.Text = Nome
End Sub

A variável Nome que criamos dentro do Private Sub, possui validade somente dentro desta rotina de
código. Chamamos de variável Local. Quando encerrar (comando End Sub) a variável será retirada da
memória.

Entretanto, se queremos que uma variável tenha abrangência em todos os métodos de uma classe,
então devemos criá-la no início da classe.

Exemplo:

Public Class FrmPrincipal


Dim nomeFuncionario As String

Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnEnviar.Click

nomeFuncionario = "Jeremias da Silva"


MessageBox.Show(nomeFuncionario, "Texto Enviado!", MessageBoxButtons.OK)

End Sub
End Class

Conversão de dados

A classe Convert é responsável pela conversão entre tipos de dados.

Por exemplo:
• Convert.ToChar(65) => Resultado: “A”

• Convert.ToInt32(“156”) => Converte a string “156” no Integer 156

• Convert.ToDouble(txtValor.Text) => Converte o conteúdo do TextBox txtValor em Double

Ednilson 12
Sistemas de Informação – Ambiente de Programação I

4- Operadores

Operadores Matemáticos

Estes tipos de operadores possuem a finalidade de efetuar cálculos.

Operador Descrição Exemplo


+ Soma var = 18+5
- Subtração var = 18-5
* Multiplicação var = 18*5
/ Divisão var = 18/5
\ Divisão. Resultado será um número inteiro var = 18\5
^ Exponenciação var = 18^5
Mod Resto da Divisão var = 18 Mod 5
& Concatenador de String “ca” & “ju” = “caju”

Esses operadores respeitam uma ordem de precedência universal:

1ª. Exponenciação
2ª. Multiplicação e Divisão
3ª. Adição e Subtração

O calculo: 3+4*2^2/4-1+5 resultará em 11. Se por algum motivo precisarmos que o programa efetue
primeiro a soma, então devemos colocá-la entre parênteses: (3+4)*2^2/4-(1+5) = 1. Usamos os parênteses
para mudar a ordem de precedência dos operadores.

Operadores Relacionais

Estes operadores fazem comparações entre variáveis ou expressões. O retorno desta comparação
será sempre um valor booleano (True ou False). Nos exemplos abaixo todas as comparações serão
verdadeiras.

Operador Descrição Exemplo


< Menor 3<5
> Maior 5>3
<= Menor ou Igual 3 <= 5
>= Maior ou Igual 5 >= 3
= Igual 5=5
<> Diferente “a” <> “A”

Operadores Lógicos

Os operadores lógicos também retornam valores booleanos (True ou False).

And: Usamos quando precisamos comparar duas relações e ambas tem que ser verdadeira.

20 > 10 and 5 = 5

O Resultado será verdadeiro ( True ). 20 é maior que 10 e 5 é igual a 5.

Já em:

Ednilson 13
Sistemas de Informação – Ambiente de Programação I

20 > 10 and 5 = 4

O Resultado será falso (False). 20 é maior que 10 mas 5 não é igual a 4. Somente 1 das duas
expressões é verdadeira.

Or: Usamos quando precisamos comparar dois relacionamentos e pelo menos um deve ser
verdadeiro ( ou um ou outro ).

20 < 10 Or 5 > 4

O resultado será verdadeiro. 20 não é menor que 10, mas 5 é maior que 4.

20 < 10 Or 4 > 5

O resultado será falso. 20 não é menor que 10 e nem 4 é maior que 5.

Not: É um operador que inverte o resultado, passando algo que seria verdadeiro para falso e vice-
versa.
Not(10 > 5)

O resultado será falso. 10 é maior que 5. Seria Verdadeira a comparação, mas como possui o Not
ele inverte o resultado.

Xor: Ou exclusivo. Para ser verdadeiro, ou é uma coisa ou outra, nunca dois resutados iguais.

8 > 10 Xor 8 > 6

Retorna verdadeiro, pois o resultado das duas comparações foram diferentes. A primeira é falsa e a
segunda é verdadeira.

8 > 10 Xor 6 > 8

Retorna falso, pois o resultado das duas comparações foram semelhantes. A primeira é falsa e a
segunda também.

10 > 8 Xor 8 > 6

Retorna falso, pois o resultado das duas comparações foram semelhantes. A primeira é verdadeira
e a segunda também.

Eqv: Abreviatura de Equivalente. Faz uma equivalência lógica entre duas expressões.

10 > 8 Eqv 8 > 6

Retorna verdadeiro, pois ambas comparações são iguais.

8 > 10 Eqv 8 > 6

Retorna falso, pois as comparações retornam valores diferentes.

Imp: Abreviatura de Implicação (uma coisa implica em outra). O resultado será False somente se a
primeira comparação for True e a segunda for False. Nos outros casos o resultado será sempre True. Este
operador é o único onde a ordem dos operadores faz diferença.
10 > 8 Imp 6 > 8 - Retorna Falso, pois a primeira comparação é Verdadeira e a segunda é Falsa.

10 > 8 Imp 8 > 6 - Retorna Verdadeiro.

8 > 10 Imp 6 > 8 - Retorna Verdadeiro.

Ednilson 14
Sistemas de Informação – Ambiente de Programação I

5- Comandos Condicionais
Os comandos condicionais executam determinadas ações desde que algumas condições sejam
favoráveis (verdadeiras).

Clausula If

O bloco If...Then é utilizado para executar um ou mais comandos condicionalmente. Ele pode ser
usado em uma linha simples ou em estrutura de bloco:

Exemplo:
If condição Then comando - Uma linha

ou

If condição Then
Bloco de Comandos - Bloco
End If

Traduzindo: IF = Se, THEN = Então, END IF = Fim do Comando Se.

Quando colocamos uma estrutura condicional IF dentro do nosso programa estamos querendo que
o computador avalie uma condição, e conforme for o resultado siga determinado caminho. Veja os
exemplos:

Exemplo de comando simples. Podem ser feito na mesma linha:

Dim Numero as Integer

Numero = Convert.ToInt32(txtNumero.Text)
If Numero < 20 Then MessageBox.Show(“Número menor que 20”)

Exemplo com bloco de comandos:

Dim Numero as Integer


Numero = Convert.ToInt32(txtNumero.Text)

If Numero < 20 Then Bloco de comandos


Numero = 0
MessageBox.Show(“Número menor que 20”)
End If

O programa faz a verificação: Se número for menor que 20 então emita a mensagem: “Número
menor que 20”.

Quando uma determinada condição que colocamos no comando IF é verdadeira, ele começa a
executar todas as linhas que existem entre IF e END IF. Se a condição não for verdadeira então o programa
passa a execução para a linha após o END IF e ignora tudo que houver dentro da estrutura IF... END IF.

No procedimento exemplo, o programa verifica se o número é maior que 20. Caso ele não seja, ele
não executará as linhas existentes dentro da estrutura IF...END IF.

Ednilson 15
Sistemas de Informação – Ambiente de Programação I
Clausula If ...Then ...Else

Traduzindo: IF = Se, THEN = Então, ELSE = Senão, END IF = Fim do Comando Se. Esta estrutura
também pode ser usado em uma linha simples ou em estrutura de bloco, como mostram os exemplos
abaixo:

If condição Then comando1 Else comando2 - Uma linha

ou

If condição Then
Bloco de Comandos1 - Bloco
Else
Bloco de Comandos2 - Bloco
End If

O comando ELSE, que é sempre executado quando a condição inicial não é verdadeira.

Dim Numero as Integer


Numero = Convert.ToInt32(txtNumero.Text)
If Numero < 20 Then
MessageBox.Show(“Número é menor que 20”)
Else
MessageBox.Show(“Número é maior ou igual a 20”)
End If

O programa verifica: Se o número for menor que 20 exibe a mensagem: “Número é menor que 20”,
senão, exibe “Número é maior ou igual a 20”.

Lembre-se: Sempre que usar o comando IF é necessário usar o comando THEN após a condição.

Clausula ElseIf

If condição1 Then
Bloco de Comandos1
ElseIf condição2 Then
Bloco de Comandos2
Else
Bloco de Comandos3
End If

Traduzindo: IF = Se, THEN = Então, ELSEIF = Senão se, END IF = Fim do Comando Se.

Utilizamos o comando ELSEIF ao invés de ELSE sempre que existam mais de duas condições a
serem analisadas.

Dim Numero as Integer


Numero = Convert.ToInt32(txtNumero.Text)

If Numero < 20 Then


MessageBox.Show(“Número é menor que 20”)
ElseIf Numero = 20 Then
MessageBox.Show(“Número é igual a 20”)
Else
MessageBox.Show(“Número é maior que 20”)
End If

Ednilson 16
Sistemas de Informação – Ambiente de Programação I
O código anterior verifica se o contador é menor que 20. Se não for verifica se é então igual a 20,
senão irá avisar que contador é maior que 20.

Cláusula Select Case

A vantagem de se utilizar a clausula Select Case ao invés de inúmeros Ifs e ElseIfs é que a clausula
Select Case economiza a digitação e deixa o código mais claro.

Veja a estrutura do comando:

Select Case Opcao


Case 1
MessageBox.Show(“Opção 1 acionada.”)
Case 2
MessageBox.Show(“Opção 2 acionada.”)
Case 3
MessageBox.Show(“Opção 3 acionada.”)
Case Else
MessageBox.Show(“Nenhuma das opções selecionadas!”)
End Select

Note que este comando verifica se a Opção é igual a 1, se não for, verifica se é igual a 2 e depois
se é igual a 3. Caso a variável Opção não seja 1, 2 ou 3 então o comando CASE ELSE é acionado.

O comando CASE ELSE é opcional, ou seja, não é necessário ser colocado em um Select Case. Se
ele não estiver presente e nenhuma das opções for a correta, então o Select Case será encerrado.

O comando Case pode avaliar seqüências. Estas devem ser separadas por vírgulas. Exemplo:

Case 2, 4, 6

Ou seja, se a condição for 2, 4, ou 6 ele processará esta clausula.

No comando Case podemos usar também intervalos, como por exemplo:

Case 2 to 4

Ou seja, caso a condição esteja entre 2 e 4.

Caso queira que na verificação da condição seja avaliado se a variável é maior ou menor que
determinada expressão, usamos:

Case Is > 50

Uso de Operadores

As clausulas If e Select Case permitem o uso de operadores relacionais ( >,>=, <, <=, <> e = ).

Já os operadores lógicos só podem ser usados na clausula If e servem para que duas ou mais
comparações possam ser avaliadas. Os operadores lógicos mais utilizados são: And, Or e Not.

Ednilson 17
Sistemas de Informação – Ambiente de Programação I

6- Comandos de Laço

Comandos de Laço
São comandos que criam uma estrutura de repetição (loop), ou seja, criam uma estrutura
condicional que se repete até a que condição seja satisfeita.

DO WHILE <<Condição>> LOOP ( Faça enquanto )

Executa todos os comandos que existirem entre DO WHILE e o LOOP. Quando a execução do
programa encontra o comando LOOP, o DO WHILE é reavaliado e a rotina continua enquanto a condição
estabelecida esteja sendo satisfeita.

Dim Contador as Short = 0

Do While Contador < 10 Faça enquanto Contador for menor que 10.
Contador = Contador + 1
Loop

Inicializamos uma variável de nome Contador com Zero, e pedimos para o programa: “Repita as
instruções abaixo enquanto Contador for menor que 10”. O comando LOOP faz com que o programa volte
para a linha do DO WHILE e teste a condição novamente. Somente quando a condição for verdadeira, ou
seja, quando Contador for maior ou igual a 10, que o programa executará a linha após o LOOP.

Perceba que dependendo do resultado da condição os comandos existentes dentro da estrutura


podem não ser executados, passando direto para a linha após o comando LOOP.

DO ... LOOP WHILE <<Condição>> ( Repita enquanto )

Neste caso o Comando Do abre a seqüência de repetição, mas não faz nenhum teste de condição.
Este teste é feito no final da estrutura com o comando LOOP WHILE, ou seja, obrigatoriamente as
instruções contidas após o comando DO serão executadas.

Dim Contador as Short = 0

Do
Contador = Contador + 1
Loop While contador < 10 Faça enquanto o contador for menor que 10.

DO UNTIL <<Condição>> LOOP ( Faça até que)

Executa todos os comandos que existem entre DO UNTIL e o LOOP. Quando a execução do
programa encontra o comando LOOP, o DO UNTIL é reavaliado e a rotina continua até que a condição
estabelecida esteja satisfeita.

Dim Contador as Short = 0

Do Until contador >= 10 Faça até que Contador seja maior ou igual a 10.
Contador = Contador + 1
Loop

Inicializamos uma variável de nome Contador com Zero, e pedimos para o programa: “Repita as
instruções abaixo até que Contador seja maior ou igual que 10”. O comando LOOP faz com que o programa
volte para a linha do DO UNTIL e teste a condição de novo. Somente quando a condição for verdadeira, ou
seja, quando Contador for realmente maior ou igual a 10, que o programa executará a linha após o LOOP.

Ednilson 18
Sistemas de Informação – Ambiente de Programação I
Semelhante ao DO WHILE, dependendo do resultado da condição os comandos existentes dentro
da estrutura podem não serem executados, passando direto para a linha após o comando LOOP.

DO ... LOOP UNTIL <<Condição>> ( Repita até que )

O Comando DO abre a seqüência de repetição, mas não faz nenhum teste de condição. Este teste
é feito no final da estrutura com o comando LOOP UNTIL, ou seja, obrigatoriamente as instruções contidas
após o comando DO serão executadas.

Dim Contador as Short = 0

Do
Contador = Contador + 1
Loop Until Contador >= 10 Faça até que o Contador seja maior ou igual a 10.

FOR <<Intervalo>> ... NEXT (Faça de número inicial até número final)

O comando FOR faz uma contagem de um determinado intervalo de números. Diferentemente dos
demais comandos de repetição, no For o contador não precisa ser incrementado manualmente. Ao passar
pela clausula Next, ele é incrementado automaticamente. Exemplo:

Dim cont as short


Conte de 1 até 10
For cont = 1 to 10
MessageBox.Show(“A variável Contador agora vale “ & cont.ToString())
Next

Neste código, o comando FOR avisa que a variável contador será iniciada com o valor 1. As
instruções contidas na linha abaixo são executadas, e quando o comando NEXT é encontrado a execução
volta para o FOR, e a variável Contador é incrementada em mais um e assim por diante. Quando Contador
for maior que 10 a estrutura FOR/NEXT é desfeita.

STEP

Usamos o STEP em conjunto com o FOR para alterar o valor com que uma variável é
incrementada. Exemplo: Se quisermos que o comando conte de 2 em 2 colocamos FOR Variável = 1 TO 10
STEP 2.

Exemplo, para exibir os valores impares de 1 a 10 podemos fazer:

Dim Contador as Short Este código exibirá mensagens com os números 1, 3, 5, 7 e 9.


For Contador = 1 to 10 Step 2
MessageBox.Show(Contador.ToString())
Next

Podemos usar a Clausula Step para gerar valores decrescentes. Exemplo:

Dim Contador as Short Este código exibirá mensagens com os números 5, 4, 3, 2, 1 e 0.

For Contador = 5 to 0 Step -1


MessageBox.Show(Contador.ToString())
Next

Ednilson 19
Sistemas de Informação – Ambiente de Programação I
EXIT <<Comando>>

• Exit Sub: Força a saída da Sub. Quando a execução do programa encontra este comando,
transfere o controle do programa para a linha seguinte que chamou a rotina.

• Exit Function: Força a saída da função. Quando a execução do programa encontra este
comando, transfere o controle do programa para a linha seguinte que chamou a rotina.

• Exit Do: Força a saída de um LOOP, seja WHILE ou UNTIL, mesmo que a condição
estabelecida não seja verdadeira:

Dim Contador as Short = 0


Do While Contador < 10
Contador = Contador + 1
if Contador = 5 then
Exit Do
end if
Loop

• Exit For: Força a saída de um FOR..NEXT, mesmo que o número final não tenha sido
alcançado.

Dim Contador as Short


For Contador = 1 to 10
If Contador = 6 Then
Exit For
end if
Next

Ednilson 20
Sistemas de Informação – Ambiente de Programação I

7- IDE do Visual Studio 2005 e Componentes de Interface

Barra de Menus e Barra de Ferramentas

Menu Descrição
File Contém comandos para abrir e fechar projetos, imprimir dados do projeto etc.
Edit Contém comandos como cut, paste, find, undo etc.
View Contém comandos para exibir as janelas e barras de ferramentas do IDE.
Project Contém comandos para gerenciar um projeto e seus arquivos.
Build Contém comandos para compilar um programa.
Debug Contém comandos para depuração (isto é, identificar e corrigir problemas em um
programa) e executar um programa.
Data Contém comandos para interagir com bancos de dados (isto é, arquivos que armazenam
dados).
Format Contém comandos para arranjar os controles de um formulário.
Tools Contém comandos para acessar ferramentas e opções adicionais do IDE que
possibilitam a sua personalização.
Windows Contém comandos para arranjar e exibir janelas
Help Contém comandos para acessar os recursos de ajuda do IDE.

As principais janelas da IDE para o desenvolvimento são:

• Toolbox, onde se localizam os componentes disponíveis;

• Solution Explorer, que permite visualizar e selecionar todos os itens de uma Solution (Projetos,
Forms, Classes, Imagens, Relatórios);

• Properties, que permite visualizar / alterar as propriedades de qualquer componente em um


formulário.

A figura seguinte exibe estas 3 janelas:

Ednilson 21
Sistemas de Informação – Ambiente de Programação I

Toolbox Solution Explorer Properties

Propriedades Gerais de Controle e Layout dos Componentes

A tabela a seguir mostra as propriedades mais comuns encontradas na maioria dos componentes:

Propriedades e Métodos da Descrição


Classe Control
Propriedades
Anchor Anexa o controle ao lado do contêiner-pai. Usado durante o
redimensionamento. Valores possíveis incluem superior, inferior,
esquerdo e direito.
BackColor Configura a cor de segundo plano do controle.
BackgroundImage Configura a imagem de segundo plano do controle.
Dock Permite que o controle se estenda ao longo dos lados de seus
contêineres – valores não podem ser combinados.
DockPadding Configura o espaço entre as bordas de um contêiner e os controles
(para contêineres) encaixados.
O padrão é zero, fazendo os controles aparecerem alinhados aos
lados do contêiner.
Enabled Indica se o controle está ativo (isto é, se o usuário pode interagir
com ele). Um controle inativo é exibido, mas partes do controle
aparecem em cinza.
Focused Indica se um controle tem foco.
Fonte Configura a Font usada para exibir o texto do controle.
ForeColor Configura a cor de primeiro plano do controle. Isto normalmente
determina a cor da propriedade Text.
Location Especifica a localização do canto superior esquerdo do controle, em
relação ao seu contêiner.

Ednilson 22
Sistemas de Informação – Ambiente de Programação I
Name Nome do Objeto
Size Especifica o tamanho do controle. Recebe um tipo Size, que tem
propriedades Height e Width.
TabIndex Configura a ordem da tabulação do controle. Quando a tecla Tab é
pressionada, o foco é transferido a diversos controles de acordo
com a ordem de tabulação. Esta ordem pode ser configurada pelo
programador.
TabStop Indica se os usuários podem empregar a tecla Tab para selecionar o
controle. Se True, então o usuário pode selecionar este controle por
meio da tecla Tab.
Text Configura o texto associado ao controle. A localização e aparência
variam dependendo do tipo do controle.
TextAlign Estabelece o alinhamento do texto no controle – as possibilidades
são uma das três posições horizontais (esquerda, centro ou direita)
e uma das três posições verticais (superior, meio ou inferior).
Visible Indica se o controle está visível.
Métodos
Focus Adquire o foco.
Hide Oculta o controle (configura Visible como False).
Show Exibe o controle (configura Visible como True).

A seguir serão exibidas tabelas com as propriedades, métodos e eventos mais comuns encontrados
nos objetos: Formulário, Label, TextBox, Button, GroupBox, Panel, CheckBox, RadioButton, ComboBox,
ListBox, PictureBox, além dos tratamentos de eventos de mouse e teclado.

Formulário

Propriedades de Descrição
Formulários
Name Nome do formulário
AutoScroll Indica se as barras de rolagem aparecerão quando o Form for pequeno
demais para exibir todos os seus controles. O padrão é False.
ControlBox Determina se um form terá os botões minimizar, maximizar e fechar.
Cursor Permite alterar o cursor do mouse.
GridSize Distância entre os pontos do Grid.
MinimizeBox e MaximizeBox Habilita ou desabilita os botões minimizar e maximizar do form.
MinimumSize e MaximumSize Indica o tamanho mínimo e máximo do formulário.
Opacity Porcentagem de opacidade de um formulário.
StartPosition Posição inicial de um Form.
Text Título de um formulário.
Window State Determina o estado inicial da janela.

Labels, TextBoxes e Buttons

Propriedades Comuns Descrição


entre Label, TextBox e
Buttons
Font A fonte usada pelo texto no Label / TextBox.
Text O texto que aparece no Label / TextBox.
TextAling O alinhamento do texto de Label / TextBox no controle. As possibilidades são
uma das três posições horizontais (esquerda, centralizada ou direita) e uma
das três posições verticais (superior, central ou inferior).

Ednilson 23
Sistemas de Informação – Ambiente de Programação I

Propriedades de Descrição
TextBox
AcceptsReturn Se True, ao pressionar Enter cria uma nova linha (se a caixa de texto estiver
configurada para conter múltiplas linhas). Se False, pressionar Enter clica no
botão-padrão do formulário.
Multiline Se True, um TextBox pode se estender por múltiplas linhas. O valor-padrão é
False.
PasswordChar Se um caractere é fornecido para esta propriedade, a TextBox torna-se uma
caixa de senha, e o caractere especificado mascara cada caractere digitado
pelo usuário. Se nenhum caractere é especificado, TextBox exibe o texto
digitado.
ReadOnly Se True, TextBox tem um segundo plano cinza, e seu texto não pode ser
editado. O valor-padrão é False.
ScrollBars Para caixas de texto de múltiplas linhas, indica quais barras de rolagens
aparecerão (nome, horizontal, vertical ou both – ambas).
Text O conteúdo do texto da caixa de texto.
Evento
TextChanged Gerado quando o texto é alterado num TextBox (isto é, quando o usuário
adiciona ou elimina caracteres). Quando um programador dá um clique duplo
no controle TextBox na visualização Design, um tratador de evento vazio para
este evento é gerado.

Propriedades de Button Descrição


Image Imagem que um botão pode ter.
ImageAlign Alinhamento da Imagem.
Text Especifica o texto exibido na face do botão.
TextImageRelation Define a imagem em relação ao texto. Pode ser antes do texto, acima do
texto, entre outras.
Evento
Click Gerado quando o usuário clica no controle. Quando um programador dá um
clique duplo no controle Button na visualização de projeto, um tratador de
evento vazio para esse evento é gerado.

GroupBox e Panels

Propriedades de Descrição
GroupBox
Controls Lista os controles que um GroupBox contém.
Text Especifica o texto exibido na parte superior do Groupbox (seu título).

Propriedades de Panel Descrição


AutoScroll Indica se as barras de rolagem aparecerão quando o Panel é pequeno demais
para exibir todos os seus controles. Padrão é False.
BorderStyle Configura a borda do Panel (padrão None; demais opções são Fixed3D e
FixedSingle).
Controls Lista os controles que um Panel contém.

CheckBox e RadioButtons

Propriedades de Descrição
CheckBox
Checked Indica se a CheckBox está marcada (contém uma marca de verificação
preta) ou não marcada (branca).
CheckState Indica se a CheckBox está ou não marcada. Uma enumeração com valores
Checked, Unchecked ou Indeterminate (marca e sombreia a CheckBox).

Ednilson 24
Sistemas de Informação – Ambiente de Programação I
Text Especifica o texto à direita da CheckBox (chamada de rótulo).
Evento
CheckedChanged Gerado toda vez que a CheckBox é marcada ou desmarcada. Quando um
usuário dá um clique duplo no controle CheckBox na visualização do projeto,
um tratador de eventos vazio para este evento é gerado.
CheckStateChanged Gerado quando a propriedade CheckState é alterada.

Propriedades de Descrição
RadioButton
Checked Indica se o RadioButton está marcado.
Text Especifica o texto exibido à direita do RadioButton (chamado de rótulo).
Eventos
Click Gerado quando o usuário clica no controle.
CheckedChanged Gerado toda vez que o RadioButton é marcado ou desmarcado. Quando um
usuário dá um clique duplo no controle RadioButton na visualização do
projeto, um tratador de eventos vazio para este evento é gerado.

ComboBox

Propriedades de ComboBox Descrição


DropDownStyle Determina o tipo de caixa combinada. O valor simples significa que a
parte do texto é editável e a parte da lista está sempre visível. O valor
DropDown (padrão) significa que a parte do texto é editável, mas o
usuário deve clicar no botão de seta para ver parte da lista. O valor
DropDownList significa que a parte do texto não é editável e que o
usuário deve clicar no botão de seta para ver parte da lista.
Items A coleção de itens no controle ComboBox.
MaxDropDownItems Especifica o número máximo de itens (entre 1 e 100) que a lista
suspensa pode exibir. Se o número de itens exceder o número máximo
de itens a ser exibido, uma barra de rolagem aparecerá.
SelectedIndex Retorna o índice do item selecionado. Se não houver item selecionado,
o valor -1 é retornado.
SelectedItem Retorna uma referência ao item selecionado.
Sorted Indica se os itens são classificados alfabeticamente. Configurar o valor
dessa propriedade como True classifica os itens. O padrão é False.
Evento
SelectedIndexChanged Gerado quando o índice selecionado é alterado (tal quando um item
diferente é selecionado). Este é o evento padrão quando o controle
recebe um duplo clique.

ListBox

Propriedades de ListBox Descrição


Items A coleção de itens da ListBox.
MultiColumn Indica se a ListBox pode dividir uma lista em múltiplas colunas. As
múltiplas colunas eliminam as barras de rolagem verticais da exibição.
SelectedIndex Retorna o índice do item selecionado. Se o usuário selecionar múltiplos
itens, esta propriedade retorna arbitrariamente um dos índices
selecionados; se nenhum item foi selecionado, a propriedade retorna -1.
SelectedIndices Retorna uma coleção contendo os índices de todos os itens selecionados.
SelectedItem Retorna uma referência ao item selecionado (se múltiplos itens sãos
selecionados, ela retorna o item com o número do índice mais baixo).

Ednilson 25
Sistemas de Informação – Ambiente de Programação I
SelectedItems Retorna uma coleção de item(ns) selecionado(s).
SelectionMode Determina o número de itens que podem selecionados, e os meios pelos
quais múltiplos itens podem ser selecionados. Os valores None, One,
MultiSimple (seleção múltipla permitinda) ou MultiExtended (seleção
múltipla permitida usando uma combinação de teclas de seta ou cliques
de mouse e teclas Shift e Control).
Sorted Indica se os itens são classificados alfabeticamente. Configurar o valor
dessa propriedade como True classifica os itens. O valor-padrão é False.
Método
GetSelected Recebe um índice como argumento, e retorna True se o item
correspondente está selecionado.
Evento
SelectedIndexChanged Gerado quando o índice selecionado é alterado. Este é o evento-padrão
quando o controle recebe um clique duplo.

PictureBox

Propriedades de Descrição
PictureBox
Image Configura a imagem a ser exibida na PictureBox.
SizeMode Enumeração que controla o tamanho e posição da imagem. Os valores são
Normal (padrão), StretchImage, AutoSize e CenterImage. Normal posiciona a
imagem no canto superior esquerdo de PictureBox, e CenterImage coloca a
imagem no meio (ambos truncam a imagem se ela for grande demais).
StretchImage redimensiona a imagem para caber em PictureBox. AutoSize
redimensiona PictureBox para conter a imagem.
Eventos
Click Gerado quando o usuário clica no controle. Evento-padrão quando este
controle recebe um clique duplo.

Tratamento de Eventos do Mouse

Eventos, Delegates e Argumentos de Eventos de Mouse


Eventos de Mouse (Delegate EventHandler, event arguments EventArgs)
MouseEnter Gerado se o cursor do mouse entrou na área do controle.
MouseLeave Gerado se o cursor do mouse deixou a área do controle.
Eventos de Mouse (Delegate MouseEventHandler, event arguments MouseEventArgs)
MouseDown Gerado se o botão do mouse é pressionado enquanto seu cursor está sobre
a área do controle.
MouseHover Gerado se o cursor do mouse para sobre a área do controle.
MouseMove Gerado se o cursor do mouse é movido enquanto está na área do controle.
MouseUp Gerado se o botão do mouse é solto quando o cursor está sobre a área do
controle.
Propriedades da Classe MouseEventArgs
Button Especifica o botão do mouse que foi pressionado (left, right, middle ou none).
Click Indica o número de vezes que o botão do mouse foi clicado.
X A coordenada X do evento, dentro do controle.
Y A coordenada Y do evento, dentro do controle.

Ednilson 26
Sistemas de Informação – Ambiente de Programação I

Tratamento de Eventos do Teclado

Eventos, Delegates e Argumentos de Eventos de Teclado


Eventos de Tecla (Delegate KeyEventHandler, event arguments KeyEventArgs)
KeyDown Gerado quando a tecla é pressionada inicialmente.
KeyUp Gerado quando a tecla é solta.
Eventos de Tecla (Delegate KeyPressEventHandler, event arguments KeyPressEventArgs)
KeyPress Gerado quando a tecla é pressionada. Ocorre repetidamente enquanto a
tecla é mantida pressionada, a uma taxa especificada pelo sistema
operacional.
Propriedades da Classe KeyPressEventArgs
KeyChar Retorna o caractere ASCII da tecla pressionada.
Handled Indica se o evento KeyPress foi tratado.
Propriedades da Classe KeyEventArgs
Alt Indica se a tecla Alt foi pressionada.
Control Indica se a tecla Control foi pressionada.
Shift Indica se a tecla Shift foi pressionada.
Handled Indica se o evento foi tratado.
KeyCode Retorna o código da tecla como uma enumeração Keys. Isto é não inclui as
informações de teclas modificadas. Usado para testar se é uma tecla
específica.
KeyData Retorna o código da tecla como uma enumeração Keys, combinado com
informações modificadoras. Contém todas as informações sobre a tecla
pressionada.
KeyValue Retorna o código da tecla como um Integer, e não uma enumeração Keys.
Usado para obter uma representação numérica da tecla pressionada.
Modifiers Retorna uma enumeração Keys para quaisquer teclas modificadoras
pressionadas (Alt, Control e Shift). Usado para determinar apenas
informações de teclas modificadoras.

Prefixos de Controles

Prefixo Controle
Frm Form
lbl Label
txt TextBox
cmd Button
chk CheckBox
rad RadioButton
pic PictureBox
mnu Menu
mnuitm MenuItem
lnklbl LinkLabel
lst ListBox
chklst CheckedListBox
cbo ComboBox
tre TreeView
lvw ListView
ils ImageList
tbc TabControl
tbp TabPage
tmr Timer

Ednilson 27
Sistemas de Informação – Ambiente de Programação I

8- Funções, Módulos e Sub Main

Procedimentos definidos pelo programador

Existem dois tipos básicos de procedimentos: Sub e Function. A diferença básica é que o
procedimento Function retorna um valor (ação típica de uma função matemática), enquanto que um
procedimento Sub não retorna valor algum (ele realiza apenas uma tarefa).

Procedimentos Sub

A sintaxe de um procedimento Sub é a seguinte:

Sub NomeDoProcedimento (Lista de argumentos)


comandos
End Sub

A Lista de argumentos é opcional. Se for necessário que a rotina receba mais de um parâmetro,
estes devem ser separados por vírgulas. Cada argumento é escrito como uma declaração de variável e atua
como tal dentro do procedimento. A sintaxe de cada argumento é a seguinte:

[ByVal] NomeDaVariável As Tipo de Dado

ByVal indica que o parâmetro é passado por valor e ByRef, que o parâmetro é passado por
referência (endereço). O valor de uma variável pode ser alterado por um procedimento quando ele é
passado por referência (ByRef). Ao contrário, somente uma cópia da variável é passada para o
procedimento quando o mesmo é passado por valor (ByVal). Se o procedimento alterar seu valor, esta
alteração afeta somente a cópia e não a variável original.

Exemplo de declaração de Sub sem passagem de parâmetros:

Sub Limpar()
txtValor.Clear()
lstLoop.Items.Clear()
End Sub

Exemplo de declaração de Sub com passagem de parâmetros por valor (ByVal):

Sub ListarValores(ByVal Valor As Integer)


Dim i As Integer

lstLoop.Items.Clear()
'Para i = 0 até o conteúdo da variável valor
For i = 0 To Valor
lstLoop.Items.Add(i)
Next 'Atualiza o contador automaticamente
End Sub

A chamada de uma Sub acontece da seguinte forma:

ListarValores(15)

O procedimento passa o valor 15 como parâmetro para a Sub ListarValores através da variável
Valor.

Ednilson 28
Sistemas de Informação – Ambiente de Programação I
Procedimentos Function

A sintaxe de um procedimento Function é a seguinte:

Function NomeFunção ( Lista de argumentos ) As Tipo de Dado


Comandos
Return x
End Function

Os argumentos de uma Function trabalham exatamente da mesma forma que os argumentos de


uma Sub. Deve-se observar que:

• Function sempre retorna um tipo de dado.

• O valor de saída de uma Function será definido através do comando Return.

Por exemplo, uma Function que calcula a soma de dois valores:

Function Soma (ByVal N1 As Integer, ByVal N2 As Integer) as Integer


Return N1 + N2
End Function

Para chamar uma Function:

Dim resultado As Integer


Resultado = Soma(30, 45)

Ednilson 29
Sistemas de Informação – Ambiente de Programação I

9- Tratamento de Erros

Tratamento de Erros no .NET Framework

O tratamento de erro no .NET Framework se dá através dos comandos Try / Catch / Finally, sendo
que o comando Finally é opcional.

Sintaxe:

Try
Bloco de Comandos
Catch ex As Exception
Comandos que serão executados em caso de erro
Finally
Bloco de comandos opcional. Será executado independete da rotina ter ou não gerado uma exceção
End Try

O bloco Finally, quando declarado, sempre é executado. Ele é usado principalmente para a
liberação dos recursos utilizados na rotina.

Se nenhuma exceção ocorre ou se uma exceção é capturada e tratada, o programa continua a


execução com o próximo comando após a seqüência Try/Catch/Finally.

Principais Propriedades da Classe Exception

• Message: Fornece a mensagem de erro associada a um objeto Exception;

• StackTrace: String que representa a pilha de chamada de métodos no ponto de lançamento da


exceção.

É possível tratar erros específicos de maneira personalizada, através das especializações da classe
Exception. O exemplo a seguir mostra o tratamento de um erro caso ocorra uma exceção do tipo
OverflowException. Caso ocorra qualquer outro tipo de exceção, esta é tratada de forma gerérica através da
classe Exception.

Function Fatorial(ByVal Valor As Integer) As Integer


Dim resultado As Integer = 1
Dim i As Integer
Try

For i = 2 To Valor
resultado *= i
Next

Return resultado
Catch ex As OverflowException
MessageBox.Show("Número muito grande para ser calculado!")
Return 0
Catch ex As Exception
MessageBox.Show(ex.Message)
Return 0
End Try
End Function

Ednilson 30
Sistemas de Informação – Ambiente de Programação I
Sempre que ocorre um erro dentro de uma rotina, o sistema verifica se foi especificado tratamento
de erro para aquela rotina. Em caso positivo, o erro é tratado na rotina. Em caso negativo, o sistema verifica
se foi especificado tratamento de erro na rotina chamadora daquela função. Caso exista, o tratamento é
efetuado, caso contrário, a procura por tratamento de erro prossegue na árvore de rotinas chamadoras, até
que esta acabe. Se nenhum tratamento de erro tiver sido especificado para aquela árvore de chamadas,
uma execução ocorre.

Rotina1 Como a Rotina1 possui tratamento


Possui tratamento de Erros de erros (Try / Catch) a exceção é
tratada.

Como a Rotina2 também não trata


Rotina2 erros, retorna a exceção para a
Rotina1.

Rotina3 Como a Rotina3 não tem tratamento


Durante a execução, ocorre de erros, retorna a exceção para a
um erro... rotina que o ativou, no caso a Rotina2

Ednilson 31
Sistemas de Informação – Ambiente de Programação I

10 - Classe String
A critério de exemplo, criaremos uma variável chamada Texto, do tipo String contendo a palavra “Cachorro”:
Dim Texto as String = “Cachorro”

Método Descrição Exemplo


Contains(valor as string) Se a string contiver o valor passado como Texto.Conteins(“cho”) = True
parâmetro retorna True, caso contrário False. Texto.Conteins(“me”) = False
EndsWith(valor as string) Se a string terminar com o valor passado como Texto.EndsWith(“rro”) = True
parâmetro retorna True, caso contrário False. Texto.EndsWith(“rra”) = False
IndexOf(valor as string) Procura o valor na string e se encontrar, retorna Texto.IndexOf(“ho”) = 3
a posição onde ele inicia. Se não encontrar, Texto.indexOf(“z”) = -1
retorna -1.
LastIndexOf(valor as string) Procura, a partir do final da string, o valor Texto.LastIndexOf(“a”) = 3
passado como parâmetro e se encontrar, retorna Texto.LastIndexOf(“z”) = -1
a posição onde ele inicia. Se não encontrar,
retorna -1.
PadLeft(tamanho as integer) Se tamanho for maior que o tamanho da string, Texto.PadLeft(10) = “ Cachorro“
completa com espaços à esquerda, caso
contrário, retorna a própria string.
PadRight(tamanho as integer) Se tamanho for maior que o tamanho da string, Texto.PadRight(10) = “Cachorro “
completa com espaços à direita, caso contrário,
retorna a própria string.
Remove(inicio as integer, Remove uma parte da string. Texto.Remove(1,3) = “Corro”
quantidade as integer) Texto.Remove(3) = “Cac”
Replace(valorAntigo as string, Retorna a string substituindo um valor por outro. Texto.Replace("a", "y") =
NovoValor as string) Se não encontrar, retorna a própria string. "Cychorro"
StartWith(valor as string) Se a string iniciar com o valor passado como Texto.StartWith(“C”) = True
parâmetro retorna True, caso contrário False. Texto.StartWith(“c”) = False
Substring(inicio as integer, Retorna um pedaço da string original Texto.Text.Substring(5,2) = “rr”
tamanho as integer) Texto.Text.Substring(5) = “rro”
ToLower() Retorna a string em minúscula. Texto.ToLower() = “cachorro”
ToUpper() Retorna a string em maiúscula. Texto.ToUpper() = “CACHORRO”
Trim() Retorna a string sem os espaços em branco da Supondo que a variável Texto
direita e da esquerda. fosse: “ Uva ”, então Texto.Trim()
= “Uva”.
Propriedade Descrição Exemplo
Length Retorna o tamanho da string Str.Lenght = 8

Ednilson 32
Sistemas de Informação – Ambiente de Programação I

11 - Classe Matemática (Math)


Método Descrição Exemplo
Abs (x) Retorna o valor absoluto de x Abs (23.7) é 23.7
Abs (0) é 0
Abs (-23.7) é 23.7
Ceiling (x) Arredonda x para o menor inteiro que não é menor do que x Ceiling (9.2) é 10.0
Ceiling (-9.8) é -9.0
Cos (x) Retorna o coseno trigonométrico de x (x em radianos) Cós (0.0) é 1.0
x
Exp (x) Retorna o exponencial e Exp (1.0) é aprox. 2.71828182845905
Exp (2.0) é aprox. 7.389059893065
Floor (x) Arredonda x para o maior inteiro que não é maior do que x Floor (9.2) é 9.0
Floor (-9.8) é -10,0
Log (x) Retorna o logaritmo natural de x (base e) Log (2.718281828459051 é aprox. 1.0
Log (73890560989306504 é aprox. 2.0
Max (x,y) Retorna o maior valor dentre x e y (também tem versões para Max (2.3,12.7) é -12,7
valores Single, Integer e Long) Max (-2.3,-12.7) é -2.3
Min (x,y) Retorna o menor valor dentre x e y (também tem versões para Min (2.3, 12,7) é 2.3
valores Single, Integer e Long) Min (-2.3,-12.7) é -12.7
y
Pow (x,y) Calcula x elevado a potencia y (x ). Pow (2.0.7.0) é 128.0
Pow (9.0,.5) é 3.0
Sin (x) Retorna o seno trigonométrico de x (x em radianos) Sin (0.0) é 0.0
Sqrt (x) Retorna a raiz quadrada de x Sqrt (9.0) é 3.0
Sqrt (2.0) é 1.4142135623731
Tan (x) Retorna a tangente trigonométrica de x (x em radianos) Tan (0.0) é 0.0

Ednilson 33

Você também pode gostar