0% encontró este documento útil (0 votos)
16 vistas12 páginas

MH

El documento es un programa en C++ que implementa varias evaluaciones que trabajan con vectores y matrices, incluyendo operaciones como suma, ordenación y visualización de datos. También incluye una evaluación relacionada con fichas de dominó, donde el usuario puede seleccionar y jugar una ficha. El programa presenta un menú para navegar entre las diferentes evaluaciones y permite al usuario realizar múltiples operaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas12 páginas

MH

El documento es un programa en C++ que implementa varias evaluaciones que trabajan con vectores y matrices, incluyendo operaciones como suma, ordenación y visualización de datos. También incluye una evaluación relacionada con fichas de dominó, donde el usuario puede seleccionar y jugar una ficha. El programa presenta un menú para navegar entre las diferentes evaluaciones y permite al usuario realizar múltiples operaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

// ==== FUNCIONES COMUNES ====

void mostrarMenu();

void esperar();

vector<int> sumarVectores(const vector<int>& v1, const vector<int>& v2);

void imprimirVector(const vector<int>& v);

int posicionMayor(const vector<int>& v);

// ==== EVALUACION 1 ====

void evaluacion1() {

cout << "\n--- EVALUACION 1 ---\n";

int n;

vector<int> vector1, vector2;

cout << "Ingrese el tamano de los vectores: ";

cin >> n;

cout << "Ingrese los elementos del primer vector:\n";

for (int i = 0; i < n; ++i) {

int val;

cin >> val;

vector1.push_back(val);

cout << "Ingrese los elementos del segundo vector:\n";


for (int i = 0; i < n; ++i) {

int val;

cin >> val;

vector2.push_back(val);

vector<int> suma = sumarVectores(vector1, vector2);

cout << "\n4) Resultado de la suma de los dos vectores introducidos:\n";

imprimirVector(suma);

vector<int> sumaDesc = suma;

sort(sumaDesc.begin(), sumaDesc.end(), greater<int>());

cout << "\n1) Vector resultado de la suma ordenado de forma descendente:\n";

imprimirVector(sumaDesc);

cout << "\n2) Vector resultado de la suma:\n";

imprimirVector(suma);

int posMayor = posicionMayor(suma);

cout << "El número mayor está en la posición: " << posMayor << endl;

vector<int> sumaAsc = suma;

sort(sumaAsc.begin(), sumaAsc.end());

cout << "\n3) Vector resultado de la suma ordenado de forma ascendente:\n";

imprimirVector(sumaAsc);

string respuesta;

cout << "\n¿DESEA HACER OTRA OPERACIÓN? (SI/NO): ";

cin >> respuesta;

if (respuesta == "SI" || respuesta == "Si" || respuesta == "si") {

cout << "NO HABIA MAS PRESUPUESTO\n";


} else {

cout << "INTENTE OTRA VEZ\n";

esperar();

// ==== FUNCIONES AUXILIARES EVAL 1 ====

vector<int> sumarVectores(const vector<int>& v1, const vector<int>& v2) {

vector<int> resultado;

for (size_t i = 0; i < v1.size(); ++i) {

resultado.push_back(v1[i] + v2[i]);

return resultado;

void imprimirVector(const vector<int>& v) {

for (size_t i = 0; i < v.size(); ++i)

cout << v[i] << " ";

cout << endl;

int posicionMayor(const vector<int>& v) {

int maxVal = v[0];

int pos = 0;

for (size_t i = 1; i < v.size(); ++i) {

if (v[i] > maxVal) {

maxVal = v[i];

pos = i;

}
return pos + 1;

// ==== EVALUACION 2 ====

void mostrarSeparador(string mensaje) {

cout << "\n=== " << mensaje << " ===\n";

void mostrarMatriz(int** matriz, int filas, int columnas) {

for (int i = 0; i < filas; ++i) {

for (int j = 0; j < columnas; ++j) {

cout << matriz[i][j] << "\t";

cout << endl;

void evaluacion2() {

cout << "\n--- EVALUACION 2 ---\n";

int filas, columnas;

cout << "‹ Hola profe por acá Misael Hernandez C.I: 30.887.469\n";

cout << "Introduce el tamano de la matriz:\n";

cout << "Numero de filas: ";

cin >> filas;

cout << "Numero de columnas: ";

cin >> columnas;

int** matriz = new int*[filas];

for (int i = 0; i < filas; ++i)


matriz[i] = new int[columnas];

mostrarSeparador("Introduce los valores desordenados");

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j) {

cout << "Elemento [" << i << "][" << j << "]: ";

cin >> matriz[i][j];

mostrarSeparador("Matriz Desordenada");

mostrarMatriz(matriz, filas, columnas);

int total = filas * columnas;

int* temporal = new int[total];

int index = 0;

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j)

temporal[index++] = matriz[i][j];

bool intercambiado;

do {

intercambiado = false;

for (int i = 0; i < total - 1; ++i) {

if (temporal[i] > temporal[i + 1]) {

int aux = temporal[i];

temporal[i] = temporal[i + 1];

temporal[i + 1] = aux;

intercambiado = true;

} while (intercambiado);
index = 0;

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j)

matriz[i][j] = temporal[index++];

mostrarSeparador("Matriz Ordenada Ascendentemente");

mostrarMatriz(matriz, filas, columnas);

for (int i = 0; i < filas; ++i)

delete[] matriz[i];

delete[] matriz;

delete[] temporal;

cout << "\n¡Listo! La matriz ha sido ordenada exitosamente.\n";

cout << "Gracias por usar Mi Ordenadora de matrices –\n";

esperar();

// ==== FUNCION ESPERA ====

void esperar() {

int opcion;

cout << "\n1. Volver al menu principal\n";

cout << "2. Terminar el programa\n";

cout << "Seleccione una opcion: ";

cin >> opcion;

if (opcion == 2) {

cout << "Programa finalizado. Gracias por usarlo.\n";

exit(0);
}

// ==== EVALUACION 3 ====

void llenarMatriz(int** matriz, int filas, int columnas) {

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j) {

cout << "Elemento [" << i << "][" << j << "]: ";

cin >> matriz[i][j];

void ordenarMatriz(int** matriz, int filas, int columnas) {

int total = filas * columnas;

int* temp = new int[total];

int index = 0;

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j)

temp[index++] = matriz[i][j];

bool intercambiado;

do {

intercambiado = false;

for (int i = 0; i < total - 1; ++i) {

if (temp[i] > temp[i + 1]) {

int aux = temp[i];

temp[i] = temp[i + 1];

temp[i + 1] = aux;
intercambiado = true;

} while (intercambiado);

index = 0;

for (int i = 0; i < filas; ++i)

for (int j = 0; j < columnas; ++j)

matriz[i][j] = temp[index++];

delete[] temp;

void liberarMatriz(int** matriz, int filas) {

for (int i = 0; i < filas; ++i)

delete[] matriz[i];

delete[] matriz;

void evaluacion3() {

cout << "\n--- EVALUACION 3 ---\n";

int filas, columnas;

cout << "‹ Hola profe por aca¡ Misael hernandez C.I:30.887.469\n";

cout << "Introduce el tamaño de la matriz:\n";

cout << "Numero de filas: ";

cin >> filas;

cout << "Numero de columnas: ";

cin >> columnas;

int** matriz = new int*[filas];


for (int i = 0; i < filas; ++i)

matriz[i] = new int[columnas];

mostrarSeparador("Introduce los valores desordenados");

llenarMatriz(matriz, filas, columnas);

mostrarSeparador("Matriz Desordenada");

mostrarMatriz(matriz, filas, columnas);

ordenarMatriz(matriz, filas, columnas);

mostrarSeparador("Matriz Ordenada Ascendentemente");

mostrarMatriz(matriz, filas, columnas);

liberarMatriz(matriz, filas);

cout << "\n ¡Listo! La matriz ha sido ordenada exitosamente.\n";

cout << "Gracias por usar Mi Ordenadora de matrices –\n";

esperar();

// ==== EVALUACION 4 ====

struct Ficha {

int lado1;

int lado2;

};

void mostrarFicha(Ficha f) {

cout << "[" << f.lado1 << "|" << f.lado2 << "]";

}
void mostrarFichas(const vector<Ficha>& fichas) {

for (size_t i = 0; i < fichas.size(); ++i) {

cout << i + 1 << ". ";

mostrarFicha(fichas[i]);

cout << endl;

void evaluacion4() {

cout << "\n--- EVALUACION 4 ---\n";

cout << "Hola profe por aca ¡ Misael Hernandez C.I: 30.887.469" << endl;

cout << "------------------------------------------------------" << endl;

char iniciar;

cout << "Presione SI para comenzar el programa: ";

cin >> iniciar;

if (iniciar != 'S' && iniciar != 's') {

cout << "Programa finalizado. ¡Hasta luego!" << endl;

return;

vector<Ficha> mano = {

{6, 5}, {2, 4}, {1, 1}, {0, 3}, {3, 6}, {0, 0}, {2, 5}

};

cout << "\nTus fichas son:" << endl;

mostrarFichas(mano);
int eleccion;

cout << "\nIngrese el numero de la ficha que desea lanzar (1 a " << mano.size() << "): ";

cin >> eleccion;

if (eleccion < 1 || eleccion > (int)mano.size()) {

cout << "Seleccion invalida. Terminando programa." << endl;

return;

Ficha jugada = mano[eleccion - 1];

cout << "\nFicha jugada: ";

mostrarFicha(jugada);

cout << endl;

cout << "Fichas restantes en la mano: ";

for (size_t i = 0; i < mano.size(); ++i) {

if (i != (size_t)(eleccion - 1)) {

mostrarFicha(mano[i]);

cout << " ";

cout << endl;

cout << "\nGracias por jugar su ficha profesor" << endl;

// Ajustar menu y main para incluir eval 3 y 4

int main() {

int opcion;
do {

mostrarMenu();

cin >> opcion;

switch (opcion) {

case 1: evaluacion1(); break;

case 2: evaluacion2(); break;

case 3: evaluacion3(); break;

case 4: evaluacion4(); break;

default: cout << "Opcion invalida. Intente nuevamente.\n";

} while (opcion != 5);

return 0;

void mostrarMenu() {

cout << "\n======= MENU DE EVALUACIONES MISAEL =======\n";

cout << "1. Evaluacion 1 (Vectores)\n";

cout << "2. Evaluacion 2 (Matriz)\n";

cout << "3. Evaluacion 3 (Matriz modular)\n";

cout << "4. Evaluacion 4 (Domino)\n";

cout << "5. Salir\n";

cout << "Seleccione una opcion: ";

También podría gustarte