Jonas de Abreu - Fórum Script Brasil
Jonas de Abreu
About Jonas de Abreu
http://www.vidageek.net
Interesses gerais em programacao (especialmente C e Java), algoritmos semi-numericos, um pouco de combinatoria (grafos em especial), criptografia de dados, programacao concorrente, entre outros.
Jonas de Abreu's Achievements
Ajuda Com Arquivo
Jonas de Abreu replied to a question in C, C++
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.
simplesmente passe um FILE* para as funções. Ou passe o nome do arquivo e abra dentro das funções.
[ajuda] Falta Um Pedacinho E Tem Um Erro
Jonas de Abreu replied to Dênis Andrade's question in C, C++
Coloque os erros que seu compilador está dando. Também declare as variáveis globais usadas, como fib, e a estrutura Fibonacci também.
Converter Strings De 0's E 1's Para Byte.
Jonas de Abreu replied to apanhando_de_c's question in C, C++
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 '.
Manter Identação
Jonas de Abreu replied to pringles's question in C, C++
Use uma fonte em que os caracteres possuem o mesmo tamanho, como Monospace.
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).
Problemas Na Impressão De Numeros
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ê.
Número Realmente Aleatório
Jonas de Abreu replied to Brwnno's question in C, C++
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)
Jonas de Abreu replied to Jc_denton's question in C, C++
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.
Problemas Para Ler E Contar Caracteres De Modo Rápido
Jonas de Abreu replied to CjimC's question in C, C++
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.
Ponteiros,tipos E Etc
Jonas de Abreu replied to Inufelipe's question in C, C++
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.
Como Compilar Mais De Um Arquivo?
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.)
Vetores Dinamicos
Jonas de Abreu replied to Leandro_n's question in C, C++
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...)
Á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?
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.