Β – Πράξεις μεταξύ πινάκων

Μάθημα 1οΜάθημα 2ο

ΚΕΦΑΛΑΙΟ ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΕΝΟΤΗΤΑ ΠΡΑΞΕΙΣ ΜΕΤΑΞΥ ΠΙΝΑΚΩΝ

Μάθημα 1ο – Άθροισμα Πινάκων


Διδακτικοί Στόχοι

Μετά το τέλος του μαθήματος ο μαθητής θα πρέπει να είναι σε θέση:

  • να συντάσει αλγόριθμους υπολογισμού του αθροίσματος των στοιχείων δύο πινάκων
  • να αναπτύσει υποπρογράμματα (τύπου συνάρτησης αρχικά & διαδικασίας αργότερα) που θα υλοποιούν την παραπάνω πράξη

  • Να γραφεί αλγόριθμος που θα γεμίζει δύο μονοδιάστατους πίνακες Α, Β ακεραίων αριθμών μεγέθους 10. Στη συνέχεια θα υπολογίζει το άθροισμα των αντίστοιχων στοιχείων των δύο πινάκων, το οποίο θα καταχωρεί σε νέο πίνακα Γ.

    Ισχύει ότι \(  Γ[κ] = Α[κ] + Β[κ],  \hspace{5 mm} κ = 1, 2, 3, …Ν \).

  • Έστω οι πίνακες Α,Β 

    1 2 3 4 5 6 7 8 9 10
    12 47 -3 65 19 0 -99 652 1 1234

     A

     

    1 2 3 4 5 6 7 8 9 10
    25 61 3 19 -58 -3 109 -42 0 4321

    B

     

    Ο πίνακας Γ μετά  την εκτέλεση του αλγορίθμου 

    1 2 3 4 5 6 7 8 9 10
    37 68 0 74 -39 -3 109 -42 0 4321

     Γ

  • Τροποποιήστε τον αλγόριθμο υπολογισμού του αθροίσματος των δύο πινάκων ώστε το άθροισμα να υπολογιστεί:

    α) με συνάρτηση

    β) με διαδικασία


    Η συνάρτηση αδυνατεί να δώσει ως αποτέλεσμα ολόκληρο τον πίνακα Γ.
    Γιατί συμβαίνει αυτό;

    Διότι εξ’ ορισμού η συνάρτηση υπολογίζει και επιστρέφει μόνο μία τιμή. Η επίλυση του προβλήματος όμως απαιτεί ως αποτέλεσμα έναν πίνακα 10 στοιχείων -άρα περισσότερες από μια τιμές.

    Ποια λύση μπορεί να μας βγάλει από το αδιέξοδο;

    Η λύση που μπορεί να εφαρμοσθεί για να παρακαμφεί το εμπόδιο είναι η εξής:
    Στο κύριο πρόγραμμα υλοποιείται μια επανάληψη η οποία καλεί την συνάρτηση όσες φορές απαιτείται (10 για το παράδειγμά μας) και η συνάρτηση κάθε φορά δέχεται δύο στοιχεία (των πινάκων Α και Β) και επιστρέφει το άθροισμα αυτών στον πίνακα Γ στην καθορισμένη.

     

ΚΕΦΑΛΑΙΟ ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ – ΕΝΟΤΗΤΑ ΠΡΑΞΕΙΣ ΜΕΤΑΞΥ ΠΙΝΑΚΩΝ

Μάθημα 2ο – Πολλαπλασιασμός Αριθμού με Πίνακα

  • Να αναπτυχθεί αλγόριθμος του οποίου η είσοδος θα είναι μονοδιάστατος πίνακας A ακεραίων αριθμών μεγέθους Ν και αριθμός  \( λ ∈ R \) και η έξοδός του θα είναι πίνακας Β για κάθε στοιχείο του οποίου θα ισχύει,

    \( Β[i] = λ \cdot Α[i], \hspace{5 mm} i = 1, 2, 3, …Ν \)

  •  

  • Να αναπτυχθεί αλγόριθμος του οποίου η είσοδος θα είναι μονοδιάστατος πίνακας A ακεραίων αριθμών μεγέθους Ν και αριθμός  \( λ ∈ R \) και η έξοδός του θα είναι πίνακας Β για κάθε στοιχείο του οποίου θα ισχύει,

    \( Β[i] = \cfrac{1}{λ} \cdot Α[i], i=1, 2, 3, …N. \)

    Να προβλεφθεί στον αλγόριθμο παραβίαση του κριτηρίου της καθοριστικότητας (με οποιονδήποτε τρόπο).

    Αλγόριθμος Πολσμός_Πίνακα_με_αριθμό
        Διάβασε Ν
        Για κ από 1 μέχρι Ν
            Διάβασε Α[κ]
        Τέλος_επανάληψης
        !Πολλαπλασιασμός κάθε στοιχείου του
        !πίνακα Α με τον αριθμό λ
        Διάβασε λ
        Για κ από 1 μέχρι Ν
            Β[κ] ← λ * Α[κ]
        Τέλος_επανάληψης
        !Εκτύπωση αποτελεσμάτων
        Για κ από 1 μέχρι Ν
            Εμφάνισε Β[κ]
        Τέλος_επανάληψης
    Τέλος Πολσμός_Πίνακα_με_αριθμό

     


    Αλγόριθμος Πολσμός_Πίνακα_με_αριθμό
        Διάβασε Ν
        Για κ από 1 μέχρι Ν
            Διάβασε Α[κ]
        Τέλος_επανάληψης
        !Πολλαπλασιασμός κάθε στοιχείου του
        !πίνακα Α με τον αριθμό λ
        Διάβασε λ
        Για κ από 1 μέχρι Ν
            Β[κ] ← 1/λ * Α[κ]
        Τέλος_επανάληψης
        !Εκτύπωση αποτελεσμάτων
        Για κ από 1 μέχρι Ν
            Εμφάνισε Β[κ]
        Τέλος_επανάληψης
    Τέλος Πολσμός_Πίνακα_με_αριθμό

    ΠΡΟΓΡΑΜΜΑ Πολσμός_Πίνακα_με_αριθμό
    ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: Ν, κ, Α[100], x
    ΠΡΑΓΜΑΤΙΚΕΣ:λ, Β[100]
    ΑΡΧΗ
    Διάβασε Ν
    Για κ από 1 μέχρι Ν
    Διάβασε Α[κ]
    Τέλος_επανάληψης
    !Πολλαπλασιασμός κάθε στοιχείου του
    !πίνακα Α με τον αριθμό λ με χρηση διαδικασιας
    Διάβασε λ
    ΚΑΛΕΣΕ MultiplyTableWithNumber(λ, Ν, Α, Β)
    !!Πολλαπλασιασμός κάθε στοιχείου του
    !πίνακα Α με τον αριθμό λ με χρηση συναρτησης
    ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ Ν
    x <- Α[κ]
    Β[κ] <- MultiplyTwoNumbers(x, λ)
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    !Εκτύπωση αποτελεσμάτων
    Για κ από 1 μέχρι Ν
    ΓΡΑΨΕ Β[κ]
    Τέλος_επανάληψης
    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     

    ΣΥΝΑΡΤΗΣΗ MultiplyTwoNumbers(number1, number2):ΠΡΑΓΜΑΤΙΚΗ
    ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: number1
    ΠΡΑΓΜΑΤΙΚΕΣ: number2
    ΑΡΧΗ
    MultiplyTwoNumbers <- number2 * number1
    ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

     

    ΔΙΑΔΙΚΑΣΙΑ MultiplyTableWithNumber(λ, Ν, Α, Β)
    ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: Ν, κ, Α[100]
    ΠΡΑΓΜΑΤΙΚΕΣ: λ, Β[100]
    ΑΡΧΗ
    Για κ από 1 μέχρι Ν
    Β[κ] ← λ * Α[κ]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

  • ….

  •  

Διαφορά Πινάκων

  • Να γραφεί αλγόριθμος που θα γεμίζει δύο μονοδιάστατους πίνακες ακεραίων αριθμών μεγέθους 10. Στη συνέχεια θα υπολογίζει τη διαφορά των αντίστοιχων στοιχείων των δύο πινάκων, την οποία θα καταχωρεί σε νέο πίνακα. Ισχύει ότι Γ[i] = Α[i] – Β[i].


  • 1 2 3 4 5 6 7 8 9 10
    12 47 -3 65           -9

    Α

    1 2 3 4 5 6 7 8 9 10
    25 61 3 -58           9

    Β

    1 2 3 4 5 6 7 8 9 10
    -13 -14 0 123            

    Γ

Δώρα ΧριστουγέννωνΕπίδοση τετραμήνου

  • Να αναπτυχθεί αλγόριθμος που θα διαβάζει σε πίνακα με όνομα ΜΙΣΘΟΙ τον βασικό μηνιαίο μισθό των υπαλλήλων που απασχολούνται σε μια επιχείρηση. Το όνομα και το επώνυμο κάθε υπαλλήλου διαβάζονται επίσης σε αντίστοιχους πίνακες.

    Κάθε υπάλληλος δικαιούται δώρο Χριστουγέννων το οποίο υπολογίζεται σε ποσοστό 20% επί του βασικού του μισθού. Ο αλγόριθμος θα υπολογίζει σε πίνακα με όνομα ΔΩΡΑ το ποσό χρημάτων που αντιστοιχεί στο δώρο κάθε υπαλλήλου. Επίσης θα εμφανίζει το συνολικό ποσό που η επιχείρηση πρέπει να καταβάλει σαν δώρο Χριστουγέννων στους υπαλλήλους της. Ποιοι υπάλληλοι παίρνουν δώρο που ξεπερνά το μισό του μισού του μέσου μηνιαίου μισθού όλων των υπαλλήλων;

    Ποια τα ονόματα των υπαλλήλων με επώνυμο Παπαδόπουλος και ποιο το σύνολο των μισθών τους; Ποιοι υπάλληλοι θα πάρουν δώρο μεγαλύτερο των 500 ευρώ; Να ενημερωθεί ο πίνακας ΔΩΡΑ ώστε κανένας υπάλληλος να μην πάρει δώρο που να ξεπερνά τα 500 ευρώ.
    Ποιοι υπάλληλοι λαβάνουν μισθό μεγαλύτερο τουλάχιστον κατά 10% από τον μισθό του πρώτου ή του τελευταίου υπαλλήλου;

    Υπόδειξη: Ο μισθός του κάθε υπαλλήλου συγκρίνεται με τον μισθό του πρώτου ή του τελευταίου υπαλλήλου που βρίσκεται πλησιέστερα σ’ αυτόν. Στην περίπτωση που η σύγκριση δεν οδηγεί σε μοναδικό αποτέλεσμα μεταξύ των μισθών πρώτου – τελευταίου επιλέγεται ο μικρότερος.

    Παράδειγμα -να γραφεί


    Σημείωση : Η εισαγωγή των δεδομένων ολοκληρώνεται όταν δοθεί βασικός μισθός 0.


  • Ο καθηγητής Πληροφορικής αποφάσισε να πριμοδοτήσει τους μαθητές του. Ετσι λοιπόν ο βαθμός στον έλεγχο του τετραμήνου κάθε μαθητή θα είναι ο γραπτός βαθμός του στο διαγώνισμα προσαυξημένος σε ποσοστό 30%.
    Γράψτε αλγόριθμο που θα διαβάζει τα ονοματεπώνυμα και τους βαθμούς των διαγωνισμάτων των μαθητών της τάξης και θα δίνει ως έξοδο:
    α) τους βαθμούς του τετραμήνου κάθε μαθητή β) τα ονοματεπώνυμα των μαθητών που ο βαθμός του τετραμήνου είναι μεγαλύτερος του 18, τα ονοματεπώνυμα των μαθητών που ο βαθμός του τετραμήνου είναι μικρότερος του 10
    γ) τον μέσο όρο βαθμολογίας των γραπτών διαγωνισμάτων και την απόκλιση κάθε γραπτού από τον μέσο όρο
    δ) τα ονοματεπώνυμα των μαθητών με βαθμό τετραμήνου ίσο με τον μέσο όρο βαθμολογίας της τάξης στο τετράμηνο.

    Σημείωση: Διασφαλίστε ότι ο βαθμός τετραμήνου είναι ακέραιος αριθμός που δεν ξεπερνά το 20. Επίσης το πλήθος των μαθητών είναι άγνωστο και για την συνέχιση της εισαγωγής των δεδομένων ο αλγόριθμος θα εμφανίζει ένα μήνυμα “Συνέχεια Ν/Ο?” θα διαβάζει την απάντηση του χρήστη και αναλόγως είτε θα συνεχίζει είτε θα τερματίζει.


Οικονομικά Νοικοκυριού

  • Τα έσοδα μιας οικογένειας που κατοικεί στο όμορφο Πήλιο, προέρχονται από τον μισθό του πατέρα που εργάζεται και την είσπραξη ενός ποσού από την ενοικίαση ενός διαμερίσματος που ανήκει στην μητέρα. Στον μισθό του πατέρα προστίθεται κάθε μήνα ένα έξτρα ποσό χρημάτων (μπορεί να αφορά αποζημίωση από υπερωριακή εργασία, μετακινήσεις (εκτός έδρας), επίτευξη στόχων ή οτιδήποτε άλλο –σε κάθε περίπτωση δεν ενδιαφέρει). Το διαμέρισμα νοικιάζει η οικογένεια σε τουρίστες που επισκέπτονται την περιοχή τους μήνες Μάϊο μέχρι Οκτώβριο, την περίοδο των εορτών (Χριστούγεννα – Πρωτοχρονιά) όπως επίσης και τις πρώτες μέρες του Μαρτίου. Τα έξοδα της οικογένειας περιορίζονται σε έξοδα για φαγητό, μετακινήσεις και λοιπά έξοδα. Εξαίρεση ο μήνας Ιανουάριος που η οικογένεια προσθέτει ένα ακόμη έξοδο- αυτό ενός ταξιδιού μετά την Πρωτοχρονιά.

    Γράψτε αλγόριθμο που για κάθε μήνα του έτους θα δέχεται ως είσοδο τα παραπάνω δεδομένα και θα υπολογίζει τα ετήσια αθροίσματα εσόδων και εξόδων.
    Η μηνιαία διαφορά εσόδων – εξόδων εφ’ όσον είναι θετική θα καταχωρείται στην κατάλληλη θέση πίνακα με όνομα Αποταμίευση. Στην περίπτωση που η ίδια διαφορά είναι αρνητική, στον πίνακα θα καταχωρείται ο αριθμός μηδέν και το ποσό θα αφαιρείται από το ποσό αποταμίευσης του προηγούμενου μήνα. Η διαδικασία θα επαναλαμβάνεται έως ότου όλο το ποσό “μοιραστεί” στους προηγούμενους μήνες -να θεωρήσετε ότι αυτό θα συμβεί κάποια στιγμή.
    Ποιους μήνες τα έσοδα ήταν περισσότερα από τα έξοδα; Ποιους μήνες τα λοιπά έξοδα ξεπέρασαν το σύνολο των εξόδων για φαγητό και μετακινήσεις; Τον τελευταίο μήνα του χρόνου ξοδεύτηκαν περισσότερα χρήματα για φαγητό ή μετακινήσεις; Ο αλγόριθμος θα δίνει ως αποτέλεσμα επίσης το ποσό που αντιστοιχεί στην μέση μηνιαία αποταμίευση (αγνοώντας τους μήνες με μηδενική αποταμίευση). Τι ποσό έχει αποταμιεύσει η οικογένεια στο τέλος του έτους;


Permanent link to this article: http://pervolischool.edu.gr/computer-science/algorithms/tables-1d/b-tables-actions/