Pro2324 Help

Rational TAD

// SPDX-FileCopyrightText: Facultade de Informática de A Coruña // // SPDX-License-Identifier: CC-BY-4.0 #include <stdio.h> //#include "rational_struct.h" //#include "rational_pointer.h" int main() { Rational r1, r2, r3, r4, s; r1 = createRational(2, 3); r2 = createRational(5, 7); r3 = createRational(7, 3); r4 = createRational(5, 4); s = sum(r1, r2); printf("The sum is %d/ %d\n", numerator(s), denominator(s)); s = sum(r3, r4); printf("The sum is %d/ %d\n", numerator(s), denominator(s)); }
// SPDX-FileCopyrightText: Facultade de Informática de A Coruña // // SPDX-License-Identifier: CC-BY-4.0 #include <stdlib.h> #include "rational_pointer.h" // Operación para crear un racional Rational createRational(int n, int d) { Rational temp; temp = malloc(sizeof(*temp)); temp->num = n; temp->den = d; return temp; } // Operación que retorna el numerador de un racional int numerator(Rational r) { return r->num; } // Operación que retorna el denominador de un racional int denominator(Rational r) { return r->den; } // Operación que retorna la suma de dos racionales Rational sum(Rational r1, Rational r2) { Rational s; s = malloc(sizeof(*s)); s->num = r1->num * r2->den + r2->num * r1->den; s->den = r1->den * r2->den; return s; }
// SPDX-FileCopyrightText: Facultade de Informática de A Coruña // // SPDX-License-Identifier: CC-BY-4.0 #ifndef TAD_Rational_RATIONAL_POINTER_H #define TAD_Rational_RATIONAL_POINTER_H typedef struct Data *Rational; struct Data { int num; int den; }; Rational createRational(int n, int d); int numerator(Rational r); int denominator(Rational r); Rational sum(Rational r1, Rational r2); #endif // TAD_Rational_RATIONAL_POINTER_H
// SPDX-FileCopyrightText: Facultade de Informática de A Coruña // // SPDX-License-Identifier: CC-BY-4.0 #include "rational_struct.h" // Operación para crear un racional Rational createRational(int n, int d) { Rational temp; temp.num = n; temp.den = d; return temp; } // Operación que retorna el numerador de un racional int numerator(Rational r) { return r.num; } // Operación que retorna el denominador de un racional int denominator(Rational r) { return r.den; } // Operación que retorna la suma de dos racionales Rational sum(Rational r1, Rational r2) { Rational s; s.num = r1.num * r2.den + r2.num * r1.den; s.den = r1.den * r2.den; return s; }
// SPDX-FileCopyrightText: Facultade de Informática de A Coruña // // SPDX-License-Identifier: CC-BY-4.0 #ifndef TAD_Rational_RATIONAL_STRUCT_H #define TAD_Rational_RATIONAL_STRUCT_H typedef struct Data Rational; struct Data { int num; int den; }; Rational createRational(int n, int d); int numerator(Rational r); int denominator(Rational r); Rational sum(Rational r1, Rational r2); #endif // TAD_Rational_RATIONAL_STRUCT_H
# SPDX-FileCopyrightText: Facultade de Informática de A Coruña # # SPDX-License-Identifier: CC-BY-4.0 cmake_minimum_required(VERSION 3.22) project(TAD_Rational) set(CMAKE_C_STANDARD 99) add_executable(Rational_struct main.c rational_struct.c rational_struct.h) add_executable(Rational_pointer main.c rational_pointer.c rational_pointer.h)
Last modified: 16 marzo 2025