Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1 of 13

Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

1

Share

Η θεωρία του 2ου κεφ στην ΑΕΠΠ της Τεχνολογικής Κατεύθυνσης Γ' λυκείου.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

  1. 1. ΚΕΦΑΛΑΙΟ 2: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ 2.1 Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΣ είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση του προβλήματος.  Πεπερασμένη διαδικασία  Αυστηρώς καθορισμένες εντολές  Πεπερασμένος χρόνος εκτέλεσης  Επίλυση συγκεκριμένου προβλήματος Κριτήρια που απαραίτητα ικανοποιεί ένας αλγόριθμος: ΕΙΣΟΔΟΣ (input) : Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής ή με τη βοήθεια άλλων απλών εντολών. ΕΞΟΔΟΣ (output) : Ο αλγόριθμος πρέπει να παράγει ένα αποτέλεσμα είτε προς το χρήστη ή προς έναν άλλο αλγόριθμο. ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ (definiteness) : Τα βήματα του αλγόριθμου πρέπει να είναι σαφώς καθορισμένα ως προς τον τρόπο εκτέλεσής τους. Λόγου χάριν, μια εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέτης λαμβάνει μηδενική τιμή. Οι εντολές δηλαδή να είναι επακριβώς και αυστηρώς καθορισμένες, έτσι που η εκτέλεσή τους να γίνεται χωρίς καμία αμφιβολία και να μην απαιτούνται πρόσθετες επεξηγήσεις. ΠΕΡΑΤΟΤΗΤΑ (finiteness) : Ο αλγόριθμος πρέπει να τερματίζει μετά από πεπερασμένα βήματα εκτέλεσης εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure). ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ (effectiveness) : Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή και να είναι εκτελέσιμη. Η έννοια του αλγόριθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής. Ελένη Κοκκίνου Σελίδα 12
  2. 2. 2.3 Περιγραφή και αναπαράσταση αλγορίθμων Τρόποι αναπαράστασης αλγορίθμων  Ελεύθερο κείμενο (Free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης. Υπάρχει κίνδυνος να οδηγήσει σε μη εκτελέσιμη παρουσίαση, παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων το κριτήριο της αποτελεσματικότητας.  Διαγραμματικές τεχνικές (diagramming techniques): Αποτελούν ένα γραφικό τρόπο αναπαράστασης. Μια τεχνική (από τις πιο παλιές και γνωστές ) είναι το διάγραμμα ροής (Flow Chart). Η χρήση διαγρ. τεχνικών δεν είναι η καλύτερη λύση, γι’ αυτό εμφανίζονται όλο και σπανιότερα στην βιβλιογραφία και στην πράξη.  Φυσική γλώσσα κατά βήματα (natural language): Μοιάζει με το Ελεύθερο κείμενο απλά είναι κατά βήματα. Κίνδυνος να παραβιαστεί το κριτήριο της καθοριστικότητας.  Κωδικοποίηση (coding): Δηλαδή με ένα πρόγραμμα γραμμένο είτε με μία ψευδογλώσσα είτε σε κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο. Σύμβολα Διαγράμματος Ροής ΑΡΧΗ ΤΕΛΟΣ :έλλειψη: αρχή και τέλος αλγορίθμου ΑΡΧΗ ΤΕΛΟΣ Είσοδος πλάγιο παραλληλόγραμμο, δηλώνει είσοδο ή έξοδο στοιχείων Έξοδος Εκτέλεση : ορθογώνιο παραλληλόγραμμο, δηλώνει την εκτέλεση μίας ή πράξεων περισσοτέρων πράξεων. Αληθής Ψευδής ρόμβος, δηλώνει μια ερώτηση με δύο εξόδους για απάντηση. Συνθήκη Ελένη Κοκκίνου Σελίδα 13
  3. 3. ΑΡΧΉ ΑΡΗ Είσοδος Ψευδής Αληθής Συνθήκη Εκτέλεση πράξεων Εκτέλεση πράξεων Έξοδος Έξοδος ΤΕΛΟΣ Ελένη Κοκκίνου Σελίδα 14
  4. 4. 2.4 Βασικές συνιστώσες / εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας Σταθερές (constants): με τον όρο αυτό αναφερόμαστε σε προκαθορισμένες τιμές που παραμένουν αμετάβλητες σε όλη τη διάρκεια της εκτέλεσης ενός αλγορίθμου. Οι σταθερές διακρίνονται σε :  Αριθμητικές (ακέραιες και πραγματικές) π.χ. 123, -5.1, 1.25  Αλφαριθμητικές ή Χαρακτήρας, π.χ. ΄΄Τιμή’’, ‘‘5’’, ‘‘Δευτέρα’’  Λογικές που είναι ακριβώς δυο: Αληθής ή Ψευδής Μεταβλητές (variables): μια μεταβλητή είναι ένα γλωσσικό αντικείμενο, που χρησιμοποιείται για να παραστήσει ένα στοιχείο δεδομένου. Στη μεταβλητή εκχωρείται μια τιμή, η οποία μπορεί να αλλάζει κατά τη διάρκεια εκτέλεσης του αλγορίθμου. Ανάλογα με το είδος της τιμής που μπορούν να λάβουν, οι μεταβλητές διακρίνονται σε αριθμητικές (ακέραιες και πραγματικές), αλφαριθμητικές (χαρακτήρες) και λογικές. o Υπάρχουν 3 είδη μεταβλητών ανάλογα με το ρόλο τους στην εκτέλεση του αλγορίθμου: μεταβλητές δεδομένων, μεταβλητές αποτελεσμάτων και βοηθητικές μεταβλητές. Στο όνομα της μεταβλητής δεν επιτρέπονται:  Κενά διαστήματα  Σύμβολα πράξεων  Σημεία στίξης  Όχι μόνο αριθμοί ή το όνομα να αρχίζει από αριθμό  Όχι δεσμευμένες λέξεις Τελεστές (operators): Πρόκειται για τα γνωστά σύμβολα που χρησιμοποιούνται στις πράξεις. Οι τελεστές διακρίνονται σε: αριθμητικούς, λογικούς και συγκριτικούς. Εκφράσεις (expressions) : οι εκφράσεις είναι παραστάσεις που διαμορφώνονται από συνδυασμούς τελεστών και τελεστέων (μεταβλητών, σταθερών και αριθμών). Στις εκφράσεις σκοπός είναι ο υπολογισμός της τιμής της παράστασης. Η εκτέλεση των πράξεων εξαρτάται από την ιεραρχία των αριθμητικών και λογικών τελεστών. Μια έκφραση μπορεί να αποτελείται από μια μόνο μεταβλητή ή σταθερά μέχρι μια πολύπλοκη μαθηματική πρόταση. Αριθμητικοί τελεστές: 1. Πρόσθεση + 13 3 2. Αφαίρεση – 3. Πολλαπλασιασμός * 1 4 4. Διαίρεση / 5. Ύψωση σε δύναμη ^ div mod 6. Ακέραιο πηλίκο διαίρεσης div 7. Υπόλοιπο ακέραιας διαίρεσης mod Iεραρχία αριθμητικών πράξεων:  ύψωση σε δύναμη  Διαίρεση, πολλαπλασιασμός, div και mod  Πρόσθεση, αφαίρεση Ελένη Κοκκίνου Σελίδα 15
  5. 5. Αν υπάρχουν σε μια έκφραση τελεστές της ίδιας ιεραρχίας τότε οι πράξεις εκτελούνται από αριστερά προς τα δεξιά. Η ακολουθιακή δομή εντολών (σειριακών βημάτων) χρησιμοποιείται πρακτικά για την αντιμετώπιση απλών προβλημάτων, όπου είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών π.χ. Συνταγή μαγειρικής. Κατά την ακολουθιακή εκτέλεση οι εντολές εκτελούνται διαδοχικά η μία μετά την άλλη. Δεσμευμένες λέξεις ονομάζονται οι λέξεις που έχουν αυστηρά προκαθορισμένη σημασία και χρησιμεύουν είτε στο να κάνουν πιο ομοιόμορφη τη γλώσσα του κώδικα (π.χ. Αλγόριθμος, Αρχή, Τέλος) είτε στο να περιγράψουν τις εντολές της ψευδογλώσσας (π.χ. διάβασε, γράψε). Παράδειγμα: Ανάγνωση και εκτύπωση αριθμών: Να διαβασθούν δύο αριθμοί, να υπολογισθεί και να εκτυπωθεί το άθροισμά τους. Αλγόριθμος Παράδειγμα Διάβασε α Διάβασε β Εισαγωγή Δεδομένων γ ← α+β Εκχώρηση τιμής Εμφάνιση αποτελέσματος Εμφάνισε γ Εκτύπωσε γ Εκτύπωσε “το αποτέλεσμα είναι:”, γ Τέλος Παράδειγμα  Αρχίζει πάντα με τη λέξη Αλγόριθμος και το όνομα του αλγορίθμου.  Εισαγωγή δεδομένων (Διάβασε)  Εκχώρηση τιμής : Μεταβλητή ← Έκφραση (γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα μεταδίδεται, μεταβιβάζεται, εκχωρείται στην μεταβλητή.)  Αποδίδει το αποτέλεσμα : Εμφάνιση, εκτύπωση, αποτυπώνει το τελικό αποτέλεσμα στην οθόνη ή στον εκτυπωτή αντίστοιχα (Εμφάνισε, Εκτύπωσε).  Τελειώνει πάντα με τη λέξη Τέλος και το όνομα του αλγορίθμου. Tα σχόλια είναι επεξηγηματικές φράσεις που μπορούν να προστεθούν σε οποιοδήποτε σημείο του αλγορίθμου. Τα σχόλια εισάγονται με το θαυμαστικό !. Ότι ακολουθεί το θαυμαστικό δεν εκτελείται. Οι εντολές διακρίνονται επίσης σε δηλωτικές και σε εκτελέσιμες. Δηλωτικές Εκτελέσιμες Αλγόριθμος Διάβασε χ Ελένη Κοκκίνου Σελίδα 16
  6. 6. Λογική Συνθήκη είναι μία έκφραση, η οποία μπορεί να εκτιμηθεί είτε ως αληθής είτε ως ψευδής και συντάσσεται : Παράσταση1 τελεστής σύγκρισης Παράσταση2 Όπου: Παράσταση: μπορεί να είναι μια τιμή, μια μεταβλητή ή μια μαθηματική παράσταση. Τελεστής σύγκρισης: > μεγαλύτερο < μικρότερο > = μεγαλύτερο ή ίσο =< μικρότερο ή ίσο = ίσο <> διάφορο Λογικοί τελεστές είναι: Άρνηση της οποίας το αποτέλεσμα είναι αληθές όταν η λογική συνθήκη είναι ψευδής, ενώ είναι ψευδές όταν η λογική συνθήκη είναι αληθής. όχι (Λογική συνθήκη) Σύζευξη της οποίας το αποτέλεσμα είναι αληθές όταν και οι δυο λογικές συνθήκες είναι αληθείς (διαφορετικά είναι ψευδές). Λογική συνθήκη 1 και Λογική συνθήκη 2 Διάζευξη της οποίας το αποτέλεσμα είναι αληθές όταν τουλάχιστον μία από τις δύο λογικές συνθήκες είναι αληθής. Μόνο όταν και οι δυο συνθήκες είναι ψευδείς τότε το αποτέλεσμα της διάζευξης είναι ψευδές. Λογική συνθήκη 1 ή Λογική συνθήκη 2 Τη μεγαλύτερη προτεραιότητα την έχει η άρνηση, ακολουθεί η σύζευξη και την μικρότερη την έχει η διάζευξη. Πάραυτα προσοχή στις παρενθέσεις. Σ2 Σ1 ή Σ2 Όχι(Σ2) Σ1 Σ1 και Σ2 Αληθής αληθής αληθής Αληθής ψευδής Αληθής ψευδής ψευδής Αληθής Αληθής Ψευδής αληθής ψευδής Αληθής ψευδής Ψευδής ψευδής ψευδής Ψευδής αληθής Με τον όρο αλγοριθμική δομή εννοούμε τον τρόπο με τον οποίο εκτελείται ένα συγκεκριμένο πλήθος εντολών ενός αλγορίθμου. Κατά την ακολουθιακή εκτέλεση οι εντολές εκτελούνται διαδοχικά η μία μετά την άλλη. Ελένη Κοκκίνου Σελίδα 17
  7. 7. 2.4.2 Δομή επιλογής  Μια σειρά από εντολές εκτελούνται κάτω από ορισμένες προϋποθέσεις.  Εκεί χρησιμοποιείται η δομή επιλογής  Αρχικά ελέγχεται μια λογική συνθήκη.  Ακολουθεί εκτέλεση ή όχι μιας σειράς ενεργειών με βάση την τιμή της λογικής συνθήκης. Αν συνθήκη τότε Αν συνθήκη τότε Εντολή_1 Εντολή_1 Εντολή_2 αλλιώς Τέλος_αν Εντολή_2 Τέλος_αν Οι εντολές εκτελούνται μόνο όταν η συνθήκη είναι αληθής. Η Εντολή_1 εκτελείται μόνο όταν η συνθήκη είναι αληθής, ενώ η εντολή_2 εκτελείται μόνο όταν η συνθήκη είναι ψευδής. 2.4.3 Διαδικασίες πολλαπλών επιλογών Αν συνθήκη1 τότε Εντολή_1 Αλλιώς_αν συνθήκη2 τότε Εντολή_2 Αλλιώς_αν συνθήκη3 τότε Εντολή_3 Αλλιώς Εντολή_4 Τέλος_αν Εκτελούνται οι εντολές που βρίσκονται στο αντίστοιχο τμήμα που η συνθήκη είναι αληθής. 2.4.4 Εμφωλευμένες Διαδικασίες Πολλαπλές επιλογές μπορούν να γίνουν και με μία εμφωλευμένη δομή. Στις περιπτώσεις αυτές η συνθήκη είναι αρκετά πιο δύσκολη, δηλαδή εμπεριέχει αποφάσεις που πιθανόν να βασίζονται σε περισσότερα από ένα κριτήρια. Στις περιπτώσεις αυτές μπορεί να γίνει χρήση των λογικών πράξεων. Ελένη Κοκκίνου Σελίδα 18
  8. 8. Παράδειγμα: Αν βάρος > 80 τότε Αν ύψος > 1.80 τότε Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’ Αλλιώς Εμφάνισε ‘‘το άτομο έχει βάρος πάνω από το κανονικό’’ Τέλος_αν Αλλιώς Αν ύψος > 1.80 τότε Εμφάνισε ‘‘το άτομο είναι αδύνατο’’ Αλλιώς Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’ Τέλος_αν Τέλος_αν Ελένη Κοκκίνου Σελίδα 19
  9. 9. 2.4.5 Δομή επανάληψης Οι επαναληπτικές δομές αλγορίθμων είναι οι εξής:  Όσο ….επανάλαβε…τέλος_επανάληψης  Αρχή_επανάληψης … μέχρις_ότου  Για …από…μέχρι… με_βήμα… τέλος_επανάληψης Όσο …Επανάλαβε Συνθήκη συνέχειας Όσο η συνθήκη είναι αληθής, εκτελείται το σύνολο των εντολών που απαρτίζουν την ομάδα εντολών. Όσο συνθήκη επανάλαβε Ομάδα Εντολών Αληθής Τέλος_επανάληψης Εκτέλεση Συνθήκ ομάδας η εντολών Ψευδής Βήμα 1: Ελέγχεται, αν η τιμή της συνθήκης συνέχειας είναι αληθής. Αν αυτό ισχύει, τότε πηγαίνουμε στο βήμα 2, ενώ αν όχι πηγαίνουμε στο βήμα3. Βήμα 2: Εκτελούνται όλες οι εντολές της ομάδας εντολών και στη συνέχεια πηγαίνουμε στο βήμα 1. Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη εντολή μετά το τέλος_επανάληψης. Όταν χρησιμοποιείτε τις δυο πρώτες δομές επανάληψης μην ξεχνάτε να συμπεριλαμβάνετε μια εντολή η οποία θα αλλάζει την τιμή στη συνθήκη της επανάληψης. Αν δεν υπάρχει τέτοιου είδους εντολή τότε είναι πολύ πιθανό να μην πληρείται το κριτήριο της περατότητας στη συγκεκριμένη δομή επανάληψης και έτσι να δημιουργείται ατέρμων βρόχος. Ελένη Κοκκίνου Σελίδα 20
  10. 10. Αρχή_επανάληψης …. Μέχρις_ότου Συνθήκη τερματισμού Επαναλαμβάνεται η εκτέλεση της ομάδας εντολών, μέχρι η συνθήκη τερματισμού να γίνει αληθής. Βήμα 1: Εκτελούνται όλες οι εντολές της ομάδας εντολών. Βήμα 2: Ελέγχεται η συνθήκη τερματισμού. Αν αυτή είναι ψευδής, η εκτέλεση συνεχίζεται με το βήμα 1, ενώ αν είναι αληθής, η εκτέλεση συνεχίζεται με το βήμα 3. Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται αμέσως η επόμενη εντολή μετά το μέχρις_ότου συνθήκη. Εκτέλεση ομάδας Αρχή_επανάληψης εντολών Ομάδα Εντολών Μέχρις_ότου συνθήκη Ψευδής Συνθήκ η Αληθής Για …από…μέχρι… με_βήμα… τέλος_επανάληψης Γνωστός αριθμός επαναλήψεων Αρχικά ο μετρητής παίρνει την αρχική τιμή ατ. Όσο ο μετρητής βρίσκεται στο διάστημα μεταξύ αρχικής και τελικής τιμής, τότε εκτελείται η ομάδα εντολών και στη συνέχεια ο μετρητής μεταβάλλεται κατά μβ. Βήμα 1: Η μεταβλητή μτ παίρνει την αρχική τιμή ατ. Βήμα 2: Ελέγχεται η συνθήκη: μτ<=ττ αν το βήμα είναι θετικό ή μτ>=ττ αν το βήμα είναι αρνητικό. Αν η συνθήκη αυτή είναι αληθής, τότε πηγαίνουμε στο βήμα 3, ενώ αν είναι ψευδής, πηγαίνουμε στο βήμα 4. Ελένη Κοκκίνου Σελίδα 21
  11. 11. Βήμα 3: Εκτελούνται όλες οι εντολές της ομάδας εντολών και αυξάνει το περιεχόμενο του μετρητή κατά μβ. Στη συνέχεια πηγαίνουμε στο βήμα2. Βήμα 4: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη εντολή μετά το τέλος_επανάληψης. Για μτ από ατ μέχρι ττ με_βήμα μβ Ομάδα Εντολών μτ ← ατ Τέλος_επανάληψης Αληθής Εκτέλεση Συνθήκ ομάδας η εντολών μτ ← μτ + μβ Ψευδής Βασικά χαρακτηριστικά και διαφορές των τριών δομών επανάληψης Όσο …επανέλαβε: Είναι η βασικότερη δομής επανάληψης. Τα βασικά χαρακτηριστικά της είναι ότι: 1) η ομάδα εντολών εκτελείται καθ΄ όλη τη διάρκεια που η συνθήκη επανάληψης είναι αληθής και 2) υπάρχει περίπτωση αν η συνθήκη είναι εξ αρχής ψευδής οι εντολές να μην εκτελεστούν ούτε μία φορά. Οποιαδήποτε επαναληπτική διαδικασία μπορεί να εκφραστεί με αυτήν την συνθήκη. Αρχή_επανάληψης …μέχρις_ότου: το πόσες φορές θα εκτελεστεί η ομάδα εντολών καθορίζεται από τον έλεγχο μια συνθήκης όπως και η προηγούμενη δομή επανάληψης. Διαφέρει όμως από την προηγούμενη στο εξής: 1) η ομάδα εντολών εκτελείται καθ’ όλη τη διάρκεια που η συνθήκη επανάληψης είναι ψευδής. 2) η ομάδα εντολών θα εκτελεστεί τουλάχιστον μία φορά, ανεξάρτητα από το αν η συνθήκη είναι αληθής ή ψευδής. Για το λόγο αυτό, η δομή αυτή δεν μπορεί να εκφράσει οποιαδήποτε επαναληπτική διαδικασία. Για ..από..μέχρι. : Η δομή αυτή επανάληψης δεν ελέγχει άμεσα κάποια συνθήκη για να αποφασίσει τον τερματισμό των επαναλήψεων. Η χρήση της περιορίζεται μόνο σε εκείνες τις περιπτώσεις που γνωρίζουμε εκ των προτέρων τον αριθμό των επαναλήψεων που πρέπει να εκτελεστούν. Παρολαυτά αποτελεί την πιο απλή και κατανοητή δομή επανάληψης σε σχέση με τις άλλες δυο δομές. Ελένη Κοκκίνου Σελίδα 22
  12. 12. Ολίσθηση (Shift) Στα κυκλώματα του Η/Υ τα δεδομένα αποθηκεύονται με δυαδική μορφή, δηλαδή με αποκλειστική χρήση των ψηφίων 0 και 1. Για παράδειγμα, ο αριθμός 17 στο δεκαδικό σύστημα, στο δυαδικό είναι ο 10001, με χρήση 5 δυαδικών ψηφίων (bits), ενώ με 8 δυαδικά ψηφία (1 byte) είναι ο 00010001. Αν μετακινήσουμε τα ψηφία αυτά κατά μια θέση αριστερά (ολίσθηση αριστερά, shift left), αγνοήσουμε το πρώτο μηδενικό και συμπληρώσουμε με ένα μηδενικό από τα δεξιά, ο αριθμός που προκύπτει είναι ο 00100010, δηλαδή ο 34 στο δεκαδικό σύστημα, επιτυγχάνουμε λοιπόν τον πολλαπλασιασμό επί δυο του αρχικού μας αριθμού. Αντίθετα, αν μετακινήσουμε τα ψηφία αυτά κατά μια θέση δεξιά (ολίσθηση δεξιά, shift right), αγνοήσουμε την τελευταία μονάδα και συμπληρώσουμε με ένα μηδενικό από τα αριστερά, ο αριθμός που προκύπτει είναι ο 00001000, δηλαδή ο 8 στο δεκαδικό σύστημα, επιτυγχάνουμε λοιπόν την διαίρεση δια δυο (αγνοώντας τα όποια δεκαδικά ψηφία) του αρχικού μας αριθμού. 0 0010001 0 0 0001000 1 Ολίσθηση προς τα αριστερά Ολίσθηση προς τα δεξιά Άρα η ολίσθηση προς τα αριστερά ισοδυναμεί με πολλαπλασιασμό επί δυο, ενώ η ολίσθηση προς τα δεξιά ισοδυναμεί με ακέραια διαίρεση δια δυο. Πολλαπλασιασμός Αλά Ρωσικά Η πράξη του πολλαπλασιασμού ακέραιων αριθμών δεν εκτελείται από τον Η/Υ όπως την υλοποιούμε εμείς χειρονακτικά, αλλά με τη μέθοδο του πολλαπλασιασμού αλά ρωσικά. Οι Η/Υ χρησιμοποιούν αυτή τη μέθοδο γιατί υλοποιείται πιο απλά από την χειρωνακτική μέθοδο. Πιο συγκεκριμένα, απαιτεί πολλαπλασιασμό επί δυο (ολίσθηση προς τα αριστερά), διαίρεση (div) δια δυο (ολίσθηση προς τα δεξιά) και πρόσθεση. Σε επίπεδο κυκλωμάτων υπολογιστή ο πολλαπλασιασμός επί δυο και η διαίρεση (div) δια δυο μπορούν να υλοποιηθούν ταχύτατα με μια απλή εντολή ολίσθησης (shift), σε αντίθεση με τον πολλαπλασιασμό με οποιοδήποτε ακέραιο (πέραν του δυο) που θεωρείται πιο χρονοβόρα διαδικασία. Για το λόγο αυτό ο πολλαπλασιασμός αλά ρωσικά είναι προτιμότερος για τον πολλαπλασιασμό δυο ακεραίων. Περιγραφή αλγορίθμου με ελεύθερο κείμενο Έστω ότι δίνονται δυο θετικοί ακέραιοι αριθμοί (ο αλγόριθμος μπορεί να λειτουργήσει και για αρνητικούς ακέραιους αριθμούς με μια μικρή τροποποίηση), ο 45 και ο19. Ο ένας από αυτούς πολλαπλασιάζεται επί δυο και ο άλλος διαιρείται δια δυο, αγνοώντας το ενδεχόμενο δεκαδικό μέρος (πράξη Div). Στην περίπτωση που ο αριθμός που διαιρείται είναι περιττός προστίθεται σε έναν αθροιστή ο έτερος Ελένη Κοκκίνου Σελίδα 23
  13. 13. αριθμός, αυτός δηλαδή που πολλαπλασιάζεται. Ακολουθείται η ίδια διαδικασία βηματικά, μέχρι ο αριθμός που από την αρχή τυχαία αποφασίσαμε ότι θα διαιρείται φθάσει να γίνει μηδέν. Το τελικό γινόμενο είναι ο αθροιστής. Αριθμός που πολ/ται Αριθμός που διαιρ/ται Αθροιστής 45 19 (περιττός) 45 90 9 (περιττός) 90 180 4 (άρτιος) 360 2 (άρτιος) 720 1 (περιττός) 720 Αποτέλεσμα 855 Περιγραφή αλγορίθμου με φυσική γλώσσα κατά βήματα Αλγόριθμος: Πολλαπλασιασμός δυο θετικών ακεραίων Είσοδος: δυο ακέραιοι Μ1 και Μ2, όπου Μ1, Μ2≥1 Έξοδος: Το γινόμενο Ρ=Μ1*Μ2 Βήμα 1 Θέσε Ρ=0 Βήμα 2 Αν Μ2>0, πήγαινε στο βήμα 3, αλλιώς πήγαινε στο βήμα 7 Βήμα 3 Αν ο Μ2 περιττός, θέσε Ρ=Ρ+Μ1 Βήμα 4 Θέσε Μ1=Μ1*2 Βήμα 5 Θέσε Μ2=Μ2/2 (θεώρησε μόνο το ακέραιο μέρος) Βήμα 6 Πήγαινε στο βήμα 2 Βήμα 7 Τύπωσε τον Ρ Περιγραφή αλγορίθμου με ψευδοκώδικα Αλγόριθμος Πολ_αλά_Ρωσικά Διάβασε Μ1, Μ2 Ρ← 0 Όσο Μ2 > 0 επανάλαβε Αν Μ2 mod 2 = 1 τότε Ρ ← Ρ + Μ1 Τέλος_αν Μ1 ← Μ1 * 2 Μ2 ← Μ2 div 2 Τέλος_επανάληψης Εκτύπωσε Ρ Τέλος Πολ_αλά_Ρωσικά Ελένη Κοκκίνου Σελίδα 24

×