Você está na página 1de 33

UNIANCHIETA

Ambiente de Programao I

Sistemas de Informao Ambiente de Programao I


1.NET Framework 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 10 10 12 12 13 13 13 13 15 15 16 16 17 17 18 18 21 21 22 23 23 24 24 25 2

Common Language Runtime (CLR) .NET Base Class Library Linguagens e o .NET Framework Compilao e execuo de uma aplicao .NET Gerenciamento da memria - Garbage Collection (GC) 2Orientao a Objetos

Classes Objetos e Membros Agregao Encapsulamento Polimorfismo Herana Herana com Polimorfismo Orientao a Eventos 3Variveis

As Caractersticas de uma Varivel O Comando Dim Abrangncia e Tempo de Vida de uma Varivel Converso de dados 4Operadores

Operadores Matemticos Operadores Relacionais Operadores Lgicos 5Comandos Condicionais

Clausula If Clausula If ...Then ...Else Clausula ElseIf Clusula Select Case Uso de Operadores 6Comandos de Lao

Comandos de Lao 7IDE do Visual Studio 2005 e Componentes de Interface

Barra de Menus e Barra de Ferramentas Propriedades Gerais de Controle e Layout dos Componentes Formulrio Labels, TextBoxes e Buttons GroupBox e Panels CheckBox e RadioButtons ComboBox Ednilson

Sistemas de Informao Ambiente de Programao I


ListBox PictureBox Tratamento de Eventos do Mouse Tratamento de Eventos do Teclado Prefixos de Controles 8Funes, Mdulos e Sub Main 25 26 26 27 27 28 28 30 30 30 32 33

Procedimentos definidos pelo programador 9Tratamento de Erros

Tratamento de Erros no .NET Framework Principais Propriedades da Classe Exception 10 11 Classe String Classe Matemtica (Math)

Ednilson

Sistemas de Informao Ambiente de Programao 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 Programao (VB.NET, C#, etc) Base Class Library Common Language Runtime
Common Type System Common Language Specification

Common Language Runtime (CLR)


O CLR gerencia a execuo do cdigo. Ele responsvel pela compilao do cdigo, alocao e gerenciamento de memria (Garbage Collection) e gerenciamento de thread. O gerenciamento de memria feito pelo CRL torna os programas menos susceptveis a erros. Como o prprio nome diz o CRL compartilhado e, portanto, no temos um runtime especfico para cada linguagem. Common Type System (CTS) O Common Type System (CTS) que tambm faz parte do CRL, define os tipos suportados pelo .NET e suas caractersticas. Cada linguagem que suporta .NET tem de necessariamente, suportar esses tipos. Common Language Specification (CLS) O CLS, ou Especificao Comum da Linguagem, define um conjunto de regras que qualquer linguagem que implemente a .NET deve seguir a fim de que o cdigo gerado resultante da compilao de um programa, seja entendido pelo runtime .NET. Seguir essas regras um imperativo porque, caso contrrio, um dos grandes ganhos do .NET, que a independncia da linguagem de programao e a sua interoperabilidade, fica comprometido. A grosso modo, dizer que uma linguagem compatvel com o CLS significa dizer que mesmo quando esta sintaticamente diferente de qualquer outra que implemente .NET, semanticamente ela igual, porque na hora da compilao ser gerado um cdigo intermedirio (e no cdigo em linguagem de mquina dependente da arquitetura do processador) equivalente para duas peas de cdigo iguais, porm escritas em linguagens diferentes. importante entender esse conceito para no pensar que o cdigo desenvolvido em C# no pode interagir com cdigo desenvolvido em VB ou outras linguagens, porque mesmo estas sendo diferentes, todas so compatveis com o CLS.

Ednilson

Sistemas de Informao Ambiente de Programao I


.NET Base Class Library
A .NET Base Class Library fornece uma coleo de classe teis e reutilizveis. Elas so orientadas a objetos e totalmente extensveis e podem ser facilmente integrados s suas aplicaes desenvolvidas em .NET Framework. A Base Class Library organizada dentro de namespaces. Um namespace um agrupamento lgico de classes relacionadas. Os namespaces so organizados hierarquicamente sendo que a raiz o namespace System. A tabela a seguir apresenta exemplos dos principais namespaces: Alguns namespaces. NET Contm algumas classes de baixo nvel usadas para trabalhar com tipos de dados primitivos. a raiz para todos os namespaces da Base Class Library. Implementaes prontas de pilhas, filas, listas encadeadas. Aqui voc vai encontrar tudo o que necessrio para lidar com bases de dados. aqui se encontra o ADO.NET. O .NET oferece uma biblioteca de componentes para trabalhar com grficos, chamada GDI+, que se encontra neste namespace. Biblioteca par lidar com leitura, gravao e gerenciamento de arquivos. Local onde se encontram funes matemticas. Aqui voc encontra bibliotecas para programao de redes, sockets, etc. Em .NET voc pode gerar cdigos em tempo de execuo, descobrir tipos de variveis etc. As bibliotecas necessrias para isso encontram-se neste namespace. Fornecem bibliotecas para interagir com cdigo no-gerenciado. Contm suporte a criptografia, permisses e segurana. Biblioteca necessria para o desenvolvimento de aplicaes multithread. ASP.NET, Web Services e tudo o que tenha a ver com Web pode ser encontrado aqui. Bibliotecas para o desenvolvimento de aplicaes Windows tradicionais. Bibliotecas que permitem a interao com documentos XML.

System

System.Collections System.Data System.Drawing System.IO System.Math System.NET System.Reflection

System.Runtime System.Security System.Threading System.Web System.Windows.Forms System.XML

Linguagens e o .NET Framework


Quando uma aplicao .NET compilada, ela convertida para a Microsoft Intermediate Language (MSIL). A MSIL uma linguagem de baixo nvel que a CLR (Common Language Runtime) pode ler e entender. Como todas as DLLs e Executveis esto na forma de MSIL, eles podem interagir entre si, independente da linguagem em que foram desenvolvidas inicialmente. A Common Language Specification (CLS) define os padres que devem ser seguidos por uma linguagem que faa parte do .NET Framework.

Ednilson

Sistemas de Informao Ambiente de Programao I


Compilao e execuo de uma aplicao .NET
Para podermos falar sobre este assunto vamos introduzir alguns conceitos essenciais para a compreenso da execuo de um aplicativo .NET. Tempo de Compilao Entende-se por tempo de compilao a parte do processo de compilao que diz respeito gerao de cdigo em MSIL (linguagem intermediria) e de informaes especficas da aplicao necessrias para a sua correta execuo. Mas onde estas informaes so armazenadas? Como resposta a esta pergunta vamos introduzir o conceito de metadados:

Metadados So um conjunto de instrues geradas no processo de compilao de qualquer programa .NET, junto com a MSL, que contm as seguintes informaes especficas da aplicao: A descrio dos tipos (classes, estruturas, tipos enumerados etc.) usados na aplicao, podendo esta ter sido gerada em forma de DLL ou de executvel. A descrio dos membros de cada tipo (propriedades, mtodos, eventos, etc.). A descrio de cada unidade de cdigo externo (assembly) usada na aplicao e que requerida para que esta execute adequadamente. Resoluo da chamada de mtodos. Resoluo de verses diferentes de uma aplicao.

Dada a informao contida nos METADADOS, podemos dizer que uma aplicao .NET autoexplicativa, dispensando a utilizao do registro do Windows para armazenar informaes adicionais a seu respeito. Mais ainda, nos METADADOS armazenada a verso da aplicao, o que permite que duas aplicaes, mesmo sendo homnimas, possam conviver amigavelmente sem gerar conflitos de verses no sistema. O CLR vai procurar nos METADADOS a verso correta da aplicao a ser executada. Esse um ganho muito grande no que diz respeito implementao e manuteno de sistemas em produo, dadas as dificuldades associadas manuteno de DLLs e de componentes cujas verses so diferentes, mas cuja convivncia no mesmo ambiente necessria por razes de compatibilidade com outros aplicativos que precisam de uma ou de outra DLL.

Assembly Toda aplicao .NET, quando compilada, armazenada fisicamente numa unidade de cdigo denominada assembly. Uma aplicao pode ser composta de um ou mais assemblies, os quais so representados no sistema de arquivos do sistema operacional na forma de arquivos executveis (EXE), ou de DLL. Porm, as aplicaes .NET no so aplicaes Win32, apesar de executarem no ambiente Windows, razo pela qual o runtime Win32 no sabe como execut-las. O Win32, ao identificar uma aplicao .NET, dispara o runtime .NET que, a partir desse momento, assume o controle da aplicao.

PE (Portable Executable) Quando um aplicativo compilado, so geradas instrues em MSIL. Como j dissemos acima, METADADOS como informaes da aplicao tambm so gerados, e obviamente armazenados na forma Ednilson 6

Sistemas de Informao Ambiente de Programao I


de uma DLL ou de um arquivo executvel. Isso conhecido como Executvel Portvel (Portable Executable) ou simplesmente PE. Diz-se portvel porque ele poder ser executado em qualquer plataforma que suporte .NET, sem necessidade de recompilao, operao que ser efetuada automaticamente pelo runtime quando da execuo da aplicao.

Compilao JIT (Just in Time) Um compilador JIT, tambm conhecido como JITTER, converte instrues MSIL para instrues especficas da arquitetura do processador onde a aplicao .NET est sendo executada. Pr-JIT: Compila de uma s vez todo o cdigo da aplicao .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 memria um recurso precioso. Sendo assim, o cdigo compilado sob demanda, e a memria alocada que no est em uso liberada quando o dispositivo assim o requer. Normal-JIT: O Normal-JIT compila o cdigo sob demanda e coloca o cdigo resultante no cache, de forma que esse cdigo no precise ser recompilado quando houver uma nova invocao do mesmo mtodo.

Gerenciamento da memria - Garbage Collection (GC)


O gerenciamento da memria efetuado pelo runtime, permitindo que o desenvolvedor se concentre na resoluo do seu problema especfico. O que diz respeito ao sistema operacional, como o gerenciamento da memria, feito pelo runtime. Como isso efetuado? medida que uma rea de memria necessria para alocar um objeto, o GC ou coletor de lixo (Garbage Collection) realizar essa tarefa, assim como a liberao de espaos de memria que no estiverem mais em uso.

Ednilson

Sistemas de Informao Ambiente de Programao I 2Classes


Uma classe descreve um grupo de objetos com propriedades semelhantes (atributo), o mesmo comportamento (mtodos), os mesmos relacionamentos com outros objetos e a mesma semntica. Pessoa, empresa, animal, processo e janela so classes de objetos. A Classe a abstrao de um objeto.

Orientao a Objetos

Objetos e Membros
Um objeto a instanciao de uma classe. Objetos so compostos de Membros. Membros so Propriedades, Campos, Mtodos e Eventos e eles representam dados e funcionalidades de um objeto. Campos e Propriedades representam dados de um objeto. Mtodos so as aes que um objeto pode desempenhar e Eventos so notificaes que um objeto recebe ou envia para outros objetos quando atividades acontecem na aplicao. 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 mtodos, como acelerar, brecar, virar, etc. Os mtodos representam comportamentos que um objeto pode representar. E eventos representam notificaes. Por exemplo, um objeto carro poder gerar um evento batida quando interage com um objeto rvore.

Agregao
Um modelo de objeto uma organizao hierrquica 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 composio desses objetos subordinados afeta diretamente as funes 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 agregao em vrios 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 coleo de outros objetos, como caixas de texto, checagem, seleo, etc.

Encapsulamento
Objetos podem interagir uns com outros atravs das propriedades, mtodos e eventos pblicos. Porm, um objeto no necessita saber a implementao de um mtodo pblico de outro objeto para acionlo. Basta saber que ele existe e que pode ser acionado. Por exemplo, um objeto carro possui os mtodos AndarParaFrente, AndarParaTrs e Parar. Porm um objeto Motorista pode se utilizar desses mtodos sem saber o que o objeto Carro faz internamente para que esses mtodos funcionem. A isso, damos o nome de Encapsulamento.

Ednilson

Sistemas de Informao Ambiente de Programao I


Polimorfismo
Polimorfismo a habilidade de diferentes classes proverem diferentes implementaes da mesma interface. Uma interface so as regras de comunicao com o ambiente. Ela define os membros que uma classe deve implementar mas no detalha a forma que eles devem ser implementados. Por exemplo, um objeto Carro e um objeto Caminho interagem com o objeto Motorista atravs da mesma interface. Desta forma o objeto Motorista poder interagir tanto com o objeto Carro quanto o objeto Caminho, mesmo a implementao dos mtodos podendo ser diferentes. Um exemplo de polimorfismo existe entre as linguagens Visual Basic.NET e C#.

Herana
Herana significa partir de algo j pronto e modific-lo com o propsito de deix-lo mais adequado a determinada finalidade. Supondo que voc tem uma classe boto com propriedades bsicas; voc pode herdar aquelas caractersticas bsicas e adicionar ainda mais funcionalidade. O detalhe que, ao derivar uma classe a partir de outra, voc no precisa conhecer o cdigo da classe anterior. A sua nova classe no trar os cdigos da classe base. Eles continuaro encapsulados l e voc poder us-los se quiser. O dado importante que voc no precisa manipular os cdigos da classe base.

Herana com Polimorfismo


Membros herdados de uma classe base podem ser alterados na nova classe, sobrepondo a implementao da classe base. Isso se chama Polimorfismo. Ou seja, cada novo descendente de uma classe pode entender a propriedades e mtodos de uma forma diferente e aplicar seus prprios cdigos de modo a redefinir seu comportamento.

Orientao a Eventos
Uma linguagem de programao pode ser orientada a objetos, sem ser orientada a eventos e viceversa. Porm a unio desses dois conceitos torna uma linguagem muito mais poderosa e interessante. Como o prprio 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 mudana de foco de um componente, etc.

Ednilson

Sistemas de Informao Ambiente de Programao I 3Variveis

As Caractersticas de uma Varivel


Para darmos nomes a uma varivel necessrio seguir algumas regras bsicas: 1. Sempre iniciar com letras (A at Z). No use nmeros ou smbolos para iniciar o nome de uma varivel. 2. Na composio do nome no podemos usar espao em branco, sinal de hfen, smbolos como @#*&^$% ou sinais de pontuao. 3. Cuidado para no usar nomes reservados pela linguagem. Exemplo: If, Caption, Name, Sub, End, etc.

O Comando Dim
Comando utilizado para declarao de variveis. Sintaxe: Dim NomeDaVarivel As TipoDeVarivel Exemplo: Dim valor As Integer Dim nome As String

Ednilson

10

Sistemas de Informao Ambiente de Programao I


Tipos de Dados

Tipo do Visual Basic

Boolean Byte Char (caracter nico) Date

Tipo no Common Language Runtime Boolean Byte Char DateTime

Espao para Alocao 2 bytes. 1 byte 2 bytes 8 bytes

Intervalo de Valor

Decimal

Double (ponto flutuante dupla preciso)

de

Integer Long (inteiro longo) Object

SByte Short (inteiro curto) Single (ponto flutuante de preciso simples) String varivel) UInteger ULong User-Defined (Estrutura) UShort (tamanho

True ou False 0 a 255 (valores positivos) 0 a 65535 (valores positivos) 0:00:00 (meia noite) de 1 de Janeiro de 0001 s 23:59:59 de 31 de Dezembro de 9999 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; Nmero mais prximo de zero +/0,0000000000000000000000000001 (+/ 1E-28) Double 8 bytes -1,79769313486231570E+308 a 4,94065645841246544E-324 para valores negativos; 4,94065645841246544E-324 a 1,79769313486231570E+308 para valores positivos Int32 4 bytes -2.147.483.648 2.147.483.647 Int64 8 bytes -9.223.372.036.854.775.808 9.223.372.036.854.775.807 (9,2...E+18 ) Object (class) 4 bytes em Qualquer tipo pode ser armazenado numa plataforma 32-bit e varivel do tipo Object. 8 bytes em plataforma 64-bit SByte 1 byte -128 a 127 (signed) Int16 2 bytes -32.768 a 32.767 Single 4 bytes -3,4028235E+38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,4028235E+38 para valores positivos String (class) Varia de acordo com 0 a aproximadamente 2 bilhes de a plataforma. caracteres Unicode UInt32 4 bytes 0 a 4.294.967.295 (somente valores positivos) UInt64 8 bytes 0 a 18.446.744.073.709.551.615 (1,8...E+19 ) (somente valores positivos) (Herana de Varia de acordo com Cada membro da estrutura tem um ValueType) a plataforma. intervalo determinado por seu tipo de dado. UInt16 2 bytes 0 a 65.535 (somente valores positivos)

Ednilson

11

Sistemas de Informao Ambiente de Programao I


Abrangncia e Tempo de Vida de uma Varivel
Variveis 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 Handles btnEnviar.Click () Dim Nome as String Nome = Fechar btnEnviar.Text = Nome End Sub System.EventArgs)

A varivel Nome que criamos dentro do Private Sub, possui validade somente dentro desta rotina de cdigo. Chamamos de varivel Local. Quando encerrar (comando End Sub) a varivel ser retirada da memria. Entretanto, se queremos que uma varivel tenha abrangncia em todos os mtodos de uma classe, ento devemos cri-la no incio 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

Converso de dados
A classe Convert responsvel pela converso entre tipos de dados. Por exemplo: Convert.ToChar(65) Convert.ToInt32(156) Convert.ToDouble(txtValor.Text) => Resultado: A => Converte a string 156 no Integer 156 => Converte o contedo do TextBox txtValor em Double

Ednilson

12

Sistemas de Informao Ambiente de Programao I 4Operadores

Operadores Matemticos
Estes tipos de operadores possuem a finalidade de efetuar clculos. Operador + * / \ ^ Mod & Descrio Soma Subtrao Multiplicao Diviso Diviso. Resultado ser um nmero inteiro Exponenciao Resto da Diviso Concatenador de String Exemplo var = 18+5 var = 18-5 var = 18*5 var = 18/5 var = 18\5 var = 18^5 var = 18 Mod 5 ca & ju = caju

Esses operadores respeitam uma ordem de precedncia universal: 1. Exponenciao 2. Multiplicao e Diviso 3. Adio e Subtrao O calculo: 3+4*2^2/4-1+5 resultar em 11. Se por algum motivo precisarmos que o programa efetue primeiro a soma, ento devemos coloc-la entre parnteses: (3+4)*2^2/4-(1+5) = 1. Usamos os parnteses para mudar a ordem de precedncia dos operadores.

Operadores Relacionais
Estes operadores fazem comparaes entre variveis ou expresses. O retorno desta comparao ser sempre um valor booleano (True ou False). Nos exemplos abaixo todas as comparaes sero verdadeiras. Operador < > <= >= = <> Descrio Menor Maior Menor ou Igual Maior ou Igual Igual Diferente Exemplo 3<5 5>3 3 <= 5 5 >= 3 5=5 a <> A

Operadores Lgicos
Os operadores lgicos tambm retornam valores booleanos (True ou False).

And: Usamos quando precisamos comparar duas relaes 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 Informao Ambiente de Programao I


20 > 10 and 5 = 4 O Resultado ser falso (False). 20 maior que 10 mas 5 no igual a 4. Somente 1 das duas expresses 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 no menor que 10, mas 5 maior que 4. 20 < 10 Or 4 > 5 O resultado ser falso. 20 no menor que 10 e nem 4 maior que 5. Not: um operador que inverte o resultado, passando algo que seria verdadeiro para falso e viceNot(10 > 5)

versa.

O resultado ser falso. 10 maior que 5. Seria Verdadeira a comparao, 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 comparaes foram diferentes. A primeira falsa e a segunda verdadeira. 8 > 10 Xor 6 > 8 Retorna falso, pois o resultado das duas comparaes foram semelhantes. A primeira falsa e a segunda tambm. 10 > 8 Xor 8 > 6 Retorna falso, pois o resultado das duas comparaes foram semelhantes. A primeira verdadeira e a segunda tambm. Eqv: Abreviatura de Equivalente. Faz uma equivalncia lgica entre duas expresses. 10 > 8 Eqv 8 > 6 Retorna verdadeiro, pois ambas comparaes so iguais. 8 > 10 Eqv 8 > 6 Retorna falso, pois as comparaes retornam valores diferentes. Imp: Abreviatura de Implicao (uma coisa implica em outra). O resultado ser False somente se a primeira comparao 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 diferena. 10 > 8 Imp 6 > 8 - Retorna Falso, pois a primeira comparao Verdadeira e a segunda Falsa. 10 > 8 Imp 8 > 6 - Retorna Verdadeiro. 8 > 10 Imp 6 > 8 - Retorna Verdadeiro.

Ednilson

14

Sistemas de Informao Ambiente de Programao I

5-

Comandos Condicionais

Os comandos condicionais executam determinadas aes desde que algumas condies sejam favorveis (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 condio Then comando


ou

- Uma linha

If condio Then Bloco de Comandos End If

- Bloco

Traduzindo: IF = Se, THEN = Ento, END IF = Fim do Comando Se. Quando colocamos uma estrutura condicional IF dentro do nosso programa estamos querendo que o computador avalie uma condio, 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(Nmero menor que 20)

Exemplo com bloco de comandos: Dim Numero as Integer Numero = Convert.ToInt32(txtNumero.Text)


Bloco de comandos If Numero < 20 Then Numero = 0 MessageBox.Show(Nmero menor que 20) End If

O programa faz a verificao: Se nmero for menor que 20 ento emita a mensagem: Nmero menor que 20. Quando uma determinada condio que colocamos no comando IF verdadeira, ele comea a executar todas as linhas que existem entre IF e END IF. Se a condio no for verdadeira ento o programa passa a execuo para a linha aps o END IF e ignora tudo que houver dentro da estrutura IF... END IF. No procedimento exemplo, o programa verifica se o nmero maior que 20. Caso ele no seja, ele no executar as linhas existentes dentro da estrutura IF...END IF.

Ednilson

15

Sistemas de Informao Ambiente de Programao I


Clausula If ...Then ...Else
Traduzindo: IF = Se, THEN = Ento, ELSE = Seno, END IF = Fim do Comando Se. Esta estrutura tambm pode ser usado em uma linha simples ou em estrutura de bloco, como mostram os exemplos abaixo:

If condio Then comando1 Else comando2


ou

- Uma linha

If condio Then Bloco de Comandos1 Else Bloco de Comandos2 End If

- Bloco - Bloco

O comando ELSE, que sempre executado quando a condio inicial no verdadeira. Dim Numero as Integer Numero = Convert.ToInt32(txtNumero.Text) If Numero < 20 Then MessageBox.Show(Nmero menor que 20) Else MessageBox.Show(Nmero maior ou igual a 20) End If O programa verifica: Se o nmero for menor que 20 exibe a mensagem: Nmero menor que 20, seno, exibe Nmero maior ou igual a 20. Lembre-se: Sempre que usar o comando IF necessrio usar o comando THEN aps a condio.

Clausula ElseIf
If condio1 Then Bloco de Comandos1 ElseIf condio2 Then Bloco de Comandos2 Else Bloco de Comandos3 End If
Traduzindo: IF = Se, THEN = Ento, ELSEIF = Seno se, END IF = Fim do Comando Se. Utilizamos o comando ELSEIF ao invs de ELSE sempre que existam mais de duas condies a serem analisadas. Dim Numero as Integer Numero = Convert.ToInt32(txtNumero.Text) If Numero < 20 Then MessageBox.Show(Nmero menor que 20) ElseIf Numero = 20 Then MessageBox.Show(Nmero igual a 20) Else MessageBox.Show(Nmero maior que 20) End If

Ednilson

16

Sistemas de Informao Ambiente de Programao I


O cdigo anterior verifica se o contador menor que 20. Se no for verifica se ento igual a 20, seno ir avisar que contador maior que 20.

Clusula Select Case


A vantagem de se utilizar a clausula Select Case ao invs de inmeros Ifs e ElseIfs que a clausula Select Case economiza a digitao e deixa o cdigo mais claro. Veja a estrutura do comando: Select Case Opcao Case 1 MessageBox.Show(Opo 1 Case 2 MessageBox.Show(Opo 2 Case 3 MessageBox.Show(Opo 3 Case Else MessageBox.Show(Nenhuma End Select

acionada.) acionada.) acionada.) das opes selecionadas!)

Note que este comando verifica se a Opo igual a 1, se no for, verifica se igual a 2 e depois se igual a 3. Caso a varivel Opo no seja 1, 2 ou 3 ento o comando CASE ELSE acionado. O comando CASE ELSE opcional, ou seja, no necessrio ser colocado em um Select Case. Se ele no estiver presente e nenhuma das opes for a correta, ento o Select Case ser encerrado. O comando Case pode avaliar seqncias. Estas devem ser separadas por vrgulas. Exemplo: Case 2, 4, 6 Ou seja, se a condio for 2, 4, ou 6 ele processar esta clausula. No comando Case podemos usar tambm intervalos, como por exemplo: Case 2 to 4 Ou seja, caso a condio esteja entre 2 e 4. Caso queira que na verificao da condio seja avaliado se a varivel maior ou menor que determinada expresso, usamos: Case Is > 50

Uso de Operadores
As clausulas If e Select Case permitem o uso de operadores relacionais ( >,>=, <, <=, <> e = ). J os operadores lgicos s podem ser usados na clausula If e servem para que duas ou mais comparaes possam ser avaliadas. Os operadores lgicos mais utilizados so: And, Or e Not.

Ednilson

17

Sistemas de Informao Ambiente de Programao I 6Comandos de Lao

Comandos de Lao
So comandos que criam uma estrutura de repetio (loop), ou seja, criam uma estrutura condicional que se repete at a que condio seja satisfeita. DO WHILE <<Condio>> LOOP ( Faa enquanto ) Executa todos os comandos que existirem entre DO WHILE e o LOOP. Quando a execuo do programa encontra o comando LOOP, o DO WHILE reavaliado e a rotina continua enquanto a condio estabelecida esteja sendo satisfeita. Dim Contador as Short = 0
Faa enquanto Contador for menor que 10. Do While Contador < 10 Contador = Contador + 1 Loop

Inicializamos uma varivel de nome Contador com Zero, e pedimos para o programa: Repita as instrues 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 condio novamente. Somente quando a condio for verdadeira, ou seja, quando Contador for maior ou igual a 10, que o programa executar a linha aps o LOOP. Perceba que dependendo do resultado da condio os comandos existentes dentro da estrutura podem no ser executados, passando direto para a linha aps o comando LOOP. DO ... LOOP WHILE <<Condio>> ( Repita enquanto ) Neste caso o Comando Do abre a seqncia de repetio, mas no faz nenhum teste de condio. Este teste feito no final da estrutura com o comando LOOP WHILE, ou seja, obrigatoriamente as instrues contidas aps o comando DO sero executadas. Dim Contador as Short = 0 Do Contador = Contador + 1 Loop While contador < 10
Faa enquanto o contador for menor que 10.

DO UNTIL <<Condio>> LOOP ( Faa at que) Executa todos os comandos que existem entre DO UNTIL e o LOOP. Quando a execuo do programa encontra o comando LOOP, o DO UNTIL reavaliado e a rotina continua at que a condio estabelecida esteja satisfeita. Dim Contador as Short = 0 Do Until contador >= 10 Contador = Contador + 1 Loop Faa at que Contador seja maior ou igual a 10.

Inicializamos uma varivel de nome Contador com Zero, e pedimos para o programa: Repita as instrues 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 condio de novo. Somente quando a condio for verdadeira, ou seja, quando Contador for realmente maior ou igual a 10, que o programa executar a linha aps o LOOP.

Ednilson

18

Sistemas de Informao Ambiente de Programao I


Semelhante ao DO WHILE, dependendo do resultado da condio os comandos existentes dentro da estrutura podem no serem executados, passando direto para a linha aps o comando LOOP. DO ... LOOP UNTIL <<Condio>> ( Repita at que ) O Comando DO abre a seqncia de repetio, mas no faz nenhum teste de condio. Este teste feito no final da estrutura com o comando LOOP UNTIL, ou seja, obrigatoriamente as instrues contidas aps o comando DO sero executadas. Dim Contador as Short = 0 Do Contador = Contador + 1 Loop Until Contador >= 10 Faa at que o Contador seja maior ou igual a 10.

FOR <<Intervalo>> ... NEXT (Faa de nmero inicial at nmero final) O comando FOR faz uma contagem de um determinado intervalo de nmeros. Diferentemente dos demais comandos de repetio, no For o contador no 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 varivel Contador agora vale & cont.ToString()) Next Neste cdigo, o comando FOR avisa que a varivel contador ser iniciada com o valor 1. As instrues contidas na linha abaixo so executadas, e quando o comando NEXT encontrado a execuo volta para o FOR, e a varivel 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 varivel incrementada. Exemplo: Se quisermos que o comando conte de 2 em 2 colocamos FOR Varivel = 1 TO 10 STEP 2. Exemplo, para exibir os valores impares de 1 a 10 podemos fazer: Dim Contador as Short Este cdigo exibir mensagens com os nmeros 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 cdigo exibir mensagens com os nmeros 5, 4, 3, 2, 1 e 0.

For Contador = 5 to 0 Step -1 MessageBox.Show(Contador.ToString()) Next

Ednilson

19

Sistemas de Informao Ambiente de Programao I


EXIT <<Comando>> Exit Sub: Fora a sada da Sub. Quando a execuo do programa encontra este comando, transfere o controle do programa para a linha seguinte que chamou a rotina. Exit Function: Fora a sada da funo. Quando a execuo do programa encontra este comando, transfere o controle do programa para a linha seguinte que chamou a rotina. Exit Do: Fora a sada de um LOOP, estabelecida no seja verdadeira: seja WHILE ou UNTIL, mesmo que a condio

Dim Contador as Short = 0 Do While Contador < 10 Contador = Contador + 1 if Contador = 5 then Exit Do end if Loop Exit For: Fora a sada de um FOR..NEXT, mesmo que o nmero final no tenha sido alcanado. Dim Contador as Short For Contador = 1 to 10 If Contador = 6 Then Exit For end if Next

Ednilson

20

Sistemas de Informao Ambiente de Programao I 7IDE do Visual Studio 2005 e Componentes de Interface

Barra de Menus e Barra de Ferramentas

Menu File Edit View Project Build Debug Data Format Tools Windows Help

Descrio Contm comandos para abrir e fechar projetos, imprimir dados do projeto etc. Contm comandos como cut, paste, find, undo etc. Contm comandos para exibir as janelas e barras de ferramentas do IDE. Contm comandos para gerenciar um projeto e seus arquivos. Contm comandos para compilar um programa. Contm comandos para depurao (isto , identificar e corrigir problemas em um programa) e executar um programa. Contm comandos para interagir com bancos de dados (isto , arquivos que armazenam dados). Contm comandos para arranjar os controles de um formulrio. Contm comandos para acessar ferramentas e opes adicionais do IDE que possibilitam a sua personalizao. Contm comandos para arranjar e exibir janelas Contm comandos para acessar os recursos de ajuda do IDE.

As principais janelas da IDE para o desenvolvimento so: Toolbox, onde se localizam os componentes disponveis; Solution Explorer, que permite visualizar e selecionar todos os itens de uma Solution (Projetos, Forms, Classes, Imagens, Relatrios); Properties, que permite visualizar / alterar as propriedades de qualquer componente em um formulrio. A figura seguinte exibe estas 3 janelas:

Ednilson

21

Sistemas de Informao Ambiente de Programao 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 Mtodos da Classe Control Propriedades Anchor BackColor BackgroundImage Dock DockPadding (para contineres) Enabled Focused Fonte ForeColor Location Descrio Anexa o controle ao lado do continer-pai. Usado durante o redimensionamento. Valores possveis incluem superior, inferior, esquerdo e direito. Configura a cor de segundo plano do controle. Configura a imagem de segundo plano do controle. Permite que o controle se estenda ao longo dos lados de seus contineres valores no podem ser combinados. Configura o espao entre as bordas de um continer e os controles encaixados. O padro zero, fazendo os controles aparecerem alinhados aos lados do continer. Indica se o controle est ativo (isto , se o usurio pode interagir com ele). Um controle inativo exibido, mas partes do controle aparecem em cinza. Indica se um controle tem foco. Configura a Font usada para exibir o texto do controle. Configura a cor de primeiro plano do controle. Isto normalmente determina a cor da propriedade Text. Especifica a localizao do canto superior esquerdo do controle, em relao ao seu continer. 22

Ednilson

Sistemas de Informao Ambiente de Programao I


Name Size TabIndex Nome do Objeto Especifica o tamanho do controle. Recebe um tipo Size, que tem propriedades Height e Width. Configura a ordem da tabulao do controle. Quando a tecla Tab pressionada, o foco transferido a diversos controles de acordo com a ordem de tabulao. Esta ordem pode ser configurada pelo programador. Indica se os usurios podem empregar a tecla Tab para selecionar o controle. Se True, ento o usurio pode selecionar este controle por meio da tecla Tab. Configura o texto associado ao controle. A localizao e aparncia variam dependendo do tipo do controle. Estabelece o alinhamento do texto no controle as possibilidades so uma das trs posies horizontais (esquerda, centro ou direita) e uma das trs posies verticais (superior, meio ou inferior). Indica se o controle est visvel. Adquire o foco. Oculta o controle (configura Visible como False). Exibe o controle (configura Visible como True).

TabStop Text TextAlign Visible Mtodos Focus Hide Show

A seguir sero exibidas tabelas com as propriedades, mtodos e eventos mais comuns encontrados nos objetos: Formulrio, Label, TextBox, Button, GroupBox, Panel, CheckBox, RadioButton, ComboBox, ListBox, PictureBox, alm dos tratamentos de eventos de mouse e teclado.

Formulrio
Propriedades de Formulrios Name AutoScroll ControlBox Cursor GridSize MinimizeBox e MaximizeBox MinimumSize e MaximumSize Opacity StartPosition Text Window State Descrio Nome do formulrio Indica se as barras de rolagem aparecero quando o Form for pequeno demais para exibir todos os seus controles. O padro False. Determina se um form ter os botes minimizar, maximizar e fechar. Permite alterar o cursor do mouse. Distncia entre os pontos do Grid. Habilita ou desabilita os botes minimizar e maximizar do form. Indica o tamanho mnimo e mximo do formulrio. Porcentagem de opacidade de um formulrio. Posio inicial de um Form. Ttulo de um formulrio. Determina o estado inicial da janela.

Labels, TextBoxes e Buttons


Propriedades Comuns entre Label, TextBox e Buttons Font Text TextAling Descrio A fonte usada pelo texto no Label / TextBox. O texto que aparece no Label / TextBox. O alinhamento do texto de Label / TextBox no controle. As possibilidades so uma das trs posies horizontais (esquerda, centralizada ou direita) e uma das trs posies verticais (superior, central ou inferior).

Ednilson

23

Sistemas de Informao Ambiente de Programao I


Propriedades de TextBox AcceptsReturn Multiline PasswordChar Descrio Se True, ao pressionar Enter cria uma nova linha (se a caixa de texto estiver configurada para conter mltiplas linhas). Se False, pressionar Enter clica no boto-padro do formulrio. Se True, um TextBox pode se estender por mltiplas linhas. O valor-padro False. Se um caractere fornecido para esta propriedade, a TextBox torna-se uma caixa de senha, e o caractere especificado mascara cada caractere digitado pelo usurio. Se nenhum caractere especificado, TextBox exibe o texto digitado. Se True, TextBox tem um segundo plano cinza, e seu texto no pode ser editado. O valor-padro False. Para caixas de texto de mltiplas linhas, indica quais barras de rolagens aparecero (nome, horizontal, vertical ou both ambas). O contedo do texto da caixa de texto. Gerado quando o texto alterado num TextBox (isto , quando o usurio adiciona ou elimina caracteres). Quando um programador d um clique duplo no controle TextBox na visualizao Design, um tratador de evento vazio para este evento gerado. Descrio Imagem que um boto pode ter. Alinhamento da Imagem. Especifica o texto exibido na face do boto. Define a imagem em relao ao texto. Pode ser antes do texto, acima do texto, entre outras. Gerado quando o usurio clica no controle. Quando um programador d um clique duplo no controle Button na visualizao de projeto, um tratador de evento vazio para esse evento gerado.

ReadOnly ScrollBars Text Evento TextChanged

Propriedades de Button Image ImageAlign Text TextImageRelation Evento Click

GroupBox e Panels
Propriedades de GroupBox Controls Text Propriedades de Panel AutoScroll BorderStyle Controls Descrio Lista os controles que um GroupBox contm. Especifica o texto exibido na parte superior do Groupbox (seu ttulo). Descrio Indica se as barras de rolagem aparecero quando o Panel pequeno demais para exibir todos os seus controles. Padro False. Configura a borda do Panel (padro None; demais opes so Fixed3D e FixedSingle). Lista os controles que um Panel contm.

CheckBox e RadioButtons
Propriedades de CheckBox Checked CheckState Descrio Indica se a CheckBox est marcada (contm uma marca de verificao preta) ou no marcada (branca). Indica se a CheckBox est ou no marcada. Uma enumerao com valores Checked, Unchecked ou Indeterminate (marca e sombreia a CheckBox). 24

Ednilson

Sistemas de Informao Ambiente de Programao I


Text Evento CheckedChanged CheckStateChanged Especifica o texto direita da CheckBox (chamada de rtulo). Gerado toda vez que a CheckBox marcada ou desmarcada. Quando um usurio d um clique duplo no controle CheckBox na visualizao do projeto, um tratador de eventos vazio para este evento gerado. Gerado quando a propriedade CheckState alterada.

Propriedades de RadioButton Checked Text Eventos Click CheckedChanged

Descrio Indica se o RadioButton est marcado. Especifica o texto exibido direita do RadioButton (chamado de rtulo). Gerado quando o usurio clica no controle. Gerado toda vez que o RadioButton marcado ou desmarcado. Quando um usurio d um clique duplo no controle RadioButton na visualizao do projeto, um tratador de eventos vazio para este evento gerado.

ComboBox
Propriedades de ComboBox DropDownStyle Descrio Determina o tipo de caixa combinada. O valor simples significa que a parte do texto editvel e a parte da lista est sempre visvel. O valor DropDown (padro) significa que a parte do texto editvel, mas o usurio deve clicar no boto de seta para ver parte da lista. O valor DropDownList significa que a parte do texto no editvel e que o usurio deve clicar no boto de seta para ver parte da lista. A coleo de itens no controle ComboBox. Especifica o nmero mximo de itens (entre 1 e 100) que a lista suspensa pode exibir. Se o nmero de itens exceder o nmero mximo de itens a ser exibido, uma barra de rolagem aparecer. Retorna o ndice do item selecionado. Se no houver item selecionado, o valor -1 retornado. Retorna uma referncia ao item selecionado. Indica se os itens so classificados alfabeticamente. Configurar o valor dessa propriedade como True classifica os itens. O padro False. Gerado quando o ndice selecionado alterado (tal quando um item diferente selecionado). Este o evento padro quando o controle recebe um duplo clique.

Items MaxDropDownItems SelectedIndex SelectedItem Sorted Evento SelectedIndexChanged

ListBox
Propriedades de ListBox Items MultiColumn SelectedIndex SelectedIndices SelectedItem Descrio A coleo de itens da ListBox. Indica se a ListBox pode dividir uma lista em mltiplas colunas. As mltiplas colunas eliminam as barras de rolagem verticais da exibio. Retorna o ndice do item selecionado. Se o usurio selecionar mltiplos itens, esta propriedade retorna arbitrariamente um dos ndices selecionados; se nenhum item foi selecionado, a propriedade retorna -1. Retorna uma coleo contendo os ndices de todos os itens selecionados. Retorna uma referncia ao item selecionado (se mltiplos itens sos selecionados, ela retorna o item com o nmero do ndice mais baixo). 25

Ednilson

Sistemas de Informao Ambiente de Programao I


SelectedItems SelectionMode Retorna uma coleo de item(ns) selecionado(s). Determina o nmero de itens que podem selecionados, e os meios pelos quais mltiplos itens podem ser selecionados. Os valores None, One, MultiSimple (seleo mltipla permitinda) ou MultiExtended (seleo mltipla permitida usando uma combinao de teclas de seta ou cliques de mouse e teclas Shift e Control). Indica se os itens so classificados alfabeticamente. Configurar o valor dessa propriedade como True classifica os itens. O valor-padro False. Recebe um ndice como argumento, e retorna True se o item correspondente est selecionado. Gerado quando o ndice selecionado alterado. Este o evento-padro quando o controle recebe um clique duplo.

Sorted Mtodo GetSelected Evento SelectedIndexChanged

PictureBox
Propriedades de PictureBox Image SizeMode Descrio Configura a imagem a ser exibida na PictureBox. Enumerao que controla o tamanho e posio da imagem. Os valores so Normal (padro), 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. Gerado quando o usurio clica no controle. Evento-padro quando este controle recebe um clique duplo.

Eventos Click

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 boto 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 boto do mouse solto quando o cursor est sobre a rea do controle. Propriedades da Classe MouseEventArgs Button Especifica o boto do mouse que foi pressionado (left, right, middle ou none). Click Indica o nmero de vezes que o boto 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 Informao Ambiente de Programao 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 cdigo da tecla como uma enumerao Keys. Isto no inclui as informaes de teclas modificadas. Usado para testar se uma tecla especfica. KeyData Retorna o cdigo da tecla como uma enumerao Keys, combinado com informaes modificadoras. Contm todas as informaes sobre a tecla pressionada. KeyValue Retorna o cdigo da tecla como um Integer, e no uma enumerao Keys. Usado para obter uma representao numrica da tecla pressionada. Modifiers Retorna uma enumerao Keys para quaisquer teclas modificadoras pressionadas (Alt, Control e Shift). Usado para determinar apenas informaes de teclas modificadoras.

Prefixos de Controles
Prefixo Frm lbl txt cmd chk rad pic mnu mnuitm lnklbl lst chklst cbo tre lvw ils tbc tbp tmr Controle

Form Label TextBox Button CheckBox RadioButton PictureBox Menu MenuItem LinkLabel ListBox CheckedListBox ComboBox TreeView ListView ImageList TabControl TabPage Timer
27

Ednilson

Sistemas de Informao Ambiente de Programao I 8Funes, Mdulos e Sub Main

Procedimentos definidos pelo programador


Existem dois tipos bsicos de procedimentos: Sub e Function. A diferena bsica que o procedimento Function retorna um valor (ao tpica de uma funo matemtica), enquanto que um procedimento Sub no 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 necessrio que a rotina receba mais de um parmetro, estes devem ser separados por vrgulas. Cada argumento escrito como uma declarao de varivel e atua como tal dentro do procedimento. A sintaxe de cada argumento a seguinte: [ByVal] NomeDaVarivel As Tipo de Dado ByVal indica que o parmetro passado por valor e ByRef, que o parmetro passado por referncia (endereo). O valor de uma varivel pode ser alterado por um procedimento quando ele passado por referncia (ByRef). Ao contrrio, somente uma cpia da varivel passada para o procedimento quando o mesmo passado por valor (ByVal). Se o procedimento alterar seu valor, esta alterao afeta somente a cpia e no a varivel original. Exemplo de declarao de Sub sem passagem de parmetros: Sub Limpar() txtValor.Clear() lstLoop.Items.Clear() End Sub Exemplo de declarao de Sub com passagem de parmetros por valor (ByVal): Sub ListarValores(ByVal Valor As Integer) Dim i As Integer lstLoop.Items.Clear() 'Para i = 0 at o contedo da varivel 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) Valor. O procedimento passa o valor 15 como parmetro para a Sub ListarValores atravs da varivel

Ednilson

28

Sistemas de Informao Ambiente de Programao I


Procedimentos Function A sintaxe de um procedimento Function a seguinte: Function NomeFuno ( 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 sada de uma Function ser definido atravs 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 Informao Ambiente de Programao I 9Tratamento de Erros

Tratamento de Erros no .NET Framework


O tratamento de erro no .NET Framework se d atravs dos comandos Try / Catch / Finally, sendo que o comando Finally opcional. Sintaxe:
Try Bloco de Comandos Catch ex As Exception Comandos que sero executados em caso de erro Finally
Bloco de comandos opcional. Ser executado independete da rotina ter ou no gerado uma exceo

End Try

O bloco Finally, quando declarado, sempre executado. Ele usado principalmente para a liberao dos recursos utilizados na rotina. Se nenhuma exceo ocorre ou se uma exceo capturada e tratada, o programa continua a execuo com o prximo comando aps a seqncia 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 mtodos no ponto de lanamento da exceo.

possvel tratar erros especficos de maneira personalizada, atravs das especializaes da classe Exception. O exemplo a seguir mostra o tratamento de um erro caso ocorra uma exceo do tipo OverflowException. Caso ocorra qualquer outro tipo de exceo, esta tratada de forma gerrica atravs 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("Nmero 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 Informao Ambiente de Programao 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 funo. Caso exista, o tratamento efetuado, caso contrrio, 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 execuo ocorre. Como a Rotina1 possui tratamento de erros (Try / Catch) a exceo tratada.

Rotina1 Possui tratamento de Erros

Rotina2

Como a Rotina2 tambm no trata erros, retorna a exceo para a Rotina1.

Rotina3 Durante a execuo, ocorre um erro...

Como a Rotina3 no tem tratamento de erros, retorna a exceo para a rotina que o ativou, no caso a Rotina2

Ednilson

31

Sistemas de Informao Ambiente de Programao I 10 - Classe String


A critrio de exemplo, criaremos uma varivel chamada Texto, do tipo String contendo a palavra Cachorro: Dim Texto as String = Cachorro
Mtodo Contains(valor as string) EndsWith(valor as string) IndexOf(valor as string) LastIndexOf(valor as string) Descrio Se a string contiver o valor passado como parmetro retorna True, caso contrrio False. Se a string terminar com o valor passado como parmetro retorna True, caso contrrio False. Procura o valor na string e se encontrar, retorna a posio onde ele inicia. Se no encontrar, retorna -1. Procura, a partir do final da string, o valor passado como parmetro e se encontrar, retorna a posio onde ele inicia. Se no encontrar, retorna -1. Se tamanho for maior que o tamanho da string, completa com espaos esquerda, caso contrrio, retorna a prpria string. Se tamanho for maior que o tamanho da string, completa com espaos direita, caso contrrio, retorna a prpria string. Remove uma parte da string. Retorna a string substituindo um valor por outro. Se no encontrar, retorna a prpria string. Se a string iniciar com o valor passado como parmetro retorna True, caso contrrio False. Retorna um pedao da string original Retorna a string em minscula. Retorna a string em maiscula. Retorna a string sem os espaos em branco da direita e da esquerda. Descrio Retorna o tamanho da string Exemplo Texto.Conteins(cho) = True Texto.Conteins(me) = False Texto.EndsWith(rro) = True Texto.EndsWith(rra) = False Texto.IndexOf(ho) = 3 Texto.indexOf(z) = -1 Texto.LastIndexOf(a) = 3 Texto.LastIndexOf(z) = -1 Texto.PadLeft(10) = Cachorro Texto.PadRight(10) = Cachorro Texto.Remove(1,3) = Corro Texto.Remove(3) = Cac Texto.Replace("a", "y") = "Cychorro" Texto.StartWith(C) = True Texto.StartWith(c) = False Texto.Text.Substring(5,2) = rr Texto.Text.Substring(5) = rro Texto.ToLower() = cachorro Texto.ToUpper() = CACHORRO Supondo que a varivel Texto fosse: Uva , ento Texto.Trim() = Uva. Exemplo Str.Lenght = 8

PadLeft(tamanho as integer) PadRight(tamanho as integer) Remove(inicio as integer, quantidade as integer) Replace(valorAntigo as string, NovoValor as string) StartWith(valor as string) Substring(inicio as tamanho as integer) ToLower() ToUpper() Trim() integer,

Propriedade Length

Ednilson

32

Sistemas de Informao Ambiente de Programao I 11 - Classe Matemtica (Math)


Mtodo Abs (x) Ceiling (x) Cos (x) Exp (x) Floor (x) Log (x) Max (x,y) Min (x,y) Pow (x,y) Sin (x) Sqrt (x) Tan (x) Descrio Retorna o valor absoluto de x Arredonda x para o menor inteiro que no menor do que x Retorna o coseno trigonomtrico de x (x em radianos) x Retorna o exponencial e Arredonda x para o maior inteiro que no maior do que x Retorna o logaritmo natural de x (base e) Retorna o maior valor dentre x e y (tambm tem verses para valores Single, Integer e Long) Retorna o menor valor dentre x e y (tambm tem verses para valores Single, Integer e Long) y Calcula x elevado a potencia y (x ). Retorna o seno trigonomtrico de x (x em radianos) Retorna a raiz quadrada de x Retorna a tangente trigonomtrica de x (x em radianos) Exemplo Abs (23.7) 23.7 Abs (0) 0 Abs (-23.7) 23.7 Ceiling (9.2) 10.0 Ceiling (-9.8) -9.0 Cs (0.0) 1.0 Exp (1.0) aprox. 2.71828182845905 Exp (2.0) aprox. 7.389059893065 Floor (9.2) 9.0 Floor (-9.8) -10,0 Log (2.718281828459051 aprox. 1.0 Log (73890560989306504 aprox. 2.0 Max (2.3,12.7) -12,7 Max (-2.3,-12.7) -2.3 Min (2.3, 12,7) 2.3 Min (-2.3,-12.7) -12.7 Pow (2.0.7.0) 128.0 Pow (9.0,.5) 3.0 Sin (0.0) 0.0 Sqrt (9.0) 3.0 Sqrt (2.0) 1.4142135623731 Tan (0.0) 0.0

Ednilson

33