SlideShare una empresa de Scribd logo
Facultad de informática y electrónica
19 de Junio del 2024
Nombre: Melany Andrade.
Telemática PAO 1
Plantear 5 posibles escenarios en donde se evidencie la necesidad de utilizar
obligatoriamente las estructuras de control (if, switch)
 Gestión de Subida de Notas a la plataforma
Se requiere implementar un sistema para gestionar la subida de notas a una página web
específica. Este proceso implica verificar la validez de las notas ingresadas, asegurando
que cumplan con los formatos y criterios establecidos por la aplicación. Se utilizarán
estructuras condicionales, como if, para validar cada nota antes de su publicación.
Además, se desarrollará un trabajo eficiente que permita a los usuarios autorizados subir
las notas de manera correcta y eficaz.
RESOLUCIÓN:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Estructura para representar una nota
struct Nota {
string titulo;
string contenido;
int calificacion; // entre 0 y 100
};
// Función para validar una nota
bool validarNota(const Nota& nota) {
// Verificar que el título no esté vacío
if (nota.titulo.empty()) {
cout << "Error: El título de la nota no puede estar vacío." << endl;
return false;
}
// Verificar que el contenido no esté vacío
if (nota.contenido.empty()) {
cout << "Error: El contenido de la nota no puede estar vacío." << endl;
return false;
}
// Verificar que la calificación esté entre 0 y 100
if (nota.calificacion < 0 || nota.calificacion > 100) {
cout << "Error: La calificación debe estar entre 0 y 100." << endl;
return false;
}
return true;
}
// Función para subir una nota a la plataforma
void subirNota(const Nota& nota) {
// Verificar que la nota sea válida
if (!validarNota(nota)) {
return;
}
// Simulación de la subida de la nota a la plataforma
cout << "Nota subida con éxito!" << endl;
cout << "Título: " << nota.titulo << endl;
cout << "Contenido: " << nota.contenido << endl;
cout << "Calificación: " << nota.calificacion << endl;
}
int main() {
// Crear un vector para almacenar las notas
vector<Nota> notas;
// Ingresar notas desde la consola
while (true) {
Nota nota;
cout << "Ingrese el título de la nota: ";
getline(cin, nota.titulo);
cout << "Ingrese el contenido de la nota: ";
getline(cin, nota.contenido);
cout << "Ingrese la calificación de la nota (entre 0 y 100): ";
cin >> nota.calificacion;
cin.ignore(); // Ignorar el salto de línea
// Subir la nota a la plataforma
subirNota(nota);
// Preguntar si se desea agregar otra nota
char respuesta;
cout << "¿Desea agregar otra nota? (s/n): ";
cin >> respuesta;
cin.ignore(); // Ignorar el salto de línea
if (respuesta == 'n') {
break;
}
}
return 0;
}
 Procesamiento de pedidos
Se requiere implementar un sistema para gestionar los pagos de pedidos. Este proceso
implica verificar si el usuario ha proporcionado información de pago válida. Se usa
estructuras condicionales (if) para evaluar la condición (información de pago válida) y
tomar la acción adecuada (procesar orden o mostrar mensaje de erro).
RESOLUCIÓN:
#include <iostream>
#include <string>
using namespace std;
// Estructura para representar la información de pago
struct InformacionPago {
string numeroTarjeta;
string fechaVencimiento;
string codigoSeguridad;
double monto;
};
// Función para validar la información de pago
bool validarInformacionPago(const InformacionPago& pago) {
// Verificar que el número de tarjeta tenga 16 dígitos
if (pago.numeroTarjeta.length()!= 16) {
cout << "Error: El número de tarjeta debe tener 16 dígitos." << endl;
return false;
}
// Verificar que la fecha de vencimiento tenga el formato mm/aa
if (pago.fechaVencimiento.length()!= 5 || pago.fechaVencimiento[2]!= '/') {
cout << "Error: La fecha de vencimiento debe tener el formato mm/aa." << endl;
return false;
}
// Verificar que el código de seguridad tenga 3 o 4 dígitos
if (pago.codigoSeguridad.length() < 3 || pago.codigoSeguridad.length() > 4) {
cout << "Error: El código de seguridad debe tener 3 o 4 dígitos." << endl;
return false;
}
// Verificar que el monto sea mayor que 0
if (pago.monto <= 0) {
cout << "Error: El monto debe ser mayor que 0." << endl;
return false;
}
return true;
}
// Función para procesar un pedido
void procesarPedido(const InformacionPago& pago) {
// Verificar que la información de pago sea válida
if (!validarInformacionPago(pago)) {
return;
}
// Simulación de la procesamiento del pedido
cout << "Pedido procesado con éxito!" << endl;
cout << "Número de tarjeta: " << pago.numeroTarjeta << endl;
cout << "Fecha de vencimiento: " << pago.fechaVencimiento << endl;
cout << "Código de seguridad: " << pago.codigoSeguridad << endl;
cout << "Monto: " << pago.monto << endl;
}
int main() {
// Crear una estructura para la información de pago
InformacionPago pago;
// Ingresar información de pago desde la consola
cout << "Ingrese el número de tarjeta: ";
getline(cin, pago.numeroTarjeta);
cout << "Ingrese la fecha de vencimiento (mm/aa): ";
getline(cin, pago.fechaVencimiento);
cout << "Ingrese el código de seguridad: ";
getline(cin, pago.codigoSeguridad);
cout << "Ingrese el monto del pedido: ";
cin >> pago.monto;
cin.ignore(); // Ignorar el salto de línea
// Procesar el pedido
procesarPedido(pago);
return 0;
}
 Pronostico del tiempo
Se requiere crear una aplicación meteorológica que demuestre las condiciones
meteorológicas actuales y proporciona recomendaciones basadas en las mismas. Se
utiliza estructuras condicionales switch, para evaluar las condiciones climáticas y
mostrar las recomendaciones correspondientes. Ejemplo si hace sol, la aplicación
sugiere actividades al aire libre, etc.
RESOLUCIÓN:
#include <iostream>
#include <string>
using namespace std;
// Enumeración para representar las condiciones climáticas
enum CondicionesClimaticas {
SOL,
LLUVIA,
NIEVE,
VIENTO,
NUBLADO
};
// Función para obtener las condiciones climáticas actuales
CondicionesClimaticas obtenerCondicionesClimaticas() {
// Simulación de la obtención de las condiciones climáticas actuales
// En un sistema real, se podría utilizar una API o una fuente de datos externa
return SOL; // Por defecto, se asume que hace sol
}
// Función para mostrar las recomendaciones basadas en las condiciones climáticas
void mostrarRecomendaciones(CondicionesClimaticas condiciones) {
switch (condiciones) {
case SOL:
cout << "Hoy hace sol! ¿Por qué no salir a disfrutar del aire libre?" << endl;
cout << "Recomendaciones: ir al parque, hacer un paseo, disfrutar de una
comida al aire libre." << endl;
break;
case LLUVIA:
cout << "Hoy llueve! ¿Por qué no quedarse en casa y disfrutar de una buena
lectura?" << endl;
cout << "Recomendaciones: leer un libro, ver una película, jugar juegos de
mesa." << endl;
break;
case NIEVE:
cout << "Hoy nieva! ¿Por qué no disfrutar de actividades invernales?" << endl;
cout << "Recomendaciones: esquiar, patinar, hacer un snowman." << endl;
break;
case VIENTO:
cout << "Hoy hace viento! ¿Por qué no disfrutar de actividades al aire libre con
cuidado?" << endl;
cout << "Recomendaciones: ir al parque, pero con ropa abrigadora, hacer un
paseo con cuidado." << endl;
break;
case NUBLADO:
cout << "Hoy está nublado! ¿Por qué no disfrutar de actividades relajantes?" <<
endl;
cout << "Recomendaciones: meditar, hacer yoga, disfrutar de una taza de té
caliente." << endl;
break;
default:
cout << "No se han obtenido condiciones climáticas válidas." << endl;
break;
}
}
int main() {
// Obtener las condiciones climáticas actuales
CondicionesClimaticas condiciones = obtenerCondicionesClimaticas();
// Mostrar las recomendaciones basadas en las condiciones climáticas
mostrarRecomendaciones(condiciones);
return 0;
}
 Recomendación de producto
Se requiere diseñar una plataforma de comercio electrónico que recomiende productos a
los usuarios en función de su historial de compras. Una vez verificado el historial, el
sistema deberá recomendar productos que coincidan con sus preferencias. Se utiliza
estructuras condicionales switch para que se pueda utilizar una declaración para evaluar
el historial de comprad del usuario y tomar la acción adecuada (recomendar productos
similares productos populares). Ejemplo si el usuario ha comprado un producto de una
categoría especifica el sistema recomienda productos similares. Del contrario
recomendara productos populares.
RESOLUCIÓN:
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
enum Categoria { Electronica, Deporte, Otro };
struct Producto {
string nombre;
Categoria categoria;
double precio;
};
struct HistorialCompras {
vector<Producto> productosComprados;
};
HistorialCompras obtenerHistorialCompras(string usuario) {
HistorialCompras historial;
historial.productosComprados.push_back({"Telefono", Electronica, 500.0});
historial.productosComprados.push_back({"Tablet", Electronica, 300.0});
return historial;
}
Categoria getCategoriaPreferida(const HistorialCompras& historial) {
map<Categoria, int> categoriasContador;
for (const auto& producto : historial.productosComprados) {
categoriasContador[producto.categoria]++;
}
return *max_element(categoriasContador.begin(), categoriasContador.end(),
[](const auto& a, const auto& b) { return a.second < b.second; }).first;
}
vector<string> getRecomendaciones(Categoria categoria) {
vector<string> recomendaciones;
switch (categoria) {
case Electronica:
recomendaciones.push_back("Smartwatch - $200.0");
recomendaciones.push_back("Auriculares - $50.0");
break;
case Deporte:
recomendaciones.push_back("Zapatillas - $80.0");
recomendaciones.push_back("Bolsa de gimnasio - $30.0");
break;
default:
recomendaciones.push_back("Smartphone - $800.0");
recomendaciones.push_back("Laptop - $1200.0");
break;
}
return recomendaciones;
}
void recomendarProductos(HistorialCompras historial) {
Categoria categoriaPreferida = getCategoriaPreferida(historial);
vector<string> recomendaciones = getRecomendaciones(categoriaPreferida);
cout << "Recomendaciones: Productos similares en ";
switch (categoriaPreferida) {
case Electronica:
cout << "Electronica" << endl;
break;
case Deporte:
cout << "Deporte" << endl;
break;
default:
cout << "Productos populares" << endl;
break;
}
for (const auto& recomendacion : recomendaciones) {
cout << recomendacion << endl;
}
}
int main() {
string usuario = "juan";
HistorialCompras historial = obtenerHistorialCompras(usuario);
recomendarProductos(historial);
return 0;
}
}
 Juego de preguntas:
Se requiere crear un juego de preguntas que plantea a los usuarios una serie de
preguntas. Cada pregunta tiene respuestas de opción múltiple y la respuesta del usuario
determina si pasa a la siguiente pregunta o se le presenta un mensaje de error. Con la
estructura de condición if se tomada una declaración para evaluar la respuesta del
usuario y tomar la acción adecuada (pasa a la siguiente pregunta o mensaje de error)
RESOLUCIÓN:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Pregunta {
string texto;
vector<string> opciones;
int respuestaCorrecta;
}
(vector < Pregunta > preguntas) = {
{"¿Cuál es el lenguaje de programación más popular?",
{"Java", "C++", "Python", "JavaScript"}, 2},
{"¿Qué es el nombre del sistema operativo más utilizado?",
{"Windows", "Linux", "MacOS", "Android"}, 0},
{"¿Cuál es el lenguaje de marcado de hipertexto más común?",
{"HTML", "CSS", "JavaScript", "XML"}, 0},
// ...
}
int main() {
int preguntaActual = 0;
int score = 0;
while (preguntaActual < preguntas.size()) {
Pregunta pregunta = preguntas[preguntaActual];
cout << pregunta.texto << endl;
for (int i = 0; i < pregunta.opciones.size(); i++) {
cout << i + 1 << ". " << pregunta.opciones[i] << endl;
}
int respuesta;
cout << "Ingrese su respuesta (1-" << pregunta.opciones.size() << "): ";
cin >> respuesta;
if (respuesta == pregunta.respuestaCorrecta + 1) {
cout << "Correcto!" << endl;
score++;
preguntaActual++;
} else {
cout << "Error. La respuesta correcta es " <<
pregunta.opciones[pregunta.respuestaCorrecta] << endl;
}
}
cout << "Fin del juego. Su puntaje es " << score << "/" << preguntas.size() << endl;
return 0;
}

Más contenido relacionado

PPT
Clase 5 php
PPTX
Curso AngularJS - 7. temas avanzados
PPT
7090112 Clase Transact Sql Server
PDF
Estructuras de control
PDF
LIBRO 5 CODIGOS EN C++ REFERENTES A TELEMÁTICA
PDF
5.instrucciones de control en c++ parte 2
PPT
Unit Testing - Trovit
PDF
5.instrucciones de control en java parte2
Clase 5 php
Curso AngularJS - 7. temas avanzados
7090112 Clase Transact Sql Server
Estructuras de control
LIBRO 5 CODIGOS EN C++ REFERENTES A TELEMÁTICA
5.instrucciones de control en c++ parte 2
Unit Testing - Trovit
5.instrucciones de control en java parte2

Similar a Ejercicios propuestos (if , switch).docx (20)

DOCX
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
PPT
Unit Testing - GTUG
PDF
Bases de Datos en Java - Intro a JDBC
PDF
SESION 05.pdf
PPTX
APIREST LARAVEL Y PHP.pptx
PPTX
Java con base de datos
PPTX
2-Fullstack clase Javascript - NUEVA.pptx
PPTX
Java básico
DOCX
Informe grupal f_arinango_ cuenca
DOCX
Trabajo final
PDF
Conceptos basicos en CakePHP
PDF
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
PPTX
Angular Conceptos Practicos 2
PDF
Practica9 bases de datos
PDF
Practica9 bases de datos
PPTX
Statement
DOCX
02 formulario iniciar sesion programar
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Unit Testing - GTUG
Bases de Datos en Java - Intro a JDBC
SESION 05.pdf
APIREST LARAVEL Y PHP.pptx
Java con base de datos
2-Fullstack clase Javascript - NUEVA.pptx
Java básico
Informe grupal f_arinango_ cuenca
Trabajo final
Conceptos basicos en CakePHP
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO.pdf
Angular Conceptos Practicos 2
Practica9 bases de datos
Practica9 bases de datos
Statement
02 formulario iniciar sesion programar
Publicidad

Último (20)

PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
DI, TEA, TDAH.pdf guía se secuencias didacticas
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Punto Critico - Brian Tracy Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
V UNIDAD - SEGUNDO GRADO. del mes de agosto
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Publicidad

Ejercicios propuestos (if , switch).docx

  • 1. Facultad de informática y electrónica 19 de Junio del 2024 Nombre: Melany Andrade. Telemática PAO 1 Plantear 5 posibles escenarios en donde se evidencie la necesidad de utilizar obligatoriamente las estructuras de control (if, switch)  Gestión de Subida de Notas a la plataforma Se requiere implementar un sistema para gestionar la subida de notas a una página web específica. Este proceso implica verificar la validez de las notas ingresadas, asegurando que cumplan con los formatos y criterios establecidos por la aplicación. Se utilizarán estructuras condicionales, como if, para validar cada nota antes de su publicación. Además, se desarrollará un trabajo eficiente que permita a los usuarios autorizados subir las notas de manera correcta y eficaz. RESOLUCIÓN: #include <iostream> #include <string> #include <vector> using namespace std; // Estructura para representar una nota struct Nota { string titulo; string contenido; int calificacion; // entre 0 y 100 }; // Función para validar una nota bool validarNota(const Nota& nota) { // Verificar que el título no esté vacío if (nota.titulo.empty()) { cout << "Error: El título de la nota no puede estar vacío." << endl; return false; } // Verificar que el contenido no esté vacío
  • 2. if (nota.contenido.empty()) { cout << "Error: El contenido de la nota no puede estar vacío." << endl; return false; } // Verificar que la calificación esté entre 0 y 100 if (nota.calificacion < 0 || nota.calificacion > 100) { cout << "Error: La calificación debe estar entre 0 y 100." << endl; return false; } return true; } // Función para subir una nota a la plataforma void subirNota(const Nota& nota) { // Verificar que la nota sea válida if (!validarNota(nota)) { return; } // Simulación de la subida de la nota a la plataforma cout << "Nota subida con éxito!" << endl; cout << "Título: " << nota.titulo << endl; cout << "Contenido: " << nota.contenido << endl; cout << "Calificación: " << nota.calificacion << endl; } int main() { // Crear un vector para almacenar las notas vector<Nota> notas; // Ingresar notas desde la consola while (true) { Nota nota; cout << "Ingrese el título de la nota: "; getline(cin, nota.titulo); cout << "Ingrese el contenido de la nota: "; getline(cin, nota.contenido); cout << "Ingrese la calificación de la nota (entre 0 y 100): "; cin >> nota.calificacion; cin.ignore(); // Ignorar el salto de línea // Subir la nota a la plataforma subirNota(nota); // Preguntar si se desea agregar otra nota
  • 3. char respuesta; cout << "¿Desea agregar otra nota? (s/n): "; cin >> respuesta; cin.ignore(); // Ignorar el salto de línea if (respuesta == 'n') { break; } } return 0; }  Procesamiento de pedidos Se requiere implementar un sistema para gestionar los pagos de pedidos. Este proceso implica verificar si el usuario ha proporcionado información de pago válida. Se usa estructuras condicionales (if) para evaluar la condición (información de pago válida) y tomar la acción adecuada (procesar orden o mostrar mensaje de erro). RESOLUCIÓN: #include <iostream> #include <string> using namespace std; // Estructura para representar la información de pago struct InformacionPago { string numeroTarjeta; string fechaVencimiento; string codigoSeguridad; double monto; }; // Función para validar la información de pago bool validarInformacionPago(const InformacionPago& pago) { // Verificar que el número de tarjeta tenga 16 dígitos if (pago.numeroTarjeta.length()!= 16) { cout << "Error: El número de tarjeta debe tener 16 dígitos." << endl; return false; } // Verificar que la fecha de vencimiento tenga el formato mm/aa if (pago.fechaVencimiento.length()!= 5 || pago.fechaVencimiento[2]!= '/') { cout << "Error: La fecha de vencimiento debe tener el formato mm/aa." << endl; return false; } // Verificar que el código de seguridad tenga 3 o 4 dígitos if (pago.codigoSeguridad.length() < 3 || pago.codigoSeguridad.length() > 4) { cout << "Error: El código de seguridad debe tener 3 o 4 dígitos." << endl;
  • 4. return false; } // Verificar que el monto sea mayor que 0 if (pago.monto <= 0) { cout << "Error: El monto debe ser mayor que 0." << endl; return false; } return true; } // Función para procesar un pedido void procesarPedido(const InformacionPago& pago) { // Verificar que la información de pago sea válida if (!validarInformacionPago(pago)) { return; } // Simulación de la procesamiento del pedido cout << "Pedido procesado con éxito!" << endl; cout << "Número de tarjeta: " << pago.numeroTarjeta << endl; cout << "Fecha de vencimiento: " << pago.fechaVencimiento << endl; cout << "Código de seguridad: " << pago.codigoSeguridad << endl; cout << "Monto: " << pago.monto << endl; } int main() { // Crear una estructura para la información de pago InformacionPago pago; // Ingresar información de pago desde la consola cout << "Ingrese el número de tarjeta: "; getline(cin, pago.numeroTarjeta); cout << "Ingrese la fecha de vencimiento (mm/aa): "; getline(cin, pago.fechaVencimiento); cout << "Ingrese el código de seguridad: "; getline(cin, pago.codigoSeguridad); cout << "Ingrese el monto del pedido: "; cin >> pago.monto; cin.ignore(); // Ignorar el salto de línea // Procesar el pedido procesarPedido(pago); return 0; }  Pronostico del tiempo Se requiere crear una aplicación meteorológica que demuestre las condiciones
  • 5. meteorológicas actuales y proporciona recomendaciones basadas en las mismas. Se utiliza estructuras condicionales switch, para evaluar las condiciones climáticas y mostrar las recomendaciones correspondientes. Ejemplo si hace sol, la aplicación sugiere actividades al aire libre, etc. RESOLUCIÓN: #include <iostream> #include <string> using namespace std; // Enumeración para representar las condiciones climáticas enum CondicionesClimaticas { SOL, LLUVIA, NIEVE, VIENTO, NUBLADO }; // Función para obtener las condiciones climáticas actuales CondicionesClimaticas obtenerCondicionesClimaticas() { // Simulación de la obtención de las condiciones climáticas actuales // En un sistema real, se podría utilizar una API o una fuente de datos externa return SOL; // Por defecto, se asume que hace sol } // Función para mostrar las recomendaciones basadas en las condiciones climáticas void mostrarRecomendaciones(CondicionesClimaticas condiciones) { switch (condiciones) { case SOL: cout << "Hoy hace sol! ¿Por qué no salir a disfrutar del aire libre?" << endl; cout << "Recomendaciones: ir al parque, hacer un paseo, disfrutar de una comida al aire libre." << endl; break; case LLUVIA: cout << "Hoy llueve! ¿Por qué no quedarse en casa y disfrutar de una buena lectura?" << endl; cout << "Recomendaciones: leer un libro, ver una película, jugar juegos de mesa." << endl; break; case NIEVE: cout << "Hoy nieva! ¿Por qué no disfrutar de actividades invernales?" << endl; cout << "Recomendaciones: esquiar, patinar, hacer un snowman." << endl; break; case VIENTO: cout << "Hoy hace viento! ¿Por qué no disfrutar de actividades al aire libre con cuidado?" << endl;
  • 6. cout << "Recomendaciones: ir al parque, pero con ropa abrigadora, hacer un paseo con cuidado." << endl; break; case NUBLADO: cout << "Hoy está nublado! ¿Por qué no disfrutar de actividades relajantes?" << endl; cout << "Recomendaciones: meditar, hacer yoga, disfrutar de una taza de té caliente." << endl; break; default: cout << "No se han obtenido condiciones climáticas válidas." << endl; break; } } int main() { // Obtener las condiciones climáticas actuales CondicionesClimaticas condiciones = obtenerCondicionesClimaticas(); // Mostrar las recomendaciones basadas en las condiciones climáticas mostrarRecomendaciones(condiciones); return 0; }  Recomendación de producto Se requiere diseñar una plataforma de comercio electrónico que recomiende productos a los usuarios en función de su historial de compras. Una vez verificado el historial, el sistema deberá recomendar productos que coincidan con sus preferencias. Se utiliza estructuras condicionales switch para que se pueda utilizar una declaración para evaluar el historial de comprad del usuario y tomar la acción adecuada (recomendar productos similares productos populares). Ejemplo si el usuario ha comprado un producto de una categoría especifica el sistema recomienda productos similares. Del contrario recomendara productos populares. RESOLUCIÓN: #include <iostream> #include <string> #include <map> #include <vector> #include <algorithm> using namespace std; enum Categoria { Electronica, Deporte, Otro }; struct Producto { string nombre; Categoria categoria; double precio;
  • 7. }; struct HistorialCompras { vector<Producto> productosComprados; }; HistorialCompras obtenerHistorialCompras(string usuario) { HistorialCompras historial; historial.productosComprados.push_back({"Telefono", Electronica, 500.0}); historial.productosComprados.push_back({"Tablet", Electronica, 300.0}); return historial; } Categoria getCategoriaPreferida(const HistorialCompras& historial) { map<Categoria, int> categoriasContador; for (const auto& producto : historial.productosComprados) { categoriasContador[producto.categoria]++; } return *max_element(categoriasContador.begin(), categoriasContador.end(), [](const auto& a, const auto& b) { return a.second < b.second; }).first; } vector<string> getRecomendaciones(Categoria categoria) { vector<string> recomendaciones; switch (categoria) { case Electronica: recomendaciones.push_back("Smartwatch - $200.0"); recomendaciones.push_back("Auriculares - $50.0"); break; case Deporte: recomendaciones.push_back("Zapatillas - $80.0"); recomendaciones.push_back("Bolsa de gimnasio - $30.0"); break; default: recomendaciones.push_back("Smartphone - $800.0"); recomendaciones.push_back("Laptop - $1200.0"); break; } return recomendaciones; } void recomendarProductos(HistorialCompras historial) { Categoria categoriaPreferida = getCategoriaPreferida(historial); vector<string> recomendaciones = getRecomendaciones(categoriaPreferida); cout << "Recomendaciones: Productos similares en "; switch (categoriaPreferida) { case Electronica: cout << "Electronica" << endl; break; case Deporte: cout << "Deporte" << endl; break; default: cout << "Productos populares" << endl;
  • 8. break; } for (const auto& recomendacion : recomendaciones) { cout << recomendacion << endl; } } int main() { string usuario = "juan"; HistorialCompras historial = obtenerHistorialCompras(usuario); recomendarProductos(historial); return 0; } }  Juego de preguntas: Se requiere crear un juego de preguntas que plantea a los usuarios una serie de preguntas. Cada pregunta tiene respuestas de opción múltiple y la respuesta del usuario determina si pasa a la siguiente pregunta o se le presenta un mensaje de error. Con la estructura de condición if se tomada una declaración para evaluar la respuesta del usuario y tomar la acción adecuada (pasa a la siguiente pregunta o mensaje de error) RESOLUCIÓN: #include <iostream> #include <string> #include <vector> using namespace std; struct Pregunta { string texto; vector<string> opciones; int respuestaCorrecta; } (vector < Pregunta > preguntas) = { {"¿Cuál es el lenguaje de programación más popular?", {"Java", "C++", "Python", "JavaScript"}, 2}, {"¿Qué es el nombre del sistema operativo más utilizado?", {"Windows", "Linux", "MacOS", "Android"}, 0}, {"¿Cuál es el lenguaje de marcado de hipertexto más común?", {"HTML", "CSS", "JavaScript", "XML"}, 0}, // ... } int main() { int preguntaActual = 0; int score = 0; while (preguntaActual < preguntas.size()) { Pregunta pregunta = preguntas[preguntaActual]; cout << pregunta.texto << endl; for (int i = 0; i < pregunta.opciones.size(); i++) { cout << i + 1 << ". " << pregunta.opciones[i] << endl;
  • 9. } int respuesta; cout << "Ingrese su respuesta (1-" << pregunta.opciones.size() << "): "; cin >> respuesta; if (respuesta == pregunta.respuestaCorrecta + 1) { cout << "Correcto!" << endl; score++; preguntaActual++; } else { cout << "Error. La respuesta correcta es " << pregunta.opciones[pregunta.respuestaCorrecta] << endl; } } cout << "Fin del juego. Su puntaje es " << score << "/" << preguntas.size() << endl; return 0; }