While
While Condição
// comandos
End While
Exemplos While
Var contador As Integer
contador = 0
While (contador < 10)
contador += 1
console.ConsoleWrite(contador)
End While
O que faz este programa?
Var contador As Integer
contador = 0
While true
contador += 1
console.ConsoleWrite(contador)
End While
Exercicio
Disco Voador que anda de um lado para outro...
Exercicio
Define disco As Sprite
Var posX As Integer
Var direcao As Integer
disco.Load("ufo.gif")
disco.MoveTo(0,200)
disco.Show()
posX = 0
direcao = 1
While (True)
posX += 5*direcao
If (posX > 500) Or (posX < 0) Then
direcao = direcao * -1
End If
disco.MoveTo(posX, 200)
delay(50)
End While
Exercicio
E se quisessemos fazer que o disco acelerasse
cada vez mais?
Exercicio
E se agora houvessem dois discos voadores?
Função Random
Muitas vezes precisaremos de números
aleatórios para diversas operações:
Valor = Random (min, max)
Onde Valor, min e max são inteiros
Função Random
Com a função acima, como poderiamos gerar
números aleatórios reais?
Exercício
Implementar o jogo da adivinhação:
O computador pensa num número e pergunta ao
jogador. Se o jogador disser um número maior,
o computador responde “o número que pensei é
menor”, se o número que o jogador chutou for
menor o computador responde “o número que
pensei é maior” e se o jogador acertar o
computador diz “Acertou em X jogadas”, onde X
é o número de tentativas.
Super Exercicio
A Função Iskeydown(“[tecla]”)
Retorna
verdadeiro
pressionada.
caso
a
[tecla]
tenha
sido
Faça o disco se mover nas 4 direções, com as teclas
a, s, w, z
Super Exercício
While (True)
If Iskeydown("a") Then
posX += 5
disco.MoveTo(posX, 200)
delay (100)
End If
End While
For
For (Caso inicial) To (Caso Final)
// Comandos
Next
[Step k]
Exemplo
For i = 1 To 200
Disco.MoveTo (i, 200)
Next
For i = 1 To 200 Step 3
Disco.MoveTo (i, 200)
Next
Vetores e Matrizes
Conceito Matemático
Exemplo
Define Meu_Vetor As Integer [4]
Meu_Vetor[1] = 0
Meu_Vetor[4] = 40
Meu_Vetor[2] = 20
Exercício
Escreva um programa (usando for) que lê 2 vetores e
imprime o produto escalar deles.
Lembrando:
V1 . V2 = (v1.x*v2.x) + (v1.y*v2.y) + (v1.z*v2.z)
V1 . V2 = (v1[1]*v2[1]) + ... + (v1[n] * v2[n])
Agora Matrizes...
Define Matriz2D As Decimal [ 2, 3 ]
Matriz2D
Matriz2D
Matriz2D
Matriz2D
Matriz2D
Matriz2D
[1,1]
[1,2]
[1,3]
[2,1]
[2,2]
[2,3]
=
=
=
=
=
=
0
3.1
2.5
0.2
2.1
7.5
Exercício
Escreva um programa que lê duas matrizes de 13 x 22 e
calcula a soma das duas...
(imprima a matriz assim:
1 2 21
2 23 12
4 2 2
...
24
11
3
20
22
1
Joysticks...
If joysticks[1].IsButtonPressed(1) Then
Console.WriteLine(“pressionou botao 1”)
End If
PONG!
ScreenWidth()
ScreenHeight()
// Retorna a resolução horizontal da tela
// Retorna a resolução vertical da tela
PONG!!!
Mais alguns atributos do objeto Sprite:
Sprite.Width
Sprite.Height
Sprite.X
Sprite.Y
Exericio Pré-Pong
Fazer uma sprite “quicante”...
Como Encontrar Insetos no
Programa
Funções
Function nome(var1 As Tipo, var2 As tipo) As tipo
// Corpo da Função
Return [alguma coisa]
End Function
Funções – Exemplo
Function soma (n1 As Integer, n2 As Integer) As Integer
Var result As Integer
result = n1 + n2
Return result
End Function
Funções – Exercicio
A série de Taylor que calcula o seno de um número é
dada por:
Escreva uma função que calcula o seno de um número
permitindo que o usuário defina a precisão desejada
(parâmetro n_total)
Variável Local x Variável Global
Program MyNewProgram
Function soma (n1 As Integer, n2 As Integer) As Integer
Var result As Integer
result = n1 + n2
Return result
End Function
Method Main()
Var v1 As Integer
Var v2 As Integer
v1 = ConsoleReadInt("numero 1: ", True)
v2 = ConsoleReadInt ("numero 2: ", True)
Console.Write(soma(v1, v2))
End Method
End Program
Discussão – Quando usar Funções?
Flags...
Exemplo de Flags
Ler um vetor de números até encontrar o numero 0
Exemplo: Mouse
LeftPressed
RightPressed
MouseX
MouseY
Fazer um curso de mouse
Fazer uma nave que atira...
A tecla -> e <- movem horizontalmente a nave e os clicks do
mouse atiram. Atencao: o tiro e da nave devem ter movimentos
independentes…
O tipo String...
Var nome As String
Var nome2 As String
Var nome3 As String
nome = "esteban"
nome2 = "clua"
nome3 = nome + nome2
Pergunta
Var nome As String
Var nome2 As String
Var nome3 As String
Var numero As integer
nome = “3"
nome2 = “4"
nome3 = nome + nome2
// o que dá?
Numero = nome + nome2 // O que dá?
Operações com strings
Resultado = Insert (string1, “texto a ser enxertado”, posicao)
Numero = Length (string1)
Posicao = IndexOf (string1, “padrão”, posicao_inicial)
Resultado = SubString (string1, posicao_inicial, tamanho)
Resultado = ToLowerCase (string1)
Booleano = StartWith(string1, string_teste)
Booleano = EndsWith (string1, string_teste)
Resposta_inteira = Compare (string1, string2, true/false)
// 0 se forem iguais, - 1 se string1 < string2, 1 se string1 >
string2. True/False para considerar ou não maiusculas/minusculas
Exercicio – Agenda Telefonica
Escreva um programa que pergunta quantos amigos você tem. Depois
le este numero de nomes e o telefone de cada um. Finalmente o
programa pergunta o nome de alguem e irá procurar o numero de
telefone que o usuário deseja.
Exercicio (dificil)
Escreva uma função que conta quantos espaços em branco tem num
texto
Download

While - Instituto de Computação