1 ΦΥΛΛΟ ΔΡΓΑΙΑ 1 Δξοικείωζη με ηα ανηικείμενα και ηιρ κλάζειρ Γπαζηηπιόηηηα 1 - γνωπιμία με ηο πεπιβάλλον objectkarel (1) Εθθηλήζηε ην πεξηβάιινλ objectkarel (2) Παηήζηε ην θνπκπί Options θαη επηιέμηε Language -> Greek (Εικόνα 1), πξνθεηκέλνπ λα εκθαλίδεηαη όιν ην πιηθό θαη λα πξαγκαηνπνηείηαη ν δηάινγνο ρξήζηε-ζπζηήκαηνο ζηα Δλληνικά (Εικόνα 2) Οη επηινγέο ηνπ βαζηθνύ κελνύ (Εικόνα 2) είλαη νη εμήο: Μαθήμαηα: ζε θάζε ελόηεηα παξνπζηάδεηαη ε ζρεηηθή ζεσξία θαη κηα ή πεξηζζόηεξεο δξαζηεξηόηεηεο γηα ηελ εμνηθείσζε κε ηηο έλλνηεο ηεο ελόηεηαο. Πεπιβάλλον Ππογπαμμαηιζμού: πεξηβάιινλ γηα ηελ αλάπηπμε, κεηαγιώηηηζε, απνζθαικάησζε θαη εθηέιεζε πξνγξακκάησλ. Δπιλογέρ: επηινγή ηεο γιώζζαο (Ειιεληθή ή Αγγιηθή) πνπ ζα ρξεζηκνπνηείηαη ζην πεξηβάιινλ. Βοήθεια: παξέρεηαη βνήζεηα γηα όιεο ηηο ιεηηνπξγίεο ηνπ πεξηβάιινληνο. Έξοδορ: έμνδνο από ην πεξηβάιινλ.
2 Γπαζηηπιόηηηα 2 - αποζηολή μηνςμάηων ζε ένα πομπόη (1) Σηνλ ρώξν ησλ καζεκάησλ θάληε θιηθ ζηελ θαξηέια «Γπαζηηπιόηηηερ» ηεο ελόηεηαο «Ανηικείμενα» θαη δηαβάζηε ηελ πεξηγξαθή ηεο (Εικόνα 3). (2) Σηείιηε ζην ξνκπόη Karel ηα καηάλληλα μηνύμαηα πξνθεηκέλνπ λα θαζαξίζεη ηνπο δηαδξόκνπο από ηα ζθνππίδηα θαη λα ηα κεηαθέξεη όια ζηε ζέζε (1,9). Παρατηρήσεις: Μπνξείηε λα ζηείιεηε ζην ξνκπόη Karel ηα απαηηνύκελα κελύκαηα παηώληαο ηα θνπκπηά κε ηηο εηηθέηεο move(), turnleft(), pickbeeper() θαη putbeeper(). Κάζε θνξά πνπ ζηέιλεηαη ζην ξνκπόη Karel έλα κήλπκα παξαηεξήζηε πώο αληαπνθξίλεηαη ζε απηό, θαζώο επίζεο θαη πνηα είλαη ε κνξθή ηεο αληίζηνηρεο εληνιήο ζηε γιώζζα πξνγξακκαηηζκνύ ησλ ξνκπόη (ζην πιαίζην Κώδηθαο). Πξνζπαζήζηε λα θαηεπζύλεηε ηνλ Karel λα νινθιεξώζεη ηελ απνζηνιή ηνπ ρσξίο λα πξνθιεζεί θάπνην ιάζνο εθηέιεζεο (γηα παξάδεηγκα, αλ ελώ κπξνζηά από ηνλ Karel ππάξρεη ηκήκα ηνίρνπ θαη εζείο ζηέιλνληαο ηνπ ην κήλπκα move() ηνπ πείηε λα πέζεη πάλσ ζηνλ ηνίρν!). Ωζηόζν, αλ πξνθύςεη θάπνην ιάζνο εθηέιεζεο, δηαβάζηε ην ζρεηηθό κήλπκα πνπ εκθαλίδεηαη θαη πξνζπαζήζηε λα θαηαιάβεηε γηαηί πξνέθπςε ην ιάζνο. (Εικόνα 4).
3 Αθνύ νινθιεξώζεηε ηελ δξαζηεξηόηεηα πξνζπαζήζηε λα απαληήζεηε ζηηο παξαθάησ εξσηήζεηο: (1) Πνηα είλαη ηα κελύκαηα ηα νπνία αληηιακβάλεηαη έλα ξνκπόη ηνπ βαζηθνύ κνληέινπ θαη πσο αληαπνθξίλεηαη ζε θάζε έλα από απηά; (2) Έλα ξνκπόη ηνπ βαζηθνύ κνληέινπ αληαπνθξίλεηαη πάληα κε ηνλ ίδην ηξόπν ζε έλα κήλπκα, έζησ ζην κήλπκα move; (3) Με πνην ηξόπν ζηέιλνπκε έλα κήλπκα ζε έλα ξνκπόη ηνπ βαζηθνύ κνληέινπ; (4) Υπάξρεη πεξίπησζε απνηπρίαο ελόο ξνκπόη ζηελ εθηέιεζε κηαο απνζηνιήο; Δώζηε έλα παξάδεηγκα. Αν δσζκολεύεζηε να απανηήζεηε ηις παραπάνω ερωηήζεις μελεηήζηε ηη θεωρία ηων ενοηήηων «Ειζαγωγή» και «Ανηικείμενα».
4 Γπαζηηπιόηηηα 3 - δημιοςπγία πομπόη Σηελ δξαζηεξηόηεηα ππήξρε δηαζέζηκν έλα ξνκπόη κε όλνκα Karel ζην νπνίν ζηείιαηε ηα θαηάιιεια κελύκαηα γηα ηελ εθηέιεζε ηεο απνζηνιήο. Σηελ πξαγκαηηθόηεηα, θάζε θνξά πνπ ρξεηαδόκαζηε έλα ξνκπόη ηνπ βαζηθνύ κνληέινπ ζα πξέπεη λα δεηήζνπκε ηε δεκηνπξγία ηνπ κε ηνλ ηξόπν πνπ πεξηγξάθεηαη ζηα βήκαηα πνπ αθνινπζνύλ. (1) Σηνλ ρώξν ησλ καζεκάησλ θάληε θιηθ ζηελ θαξηέια «Δραζηηριόηηηες» ηεο ελόηεηαο «Κιάζεηο» θαη δηαβάζηε ηελ πεξηγξαθή ηεο δξαζηεξηόηεηαο (Εικόνα 5). (2) Αθνινπζώληαο ηεο νδεγίεο ηεο δξαζηεξηόηεηαο παηήζηε ην θνπκπί «Γημιοςπγία και Απσικοποίηζη Ανηικειμένος» πξνθεηκέλνπ λα δεκηνπξγήζεηε έλα ξνκπόη (αληηθείκελν) ηνπ βαζηθνύ κνληέινπ (θιάζεο).
5 (3) Σην πιαίζην δηαιόγνπ πνπ εκθαλίδεηαη (Εικόνα 6) δώζηε ζην πεδίν «Όνομα Ανηικειμένος» ην όλνκα πνπ ζέιεηε λα έρεη ην ξνκπόη πνπ ζα δεκηνπξγεζεί θαη θαζνξίζηε ηηο αξρηθέο ηηκέο ησλ ηδηνηήησλ ηνπ ξνκπόη, ή αιιηώο ηελ αξρηθή ηνπ θαηάζηαζε. Σην θάησ κέξνο ηνπ πιαηζίνπ ππάξρνπλ ζρεηηθέο πιεξνθνξίεο. (4) Όηαλ ζπκπιεξώζεηε ηα απαξαίηεηα ζηνηρεία γηα ηε δεκηνπξγία θαη ηελ αξρηθνπνίεζε ηνπ λένπ ξνκπόη παηήζηε ην θνπκπί «Αποδοσή». Αλ ππάξρνπλ ιάζε ζηελ εληνιή δεκηνπξγίαο ηνπ ξνκπόη ηόηε δηαβάζηε πξνζεθηηθά ηηο νδεγίεο πνπ εκθαλίδνληαη (Εικόνα 7) θαη δηνξζώζηε θαηάιιεια Αλ ε εληνιή είλαη ζσζηή ηόηε ην πιαίζην δηαιόγνπ θιείλεη θαη ε θαξηέια ηεο δξαζηεξηόηεηαο έρεη ελεκεξσζεί κε (Εικόνα 8): ην όλνκα ηνπ λένπ ξνκπόη, ηηο αξρηθέο ηηκέο ησλ ηδηνηήησλ ηνπ, ηα κελύκαηα ζηα νπνία κπνξεί λα αληαπνθξηζεί ην ξνκπόη, θαη ηε κνξθή ησλ ελεξγεηώλ καο (δεκηνπξγία αληηθεηκέλνπ, απνζηνιή κελπκάησλ) ζηε γιώζζα πξνγξακκαηηζκνύ. Σ' απηή ηε δξαζηεξηόηεηα παξνπζηάδεηαη ζην ζπνπδαζηή θαη ε κνξθή ηνπ θπξίσο πξνγξάκκαηνο.
6 (5) Σηείιηε ζην ξνκπόη πνπ δεκηνπξγήζαηε ηα θαηάιιεια κελύκαηα πξνθεηκέλνπ λα θαζαξίζεη ηνπο δηαδξόκνπο από ηα ζθνππίδηα θαη λα ηα κεηαθέξεη όια ζηε ζέζε (1,9). Κάζε θνξά πνπ ζηέιλεηαη ζην ξνκπόη έλα κήλπκα παξαηεξήζηε πώο αληαπνθξίλεηαη ζε απηό θαη πώο αιιάδνπλ νη ηηκέο ησλ ηδηνηήησλ ηνπ (ε θαηάζηαζε ηνπ). Παξαηεξήζηε επίζεο πνηα είλαη ε κνξθή ηνπ νινθιεξσκέλνπ πξνγξάκκαηνο. Αθνύ νινθιεξώζεηε ηελ δξαζηεξηόηεηα πξνζπαζήζηε λα απαληήζεηε ζηηο παξαθάησ επωηήζειρ: (1) Πνηα είλαη ε ζρέζε κεηαμύ ελόο κνληέινπ ξνκπόη (θιάζεο) θαη ελόο ζπγθεθξηκέλνπ ξνκπόη (αληηθεηκέλνπ); (2) Πόζα αληηθείκελα-ξνκπόη κπνξνύκε λα δεκηνπξγήζνπκε από κία θιάζε; (3) Τη ρξεηάδεηαη λα θάλνπκε γηα λα δεκηνπξγήζνπκε έλα αληηθείκελν-ξνκπόη; (4) Πνηεο είλαη νη ηδηόηεηεο ελόο ξνκπόη ηνπ κνληέινπ (θιάζεο) Primitive_Robot; (5) Με πνην ηξόπν κεηαβάιινληαη νη ηηκέο ησλ ηδηνηήησλ ελόο ξνκπόη, ή κε άιια ιόγηα ε θαηάζηαζε ηνπ; (6) Έλα αληηθείκελν (ξνκπόη) αληαπνθξίλεηαη ζε νπνηνδήπνηε κήλπκα ηνπ ζηείινπκε; Πνηνο θαζνξίδεη ζε πνηα κελύκαηα κπνξεί λα αληαπνθξηζεί έλα ξνκπόη; (Αν δσζκολεύεζηε να απανηήζεηε ηις παραπάνω ερωηήζεις μελεηήζηε ηη θεωρία ηης ενόηηηας «Κλάζεις»).
7 Γπαζηηπιόηηηα 4 - καηανόηζη ππογπάμμαηορ Θεσξώληαο σο δεδνκέλα ηελ αξρηθή θαηάζηαζε ηνπ θόζκνπ θαη ηνλ θώδηθα ηνπ πξνγξάκκαηνο πνπ παξνπζηάδνληαη παξαθάησ, απαληήζηε ζηηο εξσηήζεηο πνπ αθνινπζνύλ: 1 task 2 { 3 Primitive_Robot Nik ( 2,1, East, 0 ); 4 Primitive_Robot Maria ( 3, 3, South, 0 ); 5 Nik.move(); 6 Nik.pickBeeper(); 7 Nik.move(); 8 Nik.putBeeper(); 9 Maria.move(); 10 Maria.pickBeeper(); 11 Maria.pickBeeper(); 12 Maria. turnleftq; 13 Maria.move(); 14 Maria.pickBeeper(); 15 Maria.move(); 16 Maria.pickBeeper(); 17 Maria. turnleft(); 18 Maria.move(); 19 Maria. turnleft(); 20 Maria.turnLeft(); 21 Maria.turnLeft(); 22 Maria.move(); 23 Maria.turnLeft();
8 24 Maria.turnLeft(); 25 Maria.turnLeft(); 26 Maria.move(); 27 Maria.putBeeper(); 28 Maria.putBeeper(); 29 Maria.putBeeper(); 30 Maria.putBeeper(); 31 Maria. turnleft(); 32 Maria. turnleft(); 33 Maria.move(); 34 } Να πξνζδηνξίζεηε: (1) To απνηέιεζκα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο ζηελ θαηάζηαζε ηνπ θόζκνπ, ή κε άιια ιόγηα ηελ ηειηθή θαηάζηαζε ηνπ θόζκνπ. (2) Τα νλόκαηα ησλ αληηθεηκέλσλ πνπ ππάξρνπλ ζην πξόγξακκα. (3) Τελ αξρηθή θαη ηελ ηειηθή θαηάζηαζε θάζε αληηθεηκέλνπ. (4) Τα νλόκαηα ησλ κελπκάησλ ζηα νπνία κπνξεί λα αληαπνθξηζεί ην θάζε αληηθείκελν.