Ir para conteúdo
Fórum Script Brasil

Durub

Moderadores
  • Total de itens

    788
  • Registro em

  • Última visita

Tudo que Durub postou

  1. Durub

    (Resolvido) clock()

    Certeza que ele não está fazendo o trabalho em 1ms? A única diferença que notei entre os programas foi o tipo da variável, mas acho que não há muita diferença, já que clock_t deve ser um unsigned long. De qualquer forma, tente fazer um cast no printf. Abraços.
  2. Acho que realmente a solução é utilizar o operador (). Não vi nenhuma forma de sobrecarregar o [] desta maneira, mas procurei pouco. Abraços.
  3. Puxa, você nem chegou a imaginar o por quê? Não é um bug. A data aí está em mm/dd/aaaa. (O "padrão" do Estados Unidos) 744 horas = 31 dias (1 mês) Abraços.
  4. Para ler a frase, use fgets do stdio.h, o cin/scanf para ao encontrar um espaço. Abraços.
  5. Use sprintf. char string[256]; sprintf(string, "jar cvfm %s.jar %s %s.class", nJAR, MANIFEST, nCLASS); system(string); Abraços.
  6. Durub

    Erro de compilação

    Se preocupar tanto assim com tempo de processamento e memória nos PCs atuais é perda de tempo. Só é preciso dessa preocupação (no PC) quando: Estiver fazendo renderização 3D real timeEstiver escrevendo uma library genérica (que possa ser usado tanto por programas real time e non-real time)Servidores com muitos requests por segundo (e nem sempre)JogosE alguns outros raros casosE as vezes gastar mais memória para reduzir o tempo de processamento é melhor. Por exemplo, criando uma função para calcular o seno de um ângulo. É melhor você usar uma look-up table do que calcular cada vez que ele executa a função. Abraços.
  7. Isto é simples. Você simplesmente não está retornando nenhum valor quando verif == 0. Neste caso, ele vai simplesmente retornar o que estiver no registrador eax. Que, no caso de ser verif != 0, é a variável i. Caso verif == 0, ele vai retornar o valor do ((endereço registrador ebx) - 4). Entender o que realmente se passa precisa de um pouco de conhecimento de Assembly. No exemplo do Beraldo, o registrador eax vai conter o valor que o printf retornou, logo também retornando o valor do printf. PS: Inteiros com 1, 2 e 4 bytes são retornados pelo registrador eax. Abraços.
  8. Qual a sua dúvida? Veja as funções: fopen, fclose, fread, scanf. Abraços.
  9. Modifiquei o código e fiz o cálculo do tempo utilizando clock() da time.h. Abraços.
  10. Então, é assim: Por exemplo, 32768: val = 1000 0000 0000 0000 (32768) returnString[2] = tabelaHex[val >> 12]; returnString[2] = tabelaHex[0000 0000 0000 1000]; returnString[2] = tabelaHex[8]; returnString[2] = '8'; O resto vai ser shift e and nos zeros, então continua 0. Outro exemplo, 16438: val = 0100 0000 0011 0110 returnString[2] = tabelaHex[val >> 12]; returnString[2] = tabelaHex[0000 0000 0000 0100]; returnString[2] = tabelaHex[4]; returnString[2] = '4'; returnString[3] = tabelaHex[(val >> 8) & 0x000f]; returnString[3] = tabelaHex[0000 0000 0100 0000 & 0x000f]; returnString[3] = tabelaHex[0000 0000 0000 0000]; returnString[3] = tabelaHex[0]; returnString[3] = '0'; returnString[4] = tabelaHex[(val >> 4) & 0x000f]; returnString[4] = tabelaHex[0000 0100 0000 0011 & 0x000f]; returnString[4] = tabelaHex[0000 0000 0000 0011]; returnString[4] = tabelaHex[3]; returnString[4] = '3'; returnString[5] = tabelaHex[val & 0x000f]; returnString[5] = tabelaHex[0100 0000 0011 0110 & 0x000f]; returnString[5] = tabelaHex[0000 0000 0000 0110]; returnString[5] = tabelaHex[6]; returnString[5] = '6'; É uma série explicando a mesma atribuição, não várias! Ficou um pouco confuso, mas se ver pelo "lado certo" dá para entender! Abraços!
  11. Galera, estou fechando o desafio antecipadamente devido a problemas pessoais. Enquanto estava fazendo o benchmark, notei que o maior problema da performance era o malloc, já que alocação de memória é uma tarefa lenta. Então fiz uma modificação no código de testes: #include <stdio.h> #include <stdlib.h> char *returnHex(char*, unsigned short val); int main(void) { unsigned short input; char *string = malloc(7); scanf("%hu", &input); returnHex(string, input); printf("%0#6x - %s", input, string); free(string); return 0; } O resultado do benchmark: Comentários: Beraldo, enquanto estava no Ubuntu, notei que o output saía corretamente (sem estar estranho, que nem mostrado no benchmark), porém, quando fui ao Windows, ocorreu-me este problema. Não se assuste com o resultado do benchmark de seu código, já que como ele utilizava um sistema de realocação, não pude fazer a optimização mudando o código de testes. Jonathan, tive que remover o static char e utilizar um ponteiro para fazer a optimização. Gostei muito de ver soluções diferentes, conversão de bases, shifts etc. O pessoal está de parabéns por ter pensado, pesquisado e feito o código. Não declararei um vencedor, isso fica a critério de vocês. Postarei o código de todos em um .rar (espero que não se importem). Abraços! Desafio_ScriptBrasil_C__.rar
  12. Galera, até agora somente o Beraldo me enviou o código que fez. Ninguém mais vai participar? Se não entender do assunto, pesquise! Este é o propósito dos desafios. Estou estendendo o prazo até o dia 14 de fevereiro. Abraços.
  13. Movido: C, C++ -> .NET Abraços.
  14. É só um char? Use if((atomo == 'A') || (atomo == 'B')). Abraços.
  15. Opa, realmente! Na verdade seria 25/01/09, mas aproveitei e extendi a data para o dia 01/02. Obrigado pela correção! Abraços.
  16. Olá galera do fórum do C/C++. Venho propor um desafio para vocês. Objetivo: Criar uma função que passe uma variável do tipo unsigned short (16 bits) para sua representação em hexadecimal, em uma string. Regras: Não é permitido usar QUALQUER função da biblioteca padrão ou de bibliotecas externas (a única exceção é o malloc da stdlib.h).Você deve alocar a string com malloc, como visto no código postadoA representação deve ser exatamente idêntica ao printf do unsigned short utilizando "%0#6x".É necessário enviar a sua função por PMSó pode mandar 1 (uma) função, logo pensem (na verdade, testem!) bem antes de mandarem o que vocês desenvolveramAs "entregas" vão até o dia 14/02/2009, quando anunciarei um vencedorSua função será testada com o seguinte código: #include <stdio.h> #include <stdlib.h> char *returnHex(unsigned short val); int main(void) { unsigned short input; char *string; scanf("%hu", &input); string = returnHex(input); printf("%0#6x - %s", input, string); free(string); return 0; } A avaliação será composta dos seguintes itens: Optimização (Velocidade)SegurançaLegibilidadeNotem que este desafio não tem nenhuma relação com o fórum do ScriptBrasil. Não há qualquer tipo de premiação. Abraços.
  17. Não. Isso são funções proprietárias da Borland. Pelo que eu li em outro tópico, você utiliza o Dev-C++ (com o compilador MinGW). Use system("cls") (da stdlib.h) no Windows e system("clear") no GNU/Linux e Unix. Sobre o sleep, use Sleep(milisegundos) do windows.h no Windows e no GNU/Linux não tenho certeza. Não usei ainda sleep aqui. Abraços.
  18. Tente (não tenho certeza se vai funcionar, é só um define que vi por aí (no tópico do jogo do Sudoku)) fazer: #define RED 1 #define BLUE 4 PS: Coloque isso no ínicio do programa, após os "#include" Abraços.
  19. Durub

    sobrecarga de operador =

    Infelizmente, não tem como fazer desta forma. Você vai ter que fazer um cast na atribuição. Class x; int valor = 2; x = (void *) valor; Só que não sei como fica o header da função, já que referência com pointer não dá certo. (Ou dá? Na parte de C++ estudei muito pouco as referências) Abraços.
  20. Durub

    construtor

    pessoa(char *palavra = "Qualquer"); Deve funcionar. Abraços.
  21. Você não precisa de nada disto. Só utilizar FreeConsole() do windows.h. Se quiser que a janela apareça novamente utilize AllocConsole (do windows.h também). Abraços.
  22. Durub

    grupo de estudo

    Também estou dentro. Abraços.
  23. Como assim quando você deve trocar o C por outra linguagem? Se você considera C ruim ou prefere/(quer experimentar) outra linguagem, vá em frente. Java é ótimo caso você queira ingressar no mercado de trabalho. Abraços.
  24. Durub

    Conexão Telnet em C/C++

    Na verdade, idade não tem relação nenhuma com a experiência. Só praticar que você vai pegar o jeito rapidinho, tenho 14 anos. Abraços.
×
×
  • Criar Novo...