Ir para conteúdo
Fórum Script Brasil

Mnemonic

Membros
  • Total de itens

    170
  • Registro em

  • Última visita

Tudo que Mnemonic postou

  1. Na quarta linha da função main, você declarou seu ponteiro assim: Pstring=(char *) malloc((i+1)*sizeof(char)); O valor de 'i' é zero, o que significa que Pstring equivale a apenas UM char. Dentro do WHILE você usa a função realloc: Pstring=(char *) realloc(Pstring,(i+1)*sizeof(char)); Mas o valor de 'i' ainda é zero, então mesmo com o ponteiro sendo realocado pra outro endereço, ele continua guardando apenas UM char. Por isso que quando você tenta acessar outras posições de memória usando como base o endereço de Pstring, o programa imprime lixo de memória.
  2. Nesse caso ele tá imprimindo o valor absoluto dos items da lista, mas se você usar um "priint (lista[0])", ele teoricamente imprimiria o valor convertido... "João". Eu digo teoricamente, porque na prática isso vai depender do terminal onde você tá rodando isso e não do python. No terminal da maioria das distros linux por exemplo, que já é adaptado pra tratar unicode, o nome é escrito normalmente... Mas se não me engano, no terminal do windows isso não acontece. Daí você precisaria antes fazer o próprio programa configurar o terminal antes de imprimir unicode nele.
  3. Mnemonic

    (Resolvido) linux e unix

    O caso onde você compila um programa no gcc do linux e ele funciona em alguma derivação do unix existe... Mas é um caso especial. É a exceção, não o padrão. No caso normal as chances de funcionar são bem pequenas... diferenças no kernel, na arquitetura, nos modulos, etc...
  4. Mnemonic

    Método Newton-Raphson

    Esse nem digitou a questão... :lol:
  5. Só fazer por partes. T <- -T x A² / 2 x N x (2 x N + 1) add t0, N, N add t1, t0 1 # t1 = 2xN + 1 mult t1, t1, t0 #t1 = 2 x N x 2 x N + 1 ...etc...
  6. t0 recebe 0 + 100 t1 recebe 100 + 2 Se t0 > 200 , parar t0 recebe 100 + 102 (202) t1 recebe 102 + 2 (104) Se t0 > 200, parar (t0 é 202, então é maior que 200) Daí ele sai do loop, com t0 valendo 202.
  7. Eu não entendi realmente o que você queria fazer no código, mas o erro tá no: "b main" troque por "b loop" que funciona.
  8. typedef struct tJogador { char nome[50]; int pontos; } Jogador; Jogador jog[10]; - fopen, abriu arquivo "jogadores.txt" para leitura apenas. - lê uma linha do arquivo, guarda nome e pontuação em jog[0].nome e jog[0].pontos - lê outra linha do arquivo, guarda nome e pontuação em jog[1].nome e jog[1].pontos - lê mais outra... guarda em jog[2]... - etc... - fecha arquivo O arquivo tá fechado, mas todos os dados que você precisa estão guardados no vetor "jog[]". Então você chama as funções do seu jogo, faz o que tiver que fazer, quando o jogador vencer você procura o nome dele em jog[]. Se estiver lá, você só muda a pontuação... se ele não estiver lá, é só pegar uma posição vazia do vetor e incluir ele. Terminou de executar o jogo, então: - fopen, abre o arquivo "jogadores.txt" pra escrita. - pega os dados de jog[0] e escreve no arquivo - pega os dados de jog[1] e escreve no arquivo - pega os dados de jog[2] e escreve no arquivo - etc... - fecha arquivo Como você abriu o arquivo pra escrita ("w"), o conteúdo que tava antes nele vai ser perdido, e você terá um arquivo novinho em folha com os dados dos jogadores atualizados.
  9. É muito fácil achar isso, cara. Video no youtube, blogs com o passo a passo, tópicos no forum do ubuntu-br... é só ter coragem de usar o google.
  10. Quando o programa começar, você guarda tudo que estiver no arquivo pra memória (ou seja, um vetor ou estrutura, etc), e faz alterações apenas nessa memória... Quando o programa finalizar, você sobrescreve o arquivo com os dados novos.
  11. Na verdade eu já tinha as fontes truetype do windows e já tava com 96dpi. O culpado é o firefox mesmo... apenas pra terem idéia de como a imagem do forum fica aqui: Lado esquerdo chromium, lado direito firefox. Acho que dá pra entender porque eu acho ruim de ler.
  12. O programa enxerga o texto como uma string (um monte de caracter). Então você pega eles com o getc() mesmo, no seu código você transforma eles de volta em número. Existe a opção de usar o fscanf() e já transformar eles em número no momento da leitura, mas o getc é bem mais simples e rápido. int c; int temp[8]; arquivo = fopen(...); for (x=0; x<8 && !feof(arquivo); x++) { c = getc(arquivo); temp[x] = c - 48; } fclose(arquivo);
  13. void teste(int *x) { *x = 12; } // ... int x = 0; // x é igual a 0 teste( &x ); // agora x é igual a 12
  14. É só usar uma função que retorna o valor dela.
  15. A vetor simples que você usou era um vetor de ponteiros: char *jogo_copa[64]; Como uma string nada mais é que um ponteiro pra um vetor de char, isso daí funcionaria pra guardar cópia de outras strings já criadas... mas pra guardar strings próprias nela teria que alocar espaço antes. Um ponteiro guarda apenas o endereço, e não o valor real da string. Então usando a matriz bidimensional, você tem o mesmo resultado só que com espaço reservado pra guardar as strings...
  16. Pra falar a verdade, aumentar o tamanho não seria a solução ideal pra mim... Se não fosse possível mudar a fonte, então acho que a segunda melhor solução seria deixar ela um pouco mais escura. Acho que o que deixa ela meio ilegível é o azul claro. Mas só lembrando que eu estou considerando que isso pode ser um problema apenas meu, hein. Porque o linux não é muito amigável com algumas fontes. Não quero parecer muito arrogante fazendo esses pedidos.
  17. Sua dúvida não ficou clara. Você já tem um script que varre uma página e recolhe os links, imagens, diretórios... então você quer saber se já existe um script que faz a mesma coisa?
  18. Em vez de explicar onde errou, acho que fica mais simples postar o código corrigido... #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_GRUPO 4 struct selecao { char time[100]; int pontos; int gols_favor; int gols_contra; int gols_total; }; int main() { struct selecao grupo_a[4]; //grupo a montado char jogo_copa[64][200]; //total de jogos da copa int i = 0, j = 1, h = 0; char entrada[30]; printf("PROGRAMA COPA DO MUNDO 2010.\n"); for (i = 0; i < MAX_GRUPO; i++) { //GRUPO A printf("Digite o nome da seleção pertencente ao GRUPO A.\n"); fgets(entrada, sizeof(entrada), stdin); entrada[strlen(entrada)-1] = '\ 0'; // só pra tirar a quebra de linha da string strcpy(grupo_a[i].time, entrada); } printf("\n\n"); for (h = 0; h < 7; h++) // cada grupo tem 6 jogos { for (i = 0; i < 3; i++) //quantidade de jogos de modo que não repita { for (j = 1; j < 4; j++) //quantidade de adversários { strcpy(jogo_copa[h], grupo_a[i].time); strcat(jogo_copa[h], " vs "); strcat(jogo_copa[h], grupo_a[j].time); printf("jogo[%d] = %s\n", h, jogo_copa[h]); h++; } } } return 0; } Em C não pode fazer associação direta de strings... precisa usar a função strcpy. Em alguns casos você tava usando array de ponteiros... mas pra usar eles pra guardar strings você teria que alocar memória antes. Você tem ainda no código o problema dos jogos entre times iguais. Basta colocar um IF alí no meio que resolve. Lá no primeiro FOR, eu coloquei um caracter nulo (barra-zero), mas por algum bug no forum ele não tava aparecendo... então coloquei um espaço pra consertar. Tire o espaço antes de compilar.
  19. Isso já vem me incomodando há um tempo, mas nunca o suficiente pra criar um tópico de sugestão. Então aproveito esta manhã pra sugerir alguma mudança (ou alternativa) no tipo de fonte usado pra exibição de código aqui no forum. Aquele entre tags . A fonte usada no forum é normalmente pequena (e em monitores widescreen ela fica bem pequena mesmo), mas isso não é muito problema pois é uma fonte fácil de ler e de acostumar com o tempo. O problema, pra mim pelo menos, é que a fonte usada nos códigos, sendo usada nesse mesmo tamanho pequeno da fonte normal do forum, fica meio ilegível e cansa um pouco a vista depois de um tempo. E como códigos são textos diferentes da escrita normal, cheios de detalhes e aquele aninhado de letras, acaba atrapalhando um pouco. Mesmo considerando que eu tenho a visão normal, corro risco disso ser um problema apenas meu, que não afeta muita gente. Gostaria de ouvira opinião de outros usuários. Caso seja um problema apenas meu, peço desculpas por perderem o tempo lendo isso (continuarei fazendo o firefox aumentar a letra na marra e bagunçar o layout do forum inteiro). Mas caso outras pessoas sofram com aquela fonte, minha sugestão é bem simples... apenas mudar a fonte usada por outra mais legível, ou aumentar um pouco o tamanho da usada atualmente.
  20. Pra fazer a média, é só percorrer o vetor de notas, somar tudo e dividir por 15: media = 0; for (x=0; x<15; x++) { media = media + vetnota[x]; } media = media / 15; Mas tá faltando no código algum critério pra saber se terão prova de recuperação ou se passaram por média. Você disse que média abaixo de 4 é reprovação... Mas cada aluno só tem uma nota, então como faz pra saber a média?
  21. O projeto mono é o .NET do linux em si. E o monodevelop é a ferramenta deles. Então mesmo que você use outro programa pra compilar código C#, você estará ainda usando o mesmo compilador e a mesma máquina virtual que o mono usa... e consequentemente o erro vai ser o mesmo. O erro acontece provavelmente porque o mono não é compatível com a versão mais recente do .NET. É como se o .NET do windows estivesse na versão 4, enquanto o .NET do linux (mono) ainda está na versão 2 ou 3... Então o seu código provavelmente faz uso de coisas da versão mais recente e o mono não consegue fazer isso. Você tem 3 alternativas: - Troca C# por Java (sintaxe é quase igual) - Adapta o seu programa pra usar o mono e espera enquanto ele é melhorado (pode demorar um pouco)... - Junta dinheiro e compra um windows original.
  22. Já criei .deb. Tem muito tutorial de como fazer... é bem simples. E até lançaram uma ferramenta ultimamente que faz tudo pra você. Infelizmente não recordo o nome, mas não deve ser difícil de achar.
  23. É bastante normal normal você redimensionar uma partição sem precisar formatar ela, e daí no espaço restante que sobrar você instalar o linux. Mas sempre existe um risco pequeno de alguma coisa dar errado, então é muito importante você fazer backup do sistema antes de redimensionar. Então, já que teria que fazer backup de todo jeito, eu acho bem mais prático e seguro formatar tudo, criar as partições "limpas" e instalar os sistemas. O tempo que vai perder é o mesmo (pois pra redimensionar demora um pouco), e também quando instalar o windows ele vai bagunçar o grub e você passará uns bons 15 minutos pra resolver... Vai perder menos tempo se formatar. Mas se não for uma opção, se quiser apenas redimensionar, é só baixar o livecd do gparted, iniciar o pc por ele e redimensionar.
  24. A função signal() diz o que o programa tem que fazer quando receber um certo sinal do sistema operacional. Nesse código aí o programa tá setando todos os sinais possíveis pra responderem imprimindo aquelas strings lá. Quando você usa o ctrl+c, ctrl+z, etc, você tá mandando sinais do teclado informando pro programa que ele deve terminar. Mas como o programa tá configurado pra ignorar esses sinais, o único jeito é forçando o KILL nele.
×
×
  • Criar Novo...