Περιγραφή Μαθήματος
Πληροφορική Γ΄Γυμνασίου
Το Βιβλίο Μαθητή - Συμπληρωματικό Εκπαιδευτικό Υλικό μπορείτε να το κατεβάσετε και το αποθηκεύσετε από εδώ
Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια εργασία ή να επιλύσουμε ένα πρόβλημα, συνθέτουν έναν Αλγόριθμο. Για παράδειγμα, οι οδηγίες για την κατασκευή ενός χαρταετού μπορεί να αποτελέσουν έναν αλγόριθμο. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών - βημάτων, με σκοπό την επίλυση ενός προβλήματος.
Αλγόριθμος μπορεί να είναι μια συνταγή μαγειρικής ή η βήμα προς βήμα περιγραφή της λύσης ενός μαθηματικού προβλήματος. Όταν σχεδιάζουμε έναν αλγόριθμο, πρέπει να είμαστε ιδιαίτερα προσεκτικοί, ώστε να βάζουμε με λογική σειρά τις οδηγίες (instructions) που θα μας οδηγήσουν στη λύση του προβλήματός μας. Αν, για παράδειγμα, δεν περιγράψουμε σωστά τα βήματα που πρέπει να ακολουθηθούν, ώστε να μαγειρέψει ένας άπειρος μάγειρας μια μακαρονάδα, τότε είναι πιθανό να μείνουμε νηστικοί.
Τα βήματα που αποτελούν έναν αλγόριθμο ονομάζονται οδηγίες ή εντολές. Αν ακολουθηθούν οι οδηγίες ενός αλγορίθμου στο τέλος πρέπει να προκύπτει ένα αποτέλεσμα, ένα έργο, η λύση σε ένα πρόβλημα. Για παράδειγμα, αν ακολουθήσουμε τις οδηγίες μιας συνταγής μαγειρικής θα παραγάγουμε το επιθυμητό φαγητό. Μια παρτιτούρα περιέχει οδηγίες· αν γνωρίζουμε μουσική και τις εφαρμόσουμε σε ένα μουσικό όργανο, παράγουμε μουσική.
Όπως περιγράψαμε στα προηγούμενα παραδείγματά μας, για να μπορέσουμε από έναν αλγόριθμο να πάρουμε αποτελέσματα χρειαζόμαστε κάποιον που θα υλοποιήσει τον αλγόριθμο, δηλαδή κάποιον που θα ακολουθήσει τις οδηγίες που περιλαμβάνει ο αλγόριθμος. Αυτός που υλοποιεί τον αλγόριθμο μπορεί να είναι ένας άνθρωπος ή ένας υπολογιστής. Για την υλοποίηση μιας συνταγής μαγειρικής υπεύθυνος είναι ο μάγειρας. Για τον υπολογισμό του εμβαδού ενός τετραγώνου αυτός που θα υλοποιήσει τον αλγόριθμο μπορεί να είναι ένας υπολογιστής.
Οι αλγόριθμοι που κατασκευάζουμε πρέπει να πληρούν κάποιες προϋποθέσεις. Πρώτα απ' όλα, πρέπει να είμαστε σίγουροι ότι, αν υλοποιήσουμε τον αλγόριθμο, κάποτε θα τελειώσει επιτυγχάνοντας τον αρχικό σκοπό. Φανταστείτε να δώσουμε μία εντολή σε ένα δρομέα, να αρχίσει να τρέχει και να μην του πούμε πότε θα σταματήσει. Όμοια, αν δώσουμε εντολή σε έναν υπολογιστή, ώστε να ζωγραφίσει τα δέκα πέταλα ενός λουλουδιού, πρέπει να αναφέρουμε τον αριθμό των πετάλων που θα έχει το λουλούδι (δέκα), ώστε να είμαστε βέβαιοι ότι ο υπολογιστής θα σταματήσει το σχεδιασμό μόλις σχηματιστεί το λουλούδι.
Δραστηριότητα
1. Στό σύνδεσμο https://www.youtube.com/watch?v=8MMTdC_OvUM μπορείτε να παρακολουθήσετε ένα ντοκιμαντέρ με τίτλο "How algorithms work - Πως δουλεύουν οι αλγόριθμοι " με τον καθηγητή του Πανεπιστημίου της Οξφόρδης Marcus du Sautoy. Ο καθηγητής Marcus du Sautoy απομυθοποιεί τον κρυμμένο κόσμο των αλγορίθμων και αποκαλύπτει από πού προήλθαν αυτοί οι λύτες προβλημάτων 2.000 ετών, πώς λειτουργούν και τι έχουν επιτύχει. Μετά την παρακολούθηση του ντοκιμαντέρ απαντήστε στις ερωτήσεις με τίτλο "Ειδα το ντοκιμαντερ και απαντάω στις ερωτησεις".
2. Παρακάτω θα βρείτε δύο ασκήσεις με το όνομα "Αλγόριθμος, από την ώρα που ξυπνάω ως την ώρα που θα πάω στο σχολείο" και Αλγόριθμος για βράσιμο μακαρονιών. Στις ασκήσεις αυτές υπάρχουν βήματα για την επιτέλεση μιας καθημερινής εργασίας. Τα βήματα είναι μπερδεμένα. Βάλτε τα στην σωστή σειρα. Αν κάνετε λάθος. δεν πειράζει, απλά δείτε την λύση και σκεφτείτε αν και πως θα λειτουργούσε ο αλγόριθμος τότε.
3. Παρακάτω θα βρείτε δύο εργασίες ¨Βοηθήστε τον βαρκάρη" και "Οι πύργοι το Ανόι". Για κάθε άσκηση
α) κατεβάστε το αρχείο,
β) διαβάστε καλά την εκφώνηση,
γ) καταγράψτε τα δεδομένα, το Πλαίσιο προβλήματος και το ζητούμενο,
δ) παίξτε το παιχνίδι,
ε) δώστε λύση
στ) καταγράψτε βήμα βήμα την λύση που βρήκατε
ζ) ανεβάστε το αρχείο με την απάντηση σας.
Have fun!
Υλοποίηση του παιχνιδιού Πέτρα- Ψαλίδι - Χαρτί
Εισαγωγή
Ο σκοπός αυτής της δραστηριότητας είναι η υλοποίηση του γνωστού παιχνιδιού Πέτρα – Ψαλίδι – Χαρτί το οποίο παίζουν δυο παίκτες, εσείς και ο υπολογιστής. Σε περίπτωση που δεν έχετε ξαναπαίξει θυμίζουμε ότι οι δυο παίκτες επιλέγουν ένα αντικείμενο και η Πέτρα κερδίζει το Ψαλίδι, το Ψαλίδι κερδίζει το Χαρτί το οποίο κερδίζει την Πέτρα.
Πως επιλέγει ο υπολογιστής:
Θέλουμε ο υπολογιστής να επιλέξει στην τύχη ένα εκ των Πέτρα/Ψαλίδι/Χαρτί. Για αυτό τον λόγο θα χρησιμοποιήσουμε την εντολή random.randint(0,2) η οποία επιστρέφει με τυχαίο τρόπο έναν εκ των αριθμών 0, 1 ή 2.
Η σειρά του υπολογιστή
Ο υπολογιστής θα παίζει σε κάθε γύρο καλώντας την random.randint. Αν η συνάρτηση επιστρέψει 0 σημαίνει ότι ο υπολογιστής παίζει Πέτρα (R), 1 για Ψαλίδι (S) και 2 για Χαρτί (P). Να συμπληρώσετε το παρακάτω τμήμα κώδικα έτσι ώστε στη μεταβλητή computer να καταχωρείται η επιλογή του υπολογιστή.
RPS = [“Π”, “Ψ”, “Χ”]
choise = random.randint(0,2)
computer: ___________________
Τώρα είναι η σειρά του παίχτη
Τώρα είναι η σειρά του παίκτη. Το πρόγραμμα θα ζητάει από τον παίκτη την επιλογή του η οποία θα είναι "Π", "Ψ", ή "Χ" με χρήση της input όπως φαίνεται παρακάτω:
player = input ( “Δώσε την επιλογή σου: Π για Πέτρα, Χ για χαρτί και Ψ για ψαλίδι” )
Στη συνέχεια ελέγχοντας όλους τους συνδυασμούς μεταξύ computer και player το πρόγραμμα θα εμφανίζει κατάλληλο μήνυμα για το νικητή ή την ισοπαλία του γύρου, και στο τέλος θα εμφανίζει τις επιλογές και των δυο, ώστε να φαίνεται ότι δεν ..... κλέβει.
if computer == "Χ" and player == "Ψ" : # το ψαλίδι κερδίζει το χαρτί
print ( " Κέρδισες!!! " )
elif computer == "X" and player == “Π" :
……………………..
………………………
print ( "You = ", player )
print ( " Computer = ", computer )
Παρακάτω δίνεται μια οθόνη εκτέλεσης του παιχνιδιού, με ελαφρά διαφορετικά μηνύματα από αυτά που έχω παραπάνω. Μπορείτε να βάλετε και εσείς τα δικά σας μηνύματα στα αγγλικά ή στα ελληνικά.
Δώσε την επιλογή σου: Π για Πέτρα, Χ για χαρτί και Ψ για ψαλίδι Χ
ΕΧΑΣΕΣ!
You : Χ
Computer : Ψ
Επαναλαμβανόμενοι Γύροι
Μέχρι στιγμής έχουμε σχεδιάσει ένα παιχνίδι το οποίο όμως έχει ένα μόνο γύρο. Το πρόγραμμα θα έχει 5 γύρους.
For i in range(5):
Κρατάμε σκορ;
Ας λύσουμε τώρα το δεύτερο προβληματάκι που διαπιστώσαμε, ότι δηλαδή ενώ έχουμε τη δυνατότητα να παίζουμε πολλούς γύρους, στο τέλος δεν φαίνεται το σκορ. Για να κρατάμε το σκορ αρκεί να μετράμε τις νίκες κάθε παίκτη και στο τέλος του παιχνιδιού να εμφανίζουμε το τελικό σκορ. Έτσι θα χρειαστούμε 3 μεταβλητές, μια για τις δικές μας νίκες, μια για τις νίκες του υπολογιστή και μια για τις ισοπαλίες. Ανάλογα με το αποτέλεσμα θα αυξάνεται η αντίστοιχη μεταβλητή, όπως φαίνεται στο παρακάτω τμήμα κώδικα:
win = lost = draw = __
For ……… :
if computer == "Χ and player == "Ψ" : # το ψαλίδι κερδίζει το χαρτί
print ( "Κέρδισες! " )
win += 1
elif ….
.
.
elif player == computer:
print (“Ισοπαλία")
Draw += 1
….
elif __________ :
print ( " Έχασες !!! " )
lost += 1
- Ποιες πιστεύετε ότι πρέπει να είναι η αρχικές τιμές των win, lost, draw?
- Τι θα συμβεί αν ο χρήστης δεν δώσει κάποιο από τα κεφαλαία γράμματα Π, Ψ, Χ. Πως μπορούμε να αντιμετωπίσουμε αυτό το πρόβλημα;
Απαιτητικό
1. Μπορείτε να προσθέσετε τη συνθήκη while έτσι ώστε το παιχνίδι να σταματάει όταν κάποιος κερδίζει με διαφορά 10 νίκες;
2. Να δώσετε μια δεύτερη έκδοση του προγράμματός σας στην οποία ο υπολογιστής θα προσπαθεί να κερδίσει τον άνθρωπο με τον εξής τρόπο: Δεν θα επιλέγει στην τύχη αλλά θα καθορίζει την επιλογή έτσι ώστε να κερδίζει πάντα, αφού θα γνωρίζει την επιλογή του παίκτη. Θα διαβάζει πρώτα την επιλογή και αμέσως θα εμφανίζει την δική του αλλά δεν θα είναι τυχαία (θα κλέβει δηλαδή ☺ )
Καθημερινά χρησιμοποιούμε διάφορες εφαρμογές, οι οποίες μας διευκολύνουν σε πολλές εργασίες. Αν θέ- λουμε να βρούμε πληροφορίες για κάτι που δε γνωρίζουμε χρησιμοποιούμε μια μηχανή αναζήτησης, όπως η Google ή ένα γλωσσικό μοντέλο Τεχνητής Νοημοσύνης, όπως το ChatGPT. Αν θέλουμε να αποθηκεύσουμε τα αρχεία μας σε έναν δικτυακό φάκελο στο υπολογιστικό νέφος, ώστε να έχουμε πρόσβαση από παντού στα αρχεία μας, χρησιμοποιούμε μια εφαρμογή διαμοιρασμού αρχείων, όπως είναι το DropBox. Για ψυχαγωγία χρησιμοποιούμε εφαρμογές, όπως το Spotify για μουσική ή το Instagram για επικοινωνία ή το Netflix, για να δούμε ταινίες ή το youtube, για να δούμε ή να ανεβάσουμε βίντεο. Όλες αυτές οι εφαρμογές έχουν κάτι κοινό. Είναι γραμμένες στην ίδια γλώσσα προγραμματισμού, τη γλώσσα Python. Η Python είναι μια υψηλού επιπέδου γλώσσα προγραμματισμού, η οποία δημιουργήθηκε από τον Ολλανδό Guido van Rossum το 1990. Η γλώσσα Python χρησιμοποιείται και σε επιστημονικές εφαρμογές.
Σε αυτήν την ενότητα θα γράψετε τα πρώτα σας προγράμματα σε μια πραγματική γλώσσα προγραμματισμού η οποία χρησιμοποιείται ευρέως από προγραμματιστές, μηχανικούς και επιστήμονες για την ανάπτυξη χρήσιμων εφαρμογών.
Πρίν ξεκινήσουμε να δουλεύουμε στην Python ας μάθουμε τα βασικά:
Επίσης παρακάτω θα βρείτε το Κεφάλαιο του Νέου Βιβλίου ή το κατεβάζετε από εδώ
BONUS GAME
Στην σελίδα https://codecombat.com/, μπορείς να παίξεις ένα παιχνίδι με χαρακτήρες και μάχες. Οι κινήσεις του χαρακτήρα δεν γίνontai με κουμπία ελέγχου αλλά με προγραμματισμό σε python. Παρακάτω μπορεί να παρακολουθήσεις ένα επίπεδο του παιχνιδίου.
ΕΡΓΑΣΤΗΡΙΟ
Στο εργαστήριο θα ασχοληθούμε με τις τρείς παρακάτω Ασκήσεις: