Ir para conteúdo
Fórum Script Brasil

iSoron

Veteranos
  • Total de itens

    1.317
  • Registro em

  • Última visita

Posts postados por iSoron

  1. Compilado, é claro que não vai rodar em vários, por conta da propria estrutura do EXE.

    No linux, por exemplo, o cabeçalho é ELF, e no windows, PE.

    Quanto ao codigo fonte, se você usar C ANSI, vai conseguir compilar sem problemas em outros lugares. Não se preucupe com essas configurações do Dev. A maioria é só parametros na compilação. Alterando, você compila em qualquer lugar. wink.gif

    []'s

    iSoron.

  2. É melhor colocar um botão "Sair" e definir a seção pra 10min, por exemplo.

    Assim, se o cara estiver em uma LAN, por exemplo, e não puder esperar os 10 minutos fazendo outra coisa, ele pode se deslogar do sistema através desse botão, que nem aqui no fórum.

    []'s

    iSoron.

  3. Saudações amigos!

    Como eu deixo o site centralizado, utilizando CSS?

    Estou tentando assim: um div dentro do body, sendo que esse div é da classe frameCentral. Nessa classe, eu defini vertical-align para middle, mas nada do div ir pro meio! Eu até usaria padding, mas eu não sei o tamanho do navegador, então como vou definir padding-left e padding-right?

    ps.: esse div precisa ter tamanho fixo.

    []'s

    iSoron.

  4. Se fosse uma sequencia de chars, você poderia usar o StrTok, que é exatamente igual ao do PHP. Se você quiser uma String mesmo, essa função pode ser util:

    void Tokenize(const string& str,
                          vector<string>& tokens,
                          const string& delimiters = " ")
    {
        // Skip delimiters at beginning.
        string::size_type lastPos = str.find_first_not_of(delimiters, 0);
        // Find first "non-delimiter".
        string::size_type pos     = str.find_first_of(delimiters, lastPos);
    
        while (string::npos != pos || string::npos != lastPos)
        {
            // Found a token, add it to the vector.
            tokens.push_back(str.substr(lastPos, pos - lastPos));
            // Skip delimiters.  Note the "not_of"
            lastPos = str.find_first_not_of(delimiters, pos);
            // Find next "non-delimiter"
            pos = str.find_first_of(delimiters, lastPos);
        }
    }
    e, para usar:
    #include <string>
    #include <algorithm>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
        vector<string> tokens;
    
        string str("Split me up! Word1 Word2 Word3.");
    
        Tokenize(str, tokens);
    
        copy(tokens.begin(), tokens.end(), ostream_iterator<string>(cout, ", "));
    }
    E é só isso. Agora um com strtok:
    /* strtok example */
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str[] ="This is a sample string,just testing.";
      char * pch;
      printf ("Splitting string \"%s\" in tokens:\n",str);
      pch = strtok (str," ");
      while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ,.");
      }
      return 0;
    }

    []'s

    iSoron.

    fontes:

    C++ Programming HOW-TO

    C++ Reference Project

  5. O gerenciador do Windows só exibe o que o driver manda, nem checa se é o verdadeiro driver. Por isso, muitas vezes, nos deparamos com aquele "VGA Card" e 640×480, 16 cores. Quando está instalando o driver, ele deve checar a String da Bios da placa e ver se é compativel.

    []'s

    iSoron.

  6. Dessa parte de OS, eu num sei quase nada, mas acredito que cada placa tenha, assim como os HDs, um número serial, ou um ID, como você disse. O que o windows pode ter é um banco de dados bem grande que liga a ID com o fabricante. Se ele não achar nenhum vinculo, pede pra você indicar o driver, e o driver sabe qual ID é o correto.

    Vou procurar ler mais sobre isso.

    Qualquer coisa, posto aqui.

    []'s

    iSoron.

  7. Em DOS? Bem... daria pra descobrir a velocidade. Placa de vídeo é bem mais complicado, pois quem informa não é o hardware, e sim o driver. Sendo assim, você teria que criar os seus drivers, já que os pra DOS são meros "VGA Card"s.

    Taí um código que calcula o clock da CPU:

    float CGettheProcessorSpeedDlg::ProcSpeedCalc()

    {

    /*

    RdTSC:

    It's the Pentium instruction "ReaD Time Stamp Counter". It measures the

    number of clock cycles that have passed since the processor was reset, as a

    64-bit number. That's what the <CODE>_emit lines do.*/

    #define RdTSC __asm _emit 0x0f __asm _emit 0x31

    // variables for the clock-cycles:

    __int64 cyclesStart = 0, cyclesStop = 0;

    // variables for the High-Res Preformance Counter:

    unsigned __int64 nCtr = 0, nFreq = 0, nCtrStop = 0;

        // retrieve performance-counter frequency per second:

        if(!QueryPerformanceFrequency((LARGE_INTEGER *) &nFreq)) return 0;

        // retrieve the current value of the performance counter:

        QueryPerformanceCounter((LARGE_INTEGER *) &nCtrStop);

        // add the frequency to the counter-value:

        nCtrStop += nFreq;

        _asm

            {// retrieve the clock-cycles for the start value:

                RdTSC

                mov DWORD PTR cyclesStart, eax

                mov DWORD PTR [cyclesStart + 4], edx

            }

            do{

            // retrieve the value of the performance counter

            // until 1 sec has gone by:

                QueryPerformanceCounter((LARGE_INTEGER *) &nCtr);

              }while (nCtr < nCtrStop);

        _asm

            {// retrieve again the clock-cycles after 1 sec. has gone by:

                RdTSC

                mov DWORD PTR cyclesStop, eax

                mov DWORD PTR [cyclesStop + 4], edx

            }

    // stop-start is speed in Hz divided by 1,000,000 is speed in MHz

    return    ((float)cyclesStop-(float)cyclesStart) / 1000000;

    }

    Nunca testei, não sei se funciona, mas, como dá pra ver, envolve muito assembly.

    Já era de se esperar, sendo uma função tão baixo nível. Me resta saber se isso só vale pra Pentiums...

    ps.: A função QueryPerformanceCounter é pra windows, então nada feito. Talvez você possa realizar milhoes de operações simples e medir o tempo. Depois você compara com um clock conhecido e tira a proporção.

    []'s

    iSoron.

  8. Com meus poucos de conhecimentos de C++, sei que é mais facil usar a notação de ponteiros para isso.

    O código, então, ficaria:

    int somaDiagonal(**matriz)

    Talvez tenha uma maneira melhor. Sei lá... tongue.gif

    []'s

    iSoron.

  9. Que eu me lembre, esse é o sistema operacional que roda em cima do Windows, né? laugh.gif

    Que louco. Enfim, se for isso mesmo, saiba que o windows já quebrou esse galho calculando e armazenando a informação no Registry. Basta saber acessá-la. Se você quiser calcular mesmo, aí posta, que tb tem como.

    Pois é, se você souber acessar o registry, dá uma procurada em:

    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\~MHZ

    O valor tá em hexadecimal.

    Se não souber, pergunta ae.

    []'s

    iSoron.

  10. Cara... 1,4 não é igual a 1/4.

    Mesmo assim, entendi o que você quer dizer. E não, não tem como, a menos que você reserve um bom tempo codando essa função. Seria o seguinte:

    1. Pega o valor decimal: 1,4 e guarda dois ints: 14 e 10
        O 14 é o numerador e o 10, o denominador.
    2. Acha o mdc e divide os dois.
    3. Reescreve. No caso, ficaria 7/5.
    Como você vê, o problema é no mdc. Não vá, porém, tentando dividir todo mundo por todo mundo não! Tem algoritmos infinitamente melhores, como o de Euclides. Vou dar o pseudo-codigo:
    EUCLID(a,b)
      if b=0
        then return a
        else return EUCLID(b, a mod b)
    Assim, basta invocar:
    int mdc = EUCLID(30, 21); // mdc = 3

    Se você não lembra, o mod pode ser obtido com o operador %

    Se esse algoritmo for aplicado a dois numeros de b bits, ele vai executar O(b) operações aritméticas e O(b^2) operações de bits. Já o numero de chamadas recursivas é aproximadamente O(logb). Como vemos, é um algoritmo bem rápido.

    []`s

    iSoron.

  11. ps: eu gostaria de ter um outro navegador, mais meu pc não roda quase os programas do windows, to com winxp com 64 de ram jheiuJAIJWaUWhAUhwaUWhaUW so rindo

    Instala o Mozilla! É levinho, c vai ver. tongue.gif

    A única coisa que gostaria mais, era se possível, desabilitar o Exibir > Código Fonte, Arquivo > Salvar como e/ou Botão Editar. Alguém sabe como fazê-lo?

    Não tem como. A melhor solução é abrir uma nova janela que não tenha menus, ou então colocar frames na página. Assim, a opção do menu vai retornar a página no_frames.

    Ainda assim, tem como burlar. laugh.gif

  12. Ai fica mais complicado. Se você pudesse rodar um servidor na web pra gravar esses recordistas, seria ótimo, até porque seria mais facil de divulgar os vencedores. Pra isso, você poderia fazer um servidor em PHP e se conectar a ele por socks, do seu programa.

    Mas aí complica muito!

  13. Assim:

    #define ID_METRALHADORA 1;
    #define ID_REVOLVER 2;
    
    [...]
    strcpy(nomes[ID_METRALHADORA], "Metralhadora);
    strcpy(nomes[ID_REVOLVER], "Revolver");
    
    [...]
    id = 1;  // usuario esta usando uma metralhadora agora
    cout << "Arma: " << nomes[id];
    
    [...]
    if(id == ID_METRALHADORA) {   // comparando
       danos = 3;
    } else if(id == ID_REVOLVER) {
       danos = 1;
    }
    

    E aí vai. Espero que tenha entendido.

    ps.: meu nick não é Java, é iSoron tongue.gif

×
×
  • Criar Novo...