Last active
May 10, 2024 19:11
-
-
Save ChekeGT/b546d1c4d7becadbf01b16671301feb5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Nombre del programador: Francisco Ezequiel Baños Ramírez | |
// Fecha de creación: 10 de Mayo de 2024 | |
// Descripción: Este programa solicita al usuario tres números, los cuales deben ser mayores de 3 y menores de 15. | |
// Luego, el programa ordena y muestra estos números de mayor a menor. | |
// Funcionamiento del programa: | |
// Datos de entrada: | |
// Tres números ingresados por el usuario, cada uno debe ser mayor que 3 y menor que 15. | |
// Si el usuario ingresa un número fuera de este rango, el programa mostrará un mensaje de error | |
// y solicitará otro número hasta que se ingrese un número válido. | |
// Datos de salida: | |
// Los tres números ingresados por el usuario, ordenados de mayor a menor. | |
// Los números se muestran en un formato amigable para el usuario. | |
#include <iostream> | |
#include <string> | |
#include <vector> | |
using namespace std; | |
// Esta función implementa el algoritmo de ordenamiento de burbuja para ordenar un vector de enteros en orden descendente. | |
vector<int> bubble_sort(vector<int> numbers){ | |
int n = numbers.size(); | |
// Algoritmo de ordenamiento de burbuja | |
// Iterar sobre todos los elementos | |
for (int i = 0; i < n-1; i++){ | |
// Iterar sobre los elementos restantes | |
for (int j = 0; j < n-i-1; j++){ | |
// Si el número actual es menor que el siguiente, intercambiarlos | |
if (numbers[j] < numbers[j+1]){ | |
// Intercambiar los números | |
int temporal = numbers[j]; | |
numbers[j] = numbers[j+1]; | |
numbers[j+1] = temporal; | |
} | |
} | |
} | |
return numbers; | |
} | |
// Esta función solicita al usuario ingresar tres números entre 3 y 15, y los devuelve como un vector. | |
vector<int> get_numbers(){ | |
vector<int> numbers; | |
int number; | |
for (int i = 0; i < 3; i++){ | |
cout << "Ingrese un numero mayor que 3 y menor que 15: "; | |
cin >> number; | |
// Validar que el número esté dentro del rango correcto | |
if (cin.fail()){ | |
cin.clear(); | |
cin.ignore(1000, '\n'); | |
} | |
while (!(number > 3 && number < 15)){ | |
cout << "Numero invalido. Ingrese un numero mayo que 3 y menor que 15: "; | |
cin >> number; | |
if (cin.fail()){ | |
cin.clear(); | |
cin.ignore(1000, '\n'); | |
} | |
} | |
numbers.push_back(number); | |
} | |
return numbers; | |
} | |
void clear_screen(){ | |
cout << "\033[2J\033[1;1H"; | |
} | |
int main(){ | |
cout << "Este programa ordena tres numeros de mayor a menor." << endl; | |
vector<int> numbers = get_numbers(); | |
numbers = bubble_sort(numbers); | |
clear_screen(); | |
cout << "Los numeros ordenados de mayor a menor son: "; | |
for (int i = 0; i < 3; i++){ | |
cout << numbers[i] << " "; | |
} | |
cout << endl; | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment