ΑΕΠΠ

Αποστολή Εξετελέσθη Πάμε Παρακάτω

  • computer_programming

Αποστολή 1. Το βάπτισμα του πυρρός

Συγγραφέας: apanagio στις 17 Ιανουαρίου 2013


Για να κάνετε τα πρώτα σας βήματα στον προγραμματισμό και στην ανάπτυξη αλγορίθμων πηγαίνετε στη σελίδα:
http://www.kongregate.com/games/Coolio_Niato/light-bot

Παίξτε το παιχνίδι μέχρι το επίπεδο 6.
Δεν φαντάζομαι να δυσκολεύεστε.

Κατηγορία Χωρίς κατηγορία | 1 σχόλιο »

Αποστολή 2. Κόκαλα δεν έχει μα κόκαλα τσακίζει

Συγγραφέας: apanagio στις 29 Ιανουαρίου 2012

Και τώρα το πρώτο μας πραγματικό πρόγραμμα.
Η γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε λέγεται ‘Γλώσσα’.
Για να δημιουργήσουμε τα προγράμματά μας χρειαζόμαστε έναν μεταγλωττιστή (ή έναν διερμηνευτή. Περισσότερα για τους μεταγλωττιστές και τους διερμηνευτές αργότερα).
Υπάρχει ο διερμηνευτής της γλώσσας (που είναι και μεταγλωττιστής, αλλά είπαμε αυτά αργότερα) και θα τον βρείτε εδώ: http://alkisg.mysch.gr/
Κατεβάστε τον, εγκαταστήστε τον και γράψτε το παρακάτω πρόγραμμα:

ΠΡΟΓΡΑΜΜΑ Καλημέρα_κόσμε
ΑΡΧΗ
    ΓΡΑΨΕ 'Καλημέρα κόσμε'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Στη συνέχεια πατήστε το πράσινο τριγωνάκι (ή F9) για να εκτελεστεί το πρόγραμμά σας.
Αν όλα πήγαν καλά θα δείτε στο κάτω μέρος του παραθύρου να εμφανίζεται το μήνυμα: ‘Καλημέρα κόσμε’.
Αλλάξτε το παραπάνω πρόγραμμα ώστε να χαιρετάει στα ελληνικά, στα αγγλικά, στα γαλλικά και σε όποια άλλη γλώσσα γνωρίζετε.

Το πρώτο βήμα έγινε.

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 3. Είσοδος δεδομένων

Συγγραφέας: apanagio στις 9 Φεβρουαρίου 2011

Με την εντολή ΔΙΑΒΑΣΕ τα προγράμματά μας μπορούν να ζητάνε δεδομένα από το χρήστη.
Η εντολή ΔΙΑΒΑΣΕ σταματάει την εκτέλεση του προγράμματος και περιμένει μέχρι ο χρήστης να γράψει κάτι (και να πατήσει enter). Τότε συνεχίζει την εκτέλεση από την επόμενη εντολή.
Η ερώτηση που φαντάζομαι σας έρχεται είναι: “Και τι το κάνει αυτό που διάβασε;”
Εδώ έρχεται η έννοια της μεταβλητής, που θα μας απασχολήσει πολύ αυτήν τη χρονιά.
Η εντολή ΔΙΑΒΑΣΕ σχεδόν ποτέ δεν χρησιμοποιείται μόνη της αλλά ακολουθείται από το όνομα της μεταβλητής που θα αποθηκεύσει αυτό που διάβασε δηλαδή: ΔΙΑΒΑΣΕ χ, όπου χ είναι το όνομα της μεταβλητής. Θα μπορούσε να είναι οποιαδήποτε λέξη χ, υ, α, β, μαρία, art, ζξτ22 κτλ (υπάρχουν κανόνες για το ποιες ακολουθίες γραμμάτων και αριθμών μπορούν να είναι ονόματα μεταβλητών τους οποίους θα δούμε αργότερα).
Οι μεταβλητές πριν χρησιμοποιηθούν πρέπει να δηλωθούν, για να ξέρει και ο υπολογιστής με τι έχει να κάνει.
Το παρακάτω πρόγραμμα:

  • δηλώνει 2 πραγματικές μεταβλητές
  • ζητάει από το χρήστη 2 αριθμούς
  • τους αποθηκεύει στις μεταβλητές
  • και τέλος γράφει το άθροισμά τους.
ΠΡΟΓΡΑΜΜΑ άθροισμα
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: α, β
ΑΡΧΗ
  ΓΡΑΨΕ "Δώσε 2 αριθμούς"
  ΔΙΑΒΑΣΕ α, β
  ΓΡΑΨΕ "Το άθροισμα είναι: ", α + β
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Μπορείτε να το αντιγράψετε στο διερμηνευτή της γλώσσας και να το “τρέξετε” για να βεβαιωθείτε.

Γράψτε ένα πρόγραμμα που θα ρωτάει το χρήστη πόσων χρονών είναι, και θα γράφει τη χρονιά που γεννήθηκε
Γράψτε ένα ακόμα πρόγραμμα που θα ζητάει την ακτίνα ενός κύκλου, και θα γράφει το εμβαδόν και την περίμετρό του

Η πραγματική διασκέδαση τώρα ξεκινάει

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 4: what if?

Συγγραφέας: apanagio στις 8 Μαρτίου 2010


Μια πολύ χρήσιμη εντολή είναι η ΑΝ ... ΤΟΤΕ ... ΤΕΛΟΣ_ΑΝ και οι συγγενικές ΑΛΛΙΩΣ, ΑΛΛΙΩΣ_ΑΝ, ΚΑΙ, Η, ΟΧΙ.

Το παρακάτω πρόγραμμα ζητάει δύο αριθμούς και τυπώνει το μεγαλύτερο (αν είναι ίσοι τυπώνει την τιμή τους).

ΠΡΟΓΡΑΜΜΑ μεγαλύτερος
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: α, β, max
ΑΡΧΗ
  ΔΙΑΒΑΣΕ α, β
  ΑΝ α < β ΤΟΤΕ
    max <- β
  ΑΛΛΙΩΣ
    max <- α
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ max
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 

Γράψτε τα παρακάτω προγράμματα:

  1. Ένα πρόγραμμα που ζητάει έναν αριθμό και τυπώνει την απόλυτη τιμή του
  2. Ένα πρόγραμμα που ζητάει έναν αριθμό και τυπώνει αν είναι μεταξύ 100 και 1000
  3. Ένα πρόγραμμα που ζητάει το βάρος ενός δέματος και τυπώνει πόσο θα κοστίσει η αποστολή του σύμφωνα με τον παρακάτω τιμοκατάλογο:
    Μέχρι 100gr => 0,5 €
    100 με 200gr => 1€
    200 με 1kgr => 2€
    πάνω απο 1kgr  => 4€
  4. Ένα πρόγραμμα που ζητάει 3 αριθμούς και τυπώνει τον μεγαλύτερο

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 5: Ξανά και ξανά

Συγγραφέας: apanagio στις 31 Μαρτίου 2009

Τα παρακάτω προγράμματα γράφουν 100 φορές ένα μήνυμα.

Τα προγράμματα είναι ίδια μόνο που το πρώτο χρησιμοποιεί τη δομή “ΓΙΑ” ενώ το δεύτερο τη δομή “ΟΣΟ … ΕΠΑΝΑΛΑΒΕ”

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

ΠΡΟΣΟΧΗ: Όταν χρησιμοποιούμε τη “ΓΙΑ” καλό είναι να μην πειράζουμε τη μεταβλητή – δρομέα (το ι στην περίπτωσή μας) μέσα στο σώμα της επανάληψης. Αν το κάνουμε γίνεται πολύ δυσνόητο το πρόγραμμά μας. Μπορούμε να διαβάζουμε την τιμή του ι, να την αναθέτουμε σε άλλες μεταβλητές αλλά καλύτερα να μην την αλλάζουμε.

ΠΡΟΓΡΑΜΜΑ παλια_τιμωρια
ΣΤΑΘΕΡΕΣ
  πόσες = 100
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ πόσες
    ΓΡΑΨΕ ι, ": Δεν θα ξαναδείρω το συμμαθητή μου"
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΠΡΟΓΡΑΜΜΑ παλια_τιμωρια
ΣΤΑΘΕΡΕΣ
  πόσες = 100
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι
ΑΡΧΗ
  ι <- 1
  ΟΣΟ ι <= πόσες ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ ι, ": Δεν θα ξαναδείρω το συμμαθητή μου"
    ι <- ι + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Τώρα που μπήκατε στο νόημα γράψτε τα παρακάτω προγράμματα:

  1. Ένα πρόγραμμα που θα τυπώνει όλα τα πολλαπλάσια του 3 από το 0 μέχρι το 250. Γράψτε και με “ΓΙΑ” και με “ΟΣΟ” (για το “ΓΙΑ” εξερευνήστε την εντολή “ΜΕ_ΒΗΜΑ”
  2. Ένα πρόγραμμα που θα ζητάει από το χρήστη έναν αριθμό, θα τυπώνει το τετράγωνό του και θα τερματίζει αν ο χρήστης δώσει -1
  3. Ένα πρόγραμμα που θα ζητάει από το χρήστη 100 αριθμούς και θα ελέγχει αν αποτελούν συνεχόμενους όρους αριθμητικής προόδου (2, 4, 6, 8, …) ή (1, 5, 9, 13, 17, …) ή (4, 0, -4, -8, -12, …) ή (3, 13, 23, 33, 43, …) κτλ
  4. Ένα πρόγραμμα που θα ζητάει από το χρήστη αριθμούς μέχρι αυτός να δώσει αρνητικό αριθμό. Τότε θα τυπώνει το μεγαλύτερο αριθμό που έδωσε ο χρήστης.
  5. Ένα πρόγραμμα που θα ζητάει από το χρήστη αριθμούς μέχρι αυτός να δώσει 0. Τότε θα τυπώνει τον αριθμό που εμφανίστηκε τις περισσότερες συνεχόμενες φορές.

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 6: Πίνακες

Συγγραφέας: apanagio στις 7 Μαΐου 2008

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

Στη “Γλώσσα” υπάρχουν για τους πίνακες οι ακόλουθοι περιορισμοί:

  • Κάθε πίνακας περιέχει στοιχεία ίδιου τύπου.
  • Το μέγεθος του πίνακα πρέπει να είναι γνωστό από την αρχή.

Το παρακάτω πρόγραμμα ζητάει από το χρήστη 10 αριθμούς και τους αποθηκεύει σε έναν πίνακα 10 θέσεων. Στη συνέχεια τυπώνει το 1o το τελευταίο και το 5o στοιχείο.


ΠΡΟΓΡΑΜΜΑ απλός_πίνακας
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι
  ΠΡΑΓΜΑΤΙΚΕΣ: α[10] 
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΔΙΑΒΑΣΕ α[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ α[1], α[5], α[10] 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 


Γράψτε τα παρακάτω προγράμματα:

  1. Ένα πρόγραμμα που θα διαβάζει 100 αριθμούς από το χρήστη, και θα τους τυπώνει όλους με την αντίστροφη σειρά
  2. Ένα πρόγραμμα που θα γεμίζει 4 πίνακες 25 θέσεων με τα παρακάτω στοιχεία:
    • 4, 5, 6, 7, 8, …
    • 1.6, 3.2, 6.4, 12.8, …
    • “χαρά”, “λύπη”, “χαρά”, “λύπη”, …
    • ΑΛΗΘΗΣ, ΨΕΥΔΗΣ, ΑΛΗΘΗΣ, ΨΕΥΔΗΣ, … (λογικές μεταβλητές)

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 7. Πίνακες ΙΙ (με λίγα μαθηματικά)

Συγγραφέας: apanagio στις 23 Μαΐου 2007

img6_35Να γράψετε πρόγραμμα το οποίο θα διαβάζει τις συντεταγμένες 20 σημείων στο επίπεδο και θα τις αποθηκεύει στους πίνακες Χ[20], Υ[20]. Στη συνέχεια

          1. Θα εμφανίζει όλα τα σημεία που βρίσκονται στο 1ο τεταρτημόριο
          2. Θα εμφανίζει το πλήθος των σημείων που βρίσκονται πάνω στην ευθεία y=x
          3. Θα εμφανίζει το πλήθος των σημείων που βρίσκονται πάνω στον κύκλο με κέντρο Κ(1,2) και ακτίνα 3
          4. Θα εμφανίζει το πλήθος των σημείων που βρίσκονται μεταξύ των γραφικών παραστάσεων των συναρτήσεων e^x και lnx
          5. Θα εμφανίζει το σημείο που βρίσκεται πιο μακριά από την αρχή των αξόνων
          6. Θα εμφανίζει τα δύο πιο απομακρυσμένα σημεία μεταξύ τους.

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 8: Πολυδιάστατοι πίνακες

Συγγραφέας: apanagio στις 9 Ιουνίου 2006

multi-arrayΟι πίνακες μπορούν να έχουν παραπάνω από μία διαστάσεις.
Έτσι ένας πίνακας 2 διαστάσεων, που περιέχει πραγματικούς αριθμούς, δηλώνεται ως:
ΠΡΑΓΜΑΤΙΚΕΣ: Α[10][20]
Σε αυτό το παράδειγμα ο πίνακάς μας περιέχει 10 γραμμές και 20 στήλες.
Μπορούμε να το σκεφτόμαστε σαν ένα μονοδιάστατο πίνακα 10 στοιχείων που κάθε του στοιχείο είναι ένας πίνακας 20 στοιχείων.
Για να διαβάσουμε και να γράψουμε στα στοιχεία του πίνακα χρησιμοποιούμε τη σύνταξη: Α[ι, κ]
πχ: ΓΡΑΨΕ Α[3, 5]
Α[9, 13] <- 22.4

Το παρακάτω πρόγραμμα διαβάζει τις απουσίες 20 μαθητών για 9 μήνες και τους καταχωρεί σε έναν πίνακα 20 x 9:

ΠΡΟΓΡΑΜΜΑ απουσιες
ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: ι, κ, α[20, 9]
ΑΡΧΗ
    ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20
        ΓΡΑΨΕ "Μαθητής ", ι
        ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 9
            ΓΡΑΨΕ "Δώσε τις απουσίες για το μήνα ", κ
            ΔΙΑΒΑΣΕ α[ι, κ]
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Γράψτε ένα πρόγραμμα το οποίο:

  1. Θα διαβάζει τα ονόματα 20 μαθητών και θα τα καταχωρεί σε έναν πίνακα Ο[20]
  2. Θα διαβάζει τις απουσίες των μαθητών για τους 9 μήνες του σχολικού έτους και θα τις τοποθετεί στον πίνακα Α[20][9]
  3. Θα υπολογίζει το σύνολο των απουσιών κάθε μαθητή και θα το αποθηκεύει στον πίνακα SUM[20]
  4. Θα τυπώνει τα ονόματα των μαθητών που έχουν πάνω από 50 απουσίες
  5. Θα βρίσκει τον μαθητή που έκανε τις περισσότερες απουσίες μέσα σε ένα μήνα και θα τυπώνει το όνομά του και το μήνα που έκανε τις απουσίες.

Καλή διασκέδαση

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »

Αποστολή 9: Διαδικασίες και Συναρτήσεις

Συγγραφέας: apanagio στις 1 Ιουλίου 2005

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

Διαδικασίες

Οι διαδικασίες είναι υποπρογράμματα που γράφονται μετά το κυρίως πρόγραμμα. Μπορούν να κληθούν με την εντολή “ΚΑΛΕΣΕ” από οποιοδήποτε σημείο του προγράμματος. Οι παράμετροι αναφέρονται ονομαστικά κατά τη δήλωση της διαδικασίας και στη συνέχεια ο τύπος τους δηλώνεται στο τμήμα «Μεταβλητές».

ΠΡΟΓΡΑΜΜΑ ΑΠΛΗ_ΔΙΑΔΙΚΑΣΙΑ
ΑΡΧΗ
  ΚΑΛΕΣΕ χαιρετα('JAMES', 'BOND') 
  ΚΑΛΕΣΕ χαιρετα('ΜΑΡΙΑ', 'ΝΟΜΙΚΟΥ')
  ΚΑΛΕΣΕ χαιρετα('Γιάννης', 'Παπαδόπουλος')
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ χαιρετα(όνομα, επώνυμο) 
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: όνομα, επώνυμο
ΑΡΧΗ
  ΓΡΑΨΕ 'my name is ', επώνυμο, '. ', όνομα, ' ', επώνυμο
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Συναρτήσεις

Η ΓΛΩΣΣΑ επιτρέπει τη δημιουργία συναρτήσεων από το χρήστη. Το αποτέλεσμα κάθε συνάρτησης έχει πάντα τιμή κάποιου τύπου δεδομένων και δηλώνεται μετά τις παραμέτρους της συνάρτησης (ΑΚΕΡΑΙΑ, ΠΡΑΓΜΑΤΙΚΗ, ΧΑΡΑΚΤΗΡΑΣ ή ΛΟΓΙΚΗ). Οι συναρτήσεις δεν επιτρέπεται να επιστρέφουν πίνακες. Όλες οι συναρτήσεις πρέπει να περιέχουν μία εντολή του τύπου ΌνομαΣυνάρτησης <- τιμή, ώστε να επιστρέφουν κάποια τιμή στο καλών υποπρόγραμμα.

ΠΡΟΓΡΑΜΜΑ Συναρτήσεις
ΑΡΧΗ
  ΓΡΑΨΕ μήκος(2, 3) 
  ΓΡΑΨΕ μήκος(2.4, -3) 
  ΓΡΑΨΕ μήκος(1.2, 2.3) 
  ΓΡΑΨΕ μήκος(-1, 4.3) 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ μήκος(χ, υ): ΠΡΑΓΜΑΤΙΚΗ
!Βρίσκει το μήκος του διανύσματος (χ, υ)
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: χ, υ
ΑΡΧΗ
  μήκος <- χ* χ + υ* υ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Ασκήσεις

  • Γράψτε μια συνάρτηση που θα δέχεται 2 πραγματικούς (α, χ) και θα υπολογίζει το (χ-α)^2
  • Γράψτε μια συνάρτηση που θα δέχεται 1 πίνακα 10 θέσεων και θα υπολογίζει τη μέση τιμή των στοιχείων του πίνακα
  • Γράψτε μια συνάρτηση που θα δέχεται 1 πίνακα 10 θέσεων, θα υπολογίζει το άθροισμα των (χ-α)^2 όπου χ είναι το κάθε στοιχείο του πίνακα και α η μέση τιμή των στοιχείων (ονομάζεται διασπορά)
  • Γράψτε μια διαδικασία που θα δέχεται 2 πίνακες 10 στοιχείων και θα τυπώνει αυτόν με τη μικρότερη διασπορά
  • Γράψτε ένα πρόγραμμα που θα ζητάει από το χρήστη 2 πίνακες και θα τυπώνει αυτόν με τη μικρότερη διασπορά. Μετά θα ρωτάει το χρήστη αν θέλει να σταματήσει και θα συνεχίζει εκτός αν ο χρήστης γράψει ‘ν’

Κατηγορία Χωρίς κατηγορία | Δε βρέθηκαν σχόλια »