Ir para conteúdo
Fórum Script Brasil

KPITALISTA

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre KPITALISTA

KPITALISTA's Achievements

0

Reputação

  1. KPITALISTA

    arvore patricia

    eu preciso entregar esse trabalho para a minha professora de pesquisa e ordenação: //Estudar, especificar (e implementar) as rotinas necessárias à criação e manipulação de uma //estrutura de ÁRVORE PATRICIA - Practical Algorithm To Retrieve Information Coded In //Alphanumeric, com obtenção de dados pelo teclado, exemplificando a sua utilização //(Palavras-chave: árvore PATRICIA, PATRICIA tree) eu consegui até agora a parte do 'programa de inserção' eo 'programa de consulta', a minha pegunta é como eu implemento esses dois em um programa? __________________________________________________________________________ //programa de consulta patricia search(key,t) typekey key; patricia t; { if(t==NULL)notfound(key); else { while(!IsData(t)) t=bit(t->level,key)? t->right:t-> if(key==t->k)found(t); else notfound(key); } }; ___________________________________________________________________ //programa de inserção patricia insert(key, t) typekey key; patricia t; { patricia p; patricia insBetween(); int i; if(t==NULL) return(NewDataNode(key)); for(p=t;!isData(p);) p=bit(p->level,key)?p-right:p->left; /*find first different bit*/ for(i=1;i<=D && bit(i,key)==bit(i,p->k);i++); if(i>D){error/*key already in table*/; return(t);} else return(insBetween(key,t.i));} patricia InsBetween(key,t,i) typekey key; patricia t; int i; {patricia p; if(IsData(t)||i<t->level) /*create new internal node*/ p=NewDataNode(key); retur(bit(i,key))? NewIntNode(i,t,p): NewIntNode(i,p,t); } if(bit(t->level,key)==1) t->right=InsBetween(key,t->right,i); else t->left=InsBetween(key,t->left,i); return(t); }; __________________________________________________________________ fonte: file:///F:/pesquisa%20e%20ordena%C3%A7%C3%A3o/patricia-alg/%C3%81RVORES%20PATRICIA.htm
  2. cara o exercício que ela me deu é esse: Os dados dos candidatos: NOME, ESTATURA, MASSA e IDADE estão armazenados no arquivo GUARDAS.DAT. Tarefas: O programa deve ir lendo os dados do arquivo e chamar uma função para verificar se os dados do candidato se enquadram nos seguintes limites: IDADE: de 25 a 40 anos ESTATURA: de 1.70 a 2.00 m MASSA: de 75.0 a 100.0 Kg e imprimir uma frase com o resultado de cada quesito dizendo se a idade, a estatura e a massa estão dentro ou não dos padrões, e uma frase final dizendo se ele foi aprovado ou não. Os candidatos aprovados devem ser impressos no final com seus nomes ordenados em ordem alfabética, através de uma função que implemente um dos métodos simples de classificação (Bolha, Inserção ou Seleção). o programa que eu fiz le o nome dos guardas e mostra se eles foram aprovados ou não, para voce compreender melhor coloca no bloco de notas esses nomes: Ze Novo 22 1.80 80.0 Ze Baixo 30 1.60 80.0 Ze Magro 30 1.80 70.0 Ze da Hora 30 1.80 80.0 salva como guardas.dat e salva o meu programa na mesma pasta e copila.
  3. pessoal eu preciso ordenar uma lista .dat em ordem alfabética em bolha, inserção ou seleção até agora eu fis metade do programa, mas a parte mais importante que é ordenar eu não consegui fazer. abaixo oque eu fiz até agora: #include <conio.h> #include <stdio.h> #include <string.h> int main( ) { char nome[40]; float idade,estatura,massa; int i=0; FILE *fp = fopen("Guardas.dat","rt"); if (fp==NULL) { printf("ERRO\n"); return 1; } printf("Veja os resultados dos candidatos dizendo se a idade, a estatura e a massa\nestao dentro ou não dos padroes, e se ele foi aprovado ou não.\n\n"); while(fgets(nome,81,fp)!=NULL) { fscanf(fp, "%f %f %f ",&idade,&estatura,&massa); printf("Candidato: %s\n",nome); if(idade>=25 && idade<=40) printf("Idade dentro dos padroes.\n"); else printf("Idade fora dos padroes.\n"); if(estatura>=1.70 && estatura<=2.00) printf("Estatura dentro dos padroes.\n"); else printf("Estatura fora dos padroes.\n"); if(massa>=75.0 && massa<=100.0) printf("Massa dentro dos padroes.\n"); else printf("Massa fora dos padroes.\n"); if(idade>=25 && idade<=40 && estatura>=1.70 && estatura<=2.00 && massa>=75.0 && massa<=100.0) printf("Candidato aprovado!!!.\n\n"); else printf("Candidato reprovado.\n\n"); } while(fgets(nome,81,fp)!=NULL) { fscanf(fp, "%f %f %f ",&idade,&estatura,&massa); if(idade>=25 && idade<=40 && estatura>=1.70 && estatura<=2.00 && massa>=75.0 && massa<=100.0) printf("Candidato: %s\n",nome); } fclose(fp); getch(); return 1; } a minha professora colocou um código que me ajudaria mas eu não entendi e nem sei como implementa-lo no meu código. abaixo o código da minha prof: //primeiro codigo #define MAX 30 struct dados { char nome[20]; int idade; }; struct dados tabela[MAX]; int count=0; void ordena(struct dados vet[MAX], int n); int main() {//... ordena(tabela, cont); //... } //segundo codigo void ordena(struct dados vet[MAX], int n) { char aux[20]; int j,i; for(j=2;j<=n;j++) { strcpy(aux, vet[j], nome); vet[0]=vet[j]; i=j-1; while(strcmp(aux,vet . nome)<0) { vet[i+1]=vet; --i; } vet[i+1] = vet[j]; } } esse código ta estranho mas eu tenho 75% de certeza que é exatamente oque ela colocou na lousa.
  4. eu preciso fazer esse programa: Os dados dos candidatos: NOME, ESTATURA, MASSA e IDADE estão armazenados no arquivo GUARDAS.DAT. Tarefas: O programa deve ir lendo os dados do arquivo e chamar uma função para verificar se os dados do candidato se enquadram nos seguintes limites: IDADE: de 25 a 40 anos ESTATURA: de 1.70 a 2.00 m MASSA: de 75.0 a 100.0 Kg e imprimir uma frase com o resultado de cada quesito dizendo se a idade, a estatura e a massa estão dentro ou não dos padrões, e uma frase final dizendo se ele foi aprovado ou não. Os candidatos aprovados devem ser impressos no final com seus nomes ordenados em ordem alfabética, através de uma função que implemente um dos métodos simples de classificação (Bolha, Inserção ou Seleção). Exemplo parcial: Dados do arquivo >>>>>>>>>>>>>>>>>>>>>>>Saída esperada na tela Zé Novo 22>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Idade fora dos padrões 1.80>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Estatura dentro dos padrões 80.0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Massa dentro dos padrões >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Candidato reprovado Zé Baixo 30>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Idade dentro dos padrões 1.60>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Estatura fora dos padrões 80.0>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Massa dent >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Candidato reprovado Zé Magro 30>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Idade dentro dos padrões 1.80>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Estatura dentro dos padrões 70.0>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Massa fora dos padrões >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Candidato reprovado Zé da Hora 30>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Idade dentro dos padrões 1.80>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Estatura dentro dos padrões 80.0>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Massa dentro dos padrões >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Candidato aprovado!!! Mostrar a lista dos aprovados em ordem alfabética. oque eu fiz até agora foi isso: #include <conio.h> #include <stdio.h> #include <string.h> int main( ) { char nome[40]; float idade,estatura,massa; int i=0; FILE *fp = fopen("Guardas.dat","rt"); if (fp==NULL) { printf("ERRO\n"); return 1; } printf("Veja os resultados dos candidatos dizendo se a idade, a estatura e a massa\nestao dentro ou não dos padroes, e se ele foi aprovado ou não.\n\n"); while(fgets(nome,81,fp)!=NULL) { fscanf(fp, "%f %f %f ",&idade,&estatura,&massa); printf("Candidato: %s\n",nome); if(idade>=25 && idade<=40) printf("Idade dentro dos padroes.\n"); else printf("Idade fora dos padroes.\n"); if(estatura>=1.70 && estatura<=2.00) printf("Estatura dentro dos padroes.\n"); else printf("Estatura fora dos padroes.\n"); if(massa>=75.0 && massa<=100.0) printf("Massa dentro dos padroes.\n"); else printf("Massa fora dos padroes.\n"); if(idade>=25 && idade<=40 && estatura>=1.70 && estatura<=2.00 && massa>=75.0 && massa<=100.0) printf("Candidato aprovado!!!.\n\n"); else printf("Candidato reprovado.\n\n"); } while(fgets(nome,81,fp)!=NULL) { fscanf(fp, "%f %f %f ",&idade,&estatura,&massa); if(idade>=25 && idade<=40 && estatura>=1.70 && estatura<=2.00 && massa>=75.0 && massa<=100.0) printf("Candidato: %s\n",nome); } fclose(fp); getch(); return 1; } se forem fazer o arquivo.dat coloquem nessa ordem: Ze Novo 22 1.80 80.0 Ze Baixo 30 1.60 80.0 Ze Magro 30 1.80 70.0 Ze da Hora 30 1.80 80.0 ...
×
×
  • Criar Novo...