Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Introdução à Programação Engenharia da Computação
Estruturas de Controle
Linguagem C Marco Reis.
Manuseamento de strings
Introdução à Programação usando Processing Programação Gráfica 2D Estrutura de Seleção Exercício Estrutura de Seleção 2º Semestre 2009 > PUCPR > Design.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Shell Script Professor: João Paulo
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Programando em Alice Tim Margush Department of Computer Science University of Akron © 2006.
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Introdução ao -calculus
7 Abstração Genérica Unidades genéricas e instanciação.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
Revisão da Linguagem C.
Estrutura de decisão e repetição em JAVA
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
Ap-3 Profª Kelly E. Medeiros
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
João Lucas de Oliveira Torres
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Análise Semântica e Representação Intermédia
O Portal do Estudante de Computação
Unidade I: “Dê um mergulho rápido”
< declaração de variáveis > ( estrutura de dados )
Aula R Prof. Naércio Filho Técnico em Informática
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
PROGRAMAÇÃO ESTRUTURADA II
Programador, Design e Fundador
Programação Orientada à Objetos
FTIN Formação Técnica em Informática
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Estruturas de Dados Módulo 3 – Controle de Fluxo
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
O Portal do Estudante de Computação
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
O Portal do Estudante de Computação
Expressões e Instrução de Atribuição
Estrutura de Decisão e Repetição
Aula 6 - Estruturas de Controle
Linguagem e Ambiente Scratch
Programação e Sistemas de Informação
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Wagner Santos C. de Jesus
Planilha Eletrônica - Excel
Introdução à Linguagem C
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Laboratório I Mateus Raeder. Mateus Raeder – abril de 2010 Expressões booleanas  Tipo boolean -Tipo de dado primitivo -Possui os valores: true e false.
Fundamentos de linguagens de programação
Recursividade Profs. De Prog2 e Lab2.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Introdução a Programação
JAVASCRIPT Programação Web. O que é  E uma linguagem interpretada que e executada na maquina do cliente  Não esta associada ao framework java  Não.
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
1 Programação – JAVA Unidade 3 – Loops e Lógica Prof. Aparecido V. de Freitas Curso de Ciência da Computação.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Visual C# (parte 2) Prof. Igor Conrado Alves de Lima – Operadores, estruturas de decisão, vetores (arrays), e estruturas de.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Transcrição da apresentação:

Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006

Programming in Alice © 2006 Dr. Tim Margush 2 Estruturas de Controle Sequencial Sequencial –doTogether{} and doInOrder{} Seleção Seleção –If Repetição Repetição –While, loop

Programming in Alice © 2006 Dr. Tim Margush 3 Mecanismos de Controle Expressões e Funções Expressões e Funções –Representando valores Valores podem ser numeros, Booleans ou outros tipos Valores podem ser numeros, Booleans ou outros tipos Uma expressão booleana e funções são usadas para controlar a seleção(if) e repetição(while) Uma expressão booleana e funções são usadas para controlar a seleção(if) e repetição(while) –if (expressão é true) faz algo –while (expressão é true) faz algo

Programming in Alice © 2006 Dr. Tim Margush 4 Métodos x Funções Métodos representam uma ação Métodos representam uma ação –object_name.method_name( ); Funções representam valores Funções representam valores –object_name.function_name( ); –Funções são usadas como argumentos ou como expressões para seleção e repetição Algo acontece ao objeto (Ex: mover, girar) Retorna um valor dependendo das propriedades de um objeto

Programming in Alice © 2006 Dr. Tim Margush 5 Valores Em programação valores podem ser de diferentes tipos Em programação valores podem ser de diferentes tipos –Tipos comuns são: numeros, letras, Booleans, strings, e objetos –Numeros normalmente são divididos entre integers(inteiros) e float(reais), as vezes podendo ter até outros tipos Misturar tipos normalmente causa problemas Misturar tipos normalmente causa problemas

Programming in Alice © 2006 Dr. Tim Margush 6 Funções embutidas Cada objeto tem um conjunto de funções embutidas que podem ser acessados na aba de funções do objeto Cada objeto tem um conjunto de funções embutidas que podem ser acessados na aba de funções do objeto –Funções estão agrupadas por funcionalidades (Ex: distância, tamanho, posição dos eixos, etc..) Uma chamada da função retorna a resposta para uma pergunta(ex: Distância do objeto até o chão Uma chamada da função retorna a resposta para uma pergunta(ex: Distância do objeto até o chão

Programming in Alice © 2006 Dr. Tim Margush 7 Funções úteis object.distanceTo( ) object.distanceTo( ) –Distância entre o objeto e o alvo Movimentação original (1m) Arraste a função para substituir o parametro(1m) Escolha o alvo como parametro Nova movimentação com a distância entre o objeto e o alvo

Programming in Alice © 2006 Dr. Tim Margush 8 Evitando colisões Para determinar quando dois objetos estão próximos você precisa considerar o volume e a posição do seu centro (distanceTo x colisão) Para determinar quando dois objetos estão próximos você precisa considerar o volume e a posição do seu centro (distanceTo x colisão) distanceTo() perto Centro perto da traseira do sapo A cabeça vai mais alto que a cauda

Programming in Alice © 2006 Dr. Tim Margush 9 Tricks para colisão Em conjunto com distanceTo, considere… Em conjunto com distanceTo, considere… x.distanceAbove(y) x.distanceAbove(y) –mede a distância vertical entre a base de x e o topo de y x.distanceBelow(y) x.distanceBelow(y) –Amede a distância vertical entre o topo de x e a base de y Veja também Veja também –distanceToTheLeftOf –distanceToTheRightOf –distanceInFrontOf –distanceBehind y x

Programming in Alice © 2006 Dr. Tim Margush 10 Usando o Editor Para usar uma função como argumento: Para usar uma função como argumento: –Primeiro crie a instrução com um simples argumento (ex 1m) –Arraste a função para o lugar do argumento para substituí-lo pelo retorno da função Você pode aplicar também funções aritméticas ao retorno da função clicando na seta no final da função Você pode aplicar também funções aritméticas ao retorno da função clicando na seta no final da função Clique, depois escolha a operação

Programming in Alice © 2006 Dr. Tim Margush 11 Dimensões Objetos tem 3 dimensões Objetos tem 3 dimensões Voce pode determinar o tamanho do box do objeto utilizando essas funções: Voce pode determinar o tamanho do box do objeto utilizando essas funções: –obj.getWidth() –obj.getHeight() –obj.getDepth() Dimensões são alteradas quando sub- partes se movem

Programming in Alice © 2006 Dr. Tim Margush 12 Execução condicional Alice usa a estrutura IF-ELSE Alice usa a estrutura IF-ELSE –if (condição é true){ faz isso faz isso –}else{ faz outra coisa faz outra coisa –} Perceba esses dois blocos Perceba esses dois blocos –SE (também chamado THEN/IF) –SENÃO (também chamado ELSE) condição Booleana SE (THEN/IF) SENÃO (ou ELSE) truefalse

Programming in Alice © 2006 Dr. Tim Margush 13 Funções Booleanas x.isSmallerThan(y) x.isSmallerThan(y) x.isWiderThan(y) x.isWiderThan(y) x.isAbove(y) x.isAbove(y) x.isBehind(y) x.isBehind(y) ELSE pode ser deixado em branco Se necessário, o treinador precisa abaixar o braço para passar na porta

Programming in Alice © 2006 Dr. Tim Margush 14 Operadores relacionais Comparação entre dois numeros é algo comum: Comparação entre dois numeros é algo comum: –if (x == y){ se x é igual a y se x é igual a y –if (x != y){ se x é diferente de y se x é diferente de y –if (x > y){ se x é maior de y se x é maior de y –if (x >= y){ se x é maior ou igual de y se x é maior ou igual de y

Programming in Alice © 2006 Dr. Tim Margush 15 Usando comparações Utilizando comparações: Utilizando comparações: –Selecione a aba de funções do objeto World –Arraste a função de comparação desejada para o código –Escolha os valores numéricos Arraste World!

Programming in Alice © 2006 Dr. Tim Margush 16 Usando comparações Arraste as propriedades desejadas para substituir os valores numéricos Arraste as propriedades desejadas para substituir os valores numéricos

Programming in Alice © 2006 Dr. Tim Margush 17 Repetição Em Alice existem quatro estruturas de repetição Em Alice existem quatro estruturas de repetição –Loop(FOR) utiliza um contador para controlar as repetições index < times index = 0 código true false index++ for (int index=0; index<times; index++){ bloco de código } contador condição de parada incremento do contador

Programming in Alice © 2006 Dr. Tim Margush 18 Ande 5 passos

Programming in Alice © 2006 Dr. Tim Margush 19 Outras estruturas de repetição Alice também tem o while Alice também tem o while while(condição é true){ while(condição é true){ –Bloco de código } condição código true false Em Alice existe um for all que repete a ação para cada item em uma lista. As ações podem ser feitas sequenciais ou em paradalelo(todas juntas)

Programming in Alice © 2006 Dr. Tim Margush 20 Exemplo: Caça ao Coelho Lobo caça o coelho! Lobo caça o coelho! Loop

Programming in Alice © 2006 Dr. Tim Margush 21 Testando a proximidade Quando o coelho está perto da cabeça do lobo, ele grita! Quando o coelho está perto da cabeça do lobo, ele grita! –Note o uso da comparação como uma expressão booleana na condição do IF abaixo

Programming in Alice © 2006 Dr. Tim Margush 22 Ficando visível! A função isFarFrom que diz se o coelho está longe do centro do chão é utilizada para fazê-lo voltar ao centro A função isFarFrom que diz se o coelho está longe do centro do chão é utilizada para fazê-lo voltar ao centro (SENÃO/ELSE)Caso contrário ele utiliza a função Random para escolher uma direção aleatória (turn left, entre e 0.25) (SENÃO/ELSE)Caso contrário ele utiliza a função Random para escolher uma direção aleatória (turn left, entre e 0.25)

Programming in Alice © 2006 Dr. Tim Margush 23 Gerando numeros aleatórios Random.nextDouble() é uma função do objeto mundo Random.nextDouble() é uma função do objeto mundo –Retorna um numero entre um valor minimo e máximo A faixa de valores padrão é entre 0 e 1 A faixa de valores padrão é entre 0 e 1 Escolha uma faixa maior e veja o resultado Escolha uma faixa maior e veja o resultado O Coelho vira pra esquerda algum valor entre e 0.25 O Coelho vira pra esquerda algum valor entre e 0.25 –Virar pra esquerda com um valor negativo na verdade vai fazer o coelho virar para direita

Programming in Alice © 2006 Dr. Tim Margush 24 A Caça! O Lobo sempre vira em direção a última posição do coelho O Lobo sempre vira em direção a última posição do coelho –A movimentação do lobo está dentro do dpTogether, junto com o movimento do coelho –O Coelho se move um pouco mais rapido que o lobo

Programming in Alice © 2006 Dr. Tim Margush 25 Melhorias? Mover as pernas Mover as pernas –Coelho e lobo Virar a cabeça do coelho para olhar para o lobo Virar a cabeça do coelho para olhar para o lobo –Algumas vezes olha pra trás para ver se o lobo está muito longe Movimentar a boca do lobo Movimentar a boca do lobo –Só quando chega perto do coelho