Το Στέκι των Πληροφορικών

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: triantaf στις 23 Ιαν 2017, 12:26:59 ΜΜ

Τίτλος: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: triantaf στις 23 Ιαν 2017, 12:26:59 ΜΜ
Ενα απλό διαγώνισμα για επανάληψη κεφ 3-5
Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: evry στις 23 Ιαν 2017, 01:34:07 ΜΜ
Προσοχή όταν ζητάμε μετατροπή μεταξύ δομών επανάληψης διότι στην Python οι δομές while/for δεν είναι "ισοδύναμες" Για παράδειγμα τα δυο παρακάτω τμήματα κώδικα στο τέλος δεν θα εμφανίσουν τον ίδιο αριθμό:
Κώδικας (python) [Επιλογή]

sum = 0
for i in range(10):
     sum += i
print i

Εδώ η for θα εμφανίσει στο τέλος τον αριθμό 9

ενώ η while παρακάτω
Κώδικας (python) [Επιλογή]

sum = 0
i = 0
while i<10 :
     sum += i
     i = i + 1
print i

θα εμφανίσει 10
Αυτό συμβαίνει διότι στη for η μεταβλητή i δεν αυξάνεται αλλά διατρέχει τα στοιχεία μιας λίστας όπως φαίνεται παρακάτω:
Κώδικας (python) [Επιλογή]

sum = 0
for i in [0,1,2,3,4,5,6,7,8,9]:
     sum += i
print i

Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: triantaf στις 23 Ιαν 2017, 02:01:50 ΜΜ
σωστα και ευχαριστώ , η προσπάθεια όμως μετατροπής δίνει την κατανόηση της διαφοράς
Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: evry στις 23 Ιαν 2017, 02:10:29 ΜΜ
σίγουρα οι ασκήσεις αυτές έχουν νόημα απλά η πρόταση είναι να δίνουμε μια εκφώνηση στην οποία να μην μιλάμε για ισοδύναμα τμήματα γιατί δεν υλοποιούν τα ίδια βήματα, αλλά για τμήματα κώδικα που εμφανίζουν τους ίδιους αριθμούς.
Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: dimitrios67 στις 23 Ιαν 2017, 10:10:52 ΜΜ
δηλ. η Python εχει "iterator" στο for....προχωρημενος προγραμματισμος....
Οι μαθητες μπορουν να ανταποκριθούν σε τετοιες εννοιες;
Η εμπειρια σας τι λεει;
Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: evry στις 23 Ιαν 2017, 10:50:46 ΜΜ
Στην τρίτη γυμνασίου που το δοκιμάζω μια χαρά ανταποκρίνονται.
Σαν έννοια είναι πιο εύκολο από την κλασική for που κρύβει τον μετρητή. Μπορεί εμάς να μας φαίνεται προχωρημένο γιατί έχουμε συνηθίσει αλλιώς.
Για παράδειγμα το παρακάτω τμήμα κώδικα:
Κώδικας (python) [Επιλογή]

for i in [4,6,8,10]:
   print i*i


μπορεί να εξηγηθεί ως εξής:

Κώδικας [Επιλογή]

Για κάθε αριθμό της λίστας [4,6,8,10]:
     Εμφάνισε το τετράγωνό του


Μπορεί κανείς να κάνει πιο απλά παραδείγματα όπως το παρακάτω:
Κώδικας (python) [Επιλογή]

for team in ['aek', 'paok', 'pao', 'ethnikos']:
     print team + ' ' + team

Δεν φαίνεται πουθενά δείκτης που να αυξάνεται κάτι που δυσκολεύει πολύ τους μαθητές στη for.
Απλά θα πρέπει από πριν να δείξει ο καθηγητής μερικά παραδείγματα με απλές λίστες στον διερμηνευτή.

ΥΓ. Το παραπάνω παράδειγμα το έκανα σε σχολείο του Πειραιά  >:D
Τίτλος: Απ: διαγωνισμα Python ΚΕΦ 3-5
Αποστολή από: triantaf στις 31 Ιαν 2017, 10:25:06 ΠΜ
αυτο ζητηθηκε απο τους μαθητες (.py file το επισυναπτομενο)