zatara90 Δημοσ. 27 Νοεμβρίου 2015 Δημοσ. 27 Νοεμβρίου 2015 Έχω μια άσκηση που όταν πάω να κάνω 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; } }
kavalaris_uk Δημοσ. 27 Νοεμβρίου 2015 Δημοσ. 27 Νοεμβρίου 2015 εδω ειναι για αποριες, οχι για να λυνουμε ασκησεις.
kaliakman Δημοσ. 27 Νοεμβρίου 2015 Δημοσ. 27 Νοεμβρίου 2015 Ο ts έχει γράψει την άσκηση και έχει απορία... Για αυτό είναι το φόρουμ
defacer Δημοσ. 27 Νοεμβρίου 2015 Δημοσ. 27 Νοεμβρίου 2015 if (zemimdari[i] > bab) { zemimdari[i] = bab; Προφανώς not what you wanted. Το γεγονός ότι η απάντηση που παίρνεις είναι Integer.MIN_VALUE θα έπρεπε να λέει πολλά.
zatara90 Δημοσ. 27 Νοεμβρίου 2015 Μέλος Δημοσ. 27 Νοεμβρίου 2015 Αντί για if (zemimdari[i] > bab) { zemimdari[i] = bab; if (zemimdari[i] > bab) { bab = zemimdari[i]; /facepalm. Thx φίλε.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα