Começar a programar em Small Basic - Parte 7

Na série de artigos para aprender Small Basic: Começar a programar em Small Basic, neste artigo, vamos mais uma vez melhorar o nosso programa Olá Mundo!. A funcionalidade que vamos adicionar hoje é por colocar o programa no arranque a dizer: Bom dia, Boa tarde ou Boa noite, conforme a hora do dia.

Se está iniciar-se no Small Basic, então o melhor é começar pelo inicio. E os artigos já publicados são estes:
Primeiro de tudo para que possamos dizer Bom dia, Boa tarde ou Boa noite, temos de saber qual a hora atual, para isso vamos usar novamente o Objeto Clock (relógio), e para saber a hora actual usamos a Propriedade Hour (hora). E claro, temos de guardar a hora atual em qualquer lado e para isso criamos a variável: hora. Tudo junto dá esta linha de código:
hora = Clock.Hour
Agora que já sabemos a hora atual, precisamos definir a hora mínima e máxima  para dizer Bom dia, Boa tarde, etc. Isto é um pouco subjectivo, pois quando decidimos dizer Bom dia ou Boa noite uns dizem a uma altura do dia, outros mais tarde ou mais cedo, depende também do país em que moramos, e da altura do ano. Neste programa eu vou definir assim:
  • Bom dia - das 6:00 até 11:59
  • Boa tarde - das 12:00 até 19:59
  • Boa noite - das 20:00 até 5:59
Nota: Para simplificar um pouco o programa apenas irei comparar horas, pois se por exemplo definisse dizer Boa noite a partir das 19:30, aí já teria de comparar minutos.

O que precisamos de fazer são duas comparações entre dois limites (hora mínima e máxima) e ambos têm que estar verdadeiros para poder dizer a saudação.

Para podermos fazer comparações com limites mínimos e máximos usamos a seguinte estrutura condicional:
SE hora actual >= (for maior ou igual que) a hora mínima para dizer X E se a hora actual for <= (menor ou igual que) a hora máxima para dizer X, ENTÃO diz "X"
Ou seja com este código se usarmos por exemplo para dizer "Bom dia" o limite mínimo seria 6 e o máximo 11. Com esta comparação não estamos apenas a incluir o número 6 e o 11, mas sim: 6, 7, 8, 9, 10 e 11. Dito de outra forma: Se a hora actual for entre 6 (inclusive) e as 11 (inclusive) então diz "Bom dia".

O código fica assim:
If hora >= 6 And hora <= 11 Then
  TextWindow.WriteLine("Bom dia")
ElseIf hora >= 12 And hora <= 19 Then
  TextWindow.WriteLine("Boa tarde")
Else
  TextWindow.WriteLine("Boa noite")
EndIf
Basicamente o que estamos a comparar na primeira linha é o seguinte:
  • Se a hora for maior ou igual que 6 e se a hora for menor ou igual que 11 então diz "Bom dia"
Ou seja:
  1. O elemento >= significa maior ou igual que. Então estamos a comparar a variável hora se é maior ou igual que 6 visto que definimos que para dizer "Bom dia" seria a partir das 6:00.
    Esta primeira parte da comparação estamos a definir a hora mínima para dizer "Bom dia".
  2. Depois o elemento And significa e, serve para unir 2 comparações, a primeira parte da comparação com a segunda parte da comparação, e ambas as comparações têm de estar verdadeiras para que o código se possa executar.
  3. E por fim temos o elemento <= que significa o contrário do primeiro ou seja menor ou igual que. No caso da primeira linha está a comparar a variável hora se é menor ou igual que 11 visto que definimos que para dizer "Bom dia" seria até às 11:59.
    Esta segunda parte da comparação estamos a definir a hora máxima para dizer "Bom dia".
Neste exemplo usamos os elementos >= (maior ou igual que) e <= (menor ou igual que), porque queríamos incluir o número escrito na comparação, mas também podemos usar apenas o elemento > (maior que) ou < (menor que), a única diferença é que não estamos a incluir o número na comparação, ou seja neste caso para que a condição funcionasse igual o código seria assim:
If hora > 5 And hora < 12 Then
Desta forma a comparação seria entre os números 6,7,8,9,10 e 11; não incluindo o 5 ou o 12.

O código completo poderá fazer o download aqui.

Resumindo:
O que aprendemos nesta parte foram 2 coisas: Podemos fazer comparações entre 2 valores usando o elemento And (e) que une 2 comparações e ambas têm de estar verdadeiras. E podemos fazer comparações de números testando se esse número é maior (>) que o número definido; ou se esse número é menor (<) que o número definido.

Espero que este artigo não tenha sido confuso, visto que a estrutura IF às vezes pode ser um pouco complicada. Se foi complicado ou não percebeu alguma parte, simplesmente coloque aqui o seu comentário que o ajudarei a entender melhor!

3 comentários:

  1. vai ter mais tutorial ou para no nivel 7 ??
    muito bom seu blog, e sua explicação fria sucesso numa sala de aula.

    ResponderEliminar
  2. brigadao vey, me ajudou demais suas explicacões

    ResponderEliminar
  3. Ei achei que como somos poucos que falam portugues e gostam de small basic acho que deviamos nos ajudar. Bem, aqui vai meu site com codigos em small basic.
    aabproducoes.mywapblog.com
    Seu blog é demais. Obrigado.

    ResponderEliminar

Esteja à vontade para comentar! Critique, pergunte, sugira, o que quiser! Qualquer um pode comentar, e anonimamente!