From 6caa27ce1e6aaec39b17fad38d9c03129e1c68eb Mon Sep 17 00:00:00 2001 From: Pedro Folloni Pesserl <fpesserl7@gmail.com> Date: Sat, 26 Nov 2022 02:03:39 -0300 Subject: [PATCH] lib is functional --- tp4/lib_conjunto.c | 186 ++++++++++++++++++++++++++++++++++--------- tp4/makefile | 2 +- tp4/testa_conjunto | Bin 0 -> 34208 bytes tp4/testa_conjunto.c | 2 + 4 files changed, 151 insertions(+), 39 deletions(-) create mode 100755 tp4/testa_conjunto diff --git a/tp4/lib_conjunto.c b/tp4/lib_conjunto.c index 574829a..3ddab09 100644 --- a/tp4/lib_conjunto.c +++ b/tp4/lib_conjunto.c @@ -1,27 +1,25 @@ #include <stdio.h> -#include <stdio.h> +#include <stdlib.h> #include "lib_conjunto.h" -/* retorna a posicao de um elemento em um conjunto. +/* retorna a posicao de um elemento em um conjunto ([0..card-1]). * como um conjunto nao necessariamente eh ordenado, eh uma busca linear. * se o elemento nao esta no conjunto, retorna -1. */ int busca_cjt(conjunto_t *c, int elemento) { - int pos = -1; - int i; - for (i = 0; i < c->card; i++) { - if (c->v[i] == elemento) { - pos = i; - break; - } - } - return pos; + int pos = 0; + while (pos < c->card && c->v[pos] != elemento) + pos++; + + return pos >= c->card ? -1 : pos; } conjunto_t *cria_cjt(int max) { conjunto_t *c; + if ( !(c = malloc(sizeof(conjunto_t))) ) + return NULL; c->max = max; c->card = 0; - c->ptr; + c->ptr = 0; if ( !(c->v = malloc(sizeof(int) * max)) ) return NULL; return c; @@ -31,6 +29,7 @@ conjunto_t *destroi_cjt(conjunto_t *c) { c->card = 0; free(c->v); c->v = NULL; + free(c); return NULL; } @@ -49,7 +48,7 @@ int insere_cjt(conjunto_t *c, int elemento) { if (pertence_cjt(c, elemento)) return 1; - c->v[card] = elemento; + c->v[c->card] = elemento; c->card++; return 1; } @@ -85,49 +84,160 @@ int sao_iguais_cjt(conjunto_t *c1, conjunto_t *c2) { return c1->card == c2->card && contido_cjt(c1, c2); } -/* conjunto_t *diferenca_cjt(conjunto_t *c1, conjunto_t *c2) { */ - -/* } */ +conjunto_t *diferenca_cjt(conjunto_t *c1, conjunto_t *c2) { + conjunto_t *dif; + if ( !(dif = cria_cjt(c1->max)) ) + return NULL; -/* conjunto_t *interseccao_cjt(conjunto_t *c1, conjunto_t *c2) { */ - -/* } */ + int i; + for (i = 0; i < c1->card; i++) { + if (!(pertence_cjt(c2, c1->v[i]))) + insere_cjt(dif, c1->v[i]); + } + + return dif; +} -/* conjunto_t *uniao_cjt(conjunto_t *c1, conjunto_t *c2) { */ +conjunto_t *interseccao_cjt(conjunto_t *c1, conjunto_t *c2) { + conjunto_t *inter; + if ( !(inter = cria_cjt(c1->max)) ) + return NULL; -/* } */ + int i; + for (i = 0; i < c1->card; i++) { + if (pertence_cjt(c2, c1->v[i])) + insere_cjt(inter, c1->v[i]); + } + + return inter; +} + +conjunto_t *uniao_cjt(conjunto_t *c1, conjunto_t *c2) { + conjunto_t *uniao; + if ( !(uniao = cria_cjt(c1->max)) ) + return NULL; + + /* para nao ter que alocar um conjunto novo, a funcao usa ponteiros para + * ponteiro de conjunto */ + conjunto_t **menor_cjt = c1->card < c2->card ? &c1 : &c2; + conjunto_t **maior_cjt = c1->card > c2->card ? &c1 : &c2; + + int i; + for (i = 0; i < (*menor_cjt)->card; i++) { + insere_cjt(uniao, c1->v[i]); + insere_cjt(uniao, c2->v[i]); + } + + for (; i < (*maior_cjt)->card; i++) + insere_cjt(uniao, (*maior_cjt)->v[i]); + + return uniao; +} conjunto_t *copia_cjt(conjunto_t *c) { conjunto_t *copia; - if ( !(copia = cria_cjt(c->max)) ) return NULL; - copia->card = c->card; int i; - for (i = 0; i < copia->card; i++) { - copia->v[i] = c->v[i]; + for (i = 0; i < c->card; i++) { + insere_cjt(copia, c->v[i]); } return copia; } -/* conjunto_t *cria_subcjt_cjt(conjunto_t *c, int n) { */ - -/* } */ +conjunto_t *cria_subcjt_cjt(conjunto_t *c, int n) { + if (n >= c->card) + return copia_cjt(c); -/* void imprime_cjt(conjunto_t *c) { */ - -/* } */ + conjunto_t *sub; + if ( !(sub = cria_cjt(c->max)) ) + return NULL; -/* void inicia_iterador_cjt(conjunto_t *c) { */ - -/* } */ + conjunto_t *disponiveis; + if ( !(disponiveis = copia_cjt(c)) ) + return NULL; -/* int incrementa_iterador_cjt(conjunto_t *c, int *ret_iterador) { */ + int i; + int aleat; + for (i = 0; i < n; i++) { + aleat = rand() % disponiveis->card; + insere_cjt(sub, disponiveis->v[aleat]); + retira_cjt(disponiveis, disponiveis->v[aleat]); + } -/* } */ + destroi_cjt(disponiveis); + return sub; +} + +/* funcao auxiliar para a ordenacao */ +void troca(int *a, int *b) { + int temp = *a; + *a = *b; + *b = temp; +} -/* int retira_um_elemento_cjt(conjunto_t *c) { */ +/* implementacao do bubble sort */ +conjunto_t *ordena_cjt(conjunto_t *c) { + conjunto_t *ord; + if ( !(ord = copia_cjt(c)) ) + return NULL; + + int tam = ord->card; + int trocou = 1; + int i; + while (trocou) { /* trocou eh uma flag para sair do loop quando ja */ + trocou = 0; /* estiver ordenado (nao trocou = ordenado) */ + for (i = 0; i < tam-1; i++) { + if (ord->v[i+1] < ord->v[i]) { + troca(&ord->v[i+1], &ord->v[i]); + trocou = 1; + } + } + tam--; + } + return ord; +} + +void imprime_cjt(conjunto_t *c) { + if (vazio_cjt(c)) { + printf("Conjunto vazio.\n"); + return; + } + + conjunto_t *ord; + if ( !(ord = ordena_cjt(c)) ) { + printf("Erro na alocacao do conjunto."); + return; + } + + int i; + for (i = 0; i < ord->card-1; i++) + printf("%d ", ord->v[i]); + printf("%d\n", ord->v[ord->card-1]); -/* } */ + destroi_cjt(ord); +} + +void inicia_iterador_cjt(conjunto_t *c) { + c->ptr = 0; +} + +int incrementa_iterador_cjt(conjunto_t *c, int *ret_iterador) { + *ret_iterador = c->v[c->ptr]; + c->ptr++; + if (c->ptr > c->card) + return 0; + return 1; +} + +int retira_um_elemento_cjt(conjunto_t *c) { + int aleat = rand() % c->card; + int retirar = c->v[aleat]; + int i; + for (i = aleat; i < c->card-1; i++) + c->v[i] = c->v[i + 1]; + c->card--; + return retirar; +} diff --git a/tp4/makefile b/tp4/makefile index 74de621..91f8a8f 100644 --- a/tp4/makefile +++ b/tp4/makefile @@ -15,7 +15,7 @@ lib_conjunto.o: lib_conjunto.c $(CC) -c $(CFLAGS) lib_conjunto.c tp4.o: tp4.c - $(CC) -c $(CFLAGS) testa_conjunto.c + $(CC) -c $(CFLAGS) tp4.c clean: rm -f $(objects) diff --git a/tp4/testa_conjunto b/tp4/testa_conjunto new file mode 100755 index 0000000000000000000000000000000000000000..cc0ddb9a2ce9cbe0daabadb1e2ea8b52a54e8877 GIT binary patch literal 34208 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 aHlk`*@zUi!8w)3``WwM<n@zx0)&3J%5X%ez literal 0 HcmV?d00001 diff --git a/tp4/testa_conjunto.c b/tp4/testa_conjunto.c index 0f8c883..6efb260 100644 --- a/tp4/testa_conjunto.c +++ b/tp4/testa_conjunto.c @@ -7,10 +7,12 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> #include "lib_conjunto.h" #define TAM 21 int main (void) { + srand(time(0)); conjunto_t *a, *b, *u, *i, *d, *d1, *copia, *sub; int k, ex; -- GitLab