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 ;)

  
     Pin It  

Arquivado na categoria: Tutoriais, Visual Basic


26 Comentários

  1. (a seguir ao IF)

    ELSE TextBox2.Text = “Tente novamente”

  2. ya e isso..

    MAS FALTA O END IF!!! :p lol

  3. 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 :D

    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:

        basta ir nas propriedades da textbox e onde diz enable por true

        if TextBox1.text=”" and TextBox2.text=”" then
        limpar.enable=true
        else
        limpar.enable=false
        end if

        textbox1.enable=true
        textbox2.enable=true
        este código é colocado no descodificar

        esta é das mais fáceis, basta ir as propriedades do form, procurar o text e apagar o que diz lá

        criar o botão é fácil

        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.

  4. 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

  5. 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..:)

  6. 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.

  7. 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,

  8. 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.

  9. Pois…Também estava a gostar!

    Se fosse possivel continuar com o “curso” agradecia :P

    \o

  10. Boas pessoal, aprendi algumas coisas ainda aqui , não há mais curso :P

    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

  11. Estou as espera dos proximos Tut’s.

    Bons Post’s

  12. Pois…Parece que já não ha ninguem para dar seguimento a isto :x

    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!

  13. E andar com isto para a frente, não????????

    ;)

  14. Gostava que continuasse

  15. Então? Já não há mais? Isto ficou muito no início…

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.