Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω μια άσκηση που όταν πάω να κάνω Check task, μου βγάζει Το αποτέλεσμα της μεθόδου oxalurate δεν είναι σωστό.  Παρακαλώ αν κάποιος βρει το λάθος να μου το πει.

 

Εκφώνηση:

 

Να γραφεί η δημόσια κλάση Corrente η οποία να επεκτείνει την κλάση
Thread. Η Corrente έχει το ιδιωτικό πεδίο τύπου ακεραίου bab,
το ιδιωτικό πεδίο μονοδιάστατου πίνακα ακεραίων zemimdari, δημόσιο
κατασκευαστή με όρισμα που αρχικοποιεί το πεδίο zemimdari της
κλάσης και τη δημόσια μέθοδο getBab που δεν δέχεται κανένα όρισμα
και επιστρέφει την τιμή του πεδίου bab. Η Corrente υπερκαλύπτει
επίσης την κληρονομημένη μέθοδο run() με ομώνυμη μέθοδο η οποία,
αφού θέσει στο πεδίο bab την τιμή Integer.MIN_VALUE:
 α) διατρέχει όλα τα στοιχεία του πίνακα zemimdari
 β) συγκρίνει κάθε στοιχείο που διατρέχει με την τιμή του πεδίου
bab και
 γ) κάθε φορά που κάποιο στοιχείο του πίνακα έχει τιμή μεγαλύτερη
από την τιμή του πεδίου bab:
   γ1) θέτει την τιμή του πεδίου bab ίση με την τιμή του στοιχείου
με το οποίο έγινε η σύγκριση και
   γ2) κάνει παύση διάρκειας 1000 millisecond.
Να γραφεί επιπλέον η δημόσια κλάση Unruddled. Η Unruddled περιέχει
τη δημόσια στατική μέθοδο oxalurate με τύπο επιστροφής ακέραιο
και ορίσματα δύο μονοδιάστατους πίνακες ακεραίων. Η oxalurate
κατασκευάζει δύο αντικείμενα της κλάσης Corrente χρησιμοποιώντας
ως ορίσματα κατασκευής τούς πίνακες που δέχτηκε. Στη συνέχεια
τα εκτελεί και τέλος, αφού βεβαιωθεί ότι η εκτέλεση των νημάτων
έχει ολοκληρωθεί, συγκρίνει τις τιμές που επιστρέφουν οι μέθοδοι
getBab και επιστρέφει την μεγαλύτερη.
 

public class Corrente extends Thread {
    private int bab;
    private int zemimdari[];
    public Corrente(int zemimdari[]) {
        this.zemimdari = zemimdari;
    }
    public int getBab() {
        return bab;
    }
    public void run() {
        bab = Integer.MIN_VALUE;
        for (int i = 0; i < zemimdari.length; i++) {
            if (zemimdari[i] > bab) {
                zemimdari[i] = bab;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    System.out.println(e);
                }
            }
        }
    }
}

public class Unruddled {
    public static int oxalurate(int a[], int b[]) {
        Corrente c1 = new Corrente(a);
        Corrente c2 = new Corrente(;
        int result;
        c1.start();
        c2.start();
        try {
            c1.join();
        } catch (InterruptedException e) {
            System.out.println(e);
        }
        try {
            c2.join();
        } catch (InterruptedException e) {
            System.out.println(e);
        }
        result = c2.getBab();
        if (c1.getBab() > c2.getBab()) {
            result = c1.getBab();
        }
        return result;
    }
}

Δημοσ.
if (zemimdari[i] > bab) {
    zemimdari[i] = bab;

Προφανώς not what you wanted.  :)

 

Το γεγονός ότι η απάντηση που παίρνεις είναι Integer.MIN_VALUE θα έπρεπε να λέει πολλά.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...