Ερώτηση για γινόμενο πινάκων στη c

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
stokos21
Δημοσιεύσεις: 37
Εγγραφή: 05 Σεπ 2009 02:09

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από stokos21 » 19 Φεβ 2011 18:07

Καλησπέρα,
γνωρίζει κάποιος να μου πει ποια η διαφορά στο:

Κώδικας: Επιλογή όλων

c[i][j] += a[i][k]*b[k][j]
από

Κώδικας: Επιλογή όλων

c[i][j] = a[i][k]*b[k][j]
γιατί βρίσκω διαφορετικά αποτελέσματα με το " = " από το " += "

Ευχαριστώ !!

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από dva_dev » 19 Φεβ 2011 22:26

To a += b είναι συντομογραφία του a = a + b.

stokos21
Δημοσιεύσεις: 37
Εγγραφή: 05 Σεπ 2009 02:09

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από stokos21 » 19 Φεβ 2011 23:45

Καταρχήν ευχαριστώ για την απάντηση
To a += b είναι συντομογραφία του a = a + b.
γνωρίζω ότι είναι συντόμευση απλά στην συγκεκριμένη περίπτωση δεν ξέρω γιατί μπαίνει και το περίεργο είναι ότι με το " += " βγάζει σωστό αποτέλεσμα ο πολλαπλασιασμός και όχι με το " = "

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από virxen75 » 19 Φεβ 2011 23:51

stokos21 έγραψε:Καταρχήν ευχαριστώ για την απάντηση
To a += b είναι συντομογραφία του a = a + b.
γνωρίζω ότι είναι συντόμευση απλά στην συγκεκριμένη περίπτωση δεν ξέρω γιατί μπαίνει και το περίεργο είναι ότι με το " += " βγάζει σωστό αποτέλεσμα ο πολλαπλασιασμός και όχι με το " = "

το k τι τιμές παίρνει?

stokos21
Δημοσιεύσεις: 37
Εγγραφή: 05 Σεπ 2009 02:09

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από stokos21 » 20 Φεβ 2011 00:15

Οι πίνακες που πολλαπλασιάζονται είναι μικροί 2χ2 και αυτόν τον τύπο: " c[j] += a[k]*b[k][j] " τον έχει η εκφώνηση της άσκησης οπότε είναι σωστός και έχω και σωστά αποτελέσματα και όταν βάζω απλά = βγαίνουν λάθος

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από virxen75 » 20 Φεβ 2011 00:29

αν δεις εδώ τον ορισμό του πολλαπλασιασμού των πινάκων θα δεις ότι
μιλάει για αθροίσματα γινομένων και όχι για ένα γινόμενο

το οποίο υλοποιεί το += και όχι το =

www.youtube.com/watch?v=s5-dXVacbEU

stokos21
Δημοσιεύσεις: 37
Εγγραφή: 05 Σεπ 2009 02:09

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από stokos21 » 20 Φεβ 2011 00:58

μιλάει για αθροίσματα γινομένων και όχι για ένα γινόμενο

το οποίο υλοποιεί το += και όχι το =
Λογικά έτσι πρέπει να είναι απλά δεν το έχω βρει πουθενά γραμμένο ούτε σε ότι σημειώσεις έχω ούτε στο διαδίκτυο που έψαξα γιαυτό και σας ρώτησα !!

Ευχαριστωω !! :pint: :pint:

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από dva_dev » 20 Φεβ 2011 05:33

Συνήθως για να πάρεις την απάντηση που θα σου λύσει την απορία πρέπει να κάνεις τη σωστή ερώτηση. Μήπως αυτό που θέλεις να μάθεις είναι "Πώς γίνεται ο πολλαπλασιασμός πινάκων";
Αν ξαναψάξεις στο web ή σε κάποιο βιβλίο γραμμικής άλγεβρας θα βρεις όλα όσα χρειάζεται να ξέρεις.

http://lists.cslab.ece.ntua.gr/pipermai ... 00116.html
http://lists.cslab.ece.ntua.gr/pipermai ... 00117.html

stokos21
Δημοσιεύσεις: 37
Εγγραφή: 05 Σεπ 2009 02:09

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από stokos21 » 20 Φεβ 2011 12:05

Καλημέρα,
Συνήθως για να πάρεις την απάντηση που θα σου λύσει την απορία πρέπει να κάνεις τη σωστή ερώτηση. Μήπως αυτό που θέλεις να μάθεις είναι "Πώς γίνεται ο πολλαπλασιασμός πινάκων";
Αν ξαναψάξεις στο web ή σε κάποιο βιβλίο γραμμικής άλγεβρας θα βρεις όλα όσα χρειάζεται να ξέρεις.

http://lists.cslab.ece.ntua.gr/pipermai ... 00116.html
http://lists.cslab.ece.ntua.gr/pipermai ... 00117.html
Όχι, ξέρω πως γίνεται ο πολλαπλασιασμός πινάκων, άλλωστε γι αυτό τσέκαρα και τα αποτελέσματα,
ψάχνοντας χθες είχα βρει τα λινκ που μου έστειλες τα οποία γράφουν κι αυτά την ίδια απορία

Κώδικας: Επιλογή όλων

Στην εκφώνηση της άσκηση υπάρχει ο παρακάτω κώδικας για
τον πολλάπλασιαμό των πινάκων Α, Β.

for&#40;i=0; i<N; i++&#41;
for&#40;j=0; j<N; j++&#41;
for&#40;k=0; k<N; k++&#41;
C&#91;i&#93;&#91;j&#93; += A&#91;i&#93;&#91;k&#93; * B&#91;k&#93;&#91;j&#93;;

Γιατί χρησιμοποιούμε τον τελεστή '+=' αντι του '=' ;
Και δεν βρήκα πουθενά κάτι που να λέει π.χ.
"Όταν πολλαπλασιάζουμε πίνακες στην C χρησιμοποιούμε += και όχι = "
οπότε απευθύνθηκα σε εσάς....
Ευχαριστώ πολύ πάντως και σίγουρα θα σας ξανά χρειαστώ γιατί αρχίζουν και ζορίζουν τα πράγματα με την C

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ερώτηση για γινόμενο πινάκων στη c

Δημοσίευση από dva_dev » 20 Φεβ 2011 13:56

Και δεν βρήκα πουθενά κάτι που να λέει π.χ.
"Όταν πολλαπλασιάζουμε πίνακες στην C χρησιμοποιούμε += και όχι = "
Πουθενά δεν το βρήκες γιατί είναι σχεδόν λάθος. Αυτό που χρειάζεται είναι να κάνεις πρόσθεση με οποιοδήποτε τρόπο μπορείς να την κάνεις, όχι να χρησιμοποιήσεις απαραίτητα το +=. Θα μπορούσες να χρησιμοποιήσεις το +, να γράψεις inline assembly κώδικα που να κάνει την πρόσθεση, να καλέσεις κάποια third party βιβλιοθήκη που κάνει πρόσθεση, ...
...αρχίζουν και ζορίζουν τα πράγματα με την C
Πριν ζορίσουν θα πρέπει να βεβαιωθείς ότι έχεις κατανοήσει τι κάνουν αυτά που έχετε μάθει ήδη.

Απάντηση

Επιστροφή στο “C, C++”

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

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