Ir para conteúdo
Entre para seguir isso  
Boleta

[Aula 9] Types e Select Case

Recommended Posts

Boleta    1
Boleta

Olá exloradores do incrível muito OTServ Networks!

 

Em mais uma aula sobre Visual Basic, hoje vou abordar dois assuntos muito legais e bastante úteis no Visual Basic: O uso de Types em posts, porém é sempre bom relembrar).

 

Tudo bem, vamos começar.

 

Os Types

 

Como você já viu em aulas anteriores, objetos tem propriedades, funções e Sub-Rotinas, que são chamadas na sintaxe:

 

'Propriedades

Objeto.Propriedade



'Funções

Variavel = Objeto.Função



'SubRotinas

Objeto.SubRotina

 

Os Types são um pouco parecidos, porém não chamam funções nem subrotinas. Eles são usados apenas para receber e atribuir valores para o programador, em tempo de execução. Vamos entende-lo um pouco mais. Primeiramente, ele deve ser colocado em General Declarations, onde vocês já sabem onde fica (na parte superior dos códigos).

Sintaxe:

 

Private Type [referencia]

[variavel] As [tipo]

End Type



Dim [nome] As [referencia]

OMG Boleta, isso ai não é meio complicado não?

Pelo contrário, é bem simples de se usar. Vamos enteder a sintaxe:

 

[referencia] - É o indicador do Type. Todo Type precisa ser declarado após criado. Esta declaração atribui a estrutura do Type à uma variavel. Então ele é feito de referencia para a declaração.

[nome] - É uma declaração de variavel, onde usaremos a referencia para captarmos a estrutura do type.

[variavel] - Nome da variável usada para atribuição e captação de valores. Igual uma variavel normal. É equivalente a certa propriedade de certo objeto, por exemplo.

[tipo] - Tipo de valor que a variável receberá. Você já conhece a maioria deles ;D. O tipo será atribuido para o tipo de valor que a variavel receberá.

 

Esclareceu um pouco mais ainda ficou um pouco confuso né? Vamos entender de uma vez, com um exemplo prático.

 

Abra um projeto, adicione um botão chamado Command1. No projeto, coloque o seguinte:

Private Type Person

    Name As String

    Idade As Integer

End Type

Dim User As Person



Private Sub Form_Load()

User.Name = InputBox("Digite seu nome", "Nome")

User.Idade = CInt(InputBox("Digite sua idade", "Idade"))

End Sub



Private Sub Command1_Click()

MsgBox "Olá! Você se chama " & User.Name & " e tem " & User.Idade & " anos!"

End Sub

Execute o projeto e veja o que acontece. Viu como é legal?

 

Entendendo o código...

 

Note que em General Declarations, eu montei o type e declarei como User, fazendo referencia à Person, nome do type. Ele será usado em todo o formulário, e atribuirá e armazenará valores até que esteja ativo (formulario).

No evento Load do formulário, atribuí valores às variaveis de User, já que declarei-o como type. Note que usamos a mesma sintaxe de um objeto.

Já no botão, exibi os valores contido nas variaveis. Viu como foi simples?

Você pode adicionar quantas variáveis quizer, e usar Arrays também (serão explicadas mais pra frente).

 

PS: A função CInt será estudada mais pra frente, então não se preocupe com ela agora.

 

 

A Cláusula Select Case

 

Muito simples de usar, ela estabelece condições, como as clausulas If, porém foi criada para uma verificação maior de valores. Sua sintaxe é:

Select Case [variavel]

Case [valor]

[codigos]

Case [valor]

[codigos]

Case Else

[codigos]

End Select

Essa foi mais simples. Vamos ver:

 

[variavel] - É a variável que será verificada e que será submetida a condições, onde estas, verificam valores.

[valor] - É o valor a ser submetido à verificação. Nele, verificamos se certo valor está presente na variável.

[codigos] - Códigos a serem executados caso a condição seja verdadeira.

Case Else - É executado, caso nenhuma case retorne um vlaor verdadeiro.

End Select - Fecha a cláusula.

 

Exemplo simples:

 

Dim i As Long

i = CInt(InputBox("Insira um número", "Numero"))

Select Case i

Case i <= 100

MsgBox "O valor de i é menor ou igual à 100"

Case Else

MsgBox "O valor de i é maior que 100"

End Select

Viu como foi fácil?

 

 

Exercício

Faça um programa qualquer usando os dois assunstos abordados hoje.

 

------------------------------------------

 

Espero que a aula tenha sido produtiva. Dúvidas? POSTE AQUI!!

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Olá exloradores do incrível muito OTServ Networks!

 

Em mais uma aula sobre Visual Basic, hoje vou abordar dois assuntos muito legais e bastante úteis no Visual Basic: O uso de Types em posts, porém é sempre bom relembrar).

 

Tudo bem, vamos começar.

 

Os Types

 

Como você já viu em aulas anteriores, objetos tem propriedades, funções e Sub-Rotinas, que são chamadas na sintaxe:

 

'Propriedades

Objeto.Propriedade



'Funções

Variavel = Objeto.Função



'SubRotinas

Objeto.SubRotina

 

Os Types são um pouco parecidos, porém não chamam funções nem subrotinas. Eles são usados apenas para receber e atribuir valores para o programador, em tempo de execução. Vamos entende-lo um pouco mais. Primeiramente, ele deve ser colocado em General Declarations, onde vocês já sabem onde fica (na parte superior dos códigos).

Sintaxe:

 

Private Type [referencia]

[variavel] As [tipo]

End Type



Dim [nome] As [referencia]

OMG Boleta, isso ai não é meio complicado não?

Pelo contrário, é bem simples de se usar. Vamos enteder a sintaxe:

 

[referencia] - É o indicador do Type. Todo Type precisa ser declarado após criado. Esta declaração atribui a estrutura do Type à uma variavel. Então ele é feito de referencia para a declaração.

[nome] - É uma declaração de variavel, onde usaremos a referencia para captarmos a estrutura do type.

[variavel] - Nome da variável usada para atribuição e captação de valores. Igual uma variavel normal. É equivalente a certa propriedade de certo objeto, por exemplo.

[tipo] - Tipo de valor que a variável receberá. Você já conhece a maioria deles ;D. O tipo será atribuido para o tipo de valor que a variavel receberá.

 

Esclareceu um pouco mais ainda ficou um pouco confuso né? Vamos entender de uma vez, com um exemplo prático.

 

Abra um projeto, adicione um botão chamado Command1. No projeto, coloque o seguinte:

Private Type Person

    Name As String

    Idade As Integer

End Type

Dim User As Person



Private Sub Form_Load()

User.Name = InputBox("Digite seu nome", "Nome")

User.Idade = CInt(InputBox("Digite sua idade", "Idade"))

End Sub



Private Sub Command1_Click()

MsgBox "Olá! Você se chama " & User.Name & " e tem " & User.Idade & " anos!"

End Sub

Execute o projeto e veja o que acontece. Viu como é legal?

 

Entendendo o código...

 

Note que em General Declarations, eu montei o type e declarei como User, fazendo referencia à Person, nome do type. Ele será usado em todo o formulário, e atribuirá e armazenará valores até que esteja ativo (formulario).

No evento Load do formulário, atribuí valores às variaveis de User, já que declarei-o como type. Note que usamos a mesma sintaxe de um objeto.

Já no botão, exibi os valores contido nas variaveis. Viu como foi simples?

Você pode adicionar quantas variáveis quizer, e usar Arrays também (serão explicadas mais pra frente).

 

PS: A função CInt será estudada mais pra frente, então não se preocupe com ela agora.

 

 

A Cláusula Select Case

 

Muito simples de usar, ela estabelece condições, como as clausulas If, porém foi criada para uma verificação maior de valores. Sua sintaxe é:

Select Case [variavel]

Case [valor]

[codigos]

Case [valor]

[codigos]

Case Else

[codigos]

End Select

Essa foi mais simples. Vamos ver:

 

[variavel] - É a variável que será verificada e que será submetida a condições, onde estas, verificam valores.

[valor] - É o valor a ser submetido à verificação. Nele, verificamos se certo valor está presente na variável.

[codigos] - Códigos a serem executados caso a condição seja verdadeira.

Case Else - É executado, caso nenhuma case retorne um vlaor verdadeiro.

End Select - Fecha a cláusula.

 

Exemplo simples:

 

Dim i As Long

i = CInt(InputBox("Insira um número", "Numero"))

Select Case i

Case i <= 100

MsgBox "O valor de i é menor ou igual à 100"

Case Else

MsgBox "O valor de i é maior que 100"

End Select

Viu como foi fácil?

 

 

Exercício

Faça um programa qualquer usando os dois assunstos abordados hoje.

 

------------------------------------------

 

Espero que a aula tenha sido produtiva. Dúvidas? POSTE AQUI!!

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Boa boleta, só uma duvida

quando eu coloco uma case, automaticamente aparece um Is (exemplo, escrevi aqui Case >= 30, apareseceu, Case Is >= 30)

Ignoro isso?

 

EDIT: Já axei o problema, não tinha declarado a variável no Case.

Descobri que quando não á declaro tem que ter o Is

EDIT2: Meu Exercicio (tava sem a minima criatividade lol)

Private Type Member

    Posts As Integer

End Type

Dim Sobre As Member



Private Sub Command1_Click()

    Sobre.Posts = InputBox("Digite a quantidade de posts que você tem", "Posts")

    Select Case Sobre.Posts

    Case Is < 30

        Label1.Caption = "Você é apenas um viajante"

    Case Is >= 30

        Label1.Caption = "Você já é um cidadão em nossa cidade"

    End Select

End Sub

 

OMG! Que code mais complexo e criativo, mereço um prêmio nobel hahaha

 

Só uma duvida boleta, Como passaria essa clausula If para uma Select Case?:

 

num = blabla

If num > 30 and num < 50 then

     blablabla

End If

tentei assim:

num = blabla

Select Case num

Case num > 30 And num < 50

    blablabla

End Select

Mas não deu não sei porque

 

Obrigada por mais uma aula,

Vufusuf

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Boa boleta, só uma duvida

quando eu coloco uma case, automaticamente aparece um Is (exemplo, escrevi aqui Case >= 30, apareseceu, Case Is >= 30)

Ignoro isso?

 

EDIT: Já axei o problema, não tinha declarado a variável no Case.

Descobri que quando não á declaro tem que ter o Is

EDIT2: Meu Exercicio (tava sem a minima criatividade lol)

Private Type Member

    Posts As Integer

End Type

Dim Sobre As Member



Private Sub Command1_Click()

    Sobre.Posts = InputBox("Digite a quantidade de posts que você tem", "Posts")

    Select Case Sobre.Posts

    Case Is < 30

        Label1.Caption = "Você é apenas um viajante"

    Case Is >= 30

        Label1.Caption = "Você já é um cidadão em nossa cidade"

    End Select

End Sub

 

OMG! Que code mais complexo e criativo, mereço um prêmio nobel hahaha

 

Só uma duvida boleta, Como passaria essa clausula If para uma Select Case?:

 

num = blabla

If num > 30 and num < 50 then

     blablabla

End If

tentei assim:

num = blabla

Select Case num

Case num > 30 And num < 50

    blablabla

End Select

Mas não deu não sei porque

 

Obrigada por mais uma aula,

Vufusuf

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Hmm 2 coisas:

 

blabla é uma variavel? Se não, você tem de declara-la. Além disso, terá de ter um valor integer, para armazenar numeros, de acordo com a condição ali que você tá tentando criar.

 

Sobre o Is, eu não sabia dessa o0

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Hmm 2 coisas:

 

blabla é uma variavel? Se não, você tem de declara-la. Além disso, terá de ter um valor integer, para armazenar numeros, de acordo com a condição ali que você tá tentando criar.

 

Sobre o Is, eu não sabia dessa o0

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Sim, é uma variável, mas o blabla é só um exemplo, nao coloquei como integer nada, so pra saber mesmo

 

O que queria fazer é assim, Se o valor for maior que 30 e menor que 50, então...

Mas com select Case

Tem como??

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Sim, é uma variável, mas o blabla é só um exemplo, nao coloquei como integer nada, so pra saber mesmo

 

O que queria fazer é assim, Se o valor for maior que 30 e menor que 50, então...

Mas com select Case

Tem como??

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Tá certinho... Só acho que não precisa do Is ali não... Só se você não atribuir uma variável à cláusula.

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Tá certinho... Só acho que não precisa do Is ali não... Só se você não atribuir uma variável à cláusula.

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Johnnie Walker    0
Johnnie Walker

Boleta sempre arrasando no VB!

 

Boleta é meu mestre em VB ^^"

 

Boleta é Safado!

 

Boleta~~

 

Hahaha, da próxima vez da um exerício mais legal ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Johnnie Walker    0
Johnnie Walker

Boleta sempre arrasando no VB!

 

Boleta é meu mestre em VB ^^"

 

Boleta é Safado!

 

Boleta~~

 

Hahaha, da próxima vez da um exerício mais legal ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Jovial    2
Jovial

muito bom... fiz um programinha legal zuando uns amigos ehauehauehau

Private Type Char

   nick As String

   lvl As Long

End Type

Dim User As Char

 

Private Sub Command1_Click()

On Error GoTo aff

If User.nick = "soul mezert" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Paulo, sua mae se chama Rosangela e sua prima é d+", vbExclamation + vbOKOnly, "Informações"

ElseIf User.nick = "Soul Mezert" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Paulo, sua mae se chama Rosangela e sua prima é d+", vbExclamation + vbOKOnly, "Informações"

ElseIf User.nick = "Pi of Guardia" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Luis Henrique, sua mae se chama Elaine e sua irmã é d+", vbExclamation + vbOKOnly, "Informações"

ElseIf User.nick = "pi of guardia" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Luis Henrique, sua mae se chama Elaine e sua irmã é d+", vbExclamation + vbOKOnly, "Informações"

Else

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Não sei mais nada sobre voçe", vbExclamation + vbOKOnly, "Informações"

End If

Exit Sub

aff:

MsgBox "Essa merda deu pau", vbOKOnly + vbExclamation, "Aff deu pau"

End Sub

 

Private Sub Form_Load()

On Error GoTo aff2

User.nick = InputBox("Digite seu nick", "Nick")

User.lvl = CInt(InputBox("Digite seu level", "Level"))

Exit Sub

aff2:

MsgBox "voçe nao pode deixar campos em branco", vbExclamation + vbOKOnly, "Erro"

End Sub

Professor boleta é melhor que meu professor de Biologia =P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Muito bom seu programinha Jovial! Ta aprendendo bem

 

Mas da pra você trocar isso

If User.nick = "soul mezert" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Paulo, sua mae se chama Rosangela e sua prima é d+", vbExclamation + vbOKOnly, "Informações"

ElseIf User.nick = "Soul Mezert" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Paulo, sua mae se chama Rosangela e sua prima é d+", vbExclamation + vbOKOnly, "Informações"

Por isso:

If User.nick = "soul mezert" or User.nick = "Soul Mezert" Then

MsgBox "Seu nick do seu char é " & User.nick & " Level: " & User.lvl & " Voçe se chama Paulo, sua mae se chama Rosangela e sua prima é d+", vbExclamation + vbOKOnly, "Informações"

Ficou 2x menor o code, e teve o mesmo efeito.

Quando você tem mais de uma condição para realizar o mesmo code na cláusura, você usa Or (ou).

Lembrando que se vc usar And para interligar as condições, todas deverão ser verdadeiras para realizar o códio, e se você usar Or, se apenas uma das condições for verdadeiras o código já será rodado.

 

Exemplo:

If [condição1] And [condição2] Then
Ai ambas condições deve ser True

 

If [condição1] Or [condição2] Then
Nesse caso qualquer uma das condições podem ser verdadeiras para a ação acontecera.

 

 

São detalhes bobos que agente aprende com o tempo, eu mesmo todo dia tou aprendendo uma coisa.

O conhecimento no mundo da programação não tem limite.

Abraços,

Vufusuf

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Muito bem Jovial e Vufusuf! Estão de parabéns.

Sobre a correeção do código ali, ficou excelente, porém, não excepcional, pois se a intenção do usuário é verificar se o cara digitou "Soul Mezert" independente das letras maiúsculas, ele não retornará "True" quando o cara digitar "Soul MEzert" não é?

 

Em todo o caso, no Visual Basic temos uma função que converte tudo o que está em certa string em minúsculo. Vejamos um exemplo de como usar:

 


Dim Variavel As String

Variavel = InputBox("Digite seu nome", "Nome")

If LCase(Variavel) = "soul mezert" Then

Codigos

End if

Você também pode transformar a váriavel e retornar o valor à ela mesma:

 


Dim Variavel As String

Variavel = "LaLaLaLaLaLaLaLaLa"

Variavel = LCase(Variavel)

Enfim, como eu não havia ensinado, não há problema errar(na verdade, não há problema errar nunca), então que sirva de exemplo pros seus próximos códigos.

 

Dúvidas? Não hesite em postar.

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Aprendi ontem em uma aula a usar as funções (LCase, Str, Val, UCase, Left...) :)

 

 

Boleta, dava pra você incluir na proxima aula essas função, que é bem simples e facil.

Compartilhar este post


Link para o post
Compartilhar em outros sites
viniciusfeijo    0
viniciusfeijo

Aew bele velho? seguinte, pq vc n posta apostilas de Vb.Net, eh o VB mais atualizado que tem, mas pra quem quiser usar o Vb.Net tem q baixar o programa de desenvolvimento de VB.net ou entao o Visual Studio que inclui o VB.net e muitas outras linguagens juntas para desenvolvimento... da uma pensada ai, flw xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Cara, tem uma seção para VB.NET

Aqui é apenas VB

Compartilhar este post


Link para o post
Compartilhar em outros sites
sipmann    0
sipmann

huasahuh vlw meus type n tavam funcionando e eu n sabia pq ASHUASHUASHUASHUASHU

vlw descubri o erro ^^'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×