Visual Basic #5 – As Estruturas de Controlo
Por Juliano Almeida para o Pplware Peço desculpa pelo atrasado, mas não me foi permitido conseguir acabar o artigo a tempo, espero que não volte a acontecer.
Continuando com o exemplo do café e retomando à programação estruturada, vamos supor que ao chegar ao módulo acender fogão, num certo contexto, o fogão já estava aceso. O “cozinheiro” (ou uma máquina encarregada de executar as instruções) iria tentar executar os passos contidos nesse módulo, sem qualquer necessidade. Mais, iria gastar tempo e material, inutilmente. O que não aconteceria se houvesse uma estrutura de controlo, ou seja, uma estrutura que verificasse da necessidade (ou não) de determinada acção.
Vamos supor que seguimos a ordem que primeiro propusemos:
1 – Módulo cafeteira – água – fogão 2 – Módulo acender fogão 3 – Módulo café
O módulo em causa, ou seja, aquele que seria dispensável caso o fogão já se encontrasse aceso, seria o correspondente ao 2º passo: acender fogão.
Imediatamente após ter executado as instruções do módulo cafeteira – água – fogão seria, pois, necessário verificar se o fogão estava aceso antes de entrar no módulo acender fogão. E caso, isso fosse verdade, passar para o módulo café directamente sem executar as instruções do módulo acender fogão.
Para isso bastaria acrescentar uma instrução do tipo estrutura de controlo entre o primeiro e o segundo passo, passando o 2º a ser 3º e este a ser 4º.
Assim:
1 – Módulo cafeteira – água - fogão 2 – SE o fogão estive aceso ENTÃO vá directamente para o passo 4 3 – Módulo acender fogão 4 – Módulo café
Como as instruções estão cumpridas sequencialmente, passo a passo, no 2º passa a haver uma instrução de controlo que verifica a situação do fogão: caso esteja apagado, tudo segue normalmente; caso esteja aceso, o módulo acender fogão é ultrapassado sem que as suas instruções sejam cumpridas. Ora era isso exactamente que se pretendia.
A estrutura que utilizámos pertence ao grupo estruturas de decisão e tem a sintaxe Se Então (If…Then…). Existem outros tipos de estruturas de controlo, mas isso fica para outro artigo 😉
A partir de hoje, a parte teórica vai ser igual à parte executável (aplicação), por isso hoje vamos trabalhar com If…Then.
O que proponho é criar uma simples aplicação com duas textbox e um botão que ao introduzir a palavra “Pplware” na textbox1 quando clicamos no botão a textbox2 apresente o texto “Visual Basic #5 – Estruturas de Controlo” e também um botão para limpar as caixas de texto.
Só precisamos de introduzir código nos botões.
O primeiro botão vai ter o nome de Descodificar e o seguinte código(Visual Basic 2009):
Visual Basic 6:
If text1.text = “Peopleware” then text2.text = “Visual Basic #5 – Estruturas de Controlo”
O Segundo botão vai ter o nome de Limpar e o seguinte código (Visual Basic 2008 e Visual Basic 6):
Agora vou deixar aqui um desafio, adicionarem um código no botão “Descodificar” para que ao introduzir outra coisa qualquer que não seja Pplware este apresente na Textbox2 “ Tente novamente”.
Este desafio é para ser respondido pelos leitores com um comentário, o primeiro a dizer a solução, esta será apresentada na próxima semana, se ninguém conseguir resolver, a resposta também será apresentada na próxima semana, atenção, quero coisas simples 😉
Este artigo tem mais de um ano
(a seguir ao IF)
ELSE TextBox2.Text = “Tente novamente”
ya e isso..
MAS FALTA O END IF!!! :p lol
Já não mexo em Basic há uns tempos mas tinha a sensação que me faltava alguma coisa he he
lol fiz uma pesquisa no google e descobri que não é preciso o End If se estiver tudo na mesma linha, toma toma he he
olha essa nao sabia eu… nunca toquei mto em vb .net mas no vb6 era mesmo preciso nem que fosse na mesma linha se nao tou em erro 🙂
Não, não,… estás enganado… Se tudo estiver na mesma linha não é preciso por end if…
Toma lá… 😉
Eheheh
“o primeiro a dizer a solução, esta será apresentada na próxima semana, se ninguém conseguir resolver, a resposta também será apresentada na próxima semana,”
ou seja, fica tudo na mesma 😀
Bom artigo, e olha que isso dos desafios é boa ideia, mas tenta fazer um pouco mais puxados, ou então 2: uma para quem se está a iniciar, e outro para utilizadores já avançados em VB.
Cumps.
Problemas avançados:
Impedir a escrita pelo utilizador na textbox2;
Impedir clicar no botão limpar se caixas de texto estão vazias;
Quando clica em “Descodificar” bloquear todas as caixas de texto;
Eliminar a parte superior onde se lê: Form1
Criar um botão “Sair”: esta é fácil: End…lol
Criar um botão “Encerrar o computador” e respectiva acção…esta não é para qualquer um…é para um qualquer!! 🙂
Para já chega….
Isso é fácil, vamos por ordem:
1º
basta ir nas propriedades da textbox e onde diz enable por true
2º
if TextBox1.text=”” and TextBox2.text=”” then
limpar.enable=true
else
limpar.enable=false
end if
3º
textbox1.enable=true
textbox2.enable=true
este código é colocado no descodificar
4º
esta é das mais fáceis, basta ir as propriedades do form, procurar o text e apagar o que diz lá
5º
criar o botão é fácil
6º
a resposta à ultima, não vou dar ainda.
Cumps.
Para a questao de encerrar o windows… em VB6:
Const EWX_LogOff As Long = 0
Const EWX_SHUTDOWN As Long = 1
Const EWX_REBOOT As Long = 2
Const EWX_FORCE As Long = 4
Private Declare Function ExitWindows _
Lib “User32” Alias “ExitWindowsEx” _
(ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
E depois é algo como
ExitWindows EWX_SHUTDOWN, &HFFFFFFFF
Para vb.net é mais simples 🙂
System.Diagnostics.Process.Start(“shutdown”, “-s -t 00”)
Uma correcção de erros: Fábio Palma
2º –> trocas de trues e falses
3º –> todas as textbox=false
—————
Esclarecimento ao 4º:
Tirar toda a barra de titulo(simbolo+nome de form+botões:minimizar+maximizar+fechar)
Não levem isto a mal…Apenas com o objectivo de aprender a brincar.
Peço desculpa pela minha falha, lool, faço sempre confusão.
Em relação à barra, ainda tenho que pesquisar.
Bem, não estou aqui para brincar com vb… mas se estivesse e se fosse iniciante em programação mesmo querendo “desvendar sozinho o mistério” dos blocos de controlo acabaria por indubitavelmente ler o primeiro post estragando a festa toda…
Não é por nada de mais mas penso que os observantes deveriam restringir-se nos comentários ou então criar algum atributo ‘spoiler’ e só quem clicasse veria 🙂
Quanto ao atraso que não se volte a repetir… na brinca lol
keep up with the good work
Já agora agradeço ao autor destes posts Vítor M. pela grande iniciativa…Uma boa explicação para quem nunca viu programação à frente…pena só estar a publicar no momento em que já passei a aprendizagem de VB, como também Pascal e C. E neste momento a acabar Java(Muito bom…recomendável).
Mas é sempre bom aprender novas instruções ou recordar linhas de código..:)
Inevitavelmente reencaminho os teus agradecimentos para o Juliano Almeida, ele sim autor deste muito concorrido tópico.
Obrigado e peço desculpa pelo lapso, falta de atenção.
Olá,
para o caso de querem que apareça numa msgbox o código é:
if TextBox1.text=”Peopleware” then
TextBox2.text=”Visual Basic #5 – Estruturas de Controlo”
else
msgbox (‘Tente novamente!’, msgboxexclamation + msgboxonlyok,’ERRP!’)
endif
Mas como querem que apareça na TextBox2, é mais fácil:
if TextBox1.text=”Peopleware” then
TextBox2.text=”Visual Basic #5 – Estruturas de Controlo”
else
TextBox1.text=””
TextBox2.text=”Tente Novamente”
end if
fiquem bem pessoal.
Tiago Azevedo,
No teu ponto:
Eliminar a parte superior onde se lê: Form1
Vamos as propriedades do form e na propriedade “Text”, apagas tudo e a propriedade “controlbox” = false e resolves esse problema…
cumps,
Acabou o curso? estava a adorar, será que não anda por aqui ninguém com vontade de continuar?
De certeza que temos aí alguém com jeito e experiencia para ensinar e mostrar coisas bonitas que se conseguem fazer com o VB.
Pois…Também estava a gostar!
Se fosse possivel continuar com o “curso” agradecia 😛
\o
Boas pessoal, aprendi algumas coisas ainda aqui , não há mais curso 😛
Bem, eu comecei este ano a programar em Visual Basic 6.0.. tenho que postar no blogspot para a prof depois ir lá e dar a nota, deixo aqui para vocês verem http://florindo6.blogspot.com/
espero que ajude em alguma coisa ;D
Estou as espera dos proximos Tut’s.
Bons Post’s
Pois…Parece que já não ha ninguem para dar seguimento a isto 😡
O que é uma pena, pois estava a ser interessante…
Poderiam fazer algo do tipo para interagir com a porta COM, receber e enviar dados… Era interssante!
E andar com isto para a frente, não????????
😉
Gostava que continuasse
Então? Já não há mais? Isto ficou muito no início…