Pages: [1]   Go Down
Print
Author Topic: Esercizio 1 - Esame 17/12/2015  (Read 1446 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
AntonioLiggieri
Matricola
*
Offline Offline

Posts: 5


WWW
« on: 23-12-2015, 19:17:09 »

Salve,
ho svolto l'esercizio 1 della prova d'esame di giorno 17/12/2015: Esercizio 1 dell’Esame scritto 17/12/2015 di Programmazione 1.
La pagina riporta sia il testo dell'esercizio che lo svolgimento completo, quindi non solo il metodo, così da poterlo compilare ed eseguire.

Ho fatto in modo che tutti i cicli for si fermino appena trovo la prima corrispondenza (utilizzando &&!stop) però, per poter fare ciò, ripeto la stessa condizione in ogni ciclo for.
Forse la soluzione migliore è l'utilizzo del while?
Gli date un'occhiata e mi fornite la soluzione migliore all'esercizio da me svolto?

Grazie mille,
cordiali saluti e buone feste.
Antonio Liggieri
« Last Edit: 23-12-2015, 19:42:30 by AntonioLiggieri » Logged

Antonio Liggieri
Mario Pavone
Administrator
Apprendista Forumista
*****
Offline Offline

Posts: 167


« Reply #1 on: 30-12-2015, 18:14:34 »

Esercizio 1:

Si consideri il fatto che, data la matrice quadrata, tutti gli elementi sulla diagonale principale sono quelli avente indice delle righe uguale a quello delle colonne (i==j); mentre quelli sulla diagonale secondaria sono quelli di riga i e colonna (N-1)-i! Ciò mi dice che posso accedere ad un elemento della diagonale secondaria (come quello nella diagonale principale) attraverso un solo ciclo for! Allora:


const int x=3;
....
bool metodo (string A[][N]) {
    
    for (int i=0; i<N; i++)
        for (int j=0; j<N; j++)
            if ( A[ i ][ N-1-i ].substr(0, x) == A[j][j].substr(A[j][j].size()-x, x) )  return true;
    
    return false;
}


Per qualunque informazione contattatemi per email. I risultati della prova in itinere saranno a breve pubblicati.

Auguri di buon anno a tutti.

MP.
« Last Edit: 30-12-2015, 18:19:19 by Mario Pavone » Logged
Pages: [1]   Go Up
Print
Jump to: