Ir para conteúdo
Fórum Script Brasil

AlineI

Membros
  • Total de itens

    24
  • Registro em

  • Última visita

Sobre AlineI

  • Data de Nascimento 22/05/1989

Contatos

  • Website URL
    http://
  • ICQ
    0

Perfil

  • Location
    MS - Brasil

AlineI's Achievements

0

Reputação

  1. AlineI

    (Resolvido) Arquivos

    Ahh sim, vou tentar ver também qual seria o problema do feof... Obrigado!
  2. Bom, este programa consiste em Cadastrar e Buscar no arquivo de registro, usando fread e fwrite, mas, na execução do programa, ao achar o livro atraves do autor, ele imprimi as caracteristicas do livro duas vezes, mas lá no arquivo que foi criado, ele imprimi só uma vez, como deve ser. Ou seja, quando é só um arquivo, ele le de novo, mas já fiz teste com dois, e isso não acontece. Qual poderia ser o problema? Na condição de parada? obs: ignorem alguns comentários que eram válidos quando era apenas um teste. #include <stdio.h> #include <stdlib.h> #include<string.h> typedef struct { char titulo[20]; char autor[20]; char assunto[20]; char editora[20]; int edicao; }reg; typedef reg registro; registro regLivro; void Cadastro() { //funcao que grava os dois regs acima no arquivo. FILE *ptrArq; ptrArq = fopen("Teste.txt","wb");//escrita binaria printf("Titulo: "); gets(regLivro.titulo); printf("Autor: "); gets(regLivro.autor); printf("Assunto: "); gets(regLivro.assunto); printf("Editora: "); gets(regLivro.editora); printf("Edicao: "); scanf("%d", ®Livro.edicao); fflush(stdin); fwrite(®Livro,sizeof(registro),1,ptrArq);//salva o arquivo 1, //fwrite(&teste2,sizeof(registro),2,arq);//o parametro mudou para 2, //para não sobrescrever o //registro 1 fclose(ptrArq);//fecha o arquivo para não ferra-lo. //Somente salva o arquivo no disco. } void Busca(char *autor)//passa como parametro uma chave pela qual busca... { FILE *ptrArq;//arquivo... ptrArq = fopen("Teste.txt","rb");//leitura binaria, usada para ler registros. registro temp;//registro temporario //int posicao =1;//so para mostrar onde achou o reg no arquivo... while(!feof(ptrArq))//enquanto não FimDeArquivo(NomeDoArquivo) { fread(&temp,sizeof(registro),1,ptrArq);//Le um registro salvando o no temp... //no caso esta comparando o paramentro com o campo TESTE do registro /* *Poderiamos buscar em um registro por exemplo pelo campo RGA, então essa busca seria util... */ if (strcmp(temp.autor,autor)==0)//e compara se a chave do registro lido é igual a procurada. { //printf("Achou a parada na posicao %d\n",posicao);//se encontrou mostra-a. printf("\nTitulo: %s", temp.titulo); printf("\nAutor: %s", temp.autor); printf("\nAssunto: %s", temp.assunto); printf("\nEditora: %s", temp.editora); printf("\nEdicao: %d", temp.edicao); } else printf("Livro inexistente no arquivo"); //posicao++;//avanca o contador. } fclose(ptrArq);//fecha } int main() { char autor[20]; Cadastro(); printf("Informe o autor para efetuar a busca: "); gets(autor); Busca(autor); return 0; }
  3. Olha, não sei, mas parece um tanto trabalhoso isso. Eu fiz uma tabela mágica, ano passado q nem sei onde está... é a base de regras, truque, que seja... onde a pessoa escolhe o numero de colunas que a tabela vai ter, os numeros são gerados, mas existe uma regra pra isso, dai a pessoa pensa no numero e informa em quais colunas ele está e em quais ele não está. Através de um método, é "adivinhado" o numero que a pessoa pensou. É interessante. Mas é só uma analogia ao que você está fazendo.
  4. Bom, tem alguém que saiba mexer com C e OpenGL?! Tenho que fazer o programa das Curvas de Hilbert rodar no OpenGL... mas é em 2D mesmo, menos mal. Se tiver, eu posto o programa aqui ;) Pra ir me auxiliando.
  5. Então isso é com structs? Bom, foi isso que eu entendi... Então, ficaria assim: struct { char nome[30]; char sexo; int anoNasc; int codEscolaridade; /*dai na hora que pergunta o codigo da escolaridade, imprima as opções (1- analfabeto 2- primeiro grau 3-segundo grau 4- superior), e o usuario digita apenas o codigo, que seria 1, 2, 3 ou 4.*/ }
  6. AlineI

    Jogo da Velha

    Bom, eu fiz um em C. Usei a função a seguir, para que eu pudesse chamar ela e receber as letras (A até I) para representar o tabuleiro como referência para o usuário. Ele diz se é na posição A ou B ou C... ou I, que quer jogar. Isso de início, pois cada uma das variaveis c1, c2... c9, estão inicializadas com A, B... I, respectivamente. Depois essa função é chamada num laço de repetição onde o tabuleiro é imprimido a cada jogada, devidamente atualizado. void imprime() { printf("\n::.TABULEIRO.::\n"); printf("\n %c | %c | %c \n", c1, c2, c3); printf("___________\n"); printf(" %c | %c | %c \n", c4, c5, c6); printf("___________\n"); printf(" %c | %c | %c \n", c7, c8, c9); } Então, o tabuleiro primeiramente é apresentado assim: _A_|_B_|_C_ _D_|_E_|_F_ _G_|_H_|_I_ E caso o jogador escolha a posição A, o tabuleiro atualiza e é exibido com um X ou uma O na posição A, enquanto o resto fica como está (B, C... I), e assim por diante. Bom, esta é apenas uma idéia, pode pegar como base para aperfeiçoar ou sei la... Espero ter ajudado. E ah! Como o kuroi questionou, não sabemos se você irá fazer com gráficos ou apenas no dos, mas creio que seja no dos, então... essa seria a minha contribuição, caso seja gráficos... nem posso ajudar, aliás, estou com problemas com gráficos. hehe.
  7. AlineI

    jogo do bingo

    Pois é... randomize é do pascal... srand é em C. Voce pode usar a funcao srand() e rand() da stdlib. A srand() tem mais ou menos a mesma funcao da Randomize do pascal. Dai, para voce gerar um numero aleatorio (entre 0 e RAND_MAX) voce faz uma chamada para a funcao rand(). #include <stdio.h> #include <time.h> #include <stdlib.h> int main(){ srand(time(NULL)); while (1) printf("%d\n", rand()); return 0; } Se voce quiser gerar um numero entre linf (limite inferior) e lsup (limite superior) (dois valores que voce escolhe), voce pode fazer assim: int rvalue = linf + (rand() % (lsup - linf));
  8. 1º) Baixar o arquivo "MinGW-5.1.4.exe": http://sourceforge.net/project/showfiles.p...ckage_id=240780 2º) Após fazer o download, execute o programa. Escolha a opção FULL e depois "DOWNLOAD & INSTALL". Ele vai baixar todos os arquivos do compilador. Após isso instale o compilador no diretório padrão "C:\MinGW" (não na pasta Arquivos de Programas, apenas dentro do disco C). 3º) Após instalá-lo, baixe o arquivo: http://dessent.net/tmp/gcc-vista-3.4.5-20060117-1.tar.gz. Descompacte-o e jogue as pastas "bin" e "libexec" dentro da pasta onde o compilador MinGW está instalado, substituindo tudo. 4º) Após isso, baixar o Code::Blocks sem MinGW : http://downloads.sourceforge.net/codeblock...setup.exe" e instale-o. ^_^
  9. Como que eu faço pra colocar [resolvido] no tópico? :rolleyes:
  10. Sim, interessante para a lógica e própria linguagem. A função da qual já comentou-se que há... é a toupper. ;)
  11. AlineI

    jogo do bingo

    você sabe onde está sorteando o que? Tem mais de uma função rand aí no código... tem essa cart[j] = randcart(); usada no ínicio do programa... é usada num for. (realmente ainda não analisei bem para ver pra que serve). tem três funções no final que usam o rand também... /*----------------------------Funcao sorteia numeros dos cartoes-------------------- int randnume() { int numero; /*Retorna inteiros*/ numero = random(90)+1; return(numero); } //*-----------------funcao do sorteio da quantidade de cartoes------------------------ int randcart() { int cart; /*Retorna inteiro*/ cart = random(2)+1; return(cart); } //*--------------------funcao escolhe um numero de 1 a 90------------------------------ int numbola() { int bola; /*Retorna este numero*/ bola = random(90)+1; return(bola); } Primeiro, está comentado nessas funções acima pra que servem... então, o que você quer mudar para randmize() ? Como assim apenas te falaram?! Pesquise e veja como essa função randemize funciona!! Depois tente colocar aonde você quer, se é na função para sortear números de cartões, quantidade de cartões ou numero das bolas... Por favor, é realmente muito importante que você estude este código antes de tentar fazer alguma alteração.
  12. Bom, implementei programas de cópia de arquivo por caracter, linha e bloco... mas o de bloco tem um pequeno erro. O programa consiste em informar um RGM e o nome do aluno (RGM e Aluno em uma struct)... quando quiser parar, informe -1 para o RGM. Então a ultima struct informada (RGM e Aluno), são repetidos no arquivo de saída, aparecem dois iguais... por exemplo: Programa sendo executado: RGM: 12 Aluno: Aline RGM: 15 Aluno: Gessica RGM: -1 process returned 1 (0x1) execution time... Ok. Lá na pasta onde estou gravando o .txt com o arquivo de Entrada e o de Saida(cópia)... o de Entrada está perfeito, enquanto o de Saída repete as informações da ultima struct, no caso do exemplo, exibe Géssica e seu rgm duas vezes. Aí vai o código: #include <stdio.h> #include <stdlib.h> typedef struct { char nome[20]; int rgm; }tReg; tReg regAluno; unsigned CopiaArqPorBloco (const char *arqDeEntrada, const char *arqDeSaida) { FILE *ptrEntrada, *ptrSaida; /*streams*/ char c; ptrEntrada = fopen(arqDeEntrada, "rb"); if(ptrEntrada == NULL) return 0; ptrSaida = fopen(arqDeSaida, "wb"); if(ptrSaida == NULL) { fclose(ptrEntrada); return 0; } do { fread (&regAluno, sizeof(tReg), 1, ptrEntrada); fwrite (&regAluno, sizeof(tReg), 1, ptrSaida); }while (!feof(ptrEntrada)); fclose(ptrEntrada); fclose(ptrSaida); return 1; } int CriaArq(char *nomeArq) { FILE *ptrArq; tReg Aluno; ptrArq = fopen(nomeArq, "wb"); if (ptrArq == NULL) return 0; do { printf("RGM: "); scanf("%d", &Aluno.rgm); if (Aluno.rgm!= -1) { printf("Nome: "); scanf("%s", Aluno.nome); fwrite (&Aluno, sizeof(tReg), 1, ptrArq); } }while (Aluno.rgm != -1); fclose(ptrArq); return 1; } int main() { char *nomeArqE, *nomeArqS; //printf("Informe o nome do Arquivo: "); //scanf("%s", nomeArq); nomeArqE = "ArqEntrada.txt"; nomeArqS = "ArqSaida.txt"; if (!CriaArq(nomeArqE)) { printf("Falhou CriaArq"); return 0; } if (!CopiaArqPorBloco(nomeArqE, nomeArqS)) { printf("Falhou CopiaArqPorBloco"); return 0; } return 1; }
  13. AlineI

    jogo do bingo

    Onde tem a função rand ou random no código... foi você que fez ou pegou pronto? Se não foi você, deve pelo menos entender como funciona a função rand que está sortiando as cartelas e bolas... associando ao que eu disse, você saberá se é possível ir mudando o indice para sortear numeros diferentes ou pode ser que não dê , de acordo com o funcionamento do programa... eu nem testei esse programa... E uma observação: sou mulher.
×
×
  • Criar Novo...