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