ΠΑΝΕΛΛΗΝΙΕΣ 2014: Προτεινόμενα θέματα και απαντήσεις για το μάθημα της Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Προσφορά του φροντιστηριακού ομίλου ΕΝΑ

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

Το παιχνίδι Game of Life είναι ένα κυτταρικό αυτόματο που επινοήθηκε από τον Βρετανό μαθηματικό John Horton Conway το 1970. Το παιχνίδι αυτό δεν χρειάζεται κανέναν παίκτη, που σημαίνει ότι η εξέλιξη του καθορίζεται από την αρχική του κατάσταση. Το σύμπαν του παιχνιδιού είναι ένα άπειρο δισδιάστατο ορθογώνιο πλέγμα, κάθε κελί του οποίου μπορεί να περιέχει ένα ζωντανό ('*') ή ένα νεκρό (' ') κύτταρο. Κάθε κελί έχει 8 γείτονες και από την μία γενιά στην επόμενη ισχύουν οι εξής κανόνες:

  • Κάθε ζωντανό κύτταρο με λιγότερους από 2 ζωντανούς γείτονες πεθαίνει από μοναξιά
  • Κάθε ζωντανό κύτταρο με 2 ή 3 ζωντανούς γείτονες επιζεί
  • Κάθε ζωντανό κύτταρο με περισσότερους από 3 ζωντανούς  γείτονες πεθαίνει λόγω υπερπληθυσμού
  • Κάθε νεκρό κύτταρο με ακριβώς 3 ζωντανούς γείτονες γίνεται ζωντανό (αναπαράγεται)

Να γραφεί πρόγραμμα που:

  1. Διαβάζει την αρχική κατάσταση του πλέγματος Π[10, 8] και διασφαλίζει ότι κάθε κελί έχει την τιμή '*' για ζωντανό ή ' ' για νεκρό κύτταρο.
  2. Υπολογίζει την κατάσταση του πλέγματος μετά από 30 γενιές, χρησιμοποιώντας τα παρακάτω υποπρογράμματα:

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

Νεα_Κατασταση: Δέχεται ένα πλέγμα και τις συντεταγμένες ενός κελιού και υπολογίζει και επιστρέφει την νέα κατάσταση του κελιού σύμφωνα με τους παραπάνω κανόνες.

Ζωντανοι_Ανα_Γραμμη: Δέχεται ένα πλέγμα, μία γραμμή, το αριστερότερο και το δεξιότερο άκρο των γειτόνων ενός κυττάρου και επιστρέφει το πλήθος των ζωντανών οργανισμών στη γραμμή αυτή.

Γειτονες: Δέχεται ένα πλέγμα και τις συντεταγμένες ενός κελιού και επιστρέφει το πλήθος των ζωντανών γειτόνων.

  1. Εμφανίζει την κατάσταση του πλέγματος μετά από 30 γενιές.

 

ΠΡΟΓΡΑΜΜΑ Game_of_Life

ΜΕΤΑΒΛΗΤΕΣ

            ΑΚΕΡΑΙΕΣ: Ι, J

            ΧΑΡΑΚΤΗΡΕΣ: Π[10, 8]

 

ΑΡΧΗ

            ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10

                        ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 8

                                    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

                                                ΔΙΑΒΑΣΕ Π[Ι, J]

                                    ΜΕΧΡΙΣ_ΟΤΟΥ Π[Ι, J] = '*' Η Π[Ι, J] = ' '

                        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30

                        ΚΑΛΕΣΕ ΕΠΟΜΕΝΗ_ΓΕΝΙΑ(Π)

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10

                        ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 8

                                    ΓΡΑΨΕ Π[Ι, J]

                        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

 

ΔΙΑΔΙΚΑΣΙΑ ΕΠΟΜΕΝΗ_ΓΕΝΙΑ(Π)

ΜΕΤΑΒΛΗΤΕΣ

            ΑΚΕΡΑΙΕΣ: Ι, J

            ΧΑΡΑΚΤΗΡΕΣ: Π[10, 8], Π2[10, 8]

ΑΡΧΗ

            ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10             ! Αντιγραφή αρχικού πλέγματος για τη δημιουργία της επόμενης γενιάς

                        ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 8

                                    Π2[Ι, J] ← Π[Ι, J]

                        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10

                        ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 8

                                    Π[Ι, J] ← ΝΕΑ_ΚΑΤΑΣΤΑΣΗ(Π2, Ι, J)      

                        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ           

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

 

ΣΥΝΑΡΤΗΣΗ ΝΕΑ_ΚΑΤΑΣΤΑΣΗ(Π, X, Y): ΧΑΡΑΚΤΗΡΑΣ

ΜΕΤΑΒΛΗΤΕΣ

            ΑΚΕΡΑΙΕΣ: X, Y, κ

            ΧΑΡΑΚΤΗΡΕΣ: Π[10, 8]

ΑΡΧΗ

            κ ← ΓΕΙΤΟΝΕΣ(Π, X, Y)

            ΑΝ Π[X, Y] = '*' ΚΑΙ (κ = 2 Ή κ = 3) ΤΟΤΕ

                        ΝΕΑ_ΚΑΤΑΣΤΑΣΗ ← '*'

            ΑΛΛΙΩΣ_ΑΝ Π[X, Y] = ' ' ΚΑΙ κ = 3 ΤΟΤΕ

                        ΝΕΑ_ΚΑΤΑΣΤΑΣΗ ← '*'

            ΑΛΛΙΩΣ

                        ΝΕΑ_ΚΑΤΑΣΤΑΣΗ ← ' '

            ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

ΣΥΝΑΡΤΗΣΗ ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π, X, Y1, Y2): ΑΚΕΡΑΙΑ

ΜΕΤΑΒΛΗΤΕΣ

            ΑΚΕΡΑΙΕΣ: I, πλ, X, Y1, Y2

            ΧΑΡΑΚΤΗΡΕΣ: Π[10, 8]

ΑΡΧΗ

            πλ ← 0

            ΓΙΑ I ΑΠΟ Y1 ΜΕΧΡΙ Y2

                        ΑΝ Π[X, I] = '*' ΤΟΤΕ

                                    πλ ← πλ + 1

                        ΤΕΛΟΣ_ΑΝ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

            ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ ← πλ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

ΣΥΝΑΡΤΗΣΗ ΓΕΙΤΟΝΕΣ(Π, X, Y): ΑΚΕΡΑΙΑ

ΜΕΤΑΒΛΗΤΕΣ

            ΑΚΕΡΑΙΕΣ: X, Y, Y1, Y2, πλ

            ΧΑΡΑΚΤΗΡΕΣ: Π[10,8]

ΑΡΧΗ

            ΑΝ Y = 1 ΤΟΤΕ                                     ! Στήλη  = 1, δεν υπάρχουν γείτονες αριστερά

                        Y1 ← 1

                        Y2 ← 2

            ΑΛΛΙΩΣ_ΑΝ Y = 8 ΤΟΤΕ                      ! Στήλη  = 8, δεν υπάρχουν γείτονες δεξιά

                        Y1 ← 7

                        Y2 ← 8

            ΑΛΛΙΩΣ                                               ! Υπάρχουν γείτονες αριστερά και δεξιά

                        Y1 ← Y - 1

                        Y2 ← Y + 1

            ΤΕΛΟΣ_ΑΝ

            ΑΝ X = 1 ΤΟΤΕ                                     ! Γραμμή = 1, δεν υπάρχουν γείτονες πάνω

                        πλ ← ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,1,Y1,Y2) + ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,2,Y1,Y2)

            ΑΛΛΙΩΣ_ΑΝ X = 10 ΤΟΤΕ                    ! Γραμμή = 10, δεν υπάρχουν γείτονες κάτω

                        πλ ← ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,9,Y1,Y2) + ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,10,Y1,Y2)

            ΑΛΛΙΩΣ                                               ! Υπάρχουν γείτονες πάνω και κάτω

                        πλ ← ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,X-1,Y1,Y2) + ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π,X,Y1,Y2)                                                                 + ΖΩΝΤΑΝΟΙ_ΑΝΑ_ΓΡΑΜΜΗ(Π, X+1, Y1,Y2)

            ΤΕΛΟΣ_ΑΝ

            ΑΝ Π[X, Y] = '*' ΤΟΤΕ

                        πλ ← πλ - 1

            ΤΕΛΟΣ_ΑΝ

            ΓΕΙΤΟΝΕΣ ← πλ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

Επιμέλεια θεμάτων: Καλαϊτζάκη Μαρία

 

alfavita.gr

Επισκεφθείτε το φροντιστηριακό όμιλο ΕΝΑ εδώ

Όλες οι σημαντικές ειδήσεις σήμερα

Σχολεία: Ένα self test για μαθητές-εκπαιδευτικούς από τις 17 Μαΐου

Πανελλαδικές 2021: Ανακοινώθηκε το πρόγραμμα εξετάσεων για ΓΕΛ - ΕΠΑΛ

Σε όλα τα σχολεία το ΥΠΟΧΡΕΩΤΙΚΟ μάθημα ΣΕΞΟΥΑΛΙΚΗΣ ΑΓΩΓΗΣ - ΝΕΟ ΣΕΜΙΝΑΡΙΟ ΓΙΑ ΜΟΡΙΟΟΤΗΣΗ

Το Κορυφαίο Μοριοδοτούμενο σεμινάριο στην ΕΙΔΙΚΗ ΑΓΩΓΗ του Παν.Αιγαίου ΧΩΡΙΣ ΕΞΕΤΑΣΕΙΣ!

Μόρια για Προσλήψεις - ΑΣΕΠ - Μεταπτυχιακά με ΠΙΣΤΟΠΟΙΗΣΗ ΑΓΓΛΙΚΩΝ LTE του GoLearn - ΤΗΛΕΞΕΤΑΣΗ ΜΟΝΟ σε Reading - Listening

ΠΙΣΤΟΠΟΙΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ για ΑΣΕΠ σε 10 ημέρες εξ αποστάσεως με ΔΩΡΕΑΝ ΕΠΑΝΕΞΕΤΑΣΕΙΣ ΚΑΙ 97% ΕΠΙΤΥΧΙΑ

σχετικά άρθρα

paideia-ypaith
Αξιολόγηση-στελέχη εκπαίδευσης: Η αναδίπλωση Κεραμέως έχει αιτία και στόχο
Το υπουργείο Παιδείας έχει ανατρέψει όλο τον προγραμματισμό για αυτονομία των σχολικών μονάδων, αξιολόγηση των εκπαιδευτικών και νέο σύστημα επιλογής...
Αξιολόγηση-στελέχη εκπαίδευσης: Η αναδίπλωση Κεραμέως έχει αιτία και στόχο