Ir ao conteúdo
  • Cadastre-se

atlos

Membro Pleno
  • Posts

    267
  • Cadastrado em

  • Última visita

Tudo que atlos postou

  1. o que o oliver disse é verdade,voce tambem pode usar a WDK do windows para criar seus próprios drivers e fazer o que tiver que fazer à nivel de Kernel,porém a API abstrai mais(o que eu acho que voce nao quer),apesar de ser o jeito convencional de se fazer tal coisa pra plataforma Windows..
  2. pensei que só eu fizesse isso..se voce tambem ganhou a habilidade de não precisar mais piscar seremos amigos. keytoussua vontade e sua curiosidade em aprender vão ser as unicas coisas que realmente vão importar,você pode ir pra faculdade e aprender ou pode ir e não aprender..nao precisa esperar o professor te dizer o que tem que fazer,você pode ir estudando por fora x)
  3. atlos

    Jogo em C++

    SDL nao,GLUT.. ok,se eu puder vou ajudar
  4. atlos

    Jogo em C++

    má fica muito difícil ajudar sem ver o que voce ta fazendo..configurar o ambiente pra opengl realmente nao é fácil se voce nao tiver um bom guia.. Se for usar a SDL,ve esse tutorial http://pontov.com.br/site/index.php/opengl/137-criando-um-ambiente-para-jogos-com-sdlopengl Se for usar freeglut ve esse tutorial http://seevisionc.blogspot.com.br/2013/08/setting-up-freeglut-and-gltools-with.html PS:Eu nunca usei opengl + Code blocks,mas acho que ja tem alguma coisa "built-in" no code blocks pra SDL,mas eu nao tenho certeza!
  5. era pra ta em em c:,mas o local onde voce quer criar o arquivo voce escolhe
  6. #include <iostream> #include <iomanip> #include <cctype> #include <cstring> #include <cstdlib> #include<fstream> using namespace std; struct Cad_Aluno { char nome[50]; int idade; }; void FunIO(Cad_Aluno *al,std::ostream &saida) { saida << setiosflags(ios::left); saida << setw(25) << "Aluno"; saida << resetiosflags(ios::left); saida<< setiosflags(ios::right); saida << "Idade\n\n"; for (int i = 0; i <= 7; i++) { saida << resetiosflags(ios::right); saida << setiosflags(ios::left); saida << setw (25) << al.nome; saida << resetiosflags(ios::left); saida << setiosflags(ios::right); saida << setw(3) << al.idade; saida << "\n\n"; } } int main () { struct Cad_Aluno aluno[8], y; int i,j; char entraidade[8]; cout << setprecision (2); cout << setiosflags (ios::fixed); // Entrada dos nomes e idade cout << "Cadastro de Alunos\n\n"; for( i = 0; i <= 7; i++) { cout << "Informe o" << setw(2) << i+1 << "o nome: "; cin.getline(aluno.nome, sizeof(aluno.nome)); cout << "\n"; cout << "Entre a idade: "; cin.getline(entraidade, sizeof(int)); aluno.idade = atoi(entraidade); cout << "\n"; } system ("cls");//funciona no dev C++ ( Limpa a tela) //Ordenar por idade for (i = 0;i <= 7;i++) { for (j= i + 1 ;j <= 7;j++) { if(aluno.idade >aluno[j].idade ) { y = aluno; aluno = aluno[j]; aluno[j] = y; } } } FunIO(aluno,cout); ofstream out ("c:/Lista.txt",std::ios::out); FunIO(aluno,out); out.close(); system ("pause"); // Funciona no dev C++ return 0; }
  7. o problema é que quando voce le a primeira vez com fread fread(&RegA,sizeof(TpAgenda),1,ArqAgenda); e depois faz a comparação while(!feof(ArqAgenda) && strcmp(RegA.identificadordono,auxlogindono)==0) ele nao vai entrar no bloco porque o primeiro identificadordono(RegA.identificadordono)gravado no arquivo,vai ser diferente do que foi passado para a função(auxlogindono)no caso é o 2º nome do identificadordono no arquivo,que voce quer ler os contatos,quebrando a condição
  8. oi,nao entendi,o problema ta no módulo RelatorioContatos ou na função RelatorioContatos?fica difícil debugar um programa que ja ta grande sem todas as funções ainda,se puder passar todas as funções pra eu poder ver aqui no compilador o que ta acontecendo,ajudaria
  9. o compilador ve isso como atribuição ao ponteiro constante pro começo do array(que todo array tem),em C/C++ tem que fazer um loop e atribuir caractere por caractere em cada posição no array "num1[pos1] = 'z' num1[pos2] = 'E'"
  10. oi,se voce quer que o output pro arquivo seja exatamente da mesma forma que é passado pro console,então pode criar uma função com o tipo da classe base ostream(cout),e ofstream(out),depois é só chamar a função quando for imprimir na tela e quando for passar pro arquivo struct Cad_Aluno{ char nome[50]; int idade;};void FunIO(Cad_Aluno *al,std::ostream &saida) //ostream é a classe base { saida << setiosflags(ios::left); saida << setw(25) << "Aluno"; saida << resetiosflags(ios::left); saida<< setiosflags(ios::right); saida << "Idade\n\n"; for (int i = 0; i <= 2; i++) { saida << resetiosflags(ios::right); saida << setiosflags(ios::left); saida << setw (25) << al[i].nome; saida << resetiosflags(ios::left); saida << setiosflags(ios::right); saida << setw(3) << al[i].idade; saida << "\n\n"; }} ai la em main voce faria for (i = 0;i <= 2;i++) { for (j= i + 1 ;j <= 2;j++) { if(aluno[i].idade >aluno[j].idade ) { y = aluno[i]; aluno[i] = aluno[j]; aluno[j] = y; } } } FunIO(aluno,cout); depois pra passar pro arquivo ofstream out ("c:/Lista.txt",std::ios::out);FunIO(aluno,out);out.close(); espero que tenha sido isso que perguntou
  11. que é uma função comum(que nao faz parte da classe)tentando acessar um membro privado da classe contexto privado é só um termo qualquer,ele pode ta pedindo pra voce usar isso somente dentro da classe ou qualquer outra coisa que faça sentido na cabeça dele,é melhor perguntar pra ele mas realmente é estranho nao ta funcionando..se voce declarou a função abaixo da declaração da struct dentro da classe então nao tem porque nao funcionar(isso ja era pra evitar qualquer bug de compilador),se puder mostrar o código inteiro ajudaria.. class TopSort{ private: struct leaderNode{}; typedef leaderNode *LeaderPointer;LeaderPointer SearchInsert(int x);};//Definição TopSort::LeaderPointer TopSort::SearchInsert(int x){//Faz o que tiver que fazer}
  12. mas porque nao faz "novo->dados = inteiro1" então?eu nao to com um compilador aqui,mas acho que nao teria problema,a estrutura ja taria inicializada e "dados" é um array de char tambem,isso estaria copiando caractere por caractere,se nao for isso então não to entendendo com certeza
  13. Se "TopSort::LeaderPointer SearchInsert(int x)" for uma função ordinaria,ela tem que ser friend da classe Se SearchInsert for uma função dentro da classe TopSort,talvez o compilador ainda nao esteja vendo a declaração da struct dentro da classe,declara struct no topo da classe só pra ter certeza que o resto da classe vai conseguir "vê-la"
  14. oi,eu nao consegui entender direito o que voce ta querendo fazer(eu li 7 vezes!),strcpy nao vai funcionar pra copiar nesse caso ja que ele vai copiar a string "inteiro1" toda,mas se voce quer que só o primeiro caractere seja pego mesmo que seja digitado mais coisas na stream,pode usar a função getchar se nao for isso que perguntou,pergunta de novo que na próxima eu vou entender
  15. oi,nao to conseguindo entender muito bem o seu código..voce ja fez as funções qd e nd?
  16. "clrscr()" não é standard em C++,usa system("cls") pra cout e cin escreve no topo do módulo "using std::cout; using std::cin;"
  17. atlos

    Sub rotina em C

    voce ta incluindo o módulo "AnosParaDias.h"? pra chamar a função voce tem que passar os argumentos para ela,por exemplo converteanosdias = Anosparadias(arg1,arg2);
  18. pode usar JavaScript ou C# ou Boo,para programar o jogo http://unity3d.com/unity/workflow/scripting
  19. C não te da acesso ao hardware Sim precisa de assembly,em modo real de endereço é até fácil pixealizar usando rotinas de serviço da BIOS,mapeamento de memória de video ou usando as próprias portas,o problema é como ter acesso à isso em modo protegido já que voce precisaria de um nivel de privilégio 0 para ter acesso direto ao hardware e isso geralmente é reservado para o próprio Kernel Enfim,voce precisa saber sobre interrupções,se seu processador for um x86,um bom material para como fazer na "mão" em modo real de endereço(16bits) : "Assembly language for x86 processors" ou o "The Art of Assembly Language" - os tópicos sobre real mode são muito bons e dão o básico sobre como funcionam as coisas nos 1mb de memória. O "Graphics Programming Black Book",tambem é um livro muito bom,expecialmente para quem quer atuar na área,apesar de antigo(assembly antigo),as dicas de otimização são ótimas Como usar as interrupções em modo protegido,existem varios livros..porém poucos são realmente uteis,talvez você queira procurar por outros livros diferente dos que eu vou citar,mas o que voce tem que saber para poder fazer tal coisa é sobre "call gates" : "The Indispensable PC Hardware" - dá a teoria de como fazer isso,falando sobre como funcionam os call gates "Windows Assembly Language and Systems Programming: 16- and 32-Bit Low-Level Programming for the PC and Windows" - é um livro que aborda exatamente esse assunto com foco no DPMI,porém não é bem escrito e o autor ta beirando entre o Windows 3.1 e o 95 ainda "Windows 95 System programming SECRETS" - nao é espicifcamente sobre o assunto,porém o capitulo sobre o assunto,é muito didático e fácil de entender "The Rootkit Arsenal - Escape and Evasion in the Dark Corners of the System" é o mais atualizado que eu li sobre o assunto e já aborda novas instruções usadas para fazer esse tipo de coisa,como SYSCALL,SYSRET etc.. Espero que tenha sido sobre isso que perguntou
  20. se o que voce quer dizer com programação dinamica seja memória dinamica,não aqui tem um bom tutorial explicando sobre alocação dinamica de memória em C http://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html bons estudos
  21. poderia ser algo do tipo char c;c = getch(); //Le e remove o caractere while(c != 'x' ) { switch (c) { case 'w': while(c == 'w') { printf("w"); if(kbhit() == 1) { c = getch(); } } break; case 'd': while(c == 'd') { printf("d"); if(kbhit() == 1) { c = getch(); } } break; } } a biblioteca do windows tambem já tem uma estrutura COORD própria,pode usar essa se quiser,e a função SetConsoleCursorPosition
  22. se o tipo nao tem conversão implicita para o tipo que você quer então não tem como,auto é como qualquer outra declaração de objeto,a direferença é que ele deduz o tipo
  23. Também seria bom saber pra que fins voce pretende programar,ver quais linguagens mais usada pra esse tema e se ela tem um bom suporte de bibliotecas pra tal. Se quiser só aprender a programar,linguagens que abstraem mais do programador e não faz você se preocupar tanto com coisas como checagem de erros também seria bom,se gostar,depois você pode aprender outras que te dão mais controle da máquina.O importante é tentar não se acomodar só em uma,assim vai poder ver as vantagens de todas
  24. voce pode saber o tamanho do arquivo antes e alocar a memória pro tamanho exato,voce pode fazer isso usando a API da WIN,com a função GetFileSizeEx ou usando fseek pro final do arquivo,por exemplo FILE * pfi = fopen("arq.txt","r");fseek(pfi,0,SEEK_END);long int tam = ftell(pfi); char *p = (char*)malloc(tam);fseek(pfi,0,SEEK_SET);fgets(p,tam,pfi); se for isso que voce quer saber..
  25. oi,se voce pretende usar C++,voce ainda pode usar vector<>,nao tem como voce alocar mais de 4 gb de memória de uma vez,pelo menos nao em um arquitetura 32..,chama a função maxsize do vector pra ver qual seria o tamanho maximo de alocação que o vector poderia fazer e faz as contas com o tamanho do tipo que vai usar Pra evitar o resize(dobrado) do container voce pode definir um tamanho fixo pra alocação usando reserve e quando terminar de ler um bloco com o tamanho selecionado em reserve,libera a memória anterior e realoca mais memória para ler a próxima parte do arquivo Vai ser difícil voce achar uma biblioteca melhor implementada que a STL,os allocators otimizam bem principalmente pra tipos built-in . enfim,esse é só o jeito que eu faria,como o rjjj.disse é melhor pesquisar mais quanto a paginação,em teoria se uma tarefa nao esta precisando de processamento,isso ja é feito automaticamente,então se voce executar uma parte do programa em uma thread e "desligar " essa thread pode ser que a paginação ja seja feita,eu nunca testei isso mas mesmo se funcionasse isso seria muito despendioso..

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!