Problema 3 · Programació I UDL 2022

Tema: Bucles i disseny iteratiu · Del examen Examen Primer Parcial (Novembre 2022) (2022)

Enunciado

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ó.

Enunciado: Problema 3 · Programació I UDL 2022

Solución

Según los criterios oficiales de corrección

Dissenyeu un programa en llenguatge C++ que processi un text acabat amb el caràcter punt ( '.' ).

Solución: ```cpp #include <iostream> using namespace std; int main() { char c; bool trobat = false; // Lectura caràcter a caràcter buscant 'v' abans d'arribar al punt while (cin >> c && c != '.' && !trobat) { if (c == 'v') { trobat = true; } } if (trobat) { // Es llegeixen exactament els 16 nombres associats a les variables for (int i = 1; i <= 16; i++) { int valor; cin >> valor; if (valor > 0) { cout << "Q "; } else { cout << "_ "; } // Salt de línia cada 4 elements if (i % 4 == 0) { cout << endl; } } // Es consumeixen els caràcters restants fins al punt final (0 i '.') while (cin >> c && c != '.') { // descartar resta de la línia } } else { cout << "No té solució." << endl; } 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.

‹ Problema 2 · 2022

Más ejercicios de Bucles i disseny iteratiu