Επιλογή Σελίδας

Δίδεται ο δισδιάστατος πίνακας table με m γραμμές n στήλες. Να βρεθεί το άθροισμα κατά γραμμή, κατά στήλη και συνολικά.

ΛΥΣΗ:
Στη συνέχεια ακολουθεί ο αλγόριθμος που επιλύει το πρόβλημα. Για καλύτερη κατανόηση σημειώνεται, ότι οι δύο πρώτοι βρόχοι μηδενίζουν τις αντίστοιχες μεταβλητές που θα υποδεχθούν τα αθροίσματα. Αυτό είναι μία τακτική που πρέπει να εφαρμόζεται οποτεδήποτε στα προβλήματά μας έχουμε να υπολογίσουμε αθροίσματα.

Αλγόριθμος Αθρ_Πίνακα
 Δεδομένα // m, n, table //
 sum ← 0
 Για i από 1 μέχρι m
     row[i] ← 0
 Τέλος_επανάληψης
 Για j από 1 μέχρι n
     col[j] ← 0
 Τέλος_επανάληψης
 Για i από 1 μέχρι m
     Για j από 1 μέχρι n
         sum ← sum + table[i,j]
         row[i] ← row[i] + table[i,j]
         col[j] ← col[j] + table[i,j]
     Τέλος_επανάληψης
 Τέλος_επανάληψης
 Αποτελέσματα // row, col, sum //
 Τέλος Αθρ_Πίνακα

Ο διπλός εμφωλευμένος βρόχος που ακολουθεί τους δύο πρώτους απλούς βρόχους είναι η καρδιά του αλγορίθμου, όπου γίνονται οι υπολογισμοί που ζητά η εκφώνηση του παραδείγματος. Γενικά σε εμφωλευμένους βρόχους, μία τιμή μεταβλητής του εξωτερικού βρόχου παραμένει σταθερή, όσο μεταβάλλεται η τιμή της μεταβλητής του εσωτερικού βρόχου. Πιο συγκεκριμένα, στον αλγόριθμό μας αρχικά το i λαμβάνει την τιμή 1 και το j διαδοχικά τις τιμές 1,2,…,n. Κατόπιν, το i λαμβάνει την τιμή 2, ενώ το j και πάλι λαμβάνει διαδοχικά τις τιμές 1,2,…,n. Η διαδικασία αυτή επαναλαμβάνεται μέχρι το i να λάβει την τιμή m. Ο επόμενος πίνακας είναι ένας δισδιάστατος πίνακας 5×5. Αν ο προηγούμενος αλγόριθμος εφαρμοσθεί στον πίνακα αυτό, τότε οι τιμές των στοιχείων του πίνακα row παρουσιάζονται στην τελευταία κατακόρυφη στήλη, ενώ οι τιμές των στοιχείων του πίνακα col παρουσιάζονται στην τελευταία γραμμή του πίνακα. Τέλος το συνολικό άθροισμα sum παρουσιάζεται στην κάτω-δεξιά γωνία.

Share This