CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit 18d8493e6c87c41733d3543c3d8438bd69597180
parent 3bc4a4252a7b065b551d81ca34c64b414f5b2c7c
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 20 May 2024 13:26:24 -0300

add `pre` and `post` conditions

Diffstat:
Mguias/4/ej02.cpp | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 53 insertions(+), 4 deletions(-)
diff --git a/guias/4/ej02.cpp b/guias/4/ej02.cpp
@@ -6,40 +6,73 @@ int find_gcd(int a, int b) {
 }
 
 class Fraction {
+private:
+    int numerator;
+    int divisor;
+
 public:
+    /**
+     * post: inicializa la fraccion a `0/1`
+     */
     Fraction() {
         this->numerator = 0;
         this->divisor = 1;
     }
 
+    /**
+     * post: inicializa la fraccion a `numerador/divisor`
+     */
     Fraction(int numerator, int divisor) {
         this->numerator = numerator;
         this->divisor = divisor;
     }
 
+    /**
+     * post: libera la memoria
+     */
     virtual ~Fraction() {}
 
+    /**
+     * post: cambia el numerador de la fraccion a `numerator`
+     */
     void setNumerator(int numerator) {
         this->numerator = numerator;
     }
 
+    /**
+     * post: cambia el divisor de la fraccion a `divisor`
+     */
     void setDivisor(int divisor) {
         this->divisor = divisor;
     }
 
+    /**
+     * post: cambia el numerador y divisor de la fraccion a `numerator` y 
+     *       `divisor` respectivamente
+     */
     void set(int numerator, int divisor) {
         this->setNumerator(numerator);
         this->setDivisor(divisor);
     }
 
+    /**
+     * post: devuelve el numerador de la fracción
+     */
     int getNumerator() {
         return this->numerator;
     }
 
+    /**
+     * post: devuelve el divisor de la fracción
+     */
     int getDivisor() {
         return this->divisor;
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: suma los valores de la fracción `f` a la fracción actual
+     */
     void add(Fraction f) {
         if(this->divisor == f.divisor) {
             this->numerator += f.numerator;
@@ -54,6 +87,10 @@ public:
         }
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: resta los valores de la fracción `f` a la fracción actual
+     */
     void substract(Fraction f) {
         if(this->divisor == f.divisor) {
             this->numerator -= f.numerator;
@@ -68,29 +105,41 @@ public:
         }
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: multiplica los valores de la fracción `f` a la fracción actual
+     */
     void multiply(Fraction f) {
         this->numerator *= f.numerator;
         this->divisor *= f.divisor;
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: divide los valores de la fracción `f` a la fracción actual
+     */
     void divide(Fraction f) {
         this->numerator *= f.divisor;
         this->divisor *= f.numerator;
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: simplifica la fracción a su mínima expresión
+     */
     void simplify() {
         int gcd = find_gcd(this->numerator, this->divisor);
         this->numerator /= gcd;
         this->divisor   /= gcd;
     }
 
+    /**
+     * pre:  la fracción debe estar inicializada
+     * post: imprime el contenido de la fracción
+     */
     void print() {
         std::cout << this->numerator << "/" << this->divisor << std::endl;
     }
-
-private:
-    int numerator;
-    int divisor;
 };
 
 int main (void) {