


Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Pac dos taules i tuples, accions i funcions any 2017 - 2018
Tipo: Exámenes
1 / 4
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



Grau (GDDV,GEB,GINF): Matí o tarda: DNI:
Primera Part. Temps: 1h 30 min Puntuació: 40 punts (sobre 100 punts del global de l'examen) Les notes es publicaran el dia 25-01- Data revisió examen: 28-01-2019. GDDV-GEB: a les 12:00, GEINF a les 15:
Nota: En tot l'examen, serà tractat com un error greu el mal ús de les accions i funcions (i dels seus paràmetres) i dels esquemes de cerca i recorregut. Recordeu que cal tractar amb precisió tots els detalls: la declaració i inicialització de les variables, la condició del mentre, l’estructura del per, l'especificació, etc. Es valorarà la simplicitat i la claredat de les solucions, així com la seva eficiència. Caldrà tenir cura de l'escriptura, ja que aquesta ha de ser clara i no ha de presentar ambigüitats.
1. (10 punts) Especifica i implementa una funció booleana que, donats dos nombres naturals nombre_1 i nombre_2 , ens digui si els dígits de nombre_2 són sempre més grans que els corresponents de nombre_1. Només es tindran en compte les posicions dels dígits que estiguin presents en els 2 números.
Per exemple , si nombre_1 =1234 i nombre_2 =345 haurà de retornar cert perquè 5>4, 4>3 i 3>2. Altres exemples : si nombre_1 =34 i nombre_2 =4327 haurà de retornar fals ; si nombre_1 =34 i nombre_2 =37 haurà de retornar fals
bool digits_mes_grans( unsigned nombre_1 , unsigned nombre_2) {
//Pre:
//Post:
Grau (GDDV,GEB,GINF): Matí o tarda: DNI:
2. (10 punts) Fer un programa per analitzar un text entrat per teclat acabat amb ‘#’. El text no conté dígits ni lletres accentuades ni punt volat. Fer un programa que comprovi si hi ha alguna paraula que la seva longitud sigui superior o igual a una determinada longitud que s'entrarà per teclat. Cal implementar i utilitzar una acció que tracti una paraula sencera (tipus passar_paraula). Tot caràcter diferent de EOS és una lletra o un separador.
Els missatges que poden aparèixer durant l’execució són:
Exemples de sortida:
Entra la longitud que fa de llindar: 4 Entra la seqüència: Hem arribat. Ja som a casa! # Hi ha alguna paraula que la seva longitud és superior o igual a 4
Entra la longitud que fa de llindar: 10 Entra la seqüència: Hem arribat. Ja som a casa! # No hi ha cap paraula que la seva longitud sigui igual o superior a 10
Cal que utilitzeu la constant EOS ( const char EOS = '#') i que implementeu tot el programa excepte l'acció void passar_separadors( char & lletra) i la funció bool es_lletra( char caracter) que ja estan implementades:
void passar_separadors( char & caracter) /* Pre: caracter=CARACTER és el darrer caràcter llegit Post: si CARACTER és un separador, caracter és el primer no separador (EOS o lletra) que es troba a la seqüència; en cas contrari, caracter=CARACTER */
bool es_lletra( char caracter) /* Pre: cert Post: retorna cert si caracter és una lletra, fals altrament */
int main() {
Grau (GDDV,GEB,GINF): Matí o tarda: DNI:
4. (10 punts) Omple els espais buits de la funció que esbrina si una matriu és simètrica respecte a la vertical que passa pel centre (simetria esquerra-dreta). Caldrà completar la capçalera i l'especificació d'una funció booleana que esbrina si una fila de la matriu és capicua (o simètrica). Una matriu d'una sola columna es considerarà simètrica. Exemples de matrius simètriques:
const unsigned MAXIM = 1000; typedef Vector_enter int[ MAXIM ]; typedef Matriu_enter int[ MAXIM ][ MAXIM ];
bool es_capicua(...................................................................................)
// Pre:
// Post:
bool es_simetrica( const Matriu_enter matriu, unsigned n, unsigned m){ // Pre: 0<n<=MAXIM i 0<m<=MAXIM // Post: retorna cert si matriu[0..n-1][0..m-1] és simètrica respecte a la vertical que passa pel centre, fals en cas contrari
bool simetria=true;
unsigned i = 0;
while (...................................................) {
if (.........................................................) simetria = false;
else ....................;
return simetria; }