Ir para conteúdo
Fórum Script Brasil

Jonas de Abreu

Membros
  • Total de itens

    137
  • Registro em

  • Última visita

Tudo que Jonas de Abreu postou

  1. Jonas de Abreu

    Ajuda Com Arquivo

    Leia os números com o fscanf. FILE *in = fopen("nome_do_seu_arquivo", "rb"); int temp; fscanf(in, "%d", &temp); Daí você coloca o valor de temp no seu vetor de int.
  2. Jonas de Abreu

    Ajuda Com Arquivo

    simplesmente passe um FILE* para as funções. Ou passe o nome do arquivo e abra dentro das funções.
  3. Coloque os erros que seu compilador está dando. Também declare as variáveis globais usadas, como fib, e a estrutura Fibonacci também.
  4. você também pode ir somando potências de 2 em um unsigned char: int pot2 = 1; unsigned char res = 0; int i; for (i = strlen(bitstring) - 1; i >= 0; i--){ res += bitstring[i] * pot2; pot2 *= 2; } return res; Note que minha bitstring é uma string em que cada posição está marcado 0 ou 1 e não os caracteres '0 ' e '1 '.
  5. Use uma fonte em que os caracteres possuem o mesmo tamanho, como Monospace.
  6. Jonas de Abreu

    Dev E Turbo C

    A stdio.h é a biblioteca de entrada e saida padrão para C. A iostream é para C++. Existe uma diferença bem grande na leitura e escrita dos dados usando cada uma das bibliotecas. A de C++ é mais fácil de usar (com cin e cout), mas é beeeeem mais lenta do que usar scanf e printf(da stdio.h).
  7. Isso não vai compilar pois a função atoi recebe uma string (vetor de char com um \ 0 na ultima posicao). Leia o número com o scanf (usando o %d). Se quiser ler com o getchar() mesmo (aí ele só vai ler um dígito) imprima dessa forma: printf("%d\n", num - '0'); Dai ele faz a conversão para você.
  8. Se você precisa de números aleatórios de verdade, pode fazer montar um tabela jogando dados ou pegar de algum site que disponibilize (se não me engano, random.org possui tabelas de números aleatórios). Mas geralmente, um pseudo-aleatorio resolve seu problema (voce também pode tentar usar um gerador melhor como o random() da stdlib, se voce estiver usando um sistema Unix)
  9. Eu aprendi C consideravelmente em um ano e meio (de programação quase diaria). E com OpenGL eu to vendo um pessoal aprender a fazer joguinhos 3D em menos de 3 meses (um jogo simples de sinuca). Eu estou desenvolvendo um jogo em 3D (usando OpenGL) e a experiência média do meu grupo é de 2-3 anos de programação em C.
  10. Simplesmente não da pra possuir complexidade menor que essa (se você não tiver informação adicional sobre o arquivo). você precisa ler todos os caracteres.
  11. O erro Falha de Segmentacao (core dumped) não tem relacao com o kernel. O que deve estar acontecendo é alguma violacao de endereco de memoria (seus ponteiros apontam para areas de memoria que não estao sob direito de uso do seu programa. Por exemplo, no codigo que o Rafael colocou no post 2, o strcpy podera (não é certeza pois a gente nunca sabe onde o malloc vai pegar memoria...) gerar uma falha como essa, pois falta espaco para o caracter '\ 0', que marca o fim das strings em C. Voce deveria alocar x + 1 chars para a string.
  12. Se voce apenas alterar algumas linhas do codigo, mas não modificar a modularizacao (quais modulos dependem dos outros e etc), masta digitar make novamente no terminal que ele provavelmente vai compilar tudo que for necessario sem problemas. Caso voce mude a modularizacao, voce vai precisar gerar um novo script configure (acho que voce deve usar o autoconf, o modificar o arquivo que ele usa como base, que eu noa lembro qual e...). Dai voce repete o processo. E voce pode usar o g++, mas desde que o projeto tenha sido escrito em c++ (o proprio ./configure decide a necessidade de usar um compilador ou outro.)
  13. Felipe, a funcao que voce usou no post 3 não deveria ser a realloc (acho que voce digitou errado, pois colocou o prototipo certo...)
  14. Jonas de Abreu

    Árvore B* Em C

    Árvores B são árvores balanceadas de uma forma bem específica (de uma olhada na wikipedia). Se não me engano, uma Arvore B* é uma árvore B que guarda informação nas folhas. Difícilmente você vai encontrar alguém que tenha implementado uma, pois ela possui aplicações bem específicas. Voce está com algum problema específico ou gostaria de ver uma implementação?
  15. A ideia é dividir os arquivos por funcionalidade (modularizacao). Dessa forma é bem mais fácil você encontrar o que precisa, ao invés de procurar em um único arquivo com 5000 linhas. Sem contar que permite reaproveitamento de código (voce pode reaproveitar esses arquivos em outros projetos). Geralmente existe um sistema auxiliar para a compilacao. No caso da BlackBox, ela deve usar autotools (automake e autoconf). Então, deve existir um arquivo executável chamado configure em algum dos diretórios anteriores ao src (geralmente está na raiz do projeto). Rode esse script (./configure , estando no local onde ele está). Você vai ver ele fazendo a checagem de um monte de coisa (gcc, awk, etc). Depois disso ele irá criar as Makefiles, que contém informações sobre como os arquivo devem ser compilados (Em projetos mais simples, as Makefiles podem ser geradas na mão sem problema). Digite make no mesmo diretório e ele irá compilar os seus arquivos.
  16. então, primeiramente acho bom voce estudar a documentacao do blackbox (que voce deve encotrar no site oficial dele). A documentacao vai explicar para que serve cada arquivo e cada funcao dentro de cada arquvo. A partir dai voce vai vendo o que realmente é necessario para fazer um WM e que bibliotecas ele usa.
  17. Jonas de Abreu

    Fim Da Tela...

    Não existe uma funcão ANSI que faca isso. O que você pode fazer é ler as variáveis de ambiente que determinam o tamanho da tela. Existe uma funcão chamada getenv() (da stdlib.h) que faz o acesso à variaveis de ambiente para voce. Voce so precisa descobrir qual é essa variavel (sei que ela existe em sistemas UNIX, Windows eu não garanto), ler o valor dela e usar isso como limitante para o seu loop. Acabei de dar uma olhada: em um xterm as variaveis são $LINES e $COLUMNS, para linhas e colunas, respectivamente.
  18. O Xfree possui a parte de controle gráfico também, que se eu não me engano, é contruída sobre OpenGL. (As maioria das outras libs rodam em cima do X, e por consequëncia, em cima da OpenGL).
  19. Voce pode comecar definindo o que a carta será no seu baralho. Se você vai usar uma struct ou vai tentar usar shifts e armazenar em um int. A idéia é sempre reduzir o problema grande a varios problemas menores e de solucão mais fácil.
  20. Ela provavelmente é uma palavra reservada para algum compilador (ou talvez seja uma instrucão de preprocessamento). De uma olhada em que compilador você vai usar para esse dispositivo wireless.
  21. Jonas de Abreu

    Projeto

    A sua condição do do...while está ao contrário do que você quer. Ela está fazendo o loop continuar até que cli seja 0 e não o contrário. /* */while(cli==0); Isso deve resolver. O laço continua enquanto a condição de parada é verdadeira. Portanto se você ler um 0, ele deve continuar executando até que ela seja falsa.
  22. O problema está sendo para encontrar o valor mínimo, não é? A sua linha if ((num < max) || (num <= min)) está errada pois ela está logo após um else que só é executado se num < max. Como no if você coloca num < max || num <= min, e a primeira condição é verdadeira, ele executa o que está dentro do if. Se você tirar a primeira condição (num < max) ele provavelmente vai funcionar.
  23. Jonas de Abreu

    Inicio

    Bom, conheço o site http://www.cprogramming.com que é muito bom (embora seja em inglês). Livro, eu recomendo "C Completo e Total" para começar a aprender e mais tarde o livro "Algorithms", de Sedgewick . Também é muito bom o livro "Algoritmos e Estruturas de Dados em C" de Cormem, Rivest e outros dois autores que não lembro agora.
  24. Acho que você pode começar estudando a biblioteca do XFree (uma das implementações de servidor de janelas do linux). O XFree é livre, então você consegue facilmente baixar o código fonte dele e pegar a documentação de desenvolvimento dele. Dar uma olhada em outros WindowManager simples também é bom (Recomendo pegar o código do BlackBox ou FluxBox, que são alguns dos WMs mais simples que eu conheço). Quanto a linguagem de programação, você vai ter que usar C ou C++ mesmo.
  25. Um arquivo .dat é uma sequencia de bytes. O problema é que isso não quer dizer muita coisa. Geralmente os primeiros bytes do arquivo são uma especie de header, com informacoes sobre o resto do arquivo. Por exemplo, uma imagem deveria possuir um header indicando o algoritmo de compressao, qual o tamanho (x e y) dela, paleta de cores, etc. Mas esse conhecimento é necessario se voce vai ler o .dat que alguém gravou. Se voce esta criando seu .dat, pode simplesmente definir sua estrutura (ou não usar nenhuma, o que é menos versatil).
×
×
  • Criar Novo...