LCASE$ e UCASE$

Falo! ah eu queria que vc me falasse um negocio com faço por exemplo? A resposta é queijo dai eu faço um programinha que pergunta do que vc gosta dai por exeplo ele fala de macarrão dai aparece seu burro ! e se ele falar queijo aparece tem bom gosto!!!

Esse exemplo foi sugerido por Felipe Goulart <samar@sercomtel.com.br>. Se você discorda do gosto dele, reclame com ele, e não comigo :-)

LINE INPUT "De que voce mais gosta? ", a$

IF a$ = "queijo" THEN PRINT "Voce tem bom gosto!"

IF a$ = "macarrao" THEN PRINT "Seu burro!"

O programa acima faz o que ele falou, mas tem um problema: se o usuario nao digitar nem "queijo" nem "macarrao", o programa nao vai dizer nada. Talvez fosse melhor fazer assim:

LINE INPUT "De que voce mais gosta? ", a$

IF a$ = "queijo" THEN PRINT "Voce tem bom gosto!"

IF a$ <> "queijo" THEN PRINT "Seu burro!"

O exemplo acima faz a mesma coisa que o primeiro, porem diz "Seu burro" se o usuario digitar qualquer coisa diferente de "queijo". Mas tem ainda um problema. Se o usuario digitar "Queijo" em vez de "queijo", o programa vai falar "Seu burro!", pois "Queijo" e' diferente de "queijo". Para isso usamos as funcoes LCASE$ e UCASE$

Assim, podemos ter:

LINE INPUT "De que voce mais gosta? ", a$

a$ = LCASE$(a$)

IF a$ = "queijo" THEN PRINT "Voce tem bom gosto!"

IF a$ <> "queijo" THEN PRINT "Seu burro!"

Ai sim, o programa dira "Voce tem bom gosto!" quando o usuario digitar "Queijo", "QUEIJO", "qUeIjO", etc.

Operadores AND e OR

Isso e' bem simples. Basta traduzir: AND = e, OR = ou. Esses dois operadores sao utilizados geralmente em um comando IF, WHILE, etc., quando e' necessario que se tenham duas condicoes. Exemplos:

AND

INPUT  "Digite seu nome: ", nome$

INPUT  "Digite sua idade: ", idade%

IF nome$ = "Rodrigo" AND idade% = 13 THEN PRINT "Garoto inteligente!" ELSE PRINT "OK!"

O exemplo acima escreve "Garoto inteligente!" se o valor da variavel nome$ for "Rodrigo" E o valor da variavel idade% for 13. Se qualquer um dos dois for falso, o programa escreve "OK!".

OR

LINE INPUT "Digite seu sexo (M ou F): ", sexo$

sexo$ = UCASE$(sexo$)

IF sexo$ = "M" or sexo$ = "F" THEN PRINT "Parabens!" ELSE PRINT "Voce tinha que digitar M ou F, seu ignorante!"

O exemplo acima pede para o usuario digitar o sexo (M para masculino ou F para feminino). Se o usuario digitar ou M ou F, o programa escreve "Parabens!". Caso contrario, escreve "Voce tinha que digitar M ou F, seu ignorante!".

DO..LOOP

Sintaxe 1:

DO

bla-bla-bla

bla-bla-bla

LOOP

O que faz:

Executa as linhas entre DO e LOOP infinitas vezes (ou melhor, ate' voce dar o boot no computador :-))

Sintaxe 2:

DO

bla-bla-bla

bla-bla-bla

LOOP WHILE condicao

O que faz:

A mesma coisa que o anterior, mas para de executar so' executa o LOOP enquanto a condicao for verdadeira. A diferencao do DO..LOOP WHILE para o WHILE..WEND e' que o DO..LOOP WHILE verifica a condicao no final do LOOP, enquanto WHILE..WEND verifica a condicao no inicio.

Sintaxe 3:

DO

bla-bla-bla

bla-bla-bla

LOOP UNTIL condicao

O que faz:

UNTIL significa ate'. Entao, essa sintaxe faz a mesma coisa que o anterior, mas executa o LOOP ATÉ a condicao ser verdadeira, ou seja, enquanto a condicao for falsa.

Operador NOT

A condicao verdadeira passa a ser falsa, e vice-versa. Eu estou meio cansado, interprete como quiser... Se nao entendeu, tente olhar no help do Qbasic

CHR$

Sintaxe:

CHR$(codigo_ASCII)

Retorna o caractere correspondente ao codigo ASCII dado. Nao sei se voce sabe, mas cada caractere tem um numero correspondente. A esse numero chamamos de codigo ASCII. Assim, por exemplo, o codigo ASCII da tecla SPACE e' 32, o codigo ASCII de A maiusculo e' 65, e por ai vai... Voce pode ver a tabela completa de codigos ASCII no help do Qbasic. Para ter acesso a essa tabela, faca o seguinte:

  1. Pressione Shift+F1
  2. Clique em conteudo
  3. Clique em <Códigos de Caracteres ASCII>

INKEY$

Retorna a tecla pressionada na forma de um caractere. Exemplo:

DO

a$ = INKEY$: LOOP UNTIL a$ <> ""

PRINT "Voce apertou a tecla "; a$

Confesso que esse exemplo acima nao foi muito bom. Porque ele so' vai dar certo se voce digitar um numero, uma letra ou um outro caractere qualquer. Se voce apertar Backspace, por exemplo, vai aparecer um caractere estranho. Pois e' aquele caractere que representa o backspace. Para fazer um jogo, o ideal e' que se usem as teclas de direcao. Na secao Dicas de minha home page voce pode ver os codigos das teclas de direcao.

Exemplo2:

PRINT "Aperte as teclas de direcao para ver o que acontece"

PRINT "Aperte ESC para finalizar"

DO a$ = INKEY$

IF a$ = CHR$(0) + "H" THEN PRINT "Voce apertou a tecla Up!"

IF a$ = CHR$(0) + "P" THEN PRINT "Voce apertou a tecla Down!"

IF a$ = CHR$(0) + "K" THEN PRINT "Voce apertou a tecla Left!"

IF a$ = CHR$(0) + "M" THEN PRINT "Voce apertou a tecla Right!"

LOOP UNTIL a$ = CHR$(27)

RND

Retorna um numero entre 0 e 1. Utilidade: gerar numeros aleatoriamente. Voce deve estar pensando: mas so' retorna numeros entre 0 e 1? E se eu quiser um numero de 0 a 10? E' simples. Basta multiplicar o resultado por 10. Exemplo:

FOR i = 1 to 20

a% = RND * 10

PRINT a%

NEXT i

O exemplo acima gera 20 numeros entre 0 e 10. Mas, para garantir que os numeros nao sejam os mesmos a cada vez que voce roda o programa, voce deve colocar RANDOMIZE TIMER antes de usar o RND.

Exemplo:

RANDOMIZE TIMER

FOR i = 1 to 20

a% = RND * 10

PRINT a

NEXT i

OBS.: Eu fiz meu primeiro jogo em Qbasic sabendo usar os comandos IF, INPUT, PRINT e RND. E' um jogo de dados, onde voce tem que adivinhar qual vai ser o resultado que caira' no dado. Cada vez que voce acerta, ganha mais 10 pontos. Quero ver se voce faz um desses!


Qbasic | Tutorial | Tutorial Anterior | Próximo Tutorial

1