spyros83 Δημοσ. 6 Ιουνίου 2011 Μέλος Δημοσ. 6 Ιουνίου 2011 Πες το ρε συ Mitsako. Φταίει το κρασί που πίνω ? Τι θέλει ? Τα δύο μέγιστα συνολικά απο τους δύο πίνακες ? Ναι το έκανες αλλά χωρίς μέθοδο την οποία ζήτησες. Χωρίς αλγόριθμο για την εύρεση του max . Χωρίς primitive αλλά με objects αρα πιο αργα operations . Εβαλες στο παιχνίδι Collections αρα γιατί να μην χρησιμοποιήσεις απευθείας collections και λες για arrays ? Τέσπα παραδίνομαι. @Aztec +1 φίλε μου!!! @MitsakosGR +1 φίλε μου!!! Υπάρχει κάποιο καλό βιβλίο που να δείχνει τέτοιες πράξεις σε μονοδιάστατους και πολυδιάστατους πίνακες; ( να βρίσκει μ.ο και τον δύο , να κάνει συγχώνευση και τον δύο σε ένα τρίτο, να κάνει short ... κ.α )
MitsakosGR Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 Υπάρχει κάποιο καλό βιβλίο που να δείχνει τέτοιες πράξεις σε μονοδιάστατους και πολυδιάστατους πίνακες; ( να βρίσκει μ.ο και τον δύο , να κάνει συγχώνευση και τον δύο σε ένα τρίτο, να κάνει short ... κ.α ) Αυτές είναι σχετικά απλές πράξεις πινάκων. Θα διαβάσεις την θεωρία από τα μαθηματικά και μετά θα τις υλοποιήσεις. Είναι πολύ απλή λογική προγραμματισμού για να χρειάζεσαι βιβλίο. Αν θέλεις κάποιο βιβλίο τότε δοκίμασε κάποιο που να εξηγεί την λογική του προγραμματισμού σε βήματα και όχι κάποιο συγκεκριμένα για πράξεις πινάκων. Έτσι θα μπορείς να υλοποιήσεις πολλά πράγματα από μόνος σου χωρίς καμία βοήθεια, μπορεί όχι με τον βέλτιστο τρόπο αλλά θα δουλεύουν.
spyros83 Δημοσ. 6 Ιουνίου 2011 Μέλος Δημοσ. 6 Ιουνίου 2011 Καλώς παιδιά ,είμαι ακόμα σε αρχικό στάδιο πιστεύω και θα ήθελα να ασχοληθώ με την java... πιστεύω έχει μέλλον η γλώσσα και θα ήταν μια σωστή επιλογή να την μάθω... Και πάλι ευχαριστώ, >package snippet; class Gauss { public static void main(String[] args) { int[] pinakas = {1,2,4,4,20,11}; int[] pinakas1 = {1,2,4,4,5}; for (int i = 0; i < pinakas.length; i++) pinakas[i] = i; for (int j = 0; j < pinakas1.length; j++) pinakas1[j] = j; int sum = 0; for (int i = 0; i < pinakas.length; i++) sum += pinakas[i]; int sum1 = 0; for (int j = 0; j < pinakas1.length; j++) sum1 += pinakas1[j]; System.out.println(sum); System.out.println(sum1); if (sum>sum1) { System.out.println("megalytero einai to: " +sum); } else { System.out.println("megalytero einai to: "+sum1); } } } Παιδιά με το παραπάνω σκεπτικό έκανα και αυτό το προγραμματάκι ... Βρίσκει το sum στους δύο πίνακες και μετά κάνει σύγκριση του sum απο τον ένα πίνακα με τον άλλο και εμφανίζει το μεγαλύτερο... Τι λέτε είναι σωστό; Να ρωτήσω και κάτι ακόμα το sum γιανα βρεθεί προσθέτεις όλα τα στοιχεία του πίνακα / το πόσα είναι;
MitsakosGR Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 Να ρωτήσω και κάτι ακόμα το sum γιανα βρεθεί προσθέτεις όλα τα στοιχεία του πίνακα / το πόσα είναι; Όχι, αυτό είναι ο μέσος όρος (average). To sum (άθροισμα) είναι να προσθέσεις όλα τα στοιχεία απλά. Έχεις σωστά το πρόγραμμα για το sum (όπως πρέπει να είναι όχι όπως το περιγράφεις -average)
spyros83 Δημοσ. 6 Ιουνίου 2011 Μέλος Δημοσ. 6 Ιουνίου 2011 Όχι, αυτό είναι ο μέσος όρος (average). To sum (άθροισμα) είναι να προσθέσεις όλα τα στοιχεία απλά. Έχεις σωστά το πρόγραμμα για το sum (όπως πρέπει να είναι όχι όπως το περιγράφεις -average) ----------------------- 15 10 megalytero einai to: 15 ----------------------- τότε γιατί μου δίνει το παραπάνω αποτέλεσμα; αφού 1+2+4+4+20+11 δεν κάνει 15 και 1+2+4+4+5 δεν κάνει 10 τι παίζει?
Γηρυόνης Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 Το πρόβλημα είναι στα for > for (int i = 0; i < pinakas.length; i++) pinakas[i] = i; στην ουσία αρχικοποιείς πάλι τους πίνακες (δηλαδή γράφεις πάνω από τις παλαιές τιμές), και έτσι ο pinakas γίνεται pinakas[0] = 0 pinakas[1] = 1 pinakas[2] = 2 pinakas[3] = 3 pinakas[4] = 4 pinakas[5] = 5 0+1+2+3+4+5 = 15 κοκ Διέγραψε τελείως τα δύο for, δεν τα χρειάζεσαι.
MitsakosGR Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 > for (int i = 0; i < pinakas.length; i++) pinakas[i] = i; for (int j = 0; j < pinakas1.length; j++) pinakas1[j] = j; Με αυτό αλλάζεις τις τιμές του πίνακα... Με πρόλαβες!
spyros83 Δημοσ. 6 Ιουνίου 2011 Μέλος Δημοσ. 6 Ιουνίου 2011 Και πάλι ευχαριστώ!!! Παιδιά ένα τελευταίο και δεν σας πρήζω άλλο!!! λοιπόν θέλω να βρώ απο ένα πίνακα τις απόλυτες τιμές αριθμών ... και είναι μεγαλύτερες απο 5 και να τις τυπώνω στην οθόνη... Η προσπάθειά μου είναι η εξής (τώρα που πήρα λίγο φόρα) >package snippet; public class Gauss { public static void main(String args[]) throws Exception { int pinakas[] = {-1,4,5,10,}; int i = 0; double v1 = Math.abs(pinakas[i]); if (v1>5) { System.out.println("apolites times megalyteres tou 5: " +v1); } else { System.out.println("den yparxoun times megalyteres apo 5 "); } } } αλλά βρίσκει την απόλυτη τιμή μόνο του πρώτου στοιχείου στον πίνακα ... πως θα το κάνω να ελέγχει όλες τις τιμές από τον πίνακα ξεχοριστά και να μου εμφανίζει αυτές που είναι μεγαλύτερες του 5 ?
Γηρυόνης Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 Πρέπει να βάλεις τη λειτουργικότητα μέσα σε for, και επίσης δε χρειάζεσαι το double > for (int i=0; i<pinakas.length; i++) { int v1 = Math.abs(pinakas[i]); if (v1>5) { System.out.println("apolites times megalyteres tou 5: " +v1); } else { System.out.println("den yparxoun times megalyteres apo 5 "); } }
Γηρυόνης Δημοσ. 8 Ιουνίου 2011 Δημοσ. 8 Ιουνίου 2011 Οι πίνακες float X[]; float Y[]; είναι κενοί, πρέπει να τους αρχικοποιήσεις (να τους δώσεις τιμές).
Γηρυόνης Δημοσ. 8 Ιουνίου 2011 Δημοσ. 8 Ιουνίου 2011 Φίλε μου λυπάμαι που στο λέω αλλά δεν μπορείς να προχωρήσεις αν δε μάθεις τα απολύτως απαραίτητα, π.χ. το ότι χρειάζεσαι μια main μέθοδο στην κλάση σου. Προτείνω να αρχίσεις από εδώ: http://download.oracle.com/javase/tutorial/getStarted/application/index.html και μετά ό,τι απορία έχεις ξαναπόσταρε.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.