Boleta 1 #1 Postado 12 Novembro, 2006 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 IfNote que neste caso devemos fechar a cláusula, usando End IfAh, 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 ifNote 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 ifVocê 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 IfUm 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 SubRode 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]LoopPode 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]LoopPode 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 #2 Postado 18 Novembro, 2006 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 #3 Postado 18 Novembro, 2006 @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 #4 Postado 19 Novembro, 2006 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 #5 Postado 19 Novembro, 2006 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 #6 Postado 19 Novembro, 2006 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 #7 Postado 19 Novembro, 2006 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 #8 Postado 19 Novembro, 2006 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 #9 Postado 19 Novembro, 2006 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 #10 Postado 19 Novembro, 2006 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 #11 Postado 19 Novembro, 2006 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 SubVá 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 #12 Postado 19 Novembro, 2006 puts valew kra mais tava bom para um iniciante? Compartilhar este post Link para o post Compartilhar em outros sites
Zero 0 #13 Postado 19 Novembro, 2006 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 #14 Postado 19 Novembro, 2006 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 Subtentei 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 #15 Postado 19 Novembro, 2006 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 SubAbraços! Compartilhar este post Link para o post Compartilhar em outros sites
FireHell 0 #16 Postado 3 Dezembro, 2006 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 #17 Postado 3 Dezembro, 2006 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 #18 Postado 3 Dezembro, 2006 @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 #19 Postado 5 Dezembro, 2006 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 #20 Postado 5 Dezembro, 2006 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: 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 pontosOBS2.: 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