Você está na página 1de 73

.

NET Framework
A .NET Framework define o ambiente para executar aplicaes desenvolvidas em VB .NET, C# .NET, C++ .NET, ou outras desenvolvidas para a .NET Framework. O Visual Studio .NET um pacote de produtos que permite desenvolver aplicaes nas linguagens apontadas no ponto anterior. Dois dos principais componentes da .NET Framework so: .NET Framework Class Library providencia um conjunto de classes, organizadas numa estrutura hierrquica, que podem ser utilizadas para desenvolver aplicaes .NET. As classes relacionadas so organizadas em grupos designados por namespcaces. .NET Common Language Runtime (CLR) providencia os servios necessrios (gesto de memria, execuo de cdigo, segurana, etc.) para executar aplicaes desenvolvidas numa qualquer linguagem .NET. Tambm fornece o Common Type System, que define os tipos de dados que so utilizados pelas linguagens .NET. Todas as linguagens .NET so compiladas para uma linguagem comum intermdia (IL).
Visual Basic.NET, C1 Slide 1

.NET Framework
.NET Applications
Visual Basic .NET Visual C# .NET Visual C++ .NET Other languages

.NET Framework .NET Framework Class Library


Windows Forms classes ASP.NET classes Other classes

Common Language Runtime


Managed applications Common Type System Intermediate Language

Operating System and Hardware


Windows 2000 Windows XP Other Operating Systems

Visual Basic.NET, C1

Slide 2

Compilao e execuo de uma aplicao VB .NET


1. O programador utiliza o Visual Studio .NET para criar um projecto (project) que pode incluir um ou mais ficheiros VB fonte. Em alguns casos, um projecto pode conter outros tipos de ficheiros, tais como ficheiros de som, de imagem, etc.. Uma Soluo (solution) contm projectos. Nas aplicaes simples, uma soluo contm apenas um projecto. Embora, nas aplicaes mais complexas, uma soluo possa conter mais do que um projecto. 2. O compilador de Visual Basic traduz o cdigo fonte para a IL. O cdigo nesta linguagem armazenado no disco num assembly que tambm contm referncias para as classes que a aplicao requer. Um assembly um ficheiro executvel que tem a extenso .exe ou .dll. 3. O assembly pode depois ser executado em qualquer PC que tenha instalado a .NET CLR. Quando o assembly executado, a CLR converte a IL para cdigo nativo que pode ser corrido pelo sistema operativo Windows. A CLR tambm responsvel pela gesto de memria, segurana, etc.

Visual Basic.NET, C1

Slide 3

Compilao e execuo de uma aplicao VB .NET


Visual Studio .NET .NET Framework

Integrated Development Environment

Visual Basic compiler

Common Language Runtime

Solution Project

Assembly
Intermediate Language (IL) Source files Class references

Visual Basic.NET, C1

Slide 4

Uma aplicao Windows Forms

Visual Basic.NET, C1

Slide 5

Uma aplicao Web Forms

Visual Basic.NET, C1

Slide 6

Introduo programao OO

Quando se implementa um Windows Form atravs do VS .NET IDE est-se a utilizar programao OO.

Quando se inicia um projecto atravs do Windows Application Template, est-se a criar uma nova classe que herda as caractersticas da classe Form pertencente .NET Class Library. Quando se corre o formulrio, est-se a criar uma instncia dessa classe, que , portanto, um objecto.

Do mesmo modo, quando se adiciona um controlo a um formulrio, est-se a a adicionar um objecto ao formulrio. Cada controlo , ento, uma instncia de uma determinada classe. Por exemplo, um controlo TextBox um objecto que uma instncia da classe TextBox.

Visual Basic.NET, C1

Slide 7

Introduo programao OO
Uma classe representa uma estrutura de programao que define as caractersticas de um objecto. Uma classe uma abstraco do objecto e no o prprio objecto, do mesmo modo que uma planta uma abstraco de uma casa e no a prpria casa. Um objecto uma instncia da classe e representa uma unidade que combina cdigo e dados. A interface de um objecto consiste num conjunto claramente definido de propriedades, mtodos e eventos. A este conjunto d-se, comummente, o nome de membros do objecto. As propriedades representam as caractersticas de um objecto. Os mtodos representam as aces que um objecto pode realizar. Construtor (NEW) encarrega-se de preparar todo o ambiente quando o objecto criado e carregado na memria. Destrutor realiza determinadas operaes quando o objecto libertado da memria. Os eventos representam sinais aos quais os objectos podem reagir.
Visual Basic.NET, C1 Slide 8

Introduo programao OO
Herana a descrio de uma classe usando propriedades e mtodos de outra(s) classe(s). A herana acontece quando umaa classe herda caractersticas de outra classe. A classe da qual se herda chamada de classe-me ou classe base e a classe que herdou chamada de subclasse ou de classe filha. A herana pressupe que se possam alterar (override) ou excluir as propriedades ou mtodos originais, assim como incluir outros. Note-se que uma subclasse apenas herda as propriedades e mtodos da classe base, mas no herda os construtores nem os eventos da classe base. Polimorfismo a capacidade que os objectos tm de responder a uma mensagem de maneiras diferentes. Isto , atravs do conceito de polimorfismo, possvel que duas ou mais classes possam definir uma propriedade ou um mtodo com o mesmo nome, mas com diferentes implementaes. Assim, o procedimento que executado quando se refere a um membro com esse nome depende da classe que est a ser utilizada para criar o objecto. O polimorfismo um resultado natural da herana de classes.
Visual Basic.NET, C1 Slide 9

Introduo programao OO
Encapsulamento proteco que o objecto d s suas propriedades e aos seus mtodos, de modo a que nenhum agente externo tenha acesso a elas sem as solicitar. Por outras palavras, o conceito de encapsulamento torna possvel que se possam esconder alguns dados e operaes (atravs da palavra chave Private) do objecto. O conceito de encapsulamento permite que se altere o cdigo de uma classe sem afectar as outras classes que utilizam essa classe. Assim, pode-se pensar numa classe como uma caixa preta que disponibiliza propriedades e mtodos.

Visual Basic.NET, C1

Slide 10

Introduo programao VB . NET

Vamos considerar os seguintes elementos e estruturas fundamentais que so habitualmente usados em programao: Tipos de Dados Operadores Atribuies Entrada e Sada de Dados Estruturas de Controlo

Procedimentos
Visual Basic.NET, C1 Slide 11

Introduo programao VB . NET


Os dados num programa podem ser utilizados sob a forma de constantes ou de variveis: Constantes so valores que se mantm inalterados dentro de um programa;

Variveis so entidades que podem assumir diferentes valores ao longo da execuo do programa. As variveis so utilizadas para armazenar dados. Cada varivel tem associado um determinado tipo de dados.

Tipos de dados

Simples Estruturados Definidos pelo Utilizador

Visual Basic.NET, C1

Slide 12

Introduo programao VB . NET


Tipos de dados simples O VB, tal como a maioria das linguagens de programao de alto nvel, tem definidos vrios tipos de dados: Boolean - para valores lgicos, Verdadeiro ou Falso
Byte um inteiro positivo de 0 a 255. Short um inteiro entre 32.768 e 32.767 Integer - Inteiro entre 2.147.483.648 e 2.147.483.647 Long - Inteiro entre 9.223.372.036.854.775.808 e 9.223.372.036.854.775.807 Single - para Nmeros reais com Preciso Simples. Decimal - para Nmeros reais com Preciso Dupla. Date para lidar com datas (entre 1 de Janeiro de 100 e 31 de Dezembro de 9999). String Valores alfanumricos. Char para um nico carcter. Object para referenciar objectos.
Visual Basic.NET, C1 Slide 13

Introduo programao VB . NET


Valores predefinidos para os tipos de dados simples Todos os tipos de dados numricos - 0
Boolean False Date 12:00 a.m. Janeiro 1, 0001 String ou object Nothing Char valor binrio 0 Se no se declarar um valor inicial para uma varivel, ela vai receber um valor predefinido, de acordo com o tipo de dados que lhe estiver associado.

Quando um valor numrico convertido para um valor booleano, o valor zero tornase false e todos os outros valores tornam-se true. Quando um valor booleano convertido para uma valor numrico, um valor false torna-se zero e um valor true torna-se -1.
Visual Basic.NET, C1 Slide 14

Introduo programao VB . NET


Declarao de variveis A associao de um tipo a uma varivel feita aquando da declarao da varivel. O tipo de uma varivel condiciona os dados que ela pode conter. Assim, necessrio ter conscincia do tipo de dados com que se deseja que ela venha a lidar. Sintaxe para declarar uma varivel
{DIM | PRIVATE | PUBLIC | STATIC} nomedavarivel AS tipodedados [= expresso]

DIM declara uma varivel que pode ser utilizada dentro de um procedimento ou dentro de parte desse procedimento. Isso determinado pela localizao da instruo DIM no procedimento. PRIVATE declara uma varivel que pode ser utilizada pelos procedimentos dentro de uma classe ou mdulo. PUBLIC - declara uma varivel que pode ser utilizada por todas as classes e mdulos de
um projecto.

STATIC - declara uma varivel que retm o seu valor de uma execuo de um
procedimento para a outra.
As palavras chave DIM, PRIVATE, PUBLIC STATIC determinam o mbito da varivel, isto , a parte do cdigo que pode utilizar essa varivel.
Visual Basic.NET, C1 Slide 15

Introduo programao VB . NET


Exemplo de declarao de variveis

Dim x, y AS Integer Dim x AS Integer , y AS Integer

Dim z AS String , y AS Integer


Se no for especificado um valor inicial para a varivel, considerado o valor predefinido para o tipo de dados associado varivel.

Visual Basic.NET, C1

Slide 16

Introduo programao VB . NET


Declarao de constantes Sem grande rigor, podemos dizer que as constantes so variveis globais s quais dado um valor inicial no altervel. Em todo o cdigo sempre usado o nome da constante (e no o valor em si), pelo que se desejarmos alterar essa configurao, basta alterar o valor dado na declarao da constante. Sintaxe bsica de declarao de constantes:
[{ Public | |Private }] Const nomedaconstante As tipodadoscons = valor [{ Public Private }] Const nomedaconstante As tipodadoscons = valor

A sintaxe semelhante das varveis. A principal diferena reside no facto de se usar a palavra-chave Const e ainda de ser necessrio indicar, de imediato, o valor que se quer atribuir constante.

Visual Basic.NET, C1

Slide 17

Introduo programao VB . NET


Exemplos de declarao de constantes ' Declara uma cosntante Public String Public Const MinhaString As String = "HELP"

' Declara uma constante Private Integer -- vlida apenas no seu contexto de declarao Private Const MeuInt As Integer = 5

As constantes declaradas num procedimento Sub, Function, ou Property so locais a esse procedimento.

Uma constante declarada fora de um procedimento definida ao longo da classe, mdulo, ou estrutura na qual declarada.

Visual Basic.NET, C1

Slide 18

Introduo programao VB . NET


Declarao de Enumerations Uma Enumeration representa um conjunto de constantes relacionadas. As enumerations definidas pelo VB .NET so comummente utilizadas para definir valores de propriedades de objectos, entre outras coisas. Sintaxe bsica de declarao de enumerations:
[Public | |Private] Enum nomedaenumeration [As tipodadosenumeration] [Public Private] Enum nomedaenumeration [As tipodadosenumeration] Nomedaconstante1 [= valor] Nomedaconstante1 [= valor] [Nomedaconstante2 [= valor]] [Nomedaconstante2 [= valor]] .. .. End Enum End Enum Para mostrar a lista das constantes de uma enumeration na janela de edio de cdigo, deve-se escrever o nome da enumeration, seguido do operador ..
Visual Basic.NET, C1 Slide 19

Introduo programao VB . NET


Operadores Em VB . NET, dispomos essencialmente de 4 tipos de operadores: aritmticos, relacionais, lgicos e para cadeias de caracteres. Operadores Aritmticos So utilizados para levar a cabo clculos matemticos
Operador Significado Exemplo

+ * / \ Mod ^
Visual Basic.NET, C1

Adio Subtraco Multiplicao Diviso


Parte inteira da diviso

2+2=4 2-2=0 2*2=4 17 / 5 = 3,4 17 \ 5 = 3 17 Mod 5 = 2 2^3=8


Slide 20

Resto da diviso inteira Exponenciao

Introduo programao VB . NET


Operadores relacionais So utilizados para comparar valores

Operador < <= > >= = <>

Significado Menor que Menor ou igual a Maior que Maior ou igual a Igual a Diferente de

De uma expresso envolvendo um operador relacional resulta sempre um valor (True ou False) que atesta a veracidade dessa expresso.

Visual Basic.NET, C1

Slide 21

Introduo programao VB . NET

Exemplo:

5<4 Vale False

A interpretao da relao entre valores depende do seu tipo de dados.

Visual Basic.NET, C1

Slide 22

Introduo programao VB . NET


Operadores Aritmticos
A relao entre valores numricos baseia-se na sua ordem quando dispostos

num eixo de valores tal como o conhecemos da matemtica. A relao entre cadeias de caracteres (string) baseia-se na sua ordem alfanumrica.

Exemplo: -5 < 2 < 4 < 5 1 < 10 < 1006 < 184 < 2 < 30 < bom < bons Para entender melhor a ordenao alfanumrica deve-se observar o Unicode Character Set ou a tabela ASCII.
Visual Basic.NET, C1 Slide 23

Introduo programao VB . NET


Operadores lgicos comuns

Operador
NOT And OR negao

Significado
Se ambas as expresses forem true, devolve true Se uma expresso for true, devolve true

Pode-se utilizar os operadores lgicos para criar condies compostas. Estes operadores so utilizados na lgebra de Boole, isto em operaes lgicas (operaes sobre os valores verdadeiro e falso). Em VB .NET os valores lgicos so True (para verdadeiro) e False (para falso).
Visual Basic.NET, C1 Slide 24

Introduo programao VB . NET


Operadores para cadeias de Caracteres A concatenao de duas cadeias de caracteres a operao que as junta numa nica cadeia.
Operador & + Significado Concatenao Concatenao Exemplo bom & dia vale bom dia bom + dia vale bom dia

Exemplo:

20 + 34 vale 2034 e no 54

Visual Basic.NET, C1

Slide 25

Introduo programao VB . NET

Precedncias dos Operadores Este problema pe-se quando numa expresso existem vrios operadores.

Exemplo: Sabemos da matemtica que: Sabemos da matemtica que: 2+3*4-5 equivalente aa22+ (3*4) 55 eeno a(2+3) **44--55 2+3*4-5 equivalente + (3*4) no a(2+3)

Quando quisermos construir uma expresso que envolva diferentes operadores temos de ter em ateno a tabela de precedncia dos operadores que se apresenta a seguir.
Visual Basic.NET, C1 Slide 26

Introduo programao VB . NET

Precedncias dos Operadores


Tabela de Precedncias dos Operadores ^ - (sinal negativo) *, / \ Mod +, & =, <>, <, >, <=, >=, Like, Is Not And Or Xor

Notas: Os operadores aritmticos tm sempre precedncia sobre os operadores relacionais e ambos tm precedncia sobre os operadores lgicos. Todos os operadores relacionais tm a mesma precedncia entre si. Quando estamos perante operadores com o mesmo nvel de precedncia eles devem ser considerados na ordem em que se apresentam, lendo da esquerda para a direita.
Slide 27

Visual Basic.NET, C1

Introduo programao VB . NET

Exemplo:
2*4/8/5*7 equivalente a ( ( ( 2*4 ) / 8 ) / 5 ) * 7

Quando queremos forar uma determinada ordem na considerao dos operadores de uma expresso, utilizamos parntesis.

Visual Basic.NET, C1

Slide 28

Introduo programao VB . NET

Precedncias dos Operadores As operaes dentro de parntesis devem ser sempre avaliadas antes de As operaes dentro de parntesis devem ser sempre avaliadas antes de qualquer outra operao. qualquer outra operao. Exemplo: 3 ( 4 +6 / (3 1 )) * 5 Comea por calcular 3 1 (porque o que est dentro do parntesis mais interior), de que resulta 2. De seguida Ter-se- ento que calcular 4+6/2 (de novo, o que est dentro de parntesis). Da resulta 7 (note-se que nesta expresso temos de avaliar primeiro a diviso e s depois a soma). Por fim, ficamos com 3-7*5, que resulta em 32.
Visual Basic.NET, C1 Slide 29

Introduo programao VB . NET


Instrues de atribuio

De nada serve efectuar uma qualquer operao se o seu resultado no for devidamente guardado numa varivel.

Para isso temos as atribuies

Assim que o valor resultante de uma operao estiver guardado numa varivel, ele pode ser utilizado em subsequentes expresses, bastando para tal invocar essa varivel.
Visual Basic.NET, C1 Slide 30

Introduo programao VB . NET

Exemplos: a=4+5 b=2*a+1

O tipo de valor resultante no lado direito da atribuio tem de ser compatvel com o tipo de dados da varivel a que o valor atribudo (lado esquerdo da atribuio).

Visual Basic.NET, C1

Slide 31

Introduo programao VB . NET


O VB . NET disponibiliza vrios operadores de atribuio, para alm do comum operador sinal de igual (=). Exemplos (assuma-se i = 13 e s = Ol): Operador
+= -= *= \= ^= &=

Exemplo
i += 5 i-= 6 i *= 2 i \= 2 i ^= 2 s &= mundo

Descrio
i=i+5 i = i -6 i=i*2 i=i \2 i = i ^2 s = s & mundo

Resultado
i = 18 i=7 i = 26 i=6 i = 169 Ol mundo

Visual Basic.NET, C1

Slide 32

Introduo programao VB . NET


Sada de dados Em VB .NET pode-se utilizar o mtodo Show da classe MessageBox para apresentar uma caixa de texto ao utilizador. Sintaxe bsica do mtodo Show da classe MessageBox:
MessageBox.Show (Text [, Caption [, Buttons [, Icon [, DefaultButton]]]]) MessageBox.Show (Text [, Caption [, Buttons [, Icon [, DefaultButton]]]])

Text mensagem de texto a apresentar. Este o nico argumento obrigatrio. Caption apresenta uma legenda na barra de ttulo da caixa de mensagem. Buttons especifica os botes que aparecem na caixa de mensagem (OK, OKCancel,
YesNo, YesNoCancel,RetryCancel, AbortRetryIgnore). Icon especifica o icon que aparece na caixa de mensagem (Information, Error, Warning, Exclamation, Question, Asterisk, Hand, Stop, None). DefaultButton especifica o boto que activado quando o utilizador pressiona a tecla Enter.

Em VB .NET pode-se apenas mostrar trs botes numa caixa de mensagem.


Visual Basic.NET, C1 Slide 33

Exemplo de sada de dados

If MessageBox.Show(Deseja sair?, Sair, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then ME.Close Else txtZZZ.Focus End IF

Constantes da enumeration DialogResult: OK, Cancel, Yes, No, Abort, Ignore, None

Visual Basic.NET, C1

Slide 34

Introduo programao VB . NET


Entrada de dados Em VB a funo InputBox apresenta uma mensagem numa caixa de dilogo, espera por uma entrada de dados do utilizador e devolve uma string. Sintaxe bsica da funo InputBox:
InputBox (Text [, Caption] [, DefaultResponse]) InputBox (Text [, Caption] [, DefaultResponse])

Text mensagem de texto a apresentar na caixa de dilogo. Este o nico argumento


obrigatrio.

Caption apresenta uma legenda na barra de ttulo da caixa de dilogo. DefaultResponse apresenta a expresso que deve ser considerada como a resposta
predefinida, caso o utilizador no efectue nenhuma entrada de dados. Se este argumento for omitido, a caixa de texto apresentada na caixa de dilogo vai aparecer vazia.
Namespace: Microsoft.VisualBasic
Visual Basic.NET, C1 Slide 35

Introduo programao VB . NET

Estruturas de Controlo

Deciso ou Seleco

Condicionais Alternativas

If-Then-Else

O VB .NET tem diversas estruturas de controlo que podemos utilizar para controlar o fluxo de execuo dos programas

Condicionais Selectivas

Select Case

Com Contador Repetio Com base numa Condio

For-Next

Do-Loop

Visual Basic.NET, C1

Slide 36

Introduo programao VB . NET

Estruturas Condicionais As estruturas condicionais so utilizadas quando queremos que o comportamento de uma certa parte do programa esteja dependente de uma determinada condio. Estruturas Condicionais Alternativas Forma mais simples de estrutura condicional Condies do tipo: Se...Ento...Seno Exemplo Se chover ento vou estudar Se chover ento vou estudar, seno vou ao cinema
Visual Basic.NET, C1 Slide 37

Introduo programao VB . NET

Estruturas Condicionais

1 linha termina com Then No fim tem que se colocar End If

If condio Then Aco1 [ElseIf Condio Then Aco2] [Else Aco3] End If

Escolher entre duas alternativas possveis, com base numa condio booleana

Formas mais comuns If condio Then Aco1 End If If condio Then Aco1 Else Aco2 End If

Visual Basic.NET, C1

Slide 38

Introduo programao VB . NET


Exemplo:
This example shows both the block and single-line forms of the If...Then...Else statement.

A A

palavra-chave If indica o incio de uma instruo If-Then-Else

Dim Number, Digits, MyString Number = 53' Initialize variable. If Number < 10 Then Digits = 1 ElseIf Number < 100 Then ' Condition evaluates to True so the next statement is executed. Digits = 2 Else Digits = 3 End If ' Assign a value using the single-line form of syntax. If Digits = 1 Then MyString = "One" Else MyString = "More than one"

palavra-chave Then indica o final de uma condio de teste

A palavra-chave ElseIf fornece uma condio


de teste alternativa se a condio de teste anterior for avaliada como false.

A palavra-chave Else indica onde a execuo


deve parar se a condio de teste for avaliada como true e onde a execuo deve comear se a condio de teste for avaliada como false If indicam o final da estrutura de controle If-Then-Else

As palavras-chave End

Portanto, a 1 condio (Number < 10) testada. Se for avaliada como false, a execuo desvia-se imediatamente para a palavra-chave ElseIf, ponto em que introduzida um nova condio de teste (Number < 100). Se a nova condio de teste for avaliada como false, a execuo desvia-se para a palavra-chave Else, e a(s) instruo(es) que est(o) antes da palavra-chave End IF (so) executada(s). Se em qualquer das condies de teste acima referidas o resultado for true, a(s) instruo(es) que est(o) a seguir e antes da palavra-chave ElseIf ou Else so executadas.

Visual Basic.NET, C1

Slide 39

Introduo programao VB . NET


Estruturas Condicionais Selectivas Estas estruturas permitem-nos codificar condies mais complexas. Alteram o fluxo de execuo para um dos diversos segmentos de cdigo possveis, dependendo do valor da varivel ou da avaliao de uma expresso Sintaxe:

Select Case expresso [Case lista de expresses Aces]

[Case Else Aces] End Select

Visual Basic.NET, C1

Slide 40

Introduo programao VB . NET


Em que: A lista de expresses indicada em cada linha iniciada por Case pode ter uma das
seguintes formas: Expresso qualquer coisa da qual resulte um valor. Por exemplo: 10, amarelo ou i + 5, etc... Expresso To Expresso permite a especificao de uma gama de valores. Por exemplo: 5 To 10, E To G, etc... Is operador_relacional Expresso permite indicar todos os valores que gozam de uma determinada relao (ditada pelo operador relacional) com a expresso dada. Por exemplo: Is >= 10 Pode-se combinar estas vrias hipteses, separando-as por vrgulas. Por exemplo: Case Is < 0, Is > 100, 4 To 9, 11 To 16, 19
Indicaria todos os valores negativos ou maiores que 100, os valores entre 4 e 9, os valores entre 11 e 16 e ainda o valor 19

Case Else destina-se a indicar o que deve ser executado no caso da expresso indicada
na linha Select Case tomar um valor diferente de qualquer um dos referidos nas linhas Case. (A sua utilizao opcional)
Visual Basic.NET, C1 Slide 41

Introduo programao VB . NET

Exemplo:
This example uses the Select Case statement to evaluate the value of a variable. The second Case clause contains the value of the variable being evaluated, and therefore only the statement associated with it is executed. Dim Number Number = 8' Initialize variable. Select Case Number' Evaluate Number. Case 1 To 5' Number between 1 and 5. MsgBox "Between 1 and 5" ' The following is the only Case clause that evaluates to True. Case 6, 7, 8' Number between 6 and 8. MsgBox "Between 6 and 8" Case Is > 8 And Number < 11' Number is 9 or 10. MsgBox "Greater than 8" Case Else' Other values. MsgBox "Not between 1 and 10" End Select

Visual Basic.NET, C1

Slide 42

Introduo programao VB . NET


Exemplo: As palavras-chave Select Case indicam o incio de uma estrutura de controle Select case Se a expresso que segue a palavra-chave Case se adequar expresso de teste, a execuo desvia-se para o segmento de cdigo que se inicia na linha seguinte palavra-chave Case, e continua at que seja encontrada outra instruo Case ou Case Else ou End Select. Depois a execuo desvia-se para a instruo End Select A palavra-chave Case Else avaliada como true se todas as demais expresses Case forem avaliadas como false As palavras-chave End Select indicam o final da estrutura de controle Select Case
Se existir mais do que uma linha Case cuja expresso se adeqe expresso da linha Select Case, apenas sero executadas as aces correspondentes primeira dessas linhas Case.

Visual Basic.NET, C1

Slide 43

Introduo programao VB . NET

Estruturas de Repetio
muito comum que um programa necessite de repetir um determinado conjunto de aces por um certo nmero de vezes. Conforme esse nmero de vezes seja decido no momento em que se est a codificar o programa ou dependa de cada execuo particular desse mesmo programa, optaremos pela estrutura mais adequada.

Chama-se iterao a cada volta que se d Chama-se ciclo estrutura em si Exemplo:


Se considerarmos que um carrossel d sempre exactamente 10 voltas, podemos compar-lo a um ciclo com pr-determinao do nmero de iteraes (antes de comear j se sabe quantas voltas vai dar). Se considerarmos que o carrossel gira at que a primeira pessoa se sinta mal disposta, podemos compar-lo com um ciclo sem pr-determinao do nmero de iteraes (o nmero de vezes que vai rodar vai depender de como as coisas correrem durante a execuo).

Um ciclo tem de ter uma forma qualquer de terminar (essa forma depende do tipo de ciclo). Caso contrrio teramos um ciclo infinito e a execuo do programa ficaria indefinidamente "pendurada" nesse ciclo.
Visual Basic.NET, C1 Slide 44

Introduo programao VB . NET


Estruturas de repetio com pr-determinao do nmero de Iteraes
Esta a estrutura mais adequada quando queremos pr-determinar o nmero de iteraes que o ciclo vai executar. Em linguagem corrente equivale (por exemplo) a dizer: "por 10 vezes, girar o carrossel"

Sintaxe:
For varivel_de_iterao [AS Datatype] = valor_ inicial To valor_ final [Step valor_ do_passo] [aces] [Exit For] [aces] Next [varivel de iterao]

Notar que:

O ciclo For implica a utilizao de uma varivel numrica, chamada de "varivel de iterao"
(varivel_ de_ iterao), que em cada iterao toma um novo valor de acordo com o que se especificar: comea com o valor valor_ inicial e vai at valor_ final. A varivel no pode ser do tipo boolean ou do tipo array. Depois de todas aces terem sido executadas, adicionado o valor valor_ do_passo varivel varivel_de_iterao. Neste ponto, todas as aces so executadas de novo e repete-se tudo de novo at que varivel_de_iterao = valor_ final.

Visual Basic.NET, C1

Slide 45

Introduo programao VB . NET

Estruturas de repetio com pr-determinao do nmero de Iteraes Pode ser indicado um "passo" (valor do-passo) para a mudana do valor da varivel em cada nova iterao. Quando nada for indicado, assumido um passo de 1 unidade. O valor do passo pode ser positivo ou negativo. Se for positivo ento valor_ inicial tem que ser menor ou igual a valor_ final. Se for negativo ento valor_ inicial tem que ser maior ou igual a valor_ final. Entre as aces pode estar a instruo Exit For. Esta instruo fora a sada do ciclo, isto , o ciclo acaba imediatamente (em vez de continuar a iterar at a varivel de controlo atingir o valor final). O ciclo For uma Estrutura de repetio controlada por uma varivel (varivel_de_iterao ou contador).

Visual Basic.NET, C1

Slide 46

Introduo programao VB . NET

Exemplo:
This example uses the For...Next statement to create a string that contains 10 instances of the numbers 0 through 9, each string separated from the other by a single space. The outer loop uses a loop counter variable that is decremented each time through the loop. Sub CicloFor() Dim Words, Chars AS short Dim MyString as string For Words = 10 To 1 Step -1 ' Set up 10 repetitions. For Chars = 0 To 9 ' Set up 10 repetitions. MyString = MyString & Chars ' Append number to string. Next Chars ' Increment counter MyString = MyString & " " ' Append a space. Next Words MesageBox.Show (MyString = & MyString) End Sub

0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789

Visual Basic.NET, C1

Slide 47

Introduo programao VB . NET

Estruturas de repetio sem pr-determinao do nmero de iteraes


O VB fornece-nos uma estrutura extraordinariamente flexvel para a codificao deste tipo de ciclos. Podemos codificar directamente expresses como: "at que...fazer qualquer coisa", enquanto...fazer qualquer coisa", "fazer qualquer coisa at que...", fazer qualquer coisa enquanto..., etc.

Testes no Incio

Testes no Fim Depois de cada iterao ser executada verifica-se se ainda se deve continuar o ciclo. Estes ciclos so controlados por uma condio

Antes de cada iterao verifica-se se ela ainda deve ser executada.

O ciclo pode no ser executado nenhuma vez

O ciclo executado pelo menos uma vez

Visual Basic.NET, C1

Slide 48

Introduo programao VB . NET

Sintaxe:
Do [{While | Until} condio] [aces] [Exit Do] [aces] Loop Do [aces] [Exit Do] [aces] Loop [{While | Until} condio]

Ou

Quando a condio for Falsa, sai do ciclo

Repete um bloco de aces Enquanto (While) a condio for Verdadeira (True) Ou Repete um bloco de aces At (Until) a condio se tornar Verdadeira (True)
Quando a condio for Verdadeira, sai do ciclo

Condio Expresso numrica ou String que Verdadeira ou Falsa. opcional. Se a


condio for Null, ento tratada como falsa. Entre as aces pode estar a instruo Exit Do. Esta instruo fora a sada do ciclo.
Visual Basic.NET, C1 Slide 49

Introduo programao VB . NET

Estruturas de repetio sem pr-determinao do nmero de iteraes

Se a condio for testada a seguir a Loop, em vez de a seguir a Do, o contedo do ciclo sempre executado pelo menos uma vez, mesmo que partida a condio seja falsa. No caso do teste ser feito a seguir a Do, se a condio for falsa, o contedo do ciclo no executado nenhuma vez.

Visual Basic.NET, C1

Slide 50

Introduo programao VB . NET

Exemplo:
This example shows how Do...Loop statements can be used. The inner Do...Loop statement loops 10 times, sets the value of the flag to False, and exits prematurely using the Exit Do statement. The outer loop exits immediately upon checking the value of the flag. Sub Ciclos() Dim Check As Boolean, Counter As Short Check = True: Counter = 0' Initialize variables. Do' Outer loop. Do While Counter < 20' Inner loop. Counter = Counter + 1' Increment Counter. If Counter = 10 Then' If condition is True. Check = False' Set value of flag to False. Exit Do' Exit inner loop. End If Loop Loop Until Check = False' Exit outer loop immediately. MessageBox.show( "Counter = " & Counter & "; Check = " & Check) End Sub

Counter = 10; Check = False


Visual Basic.NET, C1 Slide 51

Introduo programao VB . NET


Procedimentos Gerais Sub ou Function
Em VB, quando precisamos de escrever um procedimento geral temos duas opes: escrever um Sub ou uma Function
Tipo de dados do valor a devolver.

Sintaxe

[Private|Public] Sub nome [(lista de argumentos)] instrues [Exit Sub] [instrues] End Sub

[Private|Public] Function nome [(lista de argumentos)] [As tipo] instrues [Exit Function] {nome = expresso} | {Return expresso} [instrues] End Function
Diferenas

Function permite devolver um valor ao procedimento que a tiver chamado e Sub no tem essa capacidade.

Tm que ser do mesmo tipo!

Visual Basic.NET, C1

Slide 52

Introduo programao VB . NET


Procedimentos Gerais Sub ou Function Notas: Em ambos os casos o cdigo incluso entre uma primeira linha que descreve o procedimento (Sub ou Function) e uma linha final que indica o fim do procedimento (End Sub ou End Function).

Em ambos os casos existe tambm a possibilidade de indicar a lista de argumentos com que o procedimento trabalhar.

Para que a funo devolva um determinado valor necessrio que dentro do seu cdigo se atribua esse valor ao seu nome ou que se utilize uma Instruo Return com o valor a devolver. A instruo Return provoca a sada da funo (ver help on-line sobre a instruo Return).
Visual Basic.NET, C1 Slide 53

Introduo programao VB . NET


Definio Versus Chamadas Um procedimento Sub representa uma srie de instrues Visual Basic delimitada por instrues Sub e End Sub, que efectuam aces mas no devolvem um valor. Um procedimento Sub pode aceitar argumentos Um procedimento Function representa uma srie de instrues Visual Basic delimitada pelas instrues Function e End Function. Um procedimento Function idntico a um procedimento Sub, mas uma funo pode devolver um valor. Um procedimento Function pode aceitar argumentos. A definio de um procedimento representa o cdigo que descreve aquilo que ocorre quando o procedimento for executado, ou seja, quando for chamado. A chamada de um procedimento um pedido para que o procedimento seja executado, isto , para que o controlo passe para o cdigo que constitui a definio do procedimento. A chamada pode envolver a passagem de parmetros e eventualmente a devoluo de um valor (no caso das funes).
Visual Basic.NET, C1 Slide 54

Introduo programao VB . NET


Recomendaes para efectuar a Chamada de um procedimento: Quando o procedimento Sub no est na mesma classe ou mdulo que a instruo de chamada, utiliza-se a palavra-chave Call seguida pelo nome do procedimento. Quando o procedimento Sub est na mesma classe ou mdulo que a instruo de chamada, omite-se a palavra-chave Call e utiliza-se a palavra-chave Me seguida de . nome do procedimento. Sintaxe da instruo Call:
[Call] nomedoprocedimentoSub [(listadeargumentos)] [Call] nomedoprocedimentoSub [(listadeargumentos)]

Note-se que para chamar um procedimento Sub pode-se utilizar apenas o nome do procedimento, omitindo a palavra-chave Call. Para chamar um procedimento Function utiliza-se normalmente o nome do procedimento como parte de uma expresso numa instruo de atribuio.
Visual Basic.NET, C1 Slide 55

Introduo programao VB . NET

Exemplos:
Sub Area() Dim Comp As Decimal Dim Larg As Decimal Comp = 10 Larg = 20 Me.CalculaArea (Comp, Larg) End Sub

'Chamada do Procedimento CalculaArea

Sub CalculaArea( Ocomp As Decimal, Alarg As Decimal) Dim Area As Decimal ' Declara varivel local. If Ocomp = 0 Or Alarg = 0 Then Exit Sub ' Sai do Procedimento imediatamente End If Area = Ocomp * Alarg ' Calcula a rea do rectngulo. MessageBox.Show (rea = & Area) ' Mostra a rea. End Sub

Definio do Procedimento CalculaArea

200

Visual Basic.NET, C1

Slide 56

Introduo programao VB . NET

Exemplos:
Sub Multiplicar() Dim Var1 As Short A instruo em que feita uma Dim Var2 As Short atribuio ao nome da funo especifica Dim Var3 As Short o valor de retorno da funo Var1 = 5 Var2 = 10 Var3 = Multiplica(Var1, Var2) Chamada da Funo Multiplica MessageBox.Show (Var3 = & Var3) End Sub Funo que devolve o produto de dois argumentos Function Multiplica(Var1 As short, Var2 As Short) As Short Multiplica = Var1 * Var2 Definio da Funo End Function Multiplica

50

Visual Basic.NET, C1

Slide 57

Introduo programao VB . NET

Argumentos
Exemplo:

Nomedoargumento AS Tipodedadosdoargumento, Nomedoargumento AS Tipodedadosdoargumento ... Na declarao do Procedimento Sub Subtrai ( x1 As Integer, x2 As Integer) MessageBox.Show (R = , & x1 x2) End Sub

Este procedimento no pode ser executado s por si, j que s funciona se lhe forem passados dois argumentos (neste caso dois inteiros). Logo, temos de o chamar a partir de outro procedimento onde lhe possamos fornecer esses valores. Os argumentos declarados passam a funcionar, dentro do procedimento, como variveis.
Estes Valores tm de ser do mesmo Tipo do Argumento correspondente na definio do procedimento a ser chamado! Sub FazContas () Me.Subtrai (5, 6) Me.Subtrai (25,12) End Sub
Visual Basic.NET, C1

Na chamada do Procedimento
Slide 58

Introduo programao VB . NET

Argumentos Notas: Para chamar o procedimento Subtrai, indicamos uma lista de valores correspondentes a cada um dos argumentos, separados por virgulas. Uma vez concluda a execuo do procedimento Subtrai (com estes argumentos), o controlo devolvido ao procedimento Fazcontas. Depois executada a instruo seguinte chamada do procedimento Subtrai. muito importante a ordem pela qual os argumentos so passados. O primeiro argumento dado vai corresponder ao primeiro argumento recebido e assim sucessivamente. Me.Subtrai 5, 6 diferente de Me.Subtrai 6,5.
Visual Basic.NET, C1 Slide 59

Introduo programao VB . NET

No exemplo anterior apresentmos sempre constantes como argumentos. No entanto, podemos tambm apresentar variveis ou mesmo expresses, desde que o seu tipo seja compatvel com o tipo do argumento correspondente no procedimento chamado. A regra continua a ser a mesma: aquilo que for apresentado como primeiro argumento a passar vai ser usado como o primeiro argumento no procedimento chamado e assim sucessivamente.

Exemplo:

Sub FazContas () Dim x As Short, y As Short x=5 y=6 Me.Subtrai (x, y) Me.Subtrai (x + y, 2 * x) End Sub Esta chamada vai provocar a execuo do procedimento Subtrai usando o valor de x como primeiro argumento e o valor de y como o segundo argumento.

-1
Esta chamada vai provocar a execuo do procedimento Subtrai usando o valor de x + y como primeiro argumento e o valor de 2 * x como o segundo argumento.

Visual Basic.NET, C1

Slide 60

Introduo programao VB . NET

No existe qualquer relao entre o nome dos argumentos do procedimento chamado e o nome dos argumentos usados na chamada. Ou seja, o facto de termos dado os nomes x1 e x2 aos argumentos do procedimento Subtrai (na sua definio) no quer de forma alguma dizer que este procedimento s possa ser chamado com variveis que tenham esse mesmo nome! O VB encarrega-se de fazer as necessrias correspondncias. Em geral, quando se passam argumentos a um procedimento, o VB trata de adequar cada um deles aos que se encontram descritos na definio do dito procedimento. A adequao feita respeitando a sequncia em que os argumentos so representados. Assim, o primeiro argumento declarado na definio do procedimento vai tomar o valor do primeiro argumento apresentado nessa chamada do procedimento; o segundo argumento declarado na definio do procedimento vai tomar o valor do segundo argumento apresentado nessa chamada do procedimento; e assim sucessivamente para cada um dos argumentos.
Sub Exemplo ( v As Integer, msg1 As String, msg2 As String)

....
End sub
Dentro de outro procedimento

S = Ol Me.Exemplo (3, s, Bom dia)

Visual Basic.NET, C1

Slide 61

Introduo programao VB . NET

Argumentos passados por valor ou por referncia Argumento passado por referncia Quando se apresenta uma varivel como argumento na chamada de um procedimento, passada uma referncia dessa varivel ao argumento correspondente no procedimento chamado. Assim, o procedimento chamado pode alterar o valor da varivel (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por referncia utilizamos a palavra-chave ByRef na declarao do procedimento em causa. Argumento passado por valor Quando se apresenta uma varivel como argumento na chamada de um procedimento, passada uma cpia do valor dessa varivel ao argumento correspondente no procedimento chamado. Assim, O procedimento chamado no pode alterar o valor da varivel (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por Valor utilizamos a palavra-chave ByVal na declarao do procedimento em causa.
Visual Basic.NET, C1 Slide 62

Introduo programao VB . NET

Exemplo:

Public Sub Experincia (ByRef X As Short, ByVal Y As Short) X=5 Y = 10 O Valor da varivel End Sub passada como 1 argumento pode ser alterado pelo Public Sub Teste() procedimento chamado. Dim A As Short, B As Short O Valor da varivel A=0 passada como 2 argumento B=0 no pode ser alterado pelo Experincia (A, B) MessageBox. Show( "A = " & A & "; B = " & B) procedimento chamado. End Sub

A = 5; B = 0

Visual Basic.NET, C1

Slide 63

Introduo programao VB . NET

Notas: Por defeito, O VB .NET faz as passagens de argumentos por valor ou seja, quando no se indica ByRef ou ByVal assumido ByVal. A deciso entre os dois tipos de passagem (para cada argumento) tomada aquando da definio de cada procedimento. Na chamada dos procedimentos tudo o que temos que fazer sujeitarmo-nos forma como o procedimento foi definido. Quando desejarmos que uma varivel apresentada como argumento (numa chamada) sofra alteraes dentro do procedimento chamado, temos de usar uma passagem por referncia. Quando apenas queremos passar o seu valor para o procedimento chamado, utilizamos uma passagem por valor.

Visual Basic.NET, C1

Slide 64

Introduo programao VB . NET


Exemplo completo:
Public Sub Experincia(ByRef X As Short, ByVal Y As Short) MessageBox.Show("Xini = " & X) MessageBox.Show("Yini = " & Y) X=5 Y = 10 MessageBox.Show ("Xfin= " & X) MessgeBox.Show ("Yfin = " & Y) End Sub Public Sub Teste() Dim A As Short, B As Short A=0 B=0 MessgeBox.Show ("Aini = " & A) MessageBox.Show ("Bini = " & B) Me.Experincia (A, B) MessageBox.Show ("Afin = " & A & "; Bfin = " & B) End Sub
Visual Basic.NET, C1 Slide 65

Introduo programao VB . NET


Sintaxe de declarao de um array unidimensional:
Dim nomedoarray (limitesuperior) As Tipodedados Dim nomedoarray (limitesuperior) As Tipodedados

Pode-se utilizar um array para armazenar um grupo de itens, em vez de utilizar variveis separadas para cada item. Cada item representa um elemento do array, e o comprimento do array estabelece o nmero de elementos que o array contm. limitesuperior comea em zero. Assim, o array ir conter mais um elemento do que o valor de limitesuperior. Na declarao de um array, deve-se especificar o tipo de dados das clulas que o compem. Se for especificado o tamanho do array no momento da sua declarao, criado um objecto, a partir da classe Array, com essa dimenso. Esse objecto ento associado varivel. atribudo um valor predefinido a cada elemento do array, de acordo com o seu tipo de dados.
Visual Basic.NET, C1 Slide 66

Introduo programao VB . NET


Uma varivel array contm uma referncia para o objecto array que lhe est associado e no os valores reais do array. Se no for especificado o tamanho do array no momento da sua declarao, no criado um objecto a partir da classe Array. Isto , a varivel ir conter o valor Nothing. Depois, deve-se utilizar a instruo ReDim para criar um objecto array com um tamanho apropriado. Exemplos de declarao de array unidimensionais:
Dim a (11) As Integer Dim b (49) As String Dim c (49) As Livro Dim d () As Decimal ndices de 0 a 11 (12 elementos todos com o valor predef. 0) ndices de 0 a 49 (50 elementos) um array que contm 50 objectos Livro um array sem declarao do seu tamanho

Apesar de ter sido sempre utilizada a instruo Dim pode ser usada qualquer instruo admissvel para a declarao de variveis.
Visual Basic.NET, C1 Slide 67

Introduo programao VB . NET


Atribuio de valores s celulas de um array unidimensional: Sintaxe: nomedoarray(ndice) = valor ndice: de 0 at limitesuperior. O ndice zero (0) identifica o primeiro elemento do array. Sintaxe de declarao de um array unidimensional e atribuio de valores numa nica instruo: Dim nomedoarray () As Tipodedados = {valor1, valor2, valor3, } Exemplo: Dim a() As Short = {2, 4, 6, 8} Quando se atribuem valores aos elementos de um array no momento da sua declarao, no se especifica o seu limitesuperior. O tamanho do array determinado pelos nmero de valores especificados.
Visual Basic.NET, C1 Slide 68

Introduo programao VB . NET


Sintaxe bsica de declarao de um array de duas dimenses:
Dim nomedoarray (limitesuperior1, limitesuperior2) As Tipodedados Dim nomedoarray (limitesuperior1, limitesuperior2) As Tipodedados

Podemos pensar num array de duas dimenses como sendo uma tabela constituda por linhas e colunas. limitesuperior1 e limitesuperior2 comeam em zero e representam os limites superiores da dimenso 1 e da dimenso 2 do array, respectivamente. Um array em VB pode ter at 60 dimenses, embora raramente se trabalhe acima das 3 dimenses. tambm possvel no especificar o limitesuperior1 e o limitesuperior2 no momento da declarao do array. Todavia, tem que se manter a vrgula entre os parnteses, de modo a indicar a dimenso do array.

Visual Basic.NET, C1

Slide 69

Introduo programao VB . NET


Exemplos de declarao de arrays de duas dimenses:
Dim a (3, 4) As Integer Dim b (,) As Decimal tabela com 4 linhas e 5 colunas com valores inteiros (predef. 0) array de duas dimenses sem a especificao do tamanho de ambas as dimenses

Exemplo de declarao de um array de duas dimenses e atribuio de valores numa nica instruo:
Dim s(,) As String = {{Pedro, Sousa}, {Ana, Pinto}, {Mrio, Silva}}

Equivalente a:
Dim s(2,1) As String s(0,0) = Pedro s(0,1) = Sousa s(1,0) = Ana s(1,1) = Pinto s(2,0) = Mrio s(2,1) = Silva
Visual Basic.NET, C1 Slide 70

Introduo programao VB . NET


Sintaxe bsica de redimensionamento de um array
ReDim [Preserve] nomedoarray (limitesuperior1 [, limitesuperior2]) ReDim [Preserve] nomedoarray (limitesuperior1 [, limitesuperior2])

Para redimensionar um array, utiliza-se a instruo ReDim. Pode-se usar esta instruo para aumentar ou diminuir o nmero de elementos do array, mas no se pode utilizar para alterar o nmero de dimenses do array.

Por defeito, a instruo ReDim apaga todos os valores de um array. Se no for isso o desejado, pode-se incluir a palavra-chave Preserve. Assim, os valores existentes so preservados.

Quando se redimensiona um array, est-se a criar um novo objecto array que associado mesma varivel que o array anterior. Consequentemente, no se pode especificar o tipo de dados quando se redimensiona um array. Em vez disso, o novo array criado com o mesmo tipo de dados do array original.
Visual Basic.NET, C1 Slide 71

Introduo programao VB . NET


Exemplos de redimensionamento de um array:
Dim a () As short = {1, 2, 3, 4, 5} Redim Preserve a(5) ReDim a (6) altera o tamanho do array para seis elementos e preserva os valores existentes altera o tamanho do array para sete elementos aos quais atribudo o valor predefinido 0.

Dim s (2, 1) As String ReDim Preserve s (2, 2) ReDim s (3,3) preserva os valores existentes e altera o nmero de elementos do da segunda dimenso do array. altera o nmero de elementos de ambas as dimenses do array e atribu-lhes o valor predefinido Nothing.

Visual Basic.NET, C1

Slide 72

Introduo programao VB . NET


A classe array: Um array na realidade uma instncia da classe Array. Esta classe contm vrias propriedades e mtodos que podem ser muito teis para trabalhar com objectos arrays. Algumas propriedades: Length nmero de elementos em todas as dimenses do array (uso mais provvel em arrays de uma dimenso). Rank nmero de dimenses de um array. Alguns mtodos pblicos: GetLength(dimension) devolve o nmero de elementos do array na dimenso especificada. GetUpperBound(dimension) devolve o limite superior do array na dimenso especificada. Initialize Inicializa os elementos de um array de acordo com o seu tipo de dados.
Visual Basic.NET, C1 Slide 73

Você também pode gostar