Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Pac dos any 2017 2018, Exámenes de Programación C

Pac dos taules i tuples, accions i funcions any 2017 - 2018

Tipo: Exámenes

2018/2019

Subido el 30/12/2019

atram-ajerap
atram-ajerap 🇪🇸

1 documento

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Cognoms, Nom:
Grau (GDDV,GEB,GINF): Matí o tarda: DNI:
EXAMEN DE METODOLOGIA I TECNOLOGIA DE LA PROGRAMACIÓ I
18-01-2019

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-2019
Data revisió examen: 28-01-2019. GDDV-GEB: a les 12:00, GEINF a les 15:30

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:
pf3
pf4

Vista previa parcial del texto

¡Descarga Pac dos any 2017 2018 y más Exámenes en PDF de Programación C solo en Docsity!

Grau (GDDV,GEB,GINF): Matí o tarda: DNI:

EXAMEN DE METODOLOGIA I TECNOLOGIA DE LA PROGRAMACIÓ I

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; }