Examen de Programació I UDL 2022 · Primer Parcial (Novembre 2022)
Examen de Programació I de la UDL (Grado en Ingeniería Informática) 2022, Primer Parcial (Novembre 2022): 3 problemas con solución. Con corrección al momento.
Temas del examen: Bucles i disseny iteratiu
Problema 1 · Bucles i disseny iteratiu
Problema 1 (2 punts). Traça d'execució de codi
Considereu el fragment següent en llenguatge C++, compilat amb els paràmetres -ansi i -Wall:
#include <stdio.h>
int main ()
{
int x, y;
printf ("Introdueix el valor de x: ");
scanf ("%d", &x);
printf ("Introdueix el valor de y: ");
scanf ("%d", &y);
while (0 < y)
{
if (y%2 == 1)
{
x*=2;
}
y--;
}
printf ("x = %d, ", x);
printf ("y = %d.\n", y);
return 0;
}
Indiqueu quina sortida exacta es mostra per pantalla per a cadascuna de les parelles de valors d'entrada següents:
a)
,
b)
,
c)
,
d)
,
Problema 2 · Bucles i disseny iteratiu
Problema 2 (3,5 punts). Càlcul dels divisors comuns de dos enters positius
Dissenyeu un programa en llenguatge C++ que demani per teclat dos nombres enters positius, i . En cas que l'usuari introdueixi un valor negatiu o zero, cal mostrar un missatge d'error i tornar a sol·licitar la introducció de les dades fins que siguin correctes.
Un cop validats els valors, el programa ha d'imprimir per pantalla tots els divisors comuns de i , és a dir, tots els nombres que compleixin simultàniament:
Són enters estrictament positius.
Són menors o iguals que i que .
Divideixen de forma exacta tant a com a (és a dir, el residu de la divisió és zero).
Exemples d'execució:
Si i , la sortida ha de ser: 1 5 25
Si i , la sortida ha de ser: 1 2 3 4 6 12
Si i , la sortida ha de ser: 1
Escriviu un codi estructurat, clar i acompanyat de comentaris aclaridors.
Problema 3 · Bucles i disseny iteratiu
Problema 3 [4,5 punts]. Processament de seqüència i representació d'un tauler SAT
Dissenyeu un programa en llenguatge C++ que processi un text acabat amb el caràcter punt ( '.'). El programa ha de cercar la primera aparició de la lletra 'v'. Si es troba aquest caràcter, a continuació es llegirà una seqüència de 16 nombres enters (seguits d'un 0 i del punt final, els quals es poden ignorar).
Per a cadascun d'aquests 16 nombres:
Si el valor és negatiu, s'imprimeix un caràcter de subratllat seguit d'un espai ( "_ ").
Si el valor és positiu, s'imprimeix la lletra 'Q' seguida d'un espai ( "Q ").
Cal afegir un salt de línia cada quatre valors impresos (formant una matriu de 4 files per 4 columnes).
En cas que el caràcter punt arribi sense haver trobat cap 'v' en el text, el programa ha d'imprimir el missatge:
No té solució.
Exemples:
Exemple 1:
Entrada:
s SATISFIABLE
v -1 -2 3 -4 5 -6 -7 -8 -9 -10 -11 12 -13 14 -15 -16 0
.
Sortida:
_ _ Q _
Q _ _ _
_ _ _ Q
_ Q _ _
Exemple 2:
Entrada:
s UNSATISFIABLE
.
Sortida:
No té solució.
También puedes estudiar por temas
Practica un tema con ejercicios de los exámenes de todos los años, mezclados.
- Bucles i disseny iteratiu · 3 problemas