GiorgosVon Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 1 2η Εργασία (Project) Σκοπός της εργασίας είναι να φτιάξετε ένα πρόγραμμα που διαβάζει το κείμενο με όνομα text.txt, το οποίο βρίσκεται στον ίδιο κατάλογο με το πρόγραμμα σας, το κωδικοποιεί και τυπώνει το κωδικοποιημένο κείμενο σε ένα νέο αρχείο με όνομαmathXXXX crypt text.txt, όπου XXXX είναι ο ΑΜ σας. Για την κωδικοποίηση να χρησιμοποιήσετε τη συναρτήση subscrypto() που παρουσιάστηκε στο μάθημα (Μπορείτε να την κατε- βάσετε από την ιστοσελίδα του μαθήματος). Ως κλειδί της κωδικοποίησης θα πρέπει χρησιμοποιήσετε μια μετατόπιση της αγγλικής αλφαβήτου κα- τά ένα φυσικό αριθμό από 0 έως 25. ΄Ετσι μια μετατόπιση κατά 3 της αγγλικής αλφαβήτου είναι: ‘defghijklmnopqrstuvwxyzabc’. Υπενθύμιση: Η κωδικοποίηση με την παραπάνω μέθοδο γίνεται με την αντικατάσταση κάθε γράμματος της αλφαβήτου με ένα γράμμα από το κλειδί. Η επιλογή γίνεται με βάση τον αριθμό της θέσης κάθε γράμματος στην αλφάβητο. ΄Ετσι όποτε συναντάμε το γράμμα ‘a’ σε ένα κείμενο το αντικαθιστούμε με το πρώτο γράμμα από το κλειδί, το γράμμα ‘b’ με το δεύτερο γράμμα από το κλειδί κ.ο.κ. Παραδείγματος χάριν έστω ότι το αρχείο text.txt είναι το ακόλουθο: Do not worry about your difficulties in Mathematics I can assure you mine are still greater Τότε η εκτέλεση του προγράμματος που έγραψε ο φοιτητής με ΑΜ 3111, για να κωδικοποιήσει το παραπάνω κείμενο τυπώνει στην οθόνη τα ακόλουθα, όπου με έντονα γράμματα (bold) είναι η είσοδος που πληκτρο- λόγησε ο χρήστης. Welcome to the cipher program of math3111. Enter the integer to rotate the alphabet (0-25):3 Crypted text written in math3111 crypted text.txt 1 2 Το αρχείο math3111 crypted text.txt που θα δημιουργηθεί από την παραπάνω εκτέλεση θα είναι: Crypted text by math3111: gr qrw zruub derxw brxu gliilfxowlhv lq pdwkhpdwlfv l fdq dvvxuh brx plqh duh vwloo juhdwhu End of crypted text. Για την υλοποίηση του προγράμματος σας θα χρειαστείτε να φτιάξετε τις ακόλουθες συναρτήσεις 1. Τη συνάρτηση readfile(): Παίρνει ως όρισμα ένα string, με όνομα filename, το οποίο είναι το όνομα του αρχείου που θα διαβάσει, και επιστρέφει μια λίστα με όνομα lines, που κάθε στοιχείο της θα είναι μια γραμμή του αρχείου filename. def readfile(filename): # Python code return lines 2. Τη συνάρτηση writefile(): Παίρνει ως όρισματα, ένα string με όνομα new filename, και μια λίστα με όνομα new lines και δημιουργεί το αρ- χείο με όνομα το new filename και σε κάθε γραμμή του αρχείου γράφει κάθε στοιχείο της λίστας new lines. Υπενθύμιση: Για να γράψουμε το στοιχείο [k] της λίστας ως μια γραμμή και το [k + 1] ως μια νέα γραμμή σε ένα αρχείο, πρέπει ως τελευταίο χαρακτήρα στο [k] να είναι το ”\n”. def writefile(new_filename, new_lines): # Python code 3. Τη συνάρτηση rotate(): Παίρνει ως όρισμα έναν φυσικό αριθμό από το 0 έως το 25 και επιστρέφει τα γράμματα της αγγλικής αλφαβήτου μετατοπισμένα κατά αυτό τον αριθμό δηλαδή το rotate(0) επιστρέφει την αλφάβητο ‘abcdefghijklmnopqrstuvwxyz’, χωρίς μετατόπιση. Ε- νώ το rotate(3) επιστρέφει ‘defghijklmnopqrstuvwxyzabc’, δηλαδή τα 3 πρώτα γράμματα έχουν πάει με την ίδια σειρά που είχαν στο τέλος. def rotate(num): # Python code # key is the rotated alphabet the function returns return key Χρήσιμες εντολές που μπορεί να σας βοηθήσουν είναι οι ακόλουθες όπου lst είναι μια λίστα: 3 • lst.append(obj): προσθέτει το αντικέιμενο obj στο τέλος της λίστας • len(lst): μήκος λίστας • [ ]: κενή λίστα Παράδοση Θα πρέπει να υποβάλετε το πρόγραμμα σας mathXXXX.py, όπου XXXX ο αριθμός μητρώου σας, στο ηλεκτρονικό σύστημα που βρίσκεται στη σε- λίδα http://euler.math.uoc.gr/ moodle/moodle1314/course/view.php?id=7. Για να μπορέσετε να υποβάλετε ηλεκτρονικά την εργασία σας πρέπει να εγγραφείτε πρώτα στο ηλεκτρονικό σύστημα που βρίσκεται στην παρα- πάνω διεύθυνση και στη συνέχεια και στο μάθημα που βρίσκεται στην πα- ραπάνω σελίδα. Η εξέταση της άσκησης θα γίνει με ηλεκτρονικό τρόπο, δηλαδή ο υπολογιστής θα τρέξει το πρόγραμμα που έχεται υποβάλει για διάφορες περιπτώσεις και θα ελέγξει το αποτέλεσμα. Προγράμματα που δεν έχουν τη μορφή mathXXXX.py δεν θα βαθμολο- γηθούν. οποιος μπορει να με βοηθησει να την υλοποιησω του ειμαι ευγνωμων....... οποιος μπορε να με βοηθησει να την υλοποιησω ...του ευγνωμων Project2.pdf Project2.pdf 1
djcat Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 ΠαράδοσηΘα πρέπει να υποβάλετε το πρόγραμμα σας mathXXXX.py, όπου XXXX ο αριθμός μητρώου σας, στο ηλεκτρονικό σύστημα που βρίσκεται στη σε- λίδα http://euler.math.uoc.gr/ moodle/moodle1314/course/view.php?id=7. Για να μπορέσετε να υποβάλετε ηλεκτρονικά την εργασία σας πρέπει να εγγραφείτε πρώτα στο ηλεκτρονικό σύστημα που βρίσκεται στην παρα- πάνω διεύθυνση και στη συνέχεια και στο μάθημα που βρίσκεται στην πα- ραπάνω σελίδα. Η εξέταση της άσκησης θα γίνει με ηλεκτρονικό τρόπο, δηλαδή ο υπολογιστής θα τρέξει το πρόγραμμα που έχεται υποβάλει για διάφορες περιπτώσεις και θα ελέγξει το αποτέλεσμα. Προγράμματα που δεν έχουν τη μορφή mathXXXX.py δεν θα βαθμολο- γηθούν. Γράψε μου μόνο και τον κωδικό σου σε pm, για να τη στείλω κιόλας - μην κουραστείς και πάθεις τίποτα! 9
Επισκέπτης Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Γράψε μου μόνο και τον κωδικό σου σε pm, για να τη στείλω κιόλας - μην κουραστείς και πάθεις τίποτα! εχω την αισθηση οτι θα το κανει
djcat Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 [spoiler-- εχω την αισθηση οτι θα το κανει Το έκανε! 1
GiorgosVon Δημοσ. 23 Νοεμβρίου 2013 Μέλος Δημοσ. 23 Νοεμβρίου 2013 αχαχχαχαχααχ ...παιζεται με τον πονο μου.....δεν ξερω και καλα το σιτε...
iodna2006 Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 προσπάθησες να κάνεις κάτι ή δε ξέρεις που πάνε τα 4?
bnvdarklord Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Τι εχεις γραψει ως τωρα, να σε βοηθισουμε στα σημεια που κολλας.
GiorgosVon Δημοσ. 23 Νοεμβρίου 2013 Μέλος Δημοσ. 23 Νοεμβρίου 2013 μας αλλαξαν την γλωσσα την τελευταια εβδομαδα .... μας πλακωσα στις ωρες και τωρα απαιτουν εργασια...... ναι την ξεκινησα ... αλλα μου την εβγαζε λαθως.... και αγανακτησα..... δεν ξερω πως να ανοιξω το αρχειο ... και επειτα να το περασω σε λιστα....
djcat Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 f = open('filename', 'r') f.read() f.readline() f.readlines() Τώρα έμαθες... Ψάξε και λίγο μόνος σου...
GiorgosVon Δημοσ. 23 Νοεμβρίου 2013 Μέλος Δημοσ. 23 Νοεμβρίου 2013 def subscrypto(text,key):alphabet='abcdefghijklmnopqrstuvwxyz 'text=text.lower()crypt_text=''for ch in text:idx=alphabet.find(ch)crypt_text=crypt_text+key[idx]return crypt_textkey1='zyxwvutsrqponmlkjihgfedcba 'text='The quick brown fox'print(subscrypto(text,key1)) εχω αλλη μια απορια ... στο κομματι της κωδικοποιησης... που θελω να το κανω με την εντολη subscrypto δεν καταλαβαινω στο παραδειγμα που μου δινει πως το κωδικοποιει ..... δηλαδη το αντοιστοιχο δικο πως θα πρεπει να το γραψω?
Amitiel Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Μπορει καποιος να μας δωσει ενα σχεδιαγραμμα , δεν ξερουμε που μας παν τα 4 ! Ο ο βαθμος δυσκολιας για καθε εργασια εξφεδονιζεται στο θεο καθε βδομαδα ! Εγω προσωπικα βλεπω πρωτη φορα στη ζωη μου προγραμματισμο.
jimex Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Η συγκεκριμένη εργασία θα πρέπει να είναι παιχνίδι, ακόμη και για begginers, ειδικά με την ανάλυση που πέφτει στην εκφώνηση. Το να κάτσει κάποιος να τη ξεπετάξει σε μερικά λεπτά και να σου δώσει έτοιμο κώδικα δε πρόκειται να σε βοηθήσει. Αν δε μπορείς να λύσεις αυτό, γενικώς δεν... Edit: Αν ήμουν εγώ ο καθηγητής, θα προέβλεπα και το γράψιμο script από το φοιτητή που να ποστάρει την εργασία...
Dr.Fuzzy Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Στρώστε τον απ´αυτό σας κάτω και διαβάστε! Έτοιμο δεν... 1
GiorgosVon Δημοσ. 23 Νοεμβρίου 2013 Μέλος Δημοσ. 23 Νοεμβρίου 2013 αν δεν ενδιαφερομουν δεν θα εφτανα σε αυτη την κατασταση να συμβουλευομαι ενα Φορουμ ..... γιατι υποτιθεται το συστημα λειτουργει πολυ σωστα ετσι ωστε οι φοιτητες .. παρακολουθωντα τα μαθηματα τους να μπορουν ευκολα να τα λυσουν... ///// παραπανω ειχα μια απορια.... στην οποια δεν πηρα απαντηση.....δεν ζητησα να μου γραψει κανεις την εργασια.... δυστηχως γραφουμε & και μιλαμε την ιδια γλωσσα και καταλαβαινουμε αλλα........το κακο ειναι οτι ολοι οι Ελληνες προσπαθουν να διακριθουν ατομικα ....αλλα οχι σαν λαος βοηθωντας ο ενας τον αλλον ....γι αυτο μας την βγαινουμε παντου με κοκκινο....... (οσο για την εργασια θελω απλα να πληροφορησω οτι χωρις να πει ο καθητης 5 λογια για την python μας ειπε θελω την εργασια εως την Δευτερα .... και σημειωσεις οπως στο μαθημα που λεει ...ΔΕΝ υπαρχουν ....ουτε βιβλια εχει το μαθημα ...αλλα η γενικη παραδωση του μαθηματος γινεται μεσω παραδειγματων )--αλλα αν ησασταν καθητες εσεις θα τα κανατε ολα καλυτερα.... ευχαριστω..
jimex Δημοσ. 23 Νοεμβρίου 2013 Δημοσ. 23 Νοεμβρίου 2013 Ζητάς δηλαδή python book for begginers; Σοβαρά ρωτάω. Αν όντως θες να μάθεις python από την αρχή, να σου προτείνουμε, αν και με 1 λεπτό ψάξιμο στο google θα βρεις αρκετές προτάσεις. Είναι σαν παιδί πρώτης δημοτικού να έχει να κάνει προσθέσεις 2 + 2. Μπορεί για το ίδιο να φαίνονται βουνό επειδή δεν έχει ιδέα, αλλά πέρα από το να του δώσεις να διαβάσει τον τρόπο, δεν υπάρχει κάποια εξήγηση, πέρα από το να του πεις την απάντηση. 'nough said...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα