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:
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;
+}