Ir ao conteúdo
  • Cadastre-se

LNW

Membro Pleno
  • Posts

    1.543
  • Cadastrado em

  • Última visita

Tudo que LNW postou

  1. @claudiogc Amigo, dei uma ajeitada no seu código. Dê uma olhada. Mas não faria dessa forma, em absoluto; eu leria as linhas com fgets (isso em C) e faria a disposição dos laços de outra forma. Como já comentado, você precisava terminar as strings e também aumentar o espaço alocado para elas. Veja, você declara um array de tamanho 6. A sua linha já tem 6 caracteres e precisaria do terminador, portanto, tamanho total de 7. Não seja tão econômico. Ao final, você precisava verificar também se o fim de arquivo foi alcançado. Do jeito como estava, iria entrar num loop, já que esse valor seria testado e seria diferente de '\n'. O mesmo problema ocorre com os laços anteriores.. tem que corrigir isso. #include <stdio.h>int main(){ FILE *arq = fopen("savegame.txt", "r"); char carac; char nome[25]; char pontos[4]; char historico[10]; int i, linha = 1; if( arq ) { while( !feof( arq ) ) { i = 0; if(linha == 1) { while((carac = fgetc( arq )) != '\n') { nome[i] = carac; i++; } nome[i] = 0; printf("\nNa linha %d = %s",linha, nome); } else if(linha == 2) { while((carac = fgetc( arq )) != '\n') { pontos[i] = carac; i++; } pontos[i] = 0; printf("\nNa linha %d = %s",linha, pontos); } else { while( ((carac = fgetc( arq )) != EOF) && ((carac != '\n') )) { historico[i] = carac; i++; } historico[i] = 0; printf("\nNa linha %d = %s",linha, historico); } linha++; } fclose( arq ); } else { printf("\nArquivo NAO existe.\n"); } return 0;} LNW
  2. E agora, José? Aquela coluna refere-se ao tempo de atividade (ative time) do disco, o quanto de tempo (em percentual) ele está gastando para ler ou gravar em disco. A outra tab tem essa informação detalhada, com o tempo de atividade, velocidade de leitura e escrita. @paul0liveira Isso pode ser o SuperFetch (Google). Quando estiver com muita atividade, vá até o Gerenciador de Tarefas > tab Desempenho > Abrir Monitor de Recursos > tab Disco Ali ele mostra os processos que estão demandando leitura / escrita de maneira detalhada. Tire uma foto dessa tela para analisarmos. Assim quando eu instalei o Win8.1 Update 1 (na minha máquina nova), também tive problemas com essas atividades intensas de disco que foram amenizadas com a instalação do update KB2981965 (ou com o tempo?). MAS, como a sua máquina encontra-se atualizada, certamente esse já não seria mais necessário.
  3. @Robherto Não sei se é o melhor, mas acabei de montar uma máquina pra mim em setembro e comprei este aqui: http://www.lg.com/us/data-storage/lg-BH16NS40 Pelas minhas pesquisas, vi que era bem avaliado, diferentemente de um outro modelo parecido WH16NS40 da própria LG. Eu tinha a opção para comprar os dois, então optei pelo primeiro. Até agora, tudo OK. Mas eu acho que os drives já não duram tanto como antes. Gosto também dos drives da PIONEER, mas como queria terminar logo a máquina, resolvi ir de LG mesmo. Até agora não tenho tido problemas.
  4. @luisfranope1109 Não manjo muito de Excel, mas saberia fazer isso por fora, através de um programinha que geraria esses grupos com valores aleatórios. A saída (os valores) poderia ser direcionada para um arquivo .CSV (valores separados por vírgula) que poderia ser aberto no Excel normalmente. Exemplo de saída: 36,44,21,47,48,0112,13,25,58,36,0558,37,23,42,43,3033,11,02,12,52,46etc.
  5. @davds Você pode postar o script que não funcionou para tentarmos identificar o problema.
  6. @Thiago Rodrigo_688889 Ah, é bem simples: 1) basta conectar uma ponta do cabo VGA ao adaptador; tem até aqueles parafusos laterais que você usa para segurar bem o cabo; 2) pronto; agora, basta conectar uma ponta do cabo no monitor de vídeo e a outra ponta (já com o adaptador) na placa de vídeo. Amigo, não tem como errar. É mais fácil que entrar na Internet para checar um e-mail. LNW
  7. @Thiago Rodrigo_688889 Estou entendendo perfeitamente, Thiago. Leia com atenção abaixo. Você tem a opção para comprar esse cabo que você postou. MAS, provavelmente, isso não será necessário, haja vista que normalmente a gente sempre tem um cabo VGA já em uso/sobrando em casa, como este abaixo: Leia novamente com atenção: 1) Se você já tiver o cabo que aparece na foto acima, você não precisará comprar cabo algum; usará o adaptador. 2) Se você NÃO tiver nenhum cabo em casa, então você poderá fazer uma escolha. Ou compra este cabo VGA acima (que é mais barato), ou compra o cabo que você postou (mais caro). A diferença é que com um cabo será necessário usar o adaptador incluso com a placa, e com o outro cabo, o que você postou, não; você já conecta direto. Antes que pergunte: sim, o resultado é o mesmo. Mesma qualidade de imagem. OK? LNW
  8. @Thiago Rodrigo_688889 Cabo provavelmente não, mas um adaptador. Com a minha placa veio exatamente este adaptador abaixo: LNW
  9. Muito bom, lembro-me de ter feito um exercício desses em Pascal, mas já faz muuuito tempo... @, eu também não vi nada de errado com o código postado até então.. @dontpanic Funciona legal, mas seria interessante dar uma equilibrada na distribuição de cédulas de 5. Por exemplo, se você meter o valor 5987413, a distribuição originalmente ficaria assim: 100 = 3289750 = 3289820 = 3289910 = 329015 = 32 = 32904 Você poderia inserir mais um teste como aquele feito inicialmente (antes do while) dentro do laço para ir consumindo mais cédulas de 5. Tipo: if (!(vlr % 10) && (vlr > 10)){ vlr -= 10; cinco += 2;} Colocaria isto depois do if que testa a divisão por 10. Agora como resulta (para o mesmo valor de entrada): 100 = 3254050 = 3254020 = 3254110 = 325415 = 130192 = 32544 Não testei muitos valores, mas acho que está OK. Na dúvida, é só fazer um laço para testar todos os valores. LNW
  10. @brubeiro Insira estas duas primeiras linhas ali ao final do seu código. Deverá resultar no esperado. result_area = area;result_volume = volume;resultado_area.setText("Resultado (em metros quadrados): "+result_area);resultado_volume.setText("Resultado (em metros cúbicos): "+result_volume); LNW
  11. @brubeiro Evite ficar, as coisas só pioram... ainda mais codando. Você já viu que você declara e inicializa as variáveis result_area e result_volume e simplesmente printa (ou retorna) os valores destas ao final do seu código? Ou seja, você não atribuiu resultado algum de cálculo para elas. LNW
  12. @Kingflare Passarei umas dicas para que você mesmo tente resolver esse exercício. Antes de mais nada, sugiro declarar o vetor de forma simples, simplesmente fazendo: Var vetor : Array[1..20] Of Integer; Não sei se alguém começou a fazer esse seu exercício, mas complicou demais. Segundo, é necessário ajustar o valor passado para a função Random. No caso de 23, o valor aleatório gerado será de 0 a 22. Logo, você terá valores possíveis de 22 a 44, sendo que precisa ir até 45. Então, passe: Random(23 + 1) + 22; Ou seja, Random agora vai gerar possíveis valores de (0 a 23) + 22. Certo? Recomendo remover a função Randomize de dentro daquela função. Coloque-a logo no início do seu programa, após o Begin. Essa função precisa ser chamada apenas uma vez dentro do seu programa. Sobre o algoritmo. Vejo que você tenta realmente ver o valor anterior para verificá-lo se é menor. Isso mesmo. Sendo que, você precisa ter esse valor anterior armazenado em alguma variável para que possa ser testado com os valores seguintes do vetor. Se você não fizer isso, você não tem como saber se a sequência é válida, ou seja, se você está lidando com valores crescentes. Considere o seguinte. Exemplo: vetor = 1, 2, 3, 4, 5, 6, 2, 3, 4, 1, 9, 10, 11, 12, 13, 14, 15, 15, 3, 0 Num laço FOR iniciando em 2 até 20: valor = vetor[1]contador = 1maior_sequencia = 1Para i = 2 até 20 Faça Se (vetor[i] > valor) Então valor = vetor[i] contador = contador + 1 Senão ... FimSe valor = vetor[i]FimPara Isso é apenas um esboço. Sempre que for verdadeiro, você vai contar o número de vezes que isso acontece. Assim, você começa a saber o tamanho da sequência. Sendo falso, você verifica se o contador é maior que a maior sequência (maior_sequencia) vista até então. Sendo, atualiza e reinicia contador com 1 e continua a percorrer o vetor. A ideia geral é essa. Se você conseguir identificar o tamanho da maior sequência, já é meio caminho andado para resolver a questão dos índices. Por isso, recomendo focar nisso primeiramente. No caso do vetor acima, o tamanho da maior sequência é 8 (1, 9, 10, 11, 12, 13, 14, 15) Veja que as dicas acima funcionam, cheguei a implementar: [ ]'s LNW
  13. @Luis Ricardo Amorim E aí, joia? Qual era o problema? O que teve de fazer para resolver? [ ]'s
  14. @ Bom, eu não uso essa IDE, mas pelo que vi, basta ir em: Options > Environment Options > tab Misc Naquele espaço você insere o código padrão que quer usar. Tem uma outra versão dessa IDE onde essa configuração fica em: Tools > Editor Options > Code Insertion > tab Default Source Aí você digita o código base ali. [ ]'s
  15. LNW

    Dúvida,iniciante C

    @cardano O problema é que fgets() inclui o caractere de newline '\n' no final da string e isso está atrapalhando a busca. Basta remover esse caractere do final da string lida. Ou use outra função: scanf("%79[^\n]", search_for); [ ]'s LNW
  16. @Ronimar Você só precisa saber qual dos dois é o maior. Se no teste o primeiro (n1) for o maior, retorne-o. Caso contrário, retorne o segundo (n2). No caso dos números serem iguais, n2 será retornado (o teste relacional será falso). Veja como a sua função fica bem simples: funcao Fmaximo(n1, n2 :inteiro): inteiroInicio se (n1 > n2) então retorne n1 senao retorne n2 fimsefimfuncao Com a Fminimo é a mesma coisa, basta trocar o operador relacional de > para <. PS: O corretor do ortográfico do fórum insiste em fazer correções dentro da tag CODE. O "então" ali dentro não tem acentuação. [ ]'s
  17. @UH.1 Sim, isso mesmo.. o GOTO. Veja o exemplo: @echo off:inicioCLSecho Escolha uma Opcao:echo.echo [1]Programa1 [2]Programa2 [0]Sairecho.set /p tipo="> "if %tipo%==1 ( start /wait nome_programa1) else if %tipo%==2 ( start /wait nome_programa2) else if %tipo%==0 ( goto fim) else ( echo. echo Opcao invalida! Pressione qualquer tecla para escolher novamente . . . echo. pause > NUL goto inicio):fim LNW
  18. A opção strcasecmp() seria uma boa pedida (4.4BSD, POSIX.1-2001). http://linux.die.net/man/3/strcasecmp LNW
  19. @Aleff Moura Download: http://rghost.net/57687748 O .BGI fornecido precisa estar no mesmo diretório do executável. [ ]'s
  20. Tem o speaker conectado para ver se ele dá alguma pista? [ ]'s
  21. @Aleff Moura Aqui no Turbo C o seu programa roda e o executável é gerado normalmente. Eu não lembro agora, mas pode ser que o Turbo C++ tenha alguma opção parecida com a do Turbo Pascal nessa questão da compilação. No Pascal, você tem a opção de selecionar como destino da compilação a Memória ou Disco: E o seu programa: Verifique se há alguma opção semelhante aí no Turbo C++. [ ]'s
  22. @lunalovegood Você apenas declarou o ponteiro, mas não alocou memória. Você pode usar um malloc ou fazê-lo através de uma variável já declarada, portanto, já com sua memória alocada: struct dados *p, x;p = &x; Você declara o ponteiro e uma variável. Depois, aponta p para a mesma região de memória de x. p aponta para x. Ou usa um malloc: struct dados *p = (struct dados*)malloc(sizeof(struct dados)); Você mesma faz a alocação de memória de maneira direta. Remova também o operador & usado na leitura de nome e sobrenome. Um ponteiro para o array já é passado durante uma chamada de função. Bom, o typecast (ter isto (struct dados*) incluso na frente de malloc) não é necessário, mas para evitar o 'ah, não compilou aqui', pois provavelmente estará usando um compilador de C++, então que fique assim, pelo menos vai compilar.. [ ]'s
  23. Pessoal, Depois de ver aquele vídeo do Gabriel Torres sobre filtro de linha, acabei ficando com uma dúvida na escolha do filtro de linha. O problema é a questão do aterramento. No vídeo, o GT deixa bem claro que o aterramento é obrigatório e sem este a proteção não vai existir. O problema é que por enquanto eu não tenho como providenciar um aterramento por aqui, mas ao mesmo tempo quero remover o tal "estabilizador". Li por aí que vale a pena até mesmo ligar diretamente na tomada. Neste meu cenário, sem aterramento disponível, um Clamper ainda seria de alguma valia ou seria um investimento (atualmente) desnecessário? Qual poderia comprar? Um abraço, [ ]'s
  24. @amzero O problema deve ser no restante das milhares de linhas que devem compor o seu programa. O código que você postou e depois o postado pelo @ScreenBlack na forma de um exemplo para teste não apresentam quaisquer problemas. Veja, é o que temos no instante; e o que temos funciona perfeitamente. Sim, testado no g++ e no Visual C++ 2013. Veja que consigo reproduzir esse erro que você relata simplesmente escrevendo em posições indevidas da memória: Você vai precisar rever todo o seu código para detectar esse tipo de acesso indevido. [ ]'s
  25. @Mauricio Wake Dê uma olhada na função ShellExecute(). LNW

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!