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

Java μεγαλύτερη τιμή δύο πινάκων


spyros83

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

Δημοσ.

Πες το ρε συ Mitsako. Φταίει το κρασί που πίνω ? Τι θέλει ? Τα δύο μέγιστα συνολικά απο τους δύο πίνακες ?

 

 

 

 

Ναι το έκανες αλλά χωρίς μέθοδο την οποία ζήτησες. Χωρίς αλγόριθμο για την εύρεση του max . Χωρίς primitive αλλά με objects αρα πιο αργα operations . Εβαλες στο παιχνίδι Collections αρα γιατί να μην χρησιμοποιήσεις απευθείας collections και λες για arrays ? Τέσπα παραδίνομαι.

 

 

@Aztec +1 φίλε μου!!! :rolleyes:

@MitsakosGR +1 φίλε μου!!! :rolleyes:

 

Υπάρχει κάποιο καλό βιβλίο που να δείχνει τέτοιες πράξεις σε μονοδιάστατους και πολυδιάστατους πίνακες;

( να βρίσκει μ.ο και τον δύο , να κάνει συγχώνευση και τον δύο σε ένα τρίτο, να κάνει short ... κ.α )

Δημοσ.

Υπάρχει κάποιο καλό βιβλίο που να δείχνει τέτοιες πράξεις σε μονοδιάστατους και πολυδιάστατους πίνακες;

( να βρίσκει μ.ο και τον δύο , να κάνει συγχώνευση και τον δύο σε ένα τρίτο, να κάνει short ... κ.α )

Αυτές είναι σχετικά απλές πράξεις πινάκων. Θα διαβάσεις την θεωρία από τα μαθηματικά και μετά θα τις υλοποιήσεις. Είναι πολύ απλή λογική προγραμματισμού για να χρειάζεσαι βιβλίο.

Αν θέλεις κάποιο βιβλίο τότε δοκίμασε κάποιο που να εξηγεί την λογική του προγραμματισμού σε βήματα και όχι κάποιο συγκεκριμένα για πράξεις πινάκων. Έτσι θα μπορείς να υλοποιήσεις πολλά πράγματα από μόνος σου χωρίς καμία βοήθεια, μπορεί όχι με τον βέλτιστο τρόπο αλλά θα δουλεύουν.

Δημοσ.

Καλώς παιδιά ,είμαι ακόμα σε αρχικό στάδιο πιστεύω και θα ήθελα να ασχοληθώ με την 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 γιανα βρεθεί προσθέτεις όλα τα στοιχεία του πίνακα / το πόσα είναι;

Δημοσ.

Να ρωτήσω και κάτι ακόμα το sum γιανα βρεθεί προσθέτεις όλα τα στοιχεία του πίνακα / το πόσα είναι;

Όχι, αυτό είναι ο μέσος όρος (average).

To sum (άθροισμα) είναι να προσθέσεις όλα τα στοιχεία απλά. Έχεις σωστά το πρόγραμμα για το sum (όπως πρέπει να είναι όχι όπως το περιγράφεις -average)

Δημοσ.

Όχι, αυτό είναι ο μέσος όρος (average).

To sum (άθροισμα) είναι να προσθέσεις όλα τα στοιχεία απλά. Έχεις σωστά το πρόγραμμα για το sum (όπως πρέπει να είναι όχι όπως το περιγράφεις -average)

-----------------------

15

10

megalytero einai to: 15

-----------------------

 

τότε γιατί μου δίνει το παραπάνω αποτέλεσμα;

αφού 1+2+4+4+20+11 δεν κάνει 15 και 1+2+4+4+5 δεν κάνει 10

τι παίζει?

Δημοσ.

Το πρόβλημα είναι στα 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, δεν τα χρειάζεσαι.

Δημοσ.

>
for (int i = 0; i < pinakas.length; i++)
  pinakas[i] = i;
               
for (int j = 0; j < pinakas1.length; j++)
  pinakas1[j] = j;

Με αυτό αλλάζεις τις τιμές του πίνακα...

 

Με πρόλαβες!

Δημοσ.

Και πάλι ευχαριστώ!!! Παιδιά ένα τελευταίο και δεν σας πρήζω άλλο!!!

 

λοιπόν θέλω να βρώ απο ένα πίνακα τις απόλυτες τιμές αριθμών ... και είναι μεγαλύτερες απο 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 ?

Δημοσ.

Πρέπει να βάλεις τη λειτουργικότητα μέσα σε 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 ");
               }

         }

Δημοσ.

Φίλε μου λυπάμαι που στο λέω αλλά δεν μπορείς να προχωρήσεις αν δε μάθεις τα απολύτως απαραίτητα, π.χ. το ότι χρειάζεσαι μια main μέθοδο στην κλάση σου.

 

Προτείνω να αρχίσεις από εδώ: http://download.oracle.com/javase/tutorial/getStarted/application/index.html και μετά ό,τι απορία έχεις ξαναπόσταρε.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...