Αποστολέας Θέμα: Άθροισμα κατά γραμμές και κατά στήλες σε πίνακα με Συναρτηση  (Αναγνώστηκε 1572 φορές)

Κωστας τζιαννης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 188
Σπάω το κεφάλι εδώ και πολύ ώρα για να μπορέσω να βρω μια καλή λύση για τον υπολογισμό του αθροίσματος κατά γραμμές και κατά στήλες σε δισδιάστατο πίνακα καλώντας την ίδια Συνάρτηση.
Κώδικας: [Επιλογή]
ΣΥΝΑΡΤΗΣΗ ΑΘΡ(Π, I): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: I, J, S, Π[4, 4]
ΑΡΧΗ
  S <- 0
  ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 4
    S <- S + Π[I, J]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΘΡ <- S
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 

Στον κώδικα υπάρχει ένας πίνακας Π[4,4] και θα ήθελα με διαφορετική κλήση να υπολογίσω το άθροισμα κατά γραμμές και το άθροισμα κατά στήλες. Ή η λύση είναι μπροστά στα μάτια μου ή ....
Παίζει κάτι με καμία αντιμετάθεση παραμέτρων ή κάτι παρόμοιο στη ΓΛΩΣΣΑ; ???

νικο για δες αυτη τη λογικη.οταν θες αθροισμα γραμμης πχ της γραμμης 2 δινεις 2.5 ενω αν θες τη στηλη 2 δινεις 2.

ΠΡΟΓΡΑΜΜΑ αθροισμαγρστ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, ξ, πιν[4, 4]
  ΠΡΑΓΜΑΤΙΚΕΣ: γραμμη, σαμ
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
    ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 4
      ΔΙΑΒΑΣΕ πιν[ι, ξ]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

                                                !θα βρω το αθροισμα καθε γραμμης
  ΓΡΑΨΕ "αθροισμα καθε γραμμης"
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
    γραμμη <- ι + 0.5
    σαμ <- ΑΘΡ(πιν, γραμμη)
    ΓΡΑΨΕ σαμ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                                                 !θα βρω το αθροισμα καθε στηλης
  ΓΡΑΨΕ "αθροισμα καθε στηλης"
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
    γραμμη <- ι
    σαμ <- ΑΘΡ(πιν, γραμμη)
    ΓΡΑΨΕ σαμ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


ΣΥΝΑΡΤΗΣΗ ΑΘΡ(Π, χ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: κ, σ, Π[4, 4], θεση
  ΠΡΑΓΜΑΤΙΚΕΣ: χ
ΑΡΧΗ
  σ <- 0
  θεση <- Α_Μ(χ)
  ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 4
    σ <- σ + Π[(1 - Α_Μ(θεση/χ))*θεση + κ*Α_Μ(θεση/χ), Α_Μ(θεση/χ)*θεση + κ*(1 - Α_Μ(θεση/χ))]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΘΡ <- σ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ


nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 541
  • There can be only one...may it be AEPP.
Κώδικας: [Επιλογή]
ΣΥΝΑΡΤΗΣΗ ΑΘΡ(Π, I): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: I, J, K, S, Π[4, 4]
ΑΡΧΗ
  K <- ((I - 1) div 4 + 1) mod 2
  S <- 0
  ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 4
    S <- S + K* Π[(I - 1) mod 4 + 1, J] + (1 - K)* Π[J, (I - 1) mod 4 + 1]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΘΡ <- S
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Ναι αυτό είναι. Ευχαριστώ.
Ευχαριστώ για τις απαντήσεις όλους.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής