From 429ecaef29e230db15ef89fc7203de93fdefdfe6 Mon Sep 17 00:00:00 2001
From: Pedro Folloni Pesserl <fpesserl7@gmail.com>
Date: Tue, 15 Nov 2022 01:26:07 -0300
Subject: [PATCH] implement most functions from main program

---
 tp3/makefile |   2 +-
 tp3/tp3      | Bin 0 -> 24168 bytes
 tp3/tp3.c    |  45 +++++++++++++++++++++++++++++++++++----------
 3 files changed, 36 insertions(+), 11 deletions(-)
 create mode 100755 tp3/tp3

diff --git a/tp3/makefile b/tp3/makefile
index cf6df46..15fd51f 100644
--- a/tp3/makefile
+++ b/tp3/makefile
@@ -13,4 +13,4 @@ tp3.o: tp3.c
 	$(CC) -c $(CFLAGS) tp3.c
 
 clean:
-	rm -f *.o tp3
+	rm -f *.o
diff --git a/tp3/tp3 b/tp3/tp3
new file mode 100755
index 0000000000000000000000000000000000000000..5ed200ef4059a631b90617d1ae6bf71858e94880
GIT binary patch
literal 24168
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

literal 0
HcmV?d00001

diff --git a/tp3/tp3.c b/tp3/tp3.c
index a988fce..434343a 100644
--- a/tp3/tp3.c
+++ b/tp3/tp3.c
@@ -5,28 +5,53 @@
 
 /* le um inteiro na faixa [0..MAX-1] */
 int ler_tamanho() {
-	printf("Insira o tamanho do vetor (entre 1 e MAX):\n");
+	printf("Insira o tamanho do vetor (entre 1 e %d):\n", MAX);
 	int n;
 	scanf("%d", &n);
 	return n;
 }
 
 /* imprime os racionais apontados pelo vetor de ponteiros para racionais */
-void imprimir_vetor_racional(defina os parametros) {
-    /* coloque aqui seu codigo */
+void imprimir_vetor_racional(racional **vet, int tam) {
+	int i;
+	for (i = 0; i < tam-1; i++) {
+		imprimir_r(*(vet + i));
+		printf(" ");
+	}
+	imprimir_r(*(vet + tam-1));
+	printf("\n");
 }
 
 /* retorna um vetor de tam ponteiros para numeros racionais validos gerados aleatoriamente */
 /* retorna NULL em caso de falha                                                           */
-racional** aleatorio_vetor_racional(defina os parametros) {
-    /* coloque aqui seu codigo */
+racional **aleatorio_vetor_racional(int tam) {
+	racional **vet;
+	if ( !(vet = malloc(tam * sizeof(racional*))) )
+		return NULL;
+	int i;
+	for (i = 0; i < tam; i++) {
+		*(vet + i) = sortear_r();
+	}
+	return vet;
 }
 
 /* retorna um vetor de tam ponteiros para numeros racionais que apontam em ordem crescente para os 
  * racionais apontados pelo vetor recebido no parametro. Defina outras funcoes para te ajudar caso
  * ache necessario */
-racional** ordenar_vetor_racional(defina os parametros) {
-    /* coloque aqui seu codigo */
+racional **ordenar_vetor_racional(racional **vet, int tam) {
+	
+}
+
+/* libera a memoria alocada em um vetor vet de tam ponteiros para numeros racionais */
+racional **liberar_vetor_racional(racional **vet, int tam) {
+	int i;
+	for (i = 0; i < tam; i++) {
+		free(*(vet + i));
+		*(vet + i) = NULL;
+	}
+	free(vet);
+	vet = NULL;
+	return vet;
 }
 
 int main() {
@@ -44,7 +69,7 @@ int main() {
     tam = ler_tamanho();
 
     /* aloca v com tam ponteiros para racional */
-    v = aletorio_vetor_racional(tam);
+    v = aleatorio_vetor_racional(tam);
     /*  lembre-se que a funcao acima retorna NULL em caso de falha */
 
     /* chama a funcao para ordenar o vetor */
@@ -52,11 +77,11 @@ int main() {
     /*  lembre-se que a funcao acima retorna 0 em caso de falha */
 
     /* imprime o vetor ordenado */
-    imprimir_vetor_racional(w, tam);
+    imprimir_vetor_racional(v, tam);
 
     /* libera toda memoria alocada dinamicamente        */
     /* nao esqueca de testar com valgrind para conferir */
-    /* coloque aqui seu codigo */
+	v = liberar_vetor_racional(v, tam);
 
     return 0;
 }
-- 
GitLab