CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit e4728864e280cc7b8fa1054b4194807323249f58
parent b717d970927e944cdd416a409e49ad75ad4ad7eb
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Thu, 28 Mar 2024 23:58:24 -0300

Bulk add `ej21`, `ej22`, `ej23` and `ej24`

Diffstat:
Asolutions/ej21.cpp | 41+++++++++++++++++++++++++++++++++++++++++
Asolutions/ej22.cpp | 15+++++++++++++++
Asolutions/ej23.cpp | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asolutions/ej24.cpp | 19+++++++++++++++++++
4 files changed, 133 insertions(+), 0 deletions(-)
diff --git a/solutions/ej21.cpp b/solutions/ej21.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+#include <vector>
+
+void vector_print(std::vector<int> v) {
+    std::cout << "[";
+    for(size_t i = 0; i < v.size(); ++i) {
+        std::cout << v[i] << ((v.size() == i+1) ? "" : ", ");
+    }
+    std::cout << "]\n";
+}
+
+int vector_is_sorted(std::vector<int> v) {
+    size_t i, j, k;
+
+    for(i = j = k = 0; i < v.size(); ++i) {
+        if(v[i] > v[j]) j++;
+        if(v[i] < v[k]) k++;
+    }
+
+    return (i == (j+1)) ? 1 : ((i == (k+1)) ? -1 : 0);
+}
+
+
+int main (void) {
+    int n;
+    std::vector<int> serie;
+
+    std::cout << "[]\n";
+
+    while(std::cin >> n) {
+        std::cout << "\033[1A";
+        serie.push_back(n);
+        vector_print(serie);
+    }
+
+    n = vector_is_sorted(serie);
+    std::cout << ((n > 0) ? "Ordenado ascendente\n" :
+                 ((n < 0) ? "Ordenado descendente\n" : "No esta ordenado\n"));
+
+    return 0;
+}
diff --git a/solutions/ej22.cpp b/solutions/ej22.cpp
@@ -0,0 +1,15 @@
+#include <iostream>
+#include <iomanip>
+
+int fahrenheit_to_celcius(int F) {
+    return ((float)5/9)*(F-32);
+}
+
+int main (void) {
+
+    for(float i = 0; i <= 200; i += 10) 
+        std::cout << std::setw(4) << i << "°F\t" 
+            << std::setw(3) << fahrenheit_to_celcius(i) << "°C\n";
+
+    return 0;
+}
diff --git a/solutions/ej23.cpp b/solutions/ej23.cpp
@@ -0,0 +1,58 @@
+#include <iostream>
+#include <iomanip>
+#include <vector>
+
+void vector_print(std::vector<int> v) {
+    std::cout << "[";
+    for(size_t i = 0; i < v.size(); ++i) {
+        std::cout << v[i] << ((v.size() == i+1) ? "" : ", ");
+    }
+    std::cout << "]\n";
+}
+
+int vector_mean(std::vector<int> v) {
+    int res = 0;
+    for(size_t i = 0; i < v.size(); ++i)
+        res += v[i];
+
+    return ((float)res)/v.size();
+}
+
+int main (void) {
+    int n, mean, total_mean;
+    unsigned int len;
+
+    std::cout << "Cantidad de lotes> ";
+    std::cin >> len;
+    if (std::cin.fail()) {
+        std::cerr << "Solo se permite ingresar números\n";
+        return -1;
+    }
+
+    std::vector<std::vector<int>> lista(len);
+    for(size_t i = 0; i < len; ++i) {
+        std::cout << "Ingrese numeros de lote `" << i
+                  << "`\nAl finalizar el lote ingrese `0`\n";
+        while(std::cin >> n) {
+            std::cout << "\033[1A\033[2K";
+            if(n == 0)
+                break;
+                                          
+            lista[i].push_back(n);
+            vector_print(lista[i]);
+        }
+    }
+
+    std::cout << std::endl;
+    mean = total_mean = 0;
+    for(size_t i = 0; i < len; ++i) {
+        std::cout << std::setw(2) << i+1 << ": ";
+        vector_print(lista[i]);
+        std::cout << "-> mean: "
+                  << (mean = vector_mean(lista[i])) << "\n\n";
+        total_mean += mean;
+    }
+
+    std::cout << "=> total mean: " << total_mean << std::endl;
+    return 0;
+}
diff --git a/solutions/ej24.cpp b/solutions/ej24.cpp
@@ -0,0 +1,19 @@
+#include <iostream>
+#include <cmath>
+
+bool cuadratic_has_real_roots(float a, float b, float c) {
+    return (std::pow(b,2)-(4*a*c)) >= 0;
+}
+
+int main (void) {
+    float a, b, c;
+
+    std::cin >> a;
+    std::cin >> b;
+    std::cin >> c;
+
+    std::cout << (cuadratic_has_real_roots(a,b,c) ? "Tiene raices reales\n" :
+                 "No tiene raices reales\n");
+
+    return 0;
+}