Ir ao conteúdo
  • Cadastre-se

Luã Faria

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Tudo que Luã Faria postou

  1. @Mitnick8 Não tem nada sobre isso lá... Um colega meu disse q o livro pode ensinar embutido no conceito de GUI...
  2. Bom, estou estudando JAVA pelo DEITEL, eu gosto do livro, principalmente pela profundidade que ensina. Porém, meu professor de JAVA começou a ensinar MVC, ele ainda não chegou em GUI. Meu problema é, ja estou no capitulo 14 do livro deitel, onde ele começa a ensinar GUI e até agora nada de MVC... Acho que esse livro não ensina isso.. Alguem que ja leu o livro todo pode me dizer se eu devo continuar a estudar por ele??
  3. Já foi resolvido. O problema era a falta da inicialização da variavel!!!!!
  4. Apos executar a função lerDados , que consegue encadear uma lista com nos que contem retas, quando tentar usar a função retas_verticais com um simples printf recebo falha na segmentação... se eu usar somente a imprime_lista funciona certinho.. #include<stdio.h> #include<stdlib.h> typedef struct{ int x,y; }ponto; typedef struct a{ ponto p1,p2; struct a *prox; }no; no *aloca_no(){//aloca espaço de memoria para conter um no no *a; if(!(a=(no*)malloc(sizeof(no)))) exit(1); a->prox = NULL; return a; } void imprime_lista(no *imprime, char *nome){// imprime as retas contidas nos nós da lista no *aux = imprime; while(aux){ printf("-----------------------%s-----------------------\n%d %d || %d %d\n", nome,aux->p1.x, aux->p1.y, aux->p2.x, aux->p2.y); aux = aux->prox; } } void incluir_no(no **lista, no*novo){// inclui um no na lista if(*lista == NULL){ *lista = novo; } else{ no *aux = *lista; while(aux->prox) aux = aux->prox; aux->prox = novo; } } void lerDados(no **dadosEntrada, char *local){// le os dados do arquivo em um no e chama a função incluir no para coloca-lo na lista FILE *arquivo; no *acc; if(!(arquivo = fopen(local,"r"))) exit(1); else{ printf("Foi\n"); while(!(feof(arquivo))){ acc = aloca_no(); fscanf(arquivo,"%d %d %d %d\n", &(acc->p1.x), &(acc->p1.y), &(acc->p2.x), &(acc->p2.y)); incluir_no(dadosEntrada, acc); } fclose(arquivo); } } void retas_verticais(no *dadosEntrada, no *verticais){// não funciona, causa falha na segmentação printf("uéé"); } void main(){ no *dadosEntrada, *verticais, *horizontais, inclinadas; char local[50]="/home/lua/Workspace/Algoritmos2/dados.txt"; lerDados(&dadosEntrada, local); imprime_lista(dadosEntrada, "Dados Brutos");// imprime os dados da lista perfeitamente retas_verticais(dadosEntrada, verticais);// se eu apagar essa linha o programa funciona, se nao tenho falha na segmentação } ex2.c dados.txt
  5. Eu estou com um problema de perder os dados utilizando ponteiro duplo para alocação dinâmica de listas. Quando eu uso free e NULL em uma variavel temp eu perco todos os dados alocados.... #include<stdio.h> #include<stdlib.h> typedef struct{ int x,y; }ponto; typedef struct a{ ponto p1,p2; struct a *prox; }no; no *aloca_no(){ no *a; if(!(a=malloc(sizeof(no)))) exit(1); return a; } void lerDados(no **dadosEntrada, char *local){ FILE *arquivo; no *vsf; if(!(arquivo = fopen(local,"r"))) exit(1); else{ printf("Foi\n"); while(!(feof(arquivo))){ if(*dadosEntrada == NULL) (*dadosEntrada) = aloca_no(); else{ vsf = aloca_no(); vsf->prox = *dadosEntrada; *dadosEntrada = vsf; free(vsf);//Aqui esta o problema, sem essa instrução e a de baixo funciona vsf = NULL; } fscanf(arquivo,"%d %d %d %d\n", &((*dadosEntrada)->p1.x), &((*dadosEntrada)->p1.y), &((*dadosEntrada)->p2.x), &((*dadosEntrada)->p2.y)); printf("%d %d\n", (*dadosEntrada)->p1.x, (*dadosEntrada)->p1.y); } } } void main(){ no *teste; char local[50]="/home/lua/Workspace/Algoritmos2/dados.txt"; lerDados(&teste, local); for(int i = 0; i<29; i++) { printf("%d %d \n",teste->p1.x, teste->p1.y); teste =teste->prox; } } Não sei porque n fica colorido esse codigo maldito
  6. Estou tendo problema na função busca(Falha de segmentação) .. Código: typedef struct a{ int dado; struct a *esq, *dir;}no;//função de inserirvoid insere(no **novo, int dado){ if(!*novo)//Testa se o ponteiro *novo não tem endereço { *novo= (no*)malloc(sizeof(no));// Aloca um nó, seu endereço é inserido no ponteiro *novo. (*novo)->esq = NULL; (*novo)->dir = NULL; (*novo)->dado = dado; } else if(dado > (*novo)->dado) insere(&(*novo)->dir,dado); else insere(&(*novo)->esq,dado);}//outras funções...no *busca(no **raiz, int dado)//*busca retorna o endereço de um nó{ if(*raiz) { if((*raiz)->dado == dado) { no *aux = *raiz; return aux; } if((*raiz)->dado > dado) busca(&(*raiz)->esq,dado); else busca(&(*raiz)->dir,dado); } else return NULL;}//mainvoid main(){ no *raiz = NULL, *aux; int dado; char op; while(1) { printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); printf("\n@ @"); printf("\n@ 1-Insere\t 2-Imprime\t3-Altura\t4-BuscarNo @"); printf("\n@ 5-Consultar\t 6-Maior\t7-Menor\t8-Remover @"); printf("\n@ 9-ConsultarPai @"); printf("\n@ @"); printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nOP:"); scanf(" %c",&op); system("clear"); switch(op) { case'1':printf("\nDigite o dado a ser inserido:"); scanf("%d",&dado); insere(&raiz,dado);break; case'2':imprime_ordem(raiz);break; case'3':printf("\nA Altura é: %d",altura(raiz));break; case'4':printf("\nDigite o dado do no a ser buscado: "); scanf("%d",&dado); aux = busca(&raiz,dado); if(aux) printf("No com dado %d, a esquerda %d e a direita %d",aux->dado,aux->esq->dado,aux->dir->dado); else printf("Nao existe");break; case'5':printf("Digite o dado a ser consultado: "); scanf("%d",&dado); if(consulta_no(raiz,dado)) printf("O no foi encontrado"); else printf("Nao foi possivel encontrar"); case'6':printf("\nO maior valor %d",maior(raiz));break; case'7':printf("\nO menor valor %d",menor(raiz));break; case'8':printf("Digite o dado que deseja remover: "); scanf("%d",&dado);remove_no(&raiz,dado);break; case'9':printf("Digite o no que deseja saber o pai: "); scanf("%d",&dado); aux = pai(raiz,dado); printf("\nO no pai %d, filho esq %d filho dir %d",aux->dado, (aux->esq)? aux->esq->dado : 0, (aux->dir)?aux->dir->dado : 0); break; } }}

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!