Exercici 6 · Fonaments d'Informàtica UAB 2020
Tema: Programació en C/C++: funcions, vectors, matrius, registres i programa principal · Del examen Examen Parcial de Programació en C++ - Novembre 2020 (2020)
Enunciado
Context
Convocatòria: Examen Parcial (23 de novembre de 2020).
Context general: Les qüestions 1 a 6 descriuen mòduls d'una aplicació per simular partides de Bingo tradicional de 75 boles per a dos contrincants. Un cartró està format per 25 caselles que s'omplen per intervals de 15 números (de l'1 al 75). Cal dissenyar codi estructurat, modular i eficient emprant C++.
Exercici 6 (2,5 punts). Programa principal amb menú de joc
Suposant disponibles les operacions prèvies i els auxiliars:
void MenuPrincipal(): mostra per pantalla les 4 opcions del menú interactiu (1. Assignar cartrons, 2. Jugar, 3. Marcador, 4. Sortir).
void InicialitzarArray(int a[], int dim, int v): assigna el valor v a totes les cel·les del vector a.
int GenerarNombre(int min, int max, int a[], int dim): genera una bola aleatòria no repetida.
Programeu la funció principal main() (amb constants i llibreries pertinents) que executi el flux següent:
Definir constants per a la capacitat del cartró (25) i el total de boles del bombo (75).
Declarar els vectors dels cartrons ( cartroPlayer1, cartroPlayer2) i del bombo, a més del recompte de victòries.
Bucle interactiu amb MenuPrincipal():
Opció 1: Inicialitzar els cartrons a 0, generar el primer cartró i després el segon, repetint la generació del segon mentre ambdós cartrons siguin idèntics (fent servir ArraysIguals). Marcar que els cartrons estan llestos.
Opció 2: Comprovar que s'hagin generat cartrons prèviament. Si no, notificar l'error i tornar al menú. En cas afirmatiu: posar a zero el bombo; en un bucle extreure boles amb GenerarNombre, anotar-les al bombo, mostrar la bola extreta i el llistat acumulat amb ImprimirBolesSortides, i comprovar el bingo amb Escrutini per a cada participant fins que algú guanyi; sumar la victòria al guanyador.
Opció 3: Presentar el marcador actual i cridar ImprimirComentari.
Opció 4: Mostrar el marcador final i el text "Sortint del programa...".
Altres: Mostrar "Opció no permesa".
Reiterar fins a la selecció de l'opció 4.

Solución
Según los criterios oficiales de corrección
Programeu la funció principal main() (amb constants i llibreries pertinents) que executi el flux indicat:
Solución: ```cpp #include <iostream> #include <cmath> using namespace std; const int MIDA_CARTRO = 25; const int TOTAL_BOLES = 75; const int PRIMERA_BOLA = 1; int main() { int cartroPlayer1[MIDA_CARTRO]; int cartroPlayer2[MIDA_CARTRO]; int bombo[TOTAL_BOLES]; int victP1 = 0; int victP2 = 0; bool cartronsDisponibles = false; char seleccio; do { MenuPrincipal(); cin >> seleccio; switch (seleccio) { case '1': InicialitzarArray(cartroPlayer1, MIDA_CARTRO, 0); InicialitzarArray(cartroPlayer2, MIDA_CARTRO, 0); CrearCartro(cartroPlayer1, MIDA_CARTRO); do { CrearCartro(cartroPlayer2, MIDA_CARTRO); } while (ArraysIguals(cartroPlayer1, cartroPlayer2, MIDA_CARTRO)); cartronsDisponibles = true; break; case '2': if (!cartronsDisponibles) { cout << "Error: No hi ha cartrons generats pels jugadors" << endl; } else { InicialitzarArray(bombo, TOTAL_BOLES, 0); bool bingo1 = false; bool bingo2 = false; do { int bola = GenerarNombre(PRIMERA_BOLA, TOTAL_BOLES, bombo, TOTAL_BOLES); bombo[bola - 1] = 1; cout << "Ha sortit el: " << bola << endl; cout << "Boles que han sortit fins el moment: "; ImprimirBolesSortides(bombo, TOTAL_BOLES); bingo1 = Escrutini(cartroPlayer1, MIDA_CARTRO, bombo); bingo2 = Escrutini(cartroPlayer2, MIDA_CARTRO, bombo); } while (!bingo1 && !bingo2); if (bingo1) { victP1++; } else { victP2++; } } break; case '3': cout << "Marcador: " << victP1 << " - " << victP2 << endl; ImprimirComentari(victP1, victP2); break; case '4': cout << "Marcador final: " << victP1 << " - " << victP2 << endl; cout << "Sortint del programa..." << endl; break; default: cout << "Opció no permesa" << endl; } } while (seleccio != '4'); return 0; } ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
‹ Exercici 5 · 2020 · Exercici 7 · 2020 ›