Εργασία 2 και 3 (Moodle) [2014-2015]

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό akoutsia » 08 Δεκ 2014, 00:22

virusx2 έγραψε:Για την εργασία 3, άσκηση simple_graph_traversals, μπορείτε να δείξετε ένα απλό implementation πως να διαβάζουμε τους γείτονες ενός node?


Για παράδειγμα, αν ήθελα να εκτυπώσω έναν-έναν τους γείτονες:
Κώδικας: Επιλογή όλων
public void printNeighbours(Node v){
  Node[] neighbors = v.getNeighbors();
  for(int i=0; i < v.neighbors.length; i++){
    int neighborId = neighbors[i].getId();
    System.out.println("Neighbor:" + neighborId);
  }
}


Φυσικά, αυτό μπορεί να συμπτυχθεί σταδιακά μέχρι το:
Κώδικας: Επιλογή όλων
public void printNeighbours(Node v){
  for(Node neighbor: v.getNeighbors())
    System.out.println("Neighbor:" + neighbor.getId());
}
akoutsia
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 08 Δεκ 2010, 13:43

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό stylpapa1 » 08 Δεκ 2014, 15:39

σχετικα με την εργασια 2 και την ασκηση simple_integer_stack
Πως γινεται να χρησιμοποιησουμε την στοιβα σε αλλες μεθοδους ενω ειναι αρχικοποιημενη σε διαφορετικη μεθοδο
stylpapa1
Newbie
 
Δημοσιεύσεις: 4
Εγγραφή: 23 Ιαν 2013, 13:57

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό akoutsia » 08 Δεκ 2014, 16:29

stylpapa1 έγραψε:σχετικα με την εργασια 2 και την ασκηση simple_integer_stack
Πως γινεται να χρησιμοποιησουμε την στοιβα σε αλλες μεθοδους ενω ειναι αρχικοποιημενη σε διαφορετικη μεθοδο


Δεν καταλαβαίνω τι εννοείς. Τι θα ήθελες να κάνεις και τι εννοείς ότι "ειναι αρχικοποιημενη σε διαφορετικη μεθοδο";
Διατύπωσε πιο αναλυτικά και προσεκτικά την ερώτησή σου.
akoutsia
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 08 Δεκ 2010, 13:43

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό stylpapa1 » 08 Δεκ 2014, 16:45

εφοσον οι μεταβλητες που δηλωνονται μεσα στις μεθοδους χρησιμοποιουνται τοπικα πως μπορω επιστρεψω για παραδειγμα στην μεθοδο top το στοιχειο της στοιβας που θελω αν δεν μπορω να χειριστω την στοιβα μεσα στην top
stylpapa1
Newbie
 
Δημοσιεύσεις: 4
Εγγραφή: 23 Ιαν 2013, 13:57

Δημοσίευσηαπό kostakisst » 08 Δεκ 2014, 18:23

Προσπαθώ να υποβάλω την εργασία και ενώ στο quiz έχω υποβάλει τα 2 πρώτα,όταν πατάω συνέχεια μου βγάζει το εξής σφάλμα

Error connecting to the remote question engine.
Technical details:
Fault code: Receiver
Fault string: Operation timed out after 60001 milliseconds with 0 bytes received

Υπάρχει πάλι κάποιο πρόβλημα με το moodle,αν ναι θα δοθεί παράταση;
kostakisst
Newbie
 
Δημοσιεύσεις: 3
Εγγραφή: 07 Ιαν 2013, 22:21

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό ioantsak2 » 08 Δεκ 2014, 18:50

Αρχικά έμπαινε και έβγαζε error μετά την υποβολή και στη συνέχεια αδυνατούσε να συνδεθεί γενικά..
error connecting to the remote question engine...
ioantsak2
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 06 Οκτ 2011, 14:57

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό provokatoras » 08 Δεκ 2014, 19:09

Θα απαντησει κανεις;;;; μια ζωη στο αγχος με αυτή τη σχολή! μας πεσανε τα μαλλιά! O0 -> 8)
provokatoras
Newbie
 
Δημοσιεύσεις: 5
Εγγραφή: 18 Μάιος 2012, 10:06

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό akoutsia » 08 Δεκ 2014, 19:28

Το γνωρίζουμε το πρόβλημα και προσπαθούμε να το επιλύσουμε.
Αυτή τη στιγμή φαίνεται να έχει επιλυθεί.
Το πρόβλημα γενικά δημιουργείται από εργασίες κάποιοων φοιτητών που δεν έχουν δοκιμαστεί καλά από τους φοιτητές και "κρεμάνε" την αξιολόγηση όλων. Αυτό βέβαια δεν θα έπρεπε να σας επηρεάζει, αλλά δυστυχώς το κάνει. Γι' αυτό σας έχουμε ζητήσει να κάνετε το testing σας στο τοπικό μηχάνημα και όχι στο online.
Για παράταση δεν έχω κάποια ενημέρωση. Απ' όσο βλέπω, 1-2 ώρες μόνο δεν ήταν διαθέσιμο σήμερα.
akoutsia
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 08 Δεκ 2010, 13:43

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό akoutsia » 08 Δεκ 2014, 19:29

provokatoras έγραψε:Θα απαντησει κανεις;;;; μια ζωη στο αγχος με αυτή τη σχολή! μας πεσανε τα μαλλιά! O0 -> 8)


Ελπίζω να αστειεύεσαι, έτσι :)
akoutsia
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 08 Δεκ 2010, 13:43

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό akoutsia » 08 Δεκ 2014, 19:41

stylpapa1 έγραψε:εφοσον οι μεταβλητες που δηλωνονται μεσα στις μεθοδους χρησιμοποιουνται τοπικα πως μπορω επιστρεψω για παραδειγμα στην μεθοδο top το στοιχειο της στοιβας που θελω αν δεν μπορω να χειριστω την στοιβα μεσα στην top


Η top είναι μέθοδος της κλάσης και έχει πρόσβαση έτσι σε όλα τα πεδία-μεταβλητές της κλάσης. Αν όμως μιλάς για τοπικές μεταβλητές εντός της κάθε μεθόδου, τότε προφανώς δεν έχεις άμεσα πρόσβαση. Έχω την εντύπωση, όμως, ότι κάτι δεν έχεις καταλάβει θεμελιώδες.
Στείλε μου στον προσωπικό λογαριασμό (akoutsia στο Δ.Π.Θ.) ενδεικτικό κώδικα με σχόλια που να εξηγούν τι θέλεις να κάνεις.
Και πάλι, έχω την εντύπωση ότι προσπαθείς να το προσεγγίσεις με άλλο τρόπο, ίσως όπως στην C έτσι όπως το ακούω.
akoutsia
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 08 Δεκ 2010, 13:43

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό pefraimi » 09 Δεκ 2014, 23:19

Προσπαθώ να υλοποιήσω την εργασία 3 και στο test13 έχω το εξής πρόβλημα:
java.lang.AssertionError: Invalid traversal order expected :<[3, 1, 0, 4, 2]> but was:<[3, 1, 0, 2, 4]>
Το θέμα είναι πως το γράφημα στο debugging "διαβάζεται" ως εξής:
3->1 2 4 οπότε στην κατά πλάτος εκτέλεση αναμένετε το εξής [3, 1, 0, 2, 4]
1->0
Το ερώτημα έγκειται στο αν έχει κάποιο λάθος η λογική μου.


Το test13 αφορά αναζήτηση πρώτα σε βάθος και το σωστό αποτέλεσμα είναι 3, 1, 0, 4, 2 όπως αναφέρει το μήνυμα. Θα πρέπει να δεις ξανά την θεωρία της DFS και να ελέγξεις προσεκτικά τον κώδικά σου.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό charvrad » 12 Δεκ 2014, 17:52

Η μετατροπή του ArrayList<Integer> σε int[] για επιστροφή ως αποτέλεσμα όπως είναι στην περιγραφή βγάζει λάθος * The method getId() is undefined for the type Integer*.Επίσης το δοκίμασα με ArrayList.toArray αλλα εκει βγάζει λάθος στο result (Integer[] instead of int[]).
Τι μπορούμε να κάνουμε για να μετατρέψουμε το Arraylist σε array.? ::)
charvrad
Newbie
 
Δημοσιεύσεις: 8
Εγγραφή: 21 Μάιος 2013, 19:32
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό pefraimi » 14 Δεκ 2014, 11:36

Η μετατροπή από ArrayList<Integer> σε int[] αν και δεν υποστηρίζεται από τις βασικές βιβλιοθήκες της Java
μπορεί να γίνει με διάφορους τρόπους.

Βλ. http://stackoverflow.com/questions/7185 ... -int-array

Πχ. με χρήση iterator (παραδείγματα 1 και 2) ή με χρήση της get() (παράδειγμα 3). Η χρήση της get μπορεί
να είναι αρκετά πιο αργή σε σχέση με τη χρήση iterator. Επιπλέον, έτοιμες μέθοδοι για τέτοιες μετατροπές παρέχονται
σε ορισμένες βιβλιοθήκες όπως πχ.
Apache Commons
https://commons.apache.org/proper/commo ... index.html
ή
Google Guava
https://code.google.com/p/guava-libraries/feeds



// Παράδειγμα 1
public static int[] convertIntegersWithIterator(List<Integer> integers)
{
int[] ret = new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for (int i = 0; i < ret.length; i++)
{
ret[i] = iterator.next().intValue();
}
return ret;
}
// Παράδειγμα 2
public static int[] convertIntegersWithIterator2(List<Integer> integers) {
int[] ints = new int[integers.size()];
int i = 0;
for (Integer n : integers) {
ints[i++] = n;
}
return ints;
}
// Παράδειγμα 3
public static int[] convertIntegersWithFor(List<Integer> integers)
{
int[] ret = new int[integers.size()];
for (int i=0; i < ret.length; i++)
{
ret[i] = integers.get(i).intValue();
}
return ret;
}

public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(new Integer(1));
list.add(new Integer(2));

int[] values0 = convertIntegersWithIterator(list);
int[] values1 = convertIntegersWithIterator2(list);
int[] values2 = convertIntegersWithFor(list);
}
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό petris » 14 Δεκ 2014, 17:52

Σύμφωνα με το βιβλίο Kleinberg-Tardos στην σελίδα 123 στην τελευταία παράγραφο αναφέρεται ότι κατά την αναζήτηση κατά βάθος τοποθετείται στην στοίβα αρχικά ο κόμβος εκκίνησης και μετά οι γειτονικοί του κόμβοι. Τ ο παράδειγμα όμως που μας δίνεται απεικονίζει την σειρά των κόμβων με αυτόν τον τρόπο. Μπορεί να δοθεί κάποια διευκρίνηση σχετικά με τον dfs αλγόριθμο? Δηλαδή πώς ακριβώς ξεκινάει?
Οπίνακας που θα επιστρέψουμε θα περιέχει την σειρα με την οποία γινονται εexplored οι κόμβοι? Θ υπάρχουν και διπλότυπα.δηλαδή το id 3 μπορει να εμφανιστεί 2 φορές?
petris
Newbie
 
Δημοσιεύσεις: 7
Εγγραφή: 10 Δεκ 2012, 20:32

Re: Εργασία 2 και 3 (Moodle) [2014-2015]

Δημοσίευσηαπό pefraimi » 15 Δεκ 2014, 00:34

Φοιτητής 1:

Στην εργασία 3 κατά την υλοποίηση του αλγορίθμου dfs μου βγάζει εξαίρεση:

java.lang.Exception: test timed out after 200 milliseconds



Φοιτητής 2:

... προσπάθησα να υλοποιήσω την DFS χρησιμοποιώντας στοίβα, ...

από τα αποτελέσματα που μου εμφανίζει φαίνεται ότι το μόνο στοιχείο που εισάγεται στη στοίβα είναι μόνο ο αρχικός κόμβος που δίνεται σαν όρισμα στην dfsTraversal και δεν μπορώ να καταλάβω γιατί γίνεται αυτό.


Είναι φυσικό να υπάρχουν λάθη στην υλοποίηση ακόμη και εάν οι βασικές ιδέες του αλγορίθμου σας είναι σωστές.
Μπορεί να έχει ξεφύγει κάτι σε κάποιο loop ή κάποια αρχικοποίηση να μη γίνεται σωστά ή κτλ.
Θα πρέπει σε αυτή την περίπτωση να ελέγχετε προσεκτικά τον κώδικά σας και αν χρειαστεί
να κάνετε debug βήμα βήμα την εκτέλεση του test στο οποίο αποτυγχάνει ο κώδικάς
σας με τη διαδικασία που σας έδειξε ο Άρης στο φροντιστήριο,

Παύλος.-
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

ΠροηγούμενηΕπόμενο

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες