Documente Academic
Documente Profesional
Documente Cultură
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
O que um programa de computador? Quem escreve estes programas? Como so escritos? O que podemos fazer com estes programas?
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Conceitos
Sistema Operacional Controla o hardware e os programas do computador. Linguagem de Programao usada para escrever programas. Compilador !raduz programas de linguagens de programao para c"digo que o computador pode entender diretamente.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Linguagens de programao modernas so de alto n#vel $pessoas podem entender os programas%. O computador entende c"digo de &ai'o n#vel $pessoas no conseguem entender diretamente%. Compiladores traduzem alto n#vel para &ai'o n#vel.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Quantas linguagens de programao e'istem? Mais de 500! (lgumas so varia)es* algumas no servem para $quase% nada... +uitas linguagens modernas evoluiram das mais antigas. (lgumas das mais populares, C* C--* C.* /ava* P0t1on* P2P* 3isual 4asic* 5elp1i* Perl. Por que e'istem tantas? Quais aprender? Programas podem fazer muitas coisas 6 Linguagens podem ser muito complicadas7
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
9etorne ao in#cio. Leia o valor do joystick. +ova o personagem. Se encontrar algo* e'ecute um su&programa.
9
5iri8a um carro.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
10
// Outro tipo de comentrio (s uma linha). public static void main(String[] args) { System.out.println("Meu primeiro programa em Java!"); } Trechos de programas que tem uma funo definida so }
chamados mtodos. todo main! diz o que ser" feito quando o programa for e#ecutado.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
11
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
13
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
14
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
15
public class SegundoPrograma { public static void main(String[] args) { String nome = JOptionPane.showInputDialog(" ntre seu nome"); String s!dade = JOptionPane.showInputDialog(" ntre sua idade"); int idade = !nteger.parseInt(s!dade); int meses = "#$idade; int dias = %&'$idade; S(stem.out.print)n("O)*+ ",nome); S(stem.out.print)n("-o./ j* viveu mais de ",meses," meses"); S(stem.out.print)n(" e mais de ",dias," dias."); 0 0
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
16
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
17
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
18
public class SegundoPrograma { public static void main(String[] args) { String nome = JOptionPane.showInputDialog(" ntre seu nome"); String s!dade = JOptionPane.showInputDialog(" ntre sua idade"); int idade = !nteger.parseInt(s!dade); int meses = "#$idade; int dias = %&'$idade; S(stem.out.print)n("O)*+ ",nome); S(stem.out.print)n("-o./ j* viveu mais de ",meses," meses"); S(stem.out.print)n(" e mais de ",dias," dias."); 0 0 todos podem ter valores retornados. Pense em mtodos como tarefas ou perguntas que podem precisar de mais informao.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 19
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
20
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
21
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
22
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
23
import javax.swing.JApplet; import javax.swing.JLabel; public class TestApplet extends JApplet { public TestApplet() { JLabel label = new JLabel("Verso do Java: "+ System.getProperty("java.version")); label.setOpaque(true); label.setHorizontalAlignment(JLabel.CENTER); label.setBackground(Color.yellow); add(label); } } udamos algumas de suas caracter4sticas.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 24
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
25
O que 'o(ocode?
um software educacional. Serve para aprender conceitos de programao &rincando7 9o&ocode tem uma arena onde ro&=s virtuais competem. Programadores criam o comportamento dos ro&=s. 9o&=s simples podem ser criados em minutos $vamos fazer alguns7%. 9o&=s comple'os podem demorar meses para ser aperfeioados.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
26
'o(ocode
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
27
'o(ocode
uita a2uda, mas em ingl9s. &p8es para e#ibio dos rob5s e batalhas, outros. $rie novos rob5s ou times de rob5s, empacote rob5s, edite seus rob5s e outros. $rie novas batalhas, abra arquivos com batalhas 2" pr6programadas, saia do 7obocode.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 28
Criando 'o()s
Ctrl*+
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
29
Criando 'o()s
;2uda para comandos, em ingl9s. $ontrole das 2anelas do editor. Traduo do c:digo6fonte para o que o computador entende. $omandos de editor de te#to. $rie novos rob5s, edite6os e salve6os no disco.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 30
'o()s no 'o(ocode
<i#o do movimento do rob5 ,move6se para a frente e para tr"s=ireo do rob5
=ireo do canho
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 31
'o()s no 'o(ocode
Posso dar comandos para o ro&=... ... e'ecutar ;enquanto nada acontece<. ... e'ecutar ;quando en'ergar outro ro&=<. ... e'ecutar ;quando &ater em outro ro&=<. ... e'ecutar ;quando &ater em uma parede<. ... e'ecutar ;quando acertar em outro ro&=<. ... e'ecutar ;quando outro ro&= nos acertar<. ... e'ecutar ;quando errar o tiro em outro ro&=<.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
32
'o()s no 'o(ocode
Comandos para o ro&=, (ndar para a frente ou para tr>s $unidades de dist?ncia%. @irar para a esquerda ou para a direita $graus%. @irar o can1o para a esquerda ou para a direita $graus%. (tirar $com energia%. O ro&= pode ainda... ... sa&er suas coordenadas $' e 0% e ... sa&er sua energia. ... sa&er quantos oponentes ainda e'istem e quanto tempo falta para o fim da partida.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 33
'o()s no 'o(ocode
Quando vir o oponente o ro&= pode... ... sa&er sua direo e dist?ncia. ... sa&er sua energia e velocidade* ... mas no sa&er onde est> $'*0%. Quando for atingido o ro&= pode... ... sa&er de onde veio a &ala. ... sa&er quem atirou.
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
34
,m primeiro ro()
Ctrl*-
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
35
,m primeiro ro()
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
36
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
37
<nquanto no acontece nada de importante, nosso rob5 andar" *++ passos para a frente, girar" o canho AB+ graus, andar" *++ passos para tr"s e girar" novamente o canho AB+ graus.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 38
& que nosso rob5 far" se ?en#ergar@ outro rob5 ,atira-. & que nosso rob5 far" se levar um tiro ,vira C+ graus menos o )ngulo da bala-.
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 39
Ctrl*-
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
40
Podemos ter v"rias c:pias ,inst)ncias- de cada rob5 no 2ogo ao mesmo tempoD
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
41
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
42
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
43
public void onScannedRobot(ScannedRobotEvent e) { >o faa nadaD } public void onHitByBullet(HitByBulletEvent e) { >o faa nadaD }
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 45
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
46
public class Numero2 extends Numero1 Guando en#ergar outro rob5, pare, { public void onScannedRobot(ScannedRobotEvent e) { stop(); ahead(10); fire(10); Guando for atingido, resume(); vire C+ graus } e ande para tr"s. public void onHitByBullet(HitByBulletEvent e) { turnRight(90); back(100); } }
Outubro/2008 http://www.lac.inpe.br/~rafael.santos 47
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
48
public void run() { setBodyColor(new Color(200,50,0)); setGunColor(Color.BLUE); setScanColor(Color.RED); while(true) { ahead(5); turnLeft(30); } }
3emonstrao
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
51
Outubro/2008
http://www.lac.inpe.br/~rafael.santos
52