Jump to content

Andrey Knupp Vital

Members
  • Content count

    4672
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Andrey Knupp Vital

  1. Andrey Knupp Vital

    [Resolvido] window.print ou oque ?

    Falae galerinha .. ! novamente eu enchendo o saco por aqui rsrs to na final do sistema aqui , faltando so esse , mais alguns ajustes pra eu entregar o projeto .. e o seguinte presiso de uma funcao ou uma ideia de como imprimir so a parte que esta em vermelho Vlws Fewdox .!
  2. Andrey Knupp Vital

    Permutações de Array

    Fala galera .. resolvi postar este desafio aqui, porque na verdade, é um assunto / idéia na qual testa nossa capacidade lógica em programação, ou não .. então, a proposta é gerar o número de permutações possíveis de um dado array, esse array deve ser limitado a 5 índices / valores , não importa se é numérico ou string os valores do array, apenas tem que ter a limitação, o motivo é, deixando a execução do código mais rápida, mas quem quiser limitar a 10 , 20 , e o seu código for tanto eficiente quanto aos postados, fique a vontade, mas lembre-se que deve ser pelo menos '5' Array ( 1 , 2 , 3 , 4 , 5 ) Pra quem não sabe o significado da palavra 'Permutação' :seta: Clique aqui E não deve conter valores falsos, nulos, ou vazios e não poderá ter valores repetidos .. o array retornado também deve ser gerado de forma multi-dimensional Array ( [0] => Array ( [0] => ? [1] => ? [2] => ? ... ) ) Para cada conjunto de combinações .. Para desenvolvimento do algoritmo, estão proibidas às bibliotecas BC Math , GMP, e o prazo é de 1 semana, os códigos podem ser postados neste mesmo tópico , na conclusão / ( código completo ) , os códigos que foram enviados, serão discutidos em relação ao outro ( ou não ) As formas de avaliações de cada código, será Menos Loops Coisas desnecessárias aplicadas desnecessáriamente fugindo do objetivo Tempo de execução Sobre 'coisas desnecessárias' eu quero dizer, coisas que podem ser substituídas por algo mais simples e que vai ter o mesmo resultado Um abraço, e boa sorte ! dúvidas, só postarem aí ! Data de início :seta: 12 / 10 / 2011 Data de término:seta: 19 / 10 / 2011
  3. Andrey Knupp Vital

    Upload de Multiplos Arquivos PHP + jQuery

    Código expresso, enviar vários arquivos para o servidor (hmm; "upload"). <!doctype html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Upload</title> </head> <body> <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var i = 0; $('#add').live('click', function (){ if (i < 4) $('form').append('<input type="file" name="files[]" id="files[]" /><br />'); i ++; }); }); </script> <div> <form method="POST" enctype="multipart/form-data"> <h1>Upload</h1> <input type="file" name="files[]" id="files[]" /> <input type="button" id="add" value="+"> <input type="submit" value="Enviar" /> </form> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $files = $_FILES['files']; $directory = 'uploads/'; for($i = 0, $c = count($files); $i <= $c; ++ $i) { $upload = move_uploaded_file( $files['tmp_name'][$i], $directory . $files['name'][$i] ); } } ?> </div> </body> </html> Hugs!
  4. Andrey Knupp Vital

    Pegar endereço MAC via PHP, é possível?

    Cara, se for intranet, não tem coisa melhor do que utilizar CA's. Inclusive, tem até um artigo do João falando sobre isso, take a look. :seta: http://imasters.com.br/infra/seguranca/confianca-certificados-digitais-e-autenticacao/
  5. Andrey Knupp Vital

    [Resolvido] __autoload chato

    Não é nada, é do debug, se tá retornando PDO, e for o esperado tá certo. PS. @Bruno Augusto ... seu autoloader não se aplica para a nomenclatura de classes que ele pretende utilizar.
  6. Andrey Knupp Vital

    [Resolvido] __autoload chato

    Não seria por dependências ao código dele ? mostre seu código completo, além do loader, mostre onde você inicia, onde você faz a instância ... :thumbsup:
  7. Andrey Knupp Vital

    [Resolvido] __autoload chato

    Isso é em outro código seu cara, não é nesse aí não, o loader que você lançou ai tá certinho ...
  8. Andrey Knupp Vital

    [Resolvido] __autoload chato

    Assim, antes de rodar o código, habilite os erros. error_reporting ( E_ALL | E_STRICT ) ; ini_set ( 'display_errors' , 'On' ) ;
  9. Andrey Knupp Vital

    [Resolvido] __autoload chato

    O Carlos, seu exemplo funciona, beleza, mas importante: Seu autoloader deve iniciar uma única vez, portanto esse método poderia ser estático, como Class::initialize ( ) , não vejo nenhuma razão para que a classe Autoloader seja instanciada também. <?php class Application { static public function initialize ( ) { spl_autoload_register ( function ( $class ) { $s = str_replace ( '_' , DIRECTORY_SEPARATOR , $class ) . '.php' ; if ( file_exists ( $s ) ) { require_once $s ; } else { // ... } } ) ; } } Application::initialize ( ) ;
  10. Andrey Knupp Vital

    Sistema de login e perfil

    Opa, então eu vou te mover pra lá, posso ?
  11. Andrey Knupp Vital

    Sistema de login e perfil

    O que você pretende com isso ? alguma dúvida e/ou erro .. se foi um script para perfis, não seria melhor postar no laboratório ?
  12. Andrey Knupp Vital

    Permutações de Array

    Isso aqui .. /** * Per Combinations Amount * @var integer $r */ private $r; Sim , o swap serve pra isso, aí você trabalha nessa ordem trocada ..
  13. Andrey Knupp Vital

    Permutações de Array

    Bruno Augusto, só uma coisa .. pra que essa montante de combinações ? O uso do Iterator é bacana nesse caso .. só faltou aplicar um swap no seu código ..
  14. Andrey Knupp Vital

    Permutações de Array

    Com certeza o computador influencia, um perl roda voando aqui .. então .. no PERL 5.10 .. my $start = time ; sub permutation ( ) { my ( $perm , @set ) = @_ ; print "$perm\n" || return unless ( @set ); &permutation( $perm . $set[ $_ ] , @set[ 0..$_ - 1 ] , @set[ $_ + 1..$#set ] ) foreach ( 0..$#set ); } @input = ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ); &permutation( '' , @input ) ; my $end = time ; print "Elapsed Time: " , ( $end - $start ) , " Seconds"; Saída: andrey@andrey:~$ perl Permutations.pl .... // ... alguns números ... Elapsed Time: 8 Seconds O Meu em java ficou assim .. package permutation; import java.util.Arrays; public class Permutation { private static void getPermutations ( int [ ] Array , int [ ] Permutations ) { if ( Array.length == 0 ) { System.out.println ( Arrays.toString ( Permutations ) ); } else { Integer Size = Array.length; for ( int i = 0 ; i < Size ; ++ i ) { int [ ] sArray = new int [ ( Size - 1 ) ]; int [ ] sPermutations = new int [ Permutations.length + 1 ]; System.arraycopy ( Permutations , 0 , sPermutations , 0 , Permutations.length ); for ( int k = 0, j = 0 ; k < Size ; ++ k ) { if ( k == i ) { sPermutations [ sPermutations.length - 1 ] = Array [ i ]; } else sArray [ ++ j ] = Array [ k ]; } getPermutations ( sArray , sPermutations ); } } } private static void permutation ( int ... x ) { getPermutations ( x , new int[ 0 ] ); } public static void main ( String[] args ) { permutation ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ) ; } } Pra 8 argumentos ( inteiros ) , demorou 2 segundos .. agora, pode fazer com string .. array .. seguindo a idéia a cima, fica a critério de cada um agora .. Valeu pela contribuição aí galera, mesmo já tendo ultrapassado a data, pra estudos, os códigos servem ! Abraços.
  15. Andrey Knupp Vital

    [Resolvido] Gerar XML com PHP

    Não apresenta nenhum erro .. o que acontece ? não escreve no xml .. defina 'não retornam nada' Testando aqui .. retornou normalmente :seta: http://andreyknupp.my.phpcloud.com/XMLWriter.php
  16. Andrey Knupp Vital

    [Resolvido] Gerar XML com PHP

    Estranho, aqui funcionou perfeitamente, você tem a XMLWriter habilitada em seu servidor ?
  17. Andrey Knupp Vital

    Permutações de Array

    Só de teste .. fiz o meu código em java para 8 índices executou em 11 segundos .. String[] Elements = { "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" } ; Se quiserem, posto o código aqui.
  18. Andrey Knupp Vital

    Permutações de Array

    Não tenho a mínima idéia para um próximo desafio, e você .. porque não faz um ?
  19. Andrey Knupp Vital

    [Resolvido] Gerar XML com PHP

    Faz assim ... <?php ob_start(); /* * ... */ $id = 9 ; $imagem = 'http://' ; $descricao = '...' ; $preco = '99.99' ; $Writer = new XMLWriter(); $Writer->openMemory(); $Writer->startDocument( '1.0' , 'utf-8' ) ; $Writer->setIndent(true); $Writer->startElement( 'sapatos' ) ; $Writer->startElement( 'sapato' ) ; $Writer->writeElement ( 'id' , $id ) ; $Writer->writeElement ( 'imagem' , $imagem ) ; $Writer->writeElement ( 'descricao' , $descricao ) ; $Writer->writeElement ( 'preco' , $preco ) ; $Writer->endElement(); $Writer->endElement(); $Output = $Writer->outputMemory ( true ) ; $fHandle = fopen ( 'backup.xml' , 'w+' ) ; fwrite ( $fHandle , $Output ) ; fclose ( $fHandle ) ; header ( 'Content-Type: text/xml;charset=utf-8' ) ; echo $Output; Saída no arquivo e no navegador: <?xml version="1.0" encoding="UTF-8"?> <sapatos> <sapato> <id>9</id> <imagem>http://</imagem> <descricao>...</descricao> <preco>99.99</preco> </sapato> </sapatos> Só utilizar seu while agora para repetir o bloco de código .. <?php $Write = Array ( 0 => Array ( 'id' => 9 , 'imagem' => 'http://' , 'descricao' => 'Sapato de Couro' , 'preco' => '12.90' ) , 1 => Array ( 'id' => 10 , 'imagem' => 'http://' , 'descricao' => 'Sapato' , 'preco' => '99.99' ) ) ; $Writer = new XMLWriter(); $Writer->openMemory(); $Writer->startDocument( '1.0' , 'utf-8' ) ; $Writer->setIndent(true); $Writer->startElement( 'sapatos' ) ; forEach ( $Write as $Nodes ) { $Writer->startElement( 'sapato' ) ; if ( is_array ( $Nodes ) ) forEach ( $Nodes as $nodeName => $nodeValue ) $Writer->writeElement ( $nodeName , $nodeValue ) ; $Writer->endElement(); } $Writer->endElement(); $Output = $Writer->outputMemory ( true ) ; $fHandle = fopen ( 'backup.xml' , 'w+' ) ; fwrite ( $fHandle , $Output ) ; fclose ( $fHandle ) ; Saída no arquivo: <?xml version="1.0" encoding="UTF-8"?> <sapatos> <sapato> <id>9</id> <imagem>http://</imagem> <descricao>Sapato de Couro</descricao> <preco>12.90</preco> </sapato> <sapato> <id>10</id> <imagem>http://</imagem> <descricao>Sapato</descricao> <preco>99.99</preco> </sapato> </sapatos> Basta montar o array, que o código faz o resto .. no seu caso ficaria assim
  20. Andrey Knupp Vital

    Permutações de Array

    Cara .. o negócio tá na lógica .. tão simples quanto isso ..
  21. Andrey Knupp Vital

    Permutações de Array

    Você, hauhauha , único que postou o código =) não teve concorrência.
  22. Andrey Knupp Vital

    Permutações de Array

    Eu mandei a requisição para a index do servidor, que no caso era o arquivo que gerava as permutações, você mandou pra uma outra URL .. Digite 'ab' que você vai ver todas as opções do benchmark. Ignorância nada irmão .. você é gente fina ! qualquer coisa .. pode perguntar aí, estamos aí pro que der e vier ! ;)
  23. Andrey Knupp Vital

    Permutações de Array

    Carlos, o Document-Length ficou com zero, porque não dei o print .. fiz apenas gerar as permutações não exibindo o resultado, entendeu ? daí não teve output .. Não não .. a responsabilidade do usuário ( simulando um caso ) é enviar cinco items com valor , por isso mesmo foi estabelecida a regra pra limitar e filtrar os valores nulos , falsos, é um limite 5 independente deles serem inválidos .. De qualquer forma, o array entra com os valores não permitidos , e saí com eles filtrados .. ;) Juro que não entendi .. até nesse pc aqui eu rodo o benchmark .. Depende da sua definição para a palavra 'rodar'
  24. Andrey Knupp Vital

    Permutações de Array

    Carlos Coelho .. bacana sua implementação, mas tem um problema .. essas suas 8 permutações não chegam nem a mostrar resultado no benchmark, entra em loop infinito no navegador .. O Problema do espaço da minha implementação pode ser resolvido facilmente .. $FlattenArray [ ] = trim ( $Data ) ; ;) Obrigado por compartilhar seu algoritmo, cada código postado aqui serve de estudo para outras pessoas .. Abraços
  25. Andrey Knupp Vital

    Permutações de Array

    Bem .. como me deram o conselho de quem propõe o desafio, posta o primeiro código .. a minha solução é a seguinte .. <?php /** * Recupera todas permutações de uma matriz * * Copyright (C) <2011-2012> <Andrey Knupp Vital> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * @author Andrey Knupp Vital * @param Array $Array * @param Array $Permutations * @param Integer $limitOffset * @throws LengthException se o número de índices / valores no array for maior que $limitOffset */ function getPermutations ( Array $Array , Array $Permutations = Array ( ) , $limitOffset = 5 ) { static $permutedItems = Array ( ) ; $FlattenArray = Array ( ); forEach( new RecursiveIteratorIterator ( new RecursiveArrayIterator ( $Array ) ) as $Data ) $FlattenArray [ ] = $Data ; if( count( $FlattenArray ) > ( intval( $limitOffset ) ) ) throw new LengthException ( sprintf( 'Não podemos gerar permutações com mais de %d valores' , $limitOffset ) ); $Array = array_filter ( array_unique ( $FlattenArray ) ) ; if( count ( $Array ) ) { for ( $i = 0; $i < count ( $Array ); ++ $i ) { $newArray = $Array ; $newPermutations = $Permutations ; array_push ( $newPermutations , array_shift ( array_splice ( $newArray , $i , 1 ) ) ) ; getPermutations ( $newArray , $newPermutations , $limitOffset ) ; } return $permutedItems; } else $permutedItems [ ] = $Permutations; } Utilizando .. <?php require_once 'Permutations.php' ; echo '<pre>'; print_r ( getPermutations ( Array ( 1 , 2 , 3 ) ) ); echo '</pre>'; Saída: Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 1 [1] => 3 [2] => 2 ) [2] => Array ( [0] => 2 [1] => 1 [2] => 3 ) [3] => Array ( [0] => 2 [1] => 3 [2] => 1 ) [4] => Array ( [0] => 3 [1] => 1 [2] => 2 ) [5] => Array ( [0] => 3 [1] => 2 [2] => 1 ) ) ;) Aguardo a implementação de vocês ..
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.