Ir para conteúdo
Entre para seguir isso  
Boleta

[Aula 5] Clausulas de Programação

Recommended Posts

Boleta    1
Boleta

Olá a todos!

 

Em mais um tutorial sobre programação em Visual Basic, hoje vou abordar um tema muito legal e usado em qualquer tipo de programação: As Clausulas de programação.

 

 

As clausulas de programação:

 

Uma clausula de programação é usada quando se dá uma condição à algum termo, sendo que é executado quando é retronado um valor TRUE. Isso que dizer que quando eu der uma condição ao programa, e essa condição se adequar à algum tipo de comparação, ela executará uma sequência de códigos. Se ficou um pouco confuso, veja logo a seguir as 2 clausulas mais usadas:

 

 

Clausulas Condicionais (ou clausulas If)

 

Essa clausula estabelece uma condição e executa os códigos caso essa condição seja verdadeira (TRUE). Suas sintaxes são as seguintes:

If [condição] Then [comando]
Essa sintaxe é usada quando o usuário pretende executar apenas um comando. Repare que If em inglês significa Se, e Then significa Então. Se fossemos aportuguesar a sintaxe, ficaria:

 

Se a condição for verdadeira Então execute o comando

 

Não é tão complicado assim, não é mesmo?

Vamos ao otro exemplo:

If [condição] Then[comandos]End If
Note que neste caso devemos fechar a cláusula, usando End If

Ah, podemos também atribuir uma ou mais excessões para a condição. Para atribuir somente uma, usamos a seguinte sintaxe:

If [condição] Then[comandos]Else[comandos]End if
Note que usamos Else, que inglês significa Se não.

Para atribuir mais, usamos:

If [condição] Then[comandos]Elseif [condição] Then[comandos]Else[comandos]End if
Você pode adicionar quantos ElseIfs quizer. Quando as condições não retornarem nenhum valor TRUE, será pulado para o Else. Você também pode colokar Condições dentro de condições:

If [condição] Then   If [condição] Then       If [condição] Then           [comandos]        Else           [comandos]        End If    Else        [comandos]    End ifElse     [comandos]End If
Um código de exemplo para o uso desta cláusula é o seguinte (você vai precisar de um CommandButton chamado Command1):

 

Private Sub Command1_Click()If Command1.Caption = "Clique Aqui" ThenCommand1.Caption = "Clique de novo"ElseCommand1.Caption = "Clique Aqui"End IfEnd Sub
Rode o projeto e veja o que acontece.

 

 

Clausulas Loop

 

Essa clausula é muito usada e importante para a maioria dos projetos. Ela repete o mesmo código várias vezes em grande velocidade até que uma condição se estabeleça. Temos 3 tipos de clausula. Vou mostrar 2 hoje: While e Until.

 

While

 

Ela repete um código enquanto uma condição for verdadeira. Sua sintaxe é:

Do While [condição][comandos]Loop
Pode ser usado assim também:

Do[comandos]Loop While [condição]
Exemplo:

Private Sub Form_Load()Dim i As IntegerDo While i < 10MsgBox ii = i + 1LoopEnd Sub
Until

 

Ele repete o código até que a condição se torne verdadeira. Sua sintaxe é:

 

Do Until [condição][comandos]Loop
Pode ser usado assim também:

Do[comandos]Loop Until [condição]
Exemplo:

Private Sub Form_Load()Dim i As IntegerDo Until i = 10MsgBox ii = i + 1LoopEnd Sub
----------------------------------------

 

Exercício

 

Faça com que o usuário digite alguma coisa e que ela seja impressa na tela mais de 5 vezes. Use também algo para verificar consições em clausulas condicionais. Tente usar os conceitos de tudo o que você aprendeu até hoje.

 

Espero que a aula tenha sido produtiva. Qualquer dúvida, poste aqui.

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

só 1 coisa...nao sei porque mais quando eu rodo o primeiro exemplo Private Sub Command1_Click() If Command1.Caption = "Clique Aqui" Then Command1.Caption = "Clique de novo" Else Command1.Caption = "Clique Aqui" End If quando eu clico aparece compile error : expected end sub na linha 1.....eu já tenhu u command e tal com o nomme command1....só n sei pq deu isso Oovlws ae ^^ahhhh esquecee já resolvi o problema....tava faltando o end sub http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/biggrin.gif(nossa to me tornando master em vb ynguADGUNDu)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

@Vasigap

 

É, realmente está faltando o End Sub ali =P. Obrigado pelo avizo, vou modificar no tópico.

Que bom que gostou ^^

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Axe    0
Axe

e ai kra ta certo?Private Sub Form_Load()MsgBox "Olá Mundo! Veremos seu sexo!", vbExclamation + vbOKOnly, "vc gosta?o=========D"InputBox "Digite Seu Nome e essa maquina vera se vc eh [Palavrão Censurado].0 = maxo 1= homi 2= menino 3= garoto 4= garota 5= corintianu", "Vc eh [Palavrão Censurado]?"Dim i As IntegerDo Until i = 5MsgBox ii = i + 1LoopDim Letras As StringDim Num As IntegerDim Letras1 As StringMsgBox "Olha vc só eh filho da [Palavrão Censurado], fedido e ladrao ^^ e tb apenas infinitas vezes bixa", vbExclamation + vbOKOnly, "biba o/"End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boleta    1
Boleta

Sim, está certo, porém não vi exemplos de clausulas condicionais o0.

 

Abraços,

//Bol~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Axe    0
Axe

pera vo tentar por uma... depois edito aki as clausulas sao akeles if e else if neh?

Compartilhar este post


Link para o post
Compartilhar em outros sites
!Jã!    0
!Jã!

Boa cara!

 

Essa aula que você deu sobre cláusulas vale até para actions de OT entre outras coisas...

 

Eu não vou fazer nada assim ainda pq na verdade, esta é a primeira vez que me interessei por programação, vou dar uma olhada em alguns tutos/aulas e etc... Pra ter uma idéia... Mais tarde eu posto algum código aqui pra ver se dá certo =P

 

Abraços,

#!Jã!$//

Compartilhar este post


Link para o post
Compartilhar em outros sites
Axe    0
Axe

kra melhorou? só q esotu com um problema no if e no else q nao estao realizando suas funçoe sdireito vc poderia me ajudar?Private Sub Form_Load()MsgBox "Olá Mundo! Veremos seu sexo!", vbExclamation + vbOKOnly, "vc gosta?o=========D"Inputbox "Digite Seu Nome e essa maquina vera se vc eh [Palavrão Censurado].0 = maxo 1= homi 2= menino 3= garoto 4= garota 5= corintianu", "Vc eh [Palavrão Censurado]?"Dim i As IntegerDo Until i = 5MsgBox ii = i + 1LoopIf i = 1 ThenMsgBox "Oq sera q vai vir?", vbExclamation + vbOKOnly, "nao sei..."ElseIf i = 5 ThenInputbox "Qual seu time?"Else: i = 1MsgBox "Oq sera q vai vir?", vbExclamation + vbOKOnly, "nao sei..."End IfDim Letras As StringDim Num As IntegerDim Letras1 As StringMsgBox "Olha vc só eh filho da [Palavrão Censurado], fedido e ladrao ^^ e tb apenas infinitas vezes bixa", vbExclamation + vbOKOnly, "biba o/"End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites
!Jã!    0
!Jã!

Axe, não sei se vai funcionar, não sei muita coisa sobre programação, mas dê uma revisada nesses End's, axo que o problema é algo assim, pq pelo que vi o código tah bom... Espera o bol responder aí.. Acho que o End if que deve estar com problemas.EDIT: Acho que o problema eh que depois do Loop você não colocou End Sub antes da linha If, tente fazer isto =PFlws

Compartilhar este post


Link para o post
Compartilhar em outros sites
Axe    0
Axe

se fizer isso tem q adicionar algo antes do If depois oq eu adicionaria?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Seguinte Axe:Você colocou as cláusula condicionais(ifs) fora do loop, com isso você deixa a aplicação contar de 1 à 5 e só depois vai fazer as verificações do estado do contador.Outro erro no código é que as variáveis em VB 6 devem ser declaradas no começo da rotina e não em qualquer parte dela.Mais um erro, você utilizou o caracter ':' no else e atribuia 1 ao valor do contador o que zerava o loop.Além disso você declarou variáveis e não as utilizou.Dica para o loop:Utilize For no lugar de While ou Until quando desejar fazer um contador.Veja o seu código reformulado:

Private Sub Form_Load()    Dim i As Integer    MsgBox "Olá Mundo! Veremos seu sexo!", vbExclamation + vbOKOnly, "vc gosta?o=========D"    InputBox "Digite Seu Nome e essa maquina vera se vc eh [Palavrão Censurado].0 = maxo 1= homi 2= menino 3= garoto 4= garota 5= corintianu", "Vc eh [Palavrão Censurado]?"    For i = 0 To 5        If i = 1 Then            MsgBox "Oq sera q vai vir?", vbExclamation + vbOKOnly, "nao sei..."        ElseIf i = 5 Then            InputBox "Qual seu time?"        Else            MsgBox "Oq sera q vai vir?", vbExclamation + vbOKOnly, "nao sei..."        End If    Next    MsgBox "Olha vc só eh filho da [Palavrão Censurado], fedido e ladrao ^^ e tb apenas infinitas vezes bixa", vbExclamation + vbOKOnly, "biba o/"End Sub
Vá devagar, não precisa tentar aprender as cláusulas mais complicadas logo!Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Axe    0
Axe

puts valew kra mais tava bom para um iniciante?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Tava muito bom, mas é o que eu falei: a aprendizagem é como uma escada, você não deve subir mais um degrau se ainda não fixou bem os pés no que ainda está. Caso contrário uma hora terá que voltar a esse ponto.Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gotcky    0
Gotcky

Bom... foi o que deu pra fazer

Private Sub Command1_Click()Usuario = Text1.TextDim Codigo As VariantCodigo = Text2.TextIf Usuario = "Alex" Then        If Codigo = 2345 Then        MsgBox "Bem Vindo", vbOKOnly, "Bem Vindo !"        Else    MsgBox "O Codigo de Acesso esta errado", vbExclamation, "Error"    End IfElseMsgBox "Usuario não cadastrado", vbExclamation, "Error"End IfEnd Sub
tentei usar as clausulas de loop para fazer depos de aperta 2x o botão ele fica com o enabled = flase.. mais no deu... me fala aew como faz..kiria saber tambem como faz para os numeros ficarem tpo assim: *****p.s: Viajei legal no tema.. tpo uma tela de loguin..=p Ta bom o meu code ??

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Gotcky, como eu já expliquei para outros 2 usuários, você só deve declarar as variáveis no inicio da rotina. Não em qualquer parte dela, caso contrário a variável não será declarada.Sempre que for possível não utilize o tipo Variant, pois ele ocupa espaço demais na memória.Use Strings para códigos, mesmo que sejam apenas números pois assim você tem mais espaço de armazenamento. Veja:O tipo Integer do Visual Basic possui 16 bits, logo seu valor máximo é:65535Sendo assim o código 65536 não seria aceito.Muito menos o 70000, assim será muito facil descobrir senhas no seu sistema.Agora vamos ver uma String, que lida com os caracteres de maneira diferente:Cada caracter pode variar seu código ascii de 0 à 255, isto é 1 byte(8 bits).A string ocupará mais espaço para armazenar seus dados, por outro lado você poderá armazenar quantos numeros puder e a sua memória RAM suportar já que a cada novo caracter adicionado em uma string ela adquire mais 1 byte de capacidade de armazenamento podendo armazenar mais 1 caracter. E assim vai até acabar com a capacidade da memória RAM. Ora, se 1024 bytes são 1 kilobyte e 1024 kilobytes são 1 megabyte. Se você tiver 128 MB de memória RAM precisará escrever 1024 * 1024 números para chegar ao seu limite! Meio dificil né?Tente se policiar em declarar todas as variáveis que for utilizar, e sempre no inicio da rotina para que elas realmente sejam declaradas.Para que a sua TextBox não mostre seu verdadeiro valor, em vez disso um caracter como o * basta procurar pela propriedade PasswordChar e coloque o caracter que você quer que apareça no lugar dos caracteres verdadeiros.Aqui vai o seu código editado para que não haja erros e com o sistema para desabilitar o botão após o segundo clique:

Private Sub Command1_Click()    Static CliquesNoBotao As Integer    Dim Codigo As String    Dim Usuario As String    Usuario = Text1.Text    Codigo = Text2.Text    If Usuario = "Alex" Then        If Codigo = "2345" Then            MsgBox "Bem Vindo", vbOKOnly, "Bem Vindo !"        Else            MsgBox "O Codigo de Acesso esta errado", vbExclamation, "Error"        End If    Else        MsgBox "Usuario não cadastrado", vbExclamation, "Error"    End If    CliquesNoBotao = CliquesNoBotao + 1    If CliquesNoBotao >= 2 Then Command1.Enabled = FalseEnd Sub
Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
FireHell    0
FireHell

Assim?

Private Sub Command1_Click()Dim contador As IntegerFor contador = 1 To 6MsgBox " " & Text1.Text & " ?"NextEnd Sub[/b]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Muito bom FireHell, só nã entendi por que o " " no começo da mensagem da MsgBox.Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
FireHell    0
FireHell

@ZeroÉ que eu sempre esqueço ;P, ai é melhor sobrar do que falat né.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Convidado kinabr   
Convidado kinabr

Quero saber o q tem de errado no meu code

Private Sub Command1_Click()Dim i As IntegerMsgBox , "O q q vc é?", vbExclamation + vbOKOnly, "O q q foi?"InputBox , "0 = Normal, 1 = retardado, 2 = debi mental ,3 =  maluco ou 4 = extraterrestre",  vbExclamation + vbOKOnly, "Vc é normal?"For i = 0 To 5If i = 1 ThenMsgBox , "N pense q vai ter sua resposta", vbExclamation + vbOKOnly, "^^"End IfNextMsgBox "VOCÊ É MALUCO RETARDADO E TD RUIM DE Q EXISTE NO MUNDO", vbExclamation + vbOKOnly, "BABACA"End sub

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vufusuf    1
Vufusuf

Nossa, impressionante como da vontade de aprender com esses tutos

muito bom mesmo.

 

Algum Verdinho ae da uma analizada no meu exercicio sux que eu fiz ^^

 

Imagem do programa:

Imagem Postada

 

CODE (do botao iniciar jogo):

Private Sub Command1_Click()Dim pergunta1 As StringDim ponto As Integerponto = 0pergunta1 = InputBox("Babuíno é uma espécie de:" & vbNewLine & vbNewLine & "A) macaco" & vbNewLine & "B) cachorro" & vbNewLine & "C) cavalo", "Pergunta I")If pergunta1 = "a" Or pergunta1 = "A" ThenMsgBox "Você acertou, Mais um ponto pra você", vbExclamation, "Resposta correta"ponto1 = ponto + 1Text1.Text = ponto1ElseMsgBox "Você errou, Menos um ponto pra você", vbExclamation, "Resposta incorreta"ponto1 = ponto - 1Text1.Text = ponto1End Ifpergunta2 = InputBox("4+3 é:" & vbNewLine & vbNewLine & "A) 43" & vbNewLine & "B) 12" & vbNewLine & "C) 7", "Pergunta II")If pergunta2 = "c" Or pergunta1 = "C" ThenMsgBox "Você acertou, Mais um ponto pra você", vbExclamation, "Resposta correta"ponto2 = ponto1 + 1Text1.Text = ponto2ElseMsgBox "Você errou, Menos um ponto pra você", vbExclamation, "Resposta incorreta"ponto2 = ponto1 - 1Text1.Text = ponto2End Ifpergunta3 = InputBox("O computador do Vufusuf fica:" & vbNewLine & vbNewLine & "A) Na casa do cachorro" & vbNewLine & "B) No banheiro" & vbNewLine & "C) No quarto", "Pergunta III")If pergunta3 = "c" Or pergunta1 = "C" ThenMsgBox "Você acertou, Mais um ponto pra você", vbExclamation, "Resposta correta"ponto3 = ponto2 + 1Text1.Text = ponto3ElseMsgBox "Você errou, Menos um ponto pra você", vbExclamation, "Resposta incorreta"ponto3 = ponto2 - 1Text1.Text = ponto3End Ifpergunta4 = InputBox("Esse programa foi feito no:" & vbNewLine & vbNewLine & "A) Paint" & vbNewLine & "B) VisualBasic" & vbNewLine & "C) Bloco de notas", "Pergunta IV")If pergunta4 = "b" Or pergunta1 = "B" ThenMsgBox "Você acertou, Mais um ponto pra você", vbExclamation, "Resposta correta"ponto4 = ponto3 + 1Text1.Text = ponto4ElseMsgBox "Você errou, Menos um ponto pra você", vbExclamation, "Resposta incorreta"ponto4 = ponto3 - 1Text1.Text = ponto4End Ifpergunta5 = InputBox("O Vufusuf é o melhor:" & vbNewLine & vbNewLine & "A) To em dúvida" & vbNewLine & "B) Sim" & vbNewLine & "C) Não", "Pergunta V")If pergunta5 = "b" Or pergunta1 = "B" ThenMsgBox "Você acertou, Mais um ponto pra você", vbExclamation, "Resposta correta"ponto5 = ponto4 + 1Text1.Text = ponto5ElseMsgBox "Você errou, Menos um ponto pra você", vbExclamation, "Resposta incorreta"ponto5 = ponto4 - 1Text1.Text = ponto5End Ifresultado = Text1.TextIf resultado < -4 ThenMsgBox "Meu deus, você é um caso sem solução, você fez " & resultado & " pontos.", vbExclamation, "Resultado"ElseIf resultado < 1 And resutlado > -3 ThenMsgBox "Precisa estudar mais cara, você fez " & resultado & " pontos.", vbExclamation, "Resultado"ElseIf resultado < 5 And resultado > 0 ThenMsgBox "Dava pra ser melhor, você fez " & resultado & " pontos.", vbExclamation, "Resultado"ElseIf resultado = 5 ThenMsgBox "Era mais que obrigação ter acertado tudo.", vbExclamation, "Resultado"End IfText1.Text = 0End Sub
OBS.: Text1 é um label que eu fiz onde marca os pontos

OBS2.: Não fiz exatamente o que estava pedindo no, mas consegui fazer exatamente o que tava pedindo nele

 

Hehe, um code deste tamanho pra faze uma bostinha dessa xD

Valeu,

Vufusuf

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.

×