Examen de Fonaments d'Informàtica UAB 2020 · Parcial de Programació en C++ - Novembre 2020
Examen de Fonaments d'Informàtica de la UAB (Grado en Ingeniería Informática) 2020, Parcial de Programació en C++ - Novembre 2020: 9 problemas con solución.
Temas del examen: Programació en C/C++: funcions, vectors, matrius, registres i programa principal
Exercici 1 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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 1 (1 punt). Generació de cartró de bingo
Dissenyeu el procediment CrearCartro encarregat de generar un cartró vàlid amb 25 números compresos entre 1 i 75. Cal complir estrictament la distribució per blocs següent:
5 elements dins l'interval de l'1 al 15
5 elements de l'interval del 16 al 30
5 elements de l'interval del 31 al 45
5 elements de l'interval del 46 al 60
5 elements de l'interval del 61 al 75
El procediment rep per paràmetre el vector (cartró) juntament amb la seva dimensió, i ha de deixar el vector emplenat amb els números ordenats de forma creixent.
Podeu fer ús (sense caldre implementar-les) de les subrutines auxiliars:
int GenerarNombre(int min, int max, int a[], int dim): obté un valor pseudoaleatori entre min i max que no figuri prèviament a a.
void Ordena(int a[], int dim): ordena creixentment el vector a.
Exercici 2 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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 2 (1 punt). Comparació d'identitat de dos vectors
Escriu la funció booleana ArraysIguals per determinar si dos vectors tenen exactament la mateixa seqüència de valors. La funció rebrà els dos vectors i la seva mida comuna, retornant true en cas que coincideixin element a element i false si discrepen en alguna posició.
Exercici 3 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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 3 [1 punt]. Visualització de boles extretes
Desenvolupeu el procediment ImprimirBolesSortides destinat a llistar per pantalla la seqüència de boles que ja han estat extretes del bombo. Es rep un vector d'estat i la seva dimensió (75 posicions). Si en una posició hi ha emmagatzemat un 1, significa que la bola amb número índex + 1 ha sortit; si hi ha un 0, encara no ha estat extreta.
Exercici 4 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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 4 [1 punt]. Escrutini per comprovar si hi ha bingo
Definiu la funció Escrutini que avaluï si un determinat cartró ha assolit el Bingo. La funció pren com a paràmetres el cartró, la seva mida i el vector bombo que conté les boles que han sortit (on la presència d'un 1 a la posició indica que la bola ja s'ha cantat). Retornarà true si tots els nombres del cartró han aparegut al bombo, i false en cas contrari.
Exercici 5 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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 5 [1 punt]. Comentari segons diferència de victòries
Implementeu el procediment ImprimirComentari encarregat de mostrar un text contextualitzat d'acord amb el balanç de partides guanyades entre dos jugadors. Rebrà dos enters amb el nombre de victòries de cadascú i aplicarà el criteri següent:
Diferència menor o igual que 1: imprimir "Està molt igualat".
Diferència compresa entre 2 i 5 (inclosos): mostrar "La remuntada és possible".
Diferència major o igual que 6: mostrar "Avui és el teu dia de sort".
Nota: podeu emprar la funció matemàtica abs() per computar la distància absoluta.
Exercici 6 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
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.
Exercici 7 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
Exercici 7 [0,5 punts]. Registre TCartro i impressió de dades
Especifiqueu el tipus compost TCartro com una estructura formada pels següents atributs:
Ident_Cartro: enter amb l'identificador únic del cartró.
Numeros: vector de 25 posicions enteres.
Nom_Jugador: taula de 50 caràcters pel nom de l'usuari.
A continuació, redacteu el procediment Imprimir que prengui com a argument una variable de tipus TCartro i mostri per la consola l'identificador i el nom del jugador separats per un guió ( -).
Exercici 8 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
Exercici 8 [1 punt]. Comprovació de matriu no negativa
Dissenyeu la funció Es_MatPositiva que accepti una matriu d'enters de 4 columnes, la quantitat de files i la de columnes. Ha de retornar 1 si cap element de la matriu és negatiu (és a dir, tots són ), i 0 si es localitza com a mínim un valor estrictament inferior a zero.
Exercici 9 · Programació en C/C++: funcions, vectors, matrius, registres i programa principal
Exercici 9 [1 punt]. Càlcul del quadrat amb control de desbordament
Programeu la funció Elevar dissenyada per calcular el quadrat d'un enter. Rebrà dos arguments de tipus int: el primer correspondrà a la base i el segon desarà per referència el resultat obtingut.
La funció haurà de retornar 1 si el càlcul s'ha pogut dur a terme satisfactòriament, i 0 en cas contrari. Per evitar problemes d'overflow en enters estàndard, la base ha de trobar-se obligatòriament a l'interval .
También puedes estudiar por temas
Practica un tema con ejercicios de los exámenes de todos los años, mezclados.
- Programació en C/C++: funcions, vectors, matrius, registres i programa principal · 9 problemas · 50 % de que salga
- Representació de nombres: canvis de base, enters amb signe i aritmètica en C2 · 13 problemas · 75 % de que salga
- Estructura del computador: registres, memòria i busos · 9 problemas · 75 % de que salga
- Modes d'adreçament i execució a nivell de microoperacions · 9 problemas · 75 % de que salga
- Sistema operatiu: modes d'execució, crides al sistema i processos · 8 problemas · 75 % de que salga
- Programació en llenguatge màquina i traducció des de C · 7 problemas · 75 % de que salga