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

Posts: 5


WWW
« on: 23-12-2015, 23:05:58 »

Buonasera,
ho svolto l'esercizio 2 dell'esame di giorno 17/12/2015: Esercizio 2 dell’Esame scritto 17/12/2015 di Programmazione 1.

Cosa faresti in maniera differente e/o in modo migliore?
Condividi il tuo elaborato incollando il link pastebin.com o utilizzando il tag CODE (#)!

Grazie mille,
cordiali saluti e buone feste.
Antonio Liggieri
Logged

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

Posts: 167


« Reply #1 on: 31-12-2015, 16:08:09 »

Cosa faresti in maniera differente e/o in modo migliore?

Alcune osservazioni ed errori al suo codice:

1) l'inizializzazione della variabile min non è corretta. Immagini il caso in cui v[i=0]=0, mentre tutti i valori del vettore sono maggiori di zero e distinti... nessuna differenza sarà mai minore di 0!

2) il ciclo da lei eseguito, e confrontando solo v[i-1] e v[ i ], non vengono prese in considerazioni tutte le possibili distanze, ma solo quelle tra i vicini di posizione. Il risultato  è che non troverà (quasi) mai la distanza più piccola, su cui poi calcolare se la somma è un multiplo di 7!


Una possibile soluzione:

bool metodo (int A[]){
    
    int min, somma;
    
    min = -1;  // la differenza in valore assoluto è sempre >= zero!!
    // min=abs(A[0]-A[1]);

    for(int i=0; i<N-1; i++)

        for (int j=i+1; j<N; j++)

            if (min > abs(A[ i ]-A[ j ])) {
                min = abs(A[ i ]-A[ j ]);
                somma=A[ i ]+A[ j ];
            }
            
    if( !(somma % 7) ) return true;
    else return false;
}

« Last Edit: 06-01-2016, 21:08:25 by Mario Pavone » Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #2 on: 07-01-2016, 02:52:28 »

Ammetto che il testo riportato sul link pastebin:
Quote
Scrivere un metodo che prenda in input un vettore di interi e restituisca un bool che indichi se esistono due numeri “più vicini” (cioè differenza in valore assoluto minima) la cui somma è un multiplo di 7.
mi ha lasciato un po' di perplessità, risolte solo dopo la proposta di soluzione avanzata dal docente.

Personalmente, avrei preferito una testo un po' più lineare, per es.:
Quote
Scrivere un metodo che prenda in input un vettore di interi.
Si considerino due numeri in posizioni distinte del vettore che abbiano differenza minimale, in valore assoluto.
Il metodo restituisca un bool che indichi se tali numeri hanno somma multipla di 7.

Scusate l'intromissione, ma alle volte mi metto anche nei panni degli studenti. ok
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1]   Go Up
Print
Jump to: