Ir para conteúdo
Fórum Script Brasil

Josefran

Membros
  • Total de itens

    35
  • Registro em

  • Última visita

Tudo que Josefran postou

  1. Josefran

    INterface Grafica

    Tantos programadores e ninguém mexe com interface gráfica???? poxa alguém me da uma luz, apostila que explique o básico pois é a primeira vez que tenho contato com interface gráfica em c...
  2. Josefran

    INterface Grafica

    ninguém? um tutorial básico do inicio de interface gráfica, que biblioteca eu uso. como essas coisas.
  3. Josefran

    INterface Grafica

    Estou começando a programar em C, já saquei ate depois de alocação dinamica. Estava interessado em aprender a programar interface gráfica em c, mas não sei como funciona e ate para procurar na net achaei um tuto de allegro, mas nada roda, tipo quando coloco #include<allegro.h> #include<stdio.h> main() { printf(""); } da erro no main, não acho nada que explique melhor eo tuto(http://equipe.nce.ufrj.br/adriano/c/apostila/allegro/docs/programa.html) que achei nem mesmo os códigos do tudo rodam. e ai gente alguém tem um norte para mim, tipo queria aprender. ajuda vlw
  4. Josefran

    (Resolvido) Ajuda

    Não precisa mais já achei o erro era só trocar o break por um continue no laço do separar lista vlw abraço
  5. Josefran

    (Resolvido) Ajuda

    desculpa a pressa mas olha o código inteiro #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> int quant=0; struct Lista{ int item; struct Lista *next; }; typedef struct Lista lista; lista *primeira=NULL, *ultima=NULL, *matriz[3]; void adiciona(); void busca(); void exibe(int i); void remove(); void menu(); void tamanho(); int frequencia(lista *p, int n); void substituir(lista *p, int n, int m); void *mallocX (unsigned int nbytes); lista **listadupla(lista *p, int n); void *mallocX (unsigned int nbytes) { void *ptr; ptr = malloc (nbytes); if (ptr == NULL) { printf ("Socorro! malloc devolveu NULL!\n"); exit (EXIT_FAILURE); } return ptr; } void adiciona(){ lista *p; p = (lista *)mallocX (sizeof(lista)); printf("Digite o item da lista:\n"); scanf("%d", &p->item); if(!primeira){ p->next = NULL; primeira = p; ultima = p; quant++; return; } p->next = NULL; ultima->next = p; ultima = p; quant++; } void busca(){ int s; int p=0; lista *q; q = primeira; printf("Digite o valor do item da lista\n"); scanf("%d", &s); while(q){ if(q->item == s){ p++; printf("O item esta na %d posicao\n", p); return;} p++; q = q->next; } printf("O item não esta na lista\n"); } void remove(){ int s; lista *q, *ant, *prox; q = primeira; prox = q -> next; ant = NULL; printf("Digite o valor do item da lista\n"); scanf("%d", &s); while(q){ if(q->item == s){ if(!ant){ free(q); primeira = primeira -> next; quant--; return;} ant->next = prox; free(q); quant--; return;} ant = q; if(q->next){ q = q->next; prox = q->next; break; } q = NULL; } printf("O item não esta na lista\n"); } void exibe(int i){ lista *p; if(i == 0){ p = primeira; while(p){ printf("%d\n", p->item); p = p->next; } } else { p = matriz[i]; if(!matriz[i]){ printf("não existe itens aki\n"); return;} while(p){ printf("%d\n", p->item); p = p->next; }} } void tamanho(){ printf("O tamanho do lista e %d\n", quant); } int frequencia(lista *p, int n){ lista *q; int i=0, cont=0; if(!q){ printf("A lista estar vazia\n"); return 0; } while(q){ if(q->item == n){ i++; cont++; printf("Ele esta na posicao %d\n", cont); } q = q->next; cont++; } return i; } void substituir(lista *p, int n, int m){ lista *q; q = p; if(n == m) return; while(q){ if(q->item == n){ q->item = m; } q = q->next; } } lista **listadupla(lista *p, int n){ int i; lista *a, *b, *c, *d, *q; matriz[1] = NULL; matriz[2] = NULL; matriz[0] = p; q = p; while(q){ if(q->item < n){ if(!matriz[1]){ matriz[1] = (lista *)mallocX (sizeof(lista)); matriz[1]->item = q->item; matriz[1]->next = NULL; a = matriz[1]; c = matriz[1]; break; } matriz[1] ->next = (lista *)mallocX (sizeof(lista)); matriz[1] = matriz[1]->next; matriz[1]->item = q->item; c->next = matriz[1]; c = matriz[1]; } else{ if(!matriz[2]){ matriz[2] = (lista *)mallocX (sizeof(lista)); matriz[2]->item = q->item; matriz[2]->next = NULL; b = matriz[2]; d = matriz[2]; break; } matriz[2] ->next = (lista *)mallocX (sizeof(lista)); matriz[2] = matriz[2]->next; matriz[2]->item = q->item; d->next = matriz[2]; d = matriz[2]; } q = q->next; } matriz[1] = a; matriz[2] = b; return matriz; } void menu(){ int i=1, n, freq; lista **p; while(i){ printf("Digite a opcao correspondente:\n 1- Inserir;\n 2- Remover;\n 3- Buscar; \n 4- Exibir;\n 5- Tamanho da Lista;\n 6- Verificar Frequencia\n 7- Substiruir numeros\n 8- Criar Duas Listas\n 9- Sair.\n"); scanf("%d",&i); switch(i){ case 1: system("cls"); adiciona(); system("cls"); break; case 2: system("cls"); remove(); system("pause"); system("cls"); break; case 3: system("cls"); busca(); system("cls"); break; case 4: system("cls"); printf("Digite qual das listas você deseja exibir:\n 1- original\n 2- menor\n 3-maior\n"); scanf("%d", &n); exibe(n-1); system("pause"); system("cls"); break; case 5: system("cls"); tamanho(); system("cls"); break; case 6: system("cls"); printf("Digite o valor que deseja verificar frequencia\n"); scanf("%d", &n); freq = frequencia(primeira, n); printf("A frequencia e de %d vezes\n", freq); system("pause"); system("cls"); break; case 7: system("cls"); printf("Digite o número que voce deseja substituir:\n"); scanf("%d", &n); printf("Digite o número pelo qual vai ser substiruido:\n"); scanf("%d", &freq); substituir(primeira, n, freq); system("cls"); break; case 8: system("cls"); printf("Digite o número que voce deseja separar as listas:\n"); scanf("%d", &n); p = listadupla(primeira, n); system("cls"); break; case 9: exit(0); break; default: printf("Opcao invalida\n"); }}} main(){ menu(); return 1; }
  6. Galera ai tem duas implementações lista **listadupla(lista *p, int n){ int i; lista *a, *b, *c, *d, *q; matriz[1] = NULL; matriz[2] = NULL; matriz[0] = p; q = p; while(q){ if(q->item < n){ if(!matriz[1]){ matriz[1] = (lista *)mallocX (sizeof(lista)); matriz[1]->item = q->item; matriz[1]->next = NULL; a = matriz[1]; c = matriz[1]; break; } matriz[1] ->next = (lista *)mallocX (sizeof(lista)); matriz[1] = matriz[1]->next; matriz[1]->item = q->item; c->next = matriz[1]; c = matriz[1]; } else{ if(!matriz[2]){ matriz[2] = (lista *)mallocX (sizeof(lista)); matriz[2]->item = q->item; matriz[2]->next = NULL; b = matriz[2]; d = matriz[2]; break; } matriz[2] ->next = (lista *)mallocX (sizeof(lista)); matriz[2] = matriz[2]->next; matriz[2]->item = q->item; d->next = matriz[2]; d = matriz[2]; } q = q->next; } matriz[1] = a; matriz[2] = b; return matriz; } void exibe(int i){ lista *p; if(i == 0){ p = primeira; while(p){ printf("%d\n", p->item); p = p->next; } } else { p = matriz[i]; if(!matriz[i]){ printf("não existe itens aki\n"); return;} while(p){ printf("%d\n", p->item); p = p->next; }} } é seguinte a matriz tem apenas 3 posições. a 0 que é a lista original, a 1 que são todos os elementos menores q um "n" fornecido e a 2 que são os maiores. O problema é quando rodo o código e gero a lista e tudo ele divide a lista original na matriz, mas na ora de exibir ele apenas exibe os elementos maiores e da erro para exibir os menores e ai alguém consegue entender o que ta errado?
  7. Josefran

    Ajuda ideia

    eu saquei e assim fica simples, mas ai que ta meu pro... a professora especificou que apenas uma lista deve ser passada e que duas devem ser devolvidas, como?
  8. Josefran

    Ajuda ideia

    Galera é o seguinte tenho que fazer um trabalho da facu e a professora pediu para que implementasse uma função onde ela receberia uma lista "lista" e um valor inteiro "n", onde essa lista é encadeada dinamicamente de inteiros, e retorne duas listas onde a primeira é feita por todos os números menores que n e a segunda por todos os maiores. Bem, alguém tem idéia de como faço para retornar duas listas? Duas estruturas listas? Só preciso da idéia, o resto eu desenrolo. vlw
  9. Gente quando compilo meu progrma da erro assim [Linked error] undefined reference to 'WinMain@16' e ai o que faço, o que é isso?
×
×
  • Criar Novo...