Post on 04-Jul-2015
description
ORIENTAÇÃO A OBJETOS...
1Thursday, June 14, 2012
ORIENTAÇÃO A OBJETOSSIM, MAIS UMA PALESTRA DE
2Thursday, June 14, 2012
ORIENTAÇÃO A OBJETOSSIM, MAIS UMA PALESTRA DE
@AUGUSTOHP@ALGANET
3Thursday, June 14, 2012
AGENDA
4Thursday, June 14, 2012
AGENDA
CONCEITOS
4Thursday, June 14, 2012
AGENDA
CONCEITOS
PARADIGMAS DE PROGRAMAÇÃO
4Thursday, June 14, 2012
CONCEITOS
5Thursday, June 14, 2012
ESTADO
6Thursday, June 14, 2012
ESTADOhardware na maioria das vezes nem sabe o estado
7Thursday, June 14, 2012
ESTADOhardware na maioria das vezes nem sabe o estado
BRINCADEIRA
8Thursday, June 14, 2012
ESTADO
9Thursday, June 14, 2012
TIPAGEM
10Thursday, June 14, 2012
TIPAGEM
11Thursday, June 14, 2012
REUSO
12Thursday, June 14, 2012
REUSO
13Thursday, June 14, 2012
FIBONACCI
14Thursday, June 14, 2012
SEQUÊNCIA DE FIBONACCI
15Thursday, June 14, 2012
SEQUÊNCIA DE FIBONACCIHTTPS://EN.WIKIPEDIA.ORG/WIKI/FIBONACCI_NUMBER
16Thursday, June 14, 2012
PARADIGMAS DE PROGRAMAÇÃO
17Thursday, June 14, 2012
ASSEMBLY
18Thursday, June 14, 2012
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
19Thursday, June 14, 2012
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
20Thursday, June 14, 2012
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
21Thursday, June 14, 2012
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
22Thursday, June 14, 2012
.386.model Flatpublic Fibonacciinclude iosmacros.inc ; inclui macros de output para tela
.codeFibonacci proc
MOV EAX, [ESP+4] CMP EAX, 1 JA Recurse MOV EAX, 1 ; retorna o valor de eax JMP exit
Recurse: PUSH EBX ; preserva o valor de ebx DEC EAX PUSH EAX CALL Fibonacci MOV EBX, EAX ; ebx preservado, seguro de usar DEC [ESP] ; decrementa o valor no stack CALL Fibonacci ADD EAX, EBX ; retorna o valor em eax ADD ESP, 4 ; remove o valor do stack POP EBX ; restaura o valor antigo de ebxexit:retFibonacci endp HTTP://STACKOVERFLOW.COM/QUESTIONS/5616684/RECURSIVE-FIBONACCI-IN-ASSEMBLY
23Thursday, June 14, 2012
PROCEDURAL
24Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
25Thursday, June 14, 2012
1235813213455891442333776109871597258441816765
26Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
27Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
28Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
29Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
30Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
31Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
32Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
33Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
34Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
35Thursday, June 14, 2012
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
36Thursday, June 14, 2012
1 <?php 2 function fibonacci($limit) { 3 $past = 0; 4 $current = 1; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 } 11 } 12 fibonacci(20);
37Thursday, June 14, 2012
1 <?php 2 function fibonacci($iteration) { 3 $past = 0; 4 $current = 1; 5 for($i=1; $i<$iteration; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 } 10 return $current; 11 } 12 echo fibonacci(20) . PHP_EOL; // 6765
38Thursday, June 14, 2012
1 <?php 2 require 'fibonacci-func-return.php'; 3 4 for ($i=1; $i<=20; $i++) 5 echo fibonacci($i) . PHP_EOL;
39Thursday, June 14, 2012
ORIENTADO A OBJETOS
40Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
41Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
INSTÂNCIA
42Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
CLASSE
43Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
44Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
45Thursday, June 14, 2012
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
46Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // Conteúdo da classe 5 }
47Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 /** 5 * Número anterior, o primeiro na sequência é o 0 (zero). 6 * 7 * @var integer 8 */ 9 protected $previous = 0; 10 /** 11 * Número atual, o segundo na sequência é o 1 (um). 12 * 13 * @var integer 14 */ 15 protected $current = 1; 16 /** 17 * Número da iteração. 18 * 19 * @var integer 20 */ 21 protected $iteration = 0; 22 /** 23 * Qual o limite de iterações a executar. 24 * 25 * @var integer 26 */ 27 protected $limit; 28 }
48Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... (Proriedades) 5 6 /** 7 * Construtor. 8 * 9 * @example $i = new Fibonacci(25); 10 * @param integer $n=25 Limite de iterações 11 */ 12 public function __construct($n=25) 13 { 14 $this->limit = $n; 15 } 16 17 // ... (outros métodos) 18 }
49Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... (Construtor e Propriedades) 5 6 /** 7 * Retorna o elemento atual da sequência. 8 * 9 * @return integer 10 */ 11 public function current() 12 { 13 return $this->current; 14 } 15 16 // ... (outros métodos) 17 }
50Thursday, June 14, 2012
HTTP://GIT.IO/HAPPYPANDA
51Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Retorna o número da iteração atual. 8 * 9 * @return integer 10 */ 11 public function key() 12 { 13 return $this->iteration; 14 } 15 16 // ... (outros métodos) 17 }
52Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Vai para próxima iteração. 8 * 9 * @return void 10 */ 11 public function next() 12 { 13 $final = $this->current + $this->previous; 14 $this->previous = $this->current; 15 $this->current = $final; 16 $this->iteration++; 17 } 18 19 // ... (outros métodos) 20 }
53Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Volta para primeira iteração. 8 * 9 * @return void 10 */ 11 public function rewind() 12 { 13 $this->previous = $this->iteration = 0; 14 $this->current = 1; 15 } 16 17 // ... (outros métodos) 18 }
54Thursday, June 14, 2012
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Retorna se existe uma próxima iteração válida. 8 * Caso não existe, executa Fibonacci::rewind(). 9 * 10 * @see Fibanacci::rewind() 11 * @return boolean 12 */ 13 public function valid() 14 { 15 if ($this->iteration < $this->limit) 16 return true; 17 18 $this->rewind(); 19 return false; 20 } 21 }
55Thursday, June 14, 2012
DESIGN PATTERNS
56Thursday, June 14, 2012
1 <?php 2 class FibonacciIterator implements Iterator 3 { 4 // ... 5 }
57Thursday, June 14, 2012
1 <?php 2 require 'FibonacciIterator.php'; 3 4 foreach ($iterator as $i) 5 echo $i . PHP_EOL;
HTTP://PHP.NET/ITERATOR
58Thursday, June 14, 2012
COMPOSIÇÃO >
GENERALIZAÇÃO
59Thursday, June 14, 2012
AGENDA
60Thursday, June 14, 2012
AGENDA
CONCEITOS
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
60Thursday, June 14, 2012
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
ORIENTAÇÃO A OBJETOS
60Thursday, June 14, 2012
PERGUNTAS?
61Thursday, June 14, 2012
OBRIGADO!
62Thursday, June 14, 2012
RECADOS DA PARÓQUIA
HTTP://WWW.THEDEVELOPERSCONFERENCE.COM.BR
4 a 8 julho
63Thursday, June 14, 2012