SlideShare ist ein Scribd-Unternehmen logo
1 von 13
ΚΕΦΑΛΑΙΟ 2: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

2.1 Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΣ είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων
και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση του
προβλήματος.
    Πεπερασμένη διαδικασία
    Αυστηρώς καθορισμένες εντολές
    Πεπερασμένος χρόνος εκτέλεσης
    Επίλυση συγκεκριμένου προβλήματος

                 Κριτήρια που απαραίτητα ικανοποιεί ένας αλγόριθμος:

ΕΙΣΟΔΟΣ (input) : Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται
ως είσοδοι στον αλγόριθμο.

Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος
δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων
παραγωγής ή με τη βοήθεια άλλων απλών εντολών.

ΕΞΟΔΟΣ (output) : Ο αλγόριθμος πρέπει να παράγει ένα αποτέλεσμα είτε προς το
χρήστη ή προς έναν άλλο αλγόριθμο.

ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ (definiteness) : Τα βήματα του αλγόριθμου πρέπει να είναι
σαφώς καθορισμένα ως προς τον τρόπο εκτέλεσής τους.

Λόγου χάριν, μια εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο
διαιρέτης λαμβάνει μηδενική τιμή. Οι εντολές δηλαδή να είναι επακριβώς και
αυστηρώς καθορισμένες, έτσι που η εκτέλεσή τους να γίνεται χωρίς καμία αμφιβολία
και να μην απαιτούνται πρόσθετες επεξηγήσεις.

ΠΕΡΑΤΟΤΗΤΑ (finiteness) : Ο αλγόριθμος πρέπει να τερματίζει μετά από
πεπερασμένα βήματα εκτέλεσης εντολών του.

Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν
αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational
procedure).

ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ (effectiveness) : Κάθε μεμονωμένη εντολή του
αλγορίθμου να είναι απλή και να είναι εκτελέσιμη.




 Η έννοια του αλγόριθμου δεν συνδέεται αποκλειστικά και μόνο
              με προβλήματα της Πληροφορικής.



Ελένη Κοκκίνου                                                          Σελίδα 12
2.3 Περιγραφή και αναπαράσταση αλγορίθμων
         Τρόποι αναπαράστασης αλγορίθμων
             Ελεύθερο κείμενο (Free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο
               τρόπο παρουσίασης. Υπάρχει κίνδυνος να οδηγήσει σε μη εκτελέσιμη
               παρουσίαση, παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων
               το κριτήριο της αποτελεσματικότητας.
             Διαγραμματικές τεχνικές (diagramming techniques): Αποτελούν ένα
               γραφικό τρόπο αναπαράστασης. Μια τεχνική (από τις πιο παλιές και
               γνωστές ) είναι το διάγραμμα ροής (Flow Chart). Η χρήση διαγρ. τεχνικών
               δεν είναι η καλύτερη λύση, γι’ αυτό εμφανίζονται όλο και σπανιότερα στην
               βιβλιογραφία και στην πράξη.
             Φυσική γλώσσα κατά βήματα (natural language): Μοιάζει με το Ελεύθερο
               κείμενο απλά είναι κατά βήματα. Κίνδυνος να παραβιαστεί το κριτήριο της
               καθοριστικότητας.
             Κωδικοποίηση (coding): Δηλαδή με ένα πρόγραμμα γραμμένο είτε με μία
               ψευδογλώσσα είτε σε κάποιο προγραμματιστικό περιβάλλον που όταν
               εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

                                 Σύμβολα Διαγράμματος Ροής


                  ΑΡΧΗ             ΤΕΛΟΣ           :έλλειψη: αρχή και τέλος αλγορίθμου
                 ΑΡΧΗ              ΤΕΛΟΣ


               Είσοδος       πλάγιο παραλληλόγραμμο, δηλώνει είσοδο ή έξοδο στοιχείων
               Έξοδος



             Εκτέλεση
                             : ορθογώνιο παραλληλόγραμμο, δηλώνει την εκτέλεση μίας ή
             πράξεων         περισσοτέρων πράξεων.


                              Αληθής
Ψευδής                                 ρόμβος, δηλώνει μια ερώτηση με δύο εξόδους για
                                       απάντηση.
                Συνθήκη




         Ελένη Κοκκίνου                                                         Σελίδα 13
ΑΡΧΉ
                            ΑΡΗ




                          Είσοδος




                 Ψευδής               Αληθής

                            Συνθήκη



      Εκτέλεση
      πράξεων                                  Εκτέλεση
                                               πράξεων



     Έξοδος
                                          Έξοδος




                             ΤΕΛΟΣ




Ελένη Κοκκίνου                                            Σελίδα 14
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
Αν υπάρχουν σε μια έκφραση τελεστές της ίδιας ιεραρχίας τότε οι
πράξεις εκτελούνται από αριστερά προς τα δεξιά.

Η ακολουθιακή δομή εντολών (σειριακών βημάτων) χρησιμοποιείται πρακτικά για
την αντιμετώπιση απλών προβλημάτων, όπου είναι δεδομένη η σειρά εκτέλεσης ενός
συνόλου ενεργειών π.χ. Συνταγή μαγειρικής. Κατά την ακολουθιακή εκτέλεση οι
εντολές εκτελούνται διαδοχικά η μία μετά την άλλη.

Δεσμευμένες λέξεις ονομάζονται οι λέξεις που έχουν αυστηρά προκαθορισμένη
σημασία και χρησιμεύουν είτε στο να κάνουν πιο ομοιόμορφη τη γλώσσα του κώδικα
(π.χ. Αλγόριθμος, Αρχή, Τέλος) είτε στο να περιγράψουν τις εντολές της
ψευδογλώσσας (π.χ. διάβασε, γράψε).

Παράδειγμα: Ανάγνωση και εκτύπωση αριθμών: Να διαβασθούν δύο αριθμοί, να
υπολογισθεί και να εκτυπωθεί το άθροισμά τους.

Αλγόριθμος Παράδειγμα
Διάβασε α
Διάβασε β                    Εισαγωγή Δεδομένων
γ ← α+β
                               Εκχώρηση τιμής

                            Εμφάνιση αποτελέσματος
Εμφάνισε γ

                      Εκτύπωσε γ Εκτύπωσε “το αποτέλεσμα είναι:”, γ
Τέλος Παράδειγμα

       Αρχίζει πάντα με τη λέξη Αλγόριθμος και το όνομα του αλγορίθμου.
       Εισαγωγή δεδομένων (Διάβασε)
       Εκχώρηση τιμής : Μεταβλητή ← Έκφραση (γίνονται οι πράξεις στην
        έκφραση και το αποτέλεσμα μεταδίδεται, μεταβιβάζεται, εκχωρείται στην
        μεταβλητή.)
       Αποδίδει το αποτέλεσμα : Εμφάνιση, εκτύπωση, αποτυπώνει το τελικό
        αποτέλεσμα στην οθόνη ή στον εκτυπωτή αντίστοιχα (Εμφάνισε,
        Εκτύπωσε).
       Τελειώνει πάντα με τη λέξη Τέλος και το όνομα του αλγορίθμου.

        Tα σχόλια είναι επεξηγηματικές φράσεις που μπορούν να προστεθούν σε
        οποιοδήποτε σημείο του αλγορίθμου. Τα σχόλια εισάγονται με το θαυμαστικό
        !. Ότι ακολουθεί το θαυμαστικό δεν εκτελείται.

Οι εντολές διακρίνονται επίσης σε δηλωτικές και σε εκτελέσιμες.
                          Δηλωτικές      Εκτελέσιμες
                          Αλγόριθμος     Διάβασε χ




Ελένη Κοκκίνου                                                          Σελίδα 16
Λογική Συνθήκη είναι μία έκφραση, η οποία μπορεί να εκτιμηθεί είτε ως αληθής
είτε ως ψευδής και συντάσσεται :
                  Παράσταση1 τελεστής σύγκρισης Παράσταση2

Όπου:
Παράσταση: μπορεί να είναι μια τιμή, μια μεταβλητή ή μια μαθηματική παράσταση.

Τελεστής σύγκρισης:
                          > μεγαλύτερο
                          < μικρότερο
                          > = μεγαλύτερο ή ίσο
                          =< μικρότερο ή ίσο
                          = ίσο
                          <> διάφορο

Λογικοί τελεστές είναι:

            Άρνηση της οποίας το αποτέλεσμα είναι αληθές όταν η λογική συνθήκη
            είναι ψευδής, ενώ είναι ψευδές όταν η λογική συνθήκη είναι αληθής.

                                       όχι (Λογική συνθήκη)

            Σύζευξη της οποίας το αποτέλεσμα είναι αληθές όταν και οι δυο λογικές
            συνθήκες είναι αληθείς (διαφορετικά είναι ψευδές).

                            Λογική συνθήκη 1 και Λογική συνθήκη 2

            Διάζευξη της οποίας το αποτέλεσμα είναι αληθές όταν τουλάχιστον μία
            από τις δύο λογικές συνθήκες είναι αληθής. Μόνο όταν και οι δυο
            συνθήκες είναι ψευδείς τότε το αποτέλεσμα της διάζευξης είναι ψευδές.

                             Λογική συνθήκη 1 ή Λογική συνθήκη 2

             Τη μεγαλύτερη προτεραιότητα την έχει η άρνηση, ακολουθεί η σύζευξη
            και την μικρότερη την έχει η διάζευξη. Πάραυτα προσοχή στις
            παρενθέσεις.

                                Σ2                        Σ1 ή Σ2     Όχι(Σ2)
                   Σ1                       Σ1 και Σ2
                 Αληθής       αληθής         αληθής       Αληθής       ψευδής
                 Αληθής       ψευδής         ψευδής       Αληθής       Αληθής
                 Ψευδής       αληθής         ψευδής       Αληθής       ψευδής
                 Ψευδής       ψευδής         ψευδής       Ψευδής       αληθής

            Με τον όρο αλγοριθμική δομή εννοούμε τον τρόπο με τον οποίο
            εκτελείται ένα συγκεκριμένο πλήθος εντολών ενός αλγορίθμου. Κατά την
            ακολουθιακή εκτέλεση οι εντολές εκτελούνται διαδοχικά η μία μετά την
            άλλη.



Ελένη Κοκκίνου                                                           Σελίδα 17
2.4.2 Δομή επιλογής

       Μια σειρά από εντολές εκτελούνται κάτω από ορισμένες προϋποθέσεις.
       Εκεί χρησιμοποιείται η δομή επιλογής
       Αρχικά ελέγχεται μια λογική συνθήκη.
       Ακολουθεί εκτέλεση ή όχι μιας σειράς ενεργειών με βάση την τιμή της
        λογικής συνθήκης.

     Αν συνθήκη τότε                      Αν συνθήκη τότε
           Εντολή_1
                                                Εντολή_1
           Εντολή_2                       αλλιώς
     Τέλος_αν                                   Εντολή_2

                                          Τέλος_αν
Οι εντολές εκτελούνται μόνο όταν
       η συνθήκη είναι αληθής.
                                 Η Εντολή_1 εκτελείται μόνο όταν η συνθήκη
                                 είναι αληθής, ενώ η εντολή_2 εκτελείται μόνο
                                 όταν η συνθήκη είναι ψευδής.
2.4.3 Διαδικασίες πολλαπλών επιλογών



                        Αν συνθήκη1 τότε
                               Εντολή_1
                        Αλλιώς_αν συνθήκη2 τότε
                               Εντολή_2
                        Αλλιώς_αν συνθήκη3 τότε
                               Εντολή_3
                        Αλλιώς

                              Εντολή_4
                        Τέλος_αν
  Εκτελούνται οι εντολές που βρίσκονται στο αντίστοιχο τμήμα που η συνθήκη είναι
  αληθής.


2.4.4 Εμφωλευμένες Διαδικασίες

Πολλαπλές επιλογές μπορούν να γίνουν και με μία εμφωλευμένη δομή. Στις

περιπτώσεις αυτές η συνθήκη είναι αρκετά πιο δύσκολη, δηλαδή εμπεριέχει

αποφάσεις που πιθανόν να βασίζονται σε περισσότερα από ένα κριτήρια. Στις

περιπτώσεις αυτές μπορεί να γίνει χρήση των λογικών πράξεων.



Ελένη Κοκκίνου                                                           Σελίδα 18
Παράδειγμα:
Αν βάρος > 80 τότε
                 Αν ύψος > 1.80 τότε
                   Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’
                 Αλλιώς
                   Εμφάνισε ‘‘το άτομο έχει βάρος πάνω από το κανονικό’’
                 Τέλος_αν

Αλλιώς
                 Αν ύψος > 1.80 τότε
                   Εμφάνισε ‘‘το άτομο είναι αδύνατο’’
                 Αλλιώς
                   Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’
                 Τέλος_αν
Τέλος_αν




Ελένη Κοκκίνου                                                             Σελίδα 19
2.4.5 Δομή επανάληψης

Οι επαναληπτικές δομές αλγορίθμων είναι οι εξής:



     Όσο ….επανάλαβε…τέλος_επανάληψης
     Αρχή_επανάληψης … μέχρις_ότου
     Για …από…μέχρι… με_βήμα… τέλος_επανάληψης


                               Όσο …Επανάλαβε
                               Συνθήκη συνέχειας

Όσο η συνθήκη είναι αληθής, εκτελείται το σύνολο των εντολών που απαρτίζουν
την ομάδα εντολών.



Όσο συνθήκη επανάλαβε

       Ομάδα Εντολών
                                                       Αληθής
Τέλος_επανάληψης
                                         Εκτέλεση                   Συνθήκ
                                         ομάδας                       η
                                         εντολών


                                                                           Ψευδής



Βήμα 1: Ελέγχεται, αν η τιμή της συνθήκης συνέχειας είναι αληθής. Αν αυτό ισχύει,
τότε πηγαίνουμε στο βήμα 2, ενώ αν όχι πηγαίνουμε στο βήμα3.

Βήμα 2: Εκτελούνται όλες οι εντολές της ομάδας εντολών και στη συνέχεια
πηγαίνουμε στο βήμα 1.

Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη
εντολή μετά το τέλος_επανάληψης.


       Όταν χρησιμοποιείτε τις δυο πρώτες δομές επανάληψης μην ξεχνάτε να
συμπεριλαμβάνετε μια εντολή η οποία θα αλλάζει την τιμή στη συνθήκη της
επανάληψης. Αν δεν υπάρχει τέτοιου είδους εντολή τότε είναι πολύ πιθανό να μην
πληρείται το κριτήριο της περατότητας στη συγκεκριμένη δομή επανάληψης και έτσι
να δημιουργείται ατέρμων βρόχος.



Ελένη Κοκκίνου                                                           Σελίδα 20
Αρχή_επανάληψης …. Μέχρις_ότου
                                Συνθήκη τερματισμού

 Επαναλαμβάνεται η εκτέλεση της ομάδας εντολών, μέχρι η συνθήκη τερματισμού
 να γίνει αληθής.


 Βήμα 1: Εκτελούνται όλες οι εντολές της ομάδας εντολών.
 Βήμα 2: Ελέγχεται η συνθήκη τερματισμού. Αν αυτή είναι ψευδής, η εκτέλεση
 συνεχίζεται με το βήμα 1, ενώ αν είναι αληθής, η εκτέλεση συνεχίζεται με το βήμα 3.
 Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται αμέσως η επόμενη
 εντολή μετά το μέχρις_ότου συνθήκη.




                                                               Εκτέλεση
                                                               ομάδας
Αρχή_επανάληψης                                                εντολών

       Ομάδα Εντολών

Μέχρις_ότου συνθήκη

                                                   Ψευδής
                                                                   Συνθήκ
                                                                     η



                                                                          Αληθής




                  Για …από…μέχρι… με_βήμα… τέλος_επανάληψης
                          Γνωστός αριθμός επαναλήψεων



 Αρχικά ο μετρητής παίρνει την αρχική τιμή ατ. Όσο ο μετρητής βρίσκεται στο
 διάστημα μεταξύ αρχικής και τελικής τιμής, τότε εκτελείται η ομάδα εντολών και
 στη συνέχεια ο μετρητής μεταβάλλεται κατά μβ.


 Βήμα 1: Η μεταβλητή μτ παίρνει την αρχική τιμή ατ.
 Βήμα 2: Ελέγχεται η συνθήκη: μτ<=ττ αν το βήμα είναι θετικό ή μτ>=ττ αν το
 βήμα είναι αρνητικό. Αν η συνθήκη αυτή είναι αληθής, τότε πηγαίνουμε στο βήμα
 3, ενώ αν είναι ψευδής, πηγαίνουμε στο βήμα 4.

 Ελένη Κοκκίνου                                                             Σελίδα 21
Βήμα 3: Εκτελούνται όλες οι εντολές της ομάδας εντολών και αυξάνει το
περιεχόμενο του μετρητή κατά μβ. Στη συνέχεια πηγαίνουμε στο βήμα2.
Βήμα 4: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη
εντολή μετά το τέλος_επανάληψης.



 Για μτ από ατ μέχρι ττ με_βήμα μβ
        Ομάδα Εντολών                                                   μτ ← ατ
 Τέλος_επανάληψης




                                                               Αληθής

                                              Εκτέλεση                   Συνθήκ
                                              ομάδας                       η
                                              εντολών

                                                μτ ← μτ + μβ                      Ψευδής




        Βασικά χαρακτηριστικά και διαφορές των τριών δομών επανάληψης

Όσο …επανέλαβε: Είναι η βασικότερη δομής επανάληψης. Τα βασικά
χαρακτηριστικά της είναι ότι: 1) η ομάδα εντολών εκτελείται καθ΄ όλη τη διάρκεια
που η συνθήκη επανάληψης είναι αληθής και 2) υπάρχει περίπτωση αν η συνθήκη
είναι εξ αρχής ψευδής οι εντολές να μην εκτελεστούν ούτε μία φορά. Οποιαδήποτε
επαναληπτική διαδικασία μπορεί να εκφραστεί με αυτήν την συνθήκη.

Αρχή_επανάληψης …μέχρις_ότου: το πόσες φορές θα εκτελεστεί η ομάδα εντολών
καθορίζεται από τον έλεγχο μια συνθήκης όπως και η προηγούμενη δομή
επανάληψης. Διαφέρει όμως από την προηγούμενη στο εξής: 1) η ομάδα εντολών
εκτελείται καθ’ όλη τη διάρκεια που η συνθήκη επανάληψης είναι ψευδής. 2) η
ομάδα εντολών θα εκτελεστεί τουλάχιστον μία φορά, ανεξάρτητα από το αν η
συνθήκη είναι αληθής ή ψευδής. Για το λόγο αυτό, η δομή αυτή δεν μπορεί να
εκφράσει οποιαδήποτε επαναληπτική διαδικασία.

Για ..από..μέχρι. : Η δομή αυτή επανάληψης δεν ελέγχει άμεσα κάποια συνθήκη για
να αποφασίσει τον τερματισμό των επαναλήψεων. Η χρήση της περιορίζεται μόνο σε
εκείνες τις περιπτώσεις που γνωρίζουμε εκ των προτέρων τον αριθμό των
επαναλήψεων που πρέπει να εκτελεστούν. Παρολαυτά αποτελεί την πιο απλή και
κατανοητή δομή επανάληψης σε σχέση με τις άλλες δυο δομές.




Ελένη Κοκκίνου                                                           Σελίδα 22
Ολίσθηση (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
αριθμός, αυτός δηλαδή που πολλαπλασιάζεται. Ακολουθείται η ίδια διαδικασία
βηματικά, μέχρι ο αριθμός που από την αρχή τυχαία αποφασίσαμε ότι θα διαιρείται
φθάσει να γίνει μηδέν. Το τελικό γινόμενο είναι ο αθροιστής.
Αριθμός που πολ/ται Αριθμός που διαιρ/ται Αθροιστής
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

Weitere ähnliche Inhalte

Was ist angesagt?

Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψηςΣημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
Θανάσης Δρούγας
 
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες Λογισμικού 2
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες  Λογισμικού 2Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες  Λογισμικού 2
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες Λογισμικού 2
Christos Xilogiannis
 
ΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
ΑΕΠΠ: Σύνθετες Λογικές ΣυνθήκεςΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
ΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
Nikos Michailidis
 
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο ΑσκήσεωνΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
Nikos Michailidis
 
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App InventorΣενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
Vasilis Drimtzias
 
Διαγώνισμα δομή ακολουθίας ΑΕΠΠ
Διαγώνισμα δομή ακολουθίας ΑΕΠΠΔιαγώνισμα δομή ακολουθίας ΑΕΠΠ
Διαγώνισμα δομή ακολουθίας ΑΕΠΠ
Eleni Kokkinou
 
σενάριο Scratch δομή_επανάληψης
σενάριο Scratch δομή_επανάληψηςσενάριο Scratch δομή_επανάληψης
σενάριο Scratch δομή_επανάληψης
Vasilis Sotiroudas
 

Was ist angesagt? (20)

Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψηςΣημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
Σημειώσεις ανάπτυξη εφαρμογών Δομη επανάληψης
 
αεππ κεφάλαιο 2 βασικές έννοιες αλγορίθμων
αεππ κεφάλαιο 2 βασικές έννοιες αλγορίθμωναεππ κεφάλαιο 2 βασικές έννοιες αλγορίθμων
αεππ κεφάλαιο 2 βασικές έννοιες αλγορίθμων
 
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες Λογισμικού 2
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες  Λογισμικού 2Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες  Λογισμικού 2
Σενάριο για Το Λογισμικο του H/Y - Kατηγορίες Λογισμικού 2
 
ΑΕΠΠ - Βασικές έννοιες προγραμματισμού
ΑΕΠΠ - Βασικές έννοιες προγραμματισμούΑΕΠΠ - Βασικές έννοιες προγραμματισμού
ΑΕΠΠ - Βασικές έννοιες προγραμματισμού
 
Απλή και σύνθετη δομή επιλογής
Απλή και σύνθετη δομή επιλογήςΑπλή και σύνθετη δομή επιλογής
Απλή και σύνθετη δομή επιλογής
 
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
 
2.2.1 - ΟΡΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΥ
2.2.1 - ΟΡΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΥ2.2.1 - ΟΡΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΥ
2.2.1 - ΟΡΙΣΜΟΣ ΑΛΓΟΡΙΘΜΟΥ
 
ΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
ΑΕΠΠ: Σύνθετες Λογικές ΣυνθήκεςΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
ΑΕΠΠ: Σύνθετες Λογικές Συνθήκες
 
Δομή Επανάληψης
Δομή ΕπανάληψηςΔομή Επανάληψης
Δομή Επανάληψης
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
 
ΑΕΠΠ - Δομή Ακολουθίας
ΑΕΠΠ - Δομή ΑκολουθίαςΑΕΠΠ - Δομή Ακολουθίας
ΑΕΠΠ - Δομή Ακολουθίας
 
Sxedia mathimatos-pliroforiki-gym
Sxedia mathimatos-pliroforiki-gymSxedia mathimatos-pliroforiki-gym
Sxedia mathimatos-pliroforiki-gym
 
2.2.7.3 εκφράσεις1
2.2.7.3 εκφράσεις12.2.7.3 εκφράσεις1
2.2.7.3 εκφράσεις1
 
Στάδια αντιμετώπισης προβλήματος
Στάδια αντιμετώπισης προβλήματοςΣτάδια αντιμετώπισης προβλήματος
Στάδια αντιμετώπισης προβλήματος
 
αεππ κεφαλαιο 1ο.ppt
αεππ   κεφαλαιο 1ο.pptαεππ   κεφαλαιο 1ο.ppt
αεππ κεφαλαιο 1ο.ppt
 
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο ΑσκήσεωνΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
 
διδακτικο σεναριο στη δομή επιλογής
διδακτικο σεναριο στη δομή επιλογήςδιδακτικο σεναριο στη δομή επιλογής
διδακτικο σεναριο στη δομή επιλογής
 
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App InventorΣενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
Σενάριο Διδασκαλίας : Η Δομή Επιλογής στο App Inventor
 
Διαγώνισμα δομή ακολουθίας ΑΕΠΠ
Διαγώνισμα δομή ακολουθίας ΑΕΠΠΔιαγώνισμα δομή ακολουθίας ΑΕΠΠ
Διαγώνισμα δομή ακολουθίας ΑΕΠΠ
 
σενάριο Scratch δομή_επανάληψης
σενάριο Scratch δομή_επανάληψηςσενάριο Scratch δομή_επανάληψης
σενάριο Scratch δομή_επανάληψης
 

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

ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες ΑλγορίθμωνΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
evoyiatz
 
βασικές έννοιες αλγορίθμων
βασικές έννοιες αλγορίθμωνβασικές έννοιες αλγορίθμων
βασικές έννοιες αλγορίθμων
Dimitrios Dalagiorgos
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
tommalexx
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
bill717
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
fousanhs
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
katoikidia
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
loulls
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
petarakis
 

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

Bασικές έννοιες αλγορίθμων
Bασικές έννοιες αλγορίθμωνBασικές έννοιες αλγορίθμων
Bασικές έννοιες αλγορίθμων
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7
 
ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες ΑλγορίθμωνΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
ΑΕΠΠ κεφ2 μέρος Α Βασικές Εννοιες Αλγορίθμων
 
First programm
First programmFirst programm
First programm
 
εντολές και-δομές-αλγορίθμου
εντολές και-δομές-αλγορίθμουεντολές και-δομές-αλγορίθμου
εντολές και-δομές-αλγορίθμου
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_3
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_3Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_3
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_3
 
Αλγοριθμική Δομή Επιλογής
Αλγοριθμική Δομή ΕπιλογήςΑλγοριθμική Δομή Επιλογής
Αλγοριθμική Δομή Επιλογής
 
βασικές έννοιες αλγορίθμων
βασικές έννοιες αλγορίθμωνβασικές έννοιες αλγορίθμων
βασικές έννοιες αλγορίθμων
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_1Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_1
 
Αλγόριθμοι
ΑλγόριθμοιΑλγόριθμοι
Αλγόριθμοι
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
 
4o Φ.Α. 2.1 + 2.3.pdf
4o Φ.Α. 2.1 + 2.3.pdf4o Φ.Α. 2.1 + 2.3.pdf
4o Φ.Α. 2.1 + 2.3.pdf
 
Αλγοριθμική και δομές δεδομένων
Αλγοριθμική και δομές δεδομένωνΑλγοριθμική και δομές δεδομένων
Αλγοριθμική και δομές δεδομένων
 
ΑΕΠΠ - Λογικές Εκφράσεις
ΑΕΠΠ - Λογικές ΕκφράσειςΑΕΠΠ - Λογικές Εκφράσεις
ΑΕΠΠ - Λογικές Εκφράσεις
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 
προγραμματισμός
προγραμματισμόςπρογραμματισμός
προγραμματισμός
 

Mehr von Eleni Kokkinou

Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
Eleni Kokkinou
 
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠΔιαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Eleni Kokkinou
 
Askiseis anosoviologiki
Askiseis anosoviologikiAskiseis anosoviologiki
Askiseis anosoviologiki
Eleni Kokkinou
 
1 1 Τι είναι χημεία - Χημεία Β Γυμνασίου
1 1 Τι είναι χημεία - Χημεία  Β Γυμνασίου1 1 Τι είναι χημεία - Χημεία  Β Γυμνασίου
1 1 Τι είναι χημεία - Χημεία Β Γυμνασίου
Eleni Kokkinou
 

Mehr von Eleni Kokkinou (11)

Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
Τροποι για να λειτουργήσουν τα μέσα κοινωνικής δικτύωσης ενισχυτικά της διδασ...
 
Κεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςΚεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματος
 
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠΔιαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
 
Ασκήσεις δομή Επιλογής
Ασκήσεις δομή ΕπιλογήςΑσκήσεις δομή Επιλογής
Ασκήσεις δομή Επιλογής
 
Askiseis anosoviologiki
Askiseis anosoviologikiAskiseis anosoviologiki
Askiseis anosoviologiki
 
Βιολογία Γενικής Γ λυκείου σελ 44-46
Βιολογία Γενικής Γ λυκείου σελ 44-46Βιολογία Γενικής Γ λυκείου σελ 44-46
Βιολογία Γενικής Γ λυκείου σελ 44-46
 
Ασκήσεις στο δομή ακολουθίας
Ασκήσεις στο δομή ακολουθίαςΑσκήσεις στο δομή ακολουθίας
Ασκήσεις στο δομή ακολουθίας
 
1 1 Τι είναι χημεία - Χημεία Β Γυμνασίου
1 1 Τι είναι χημεία - Χημεία  Β Γυμνασίου1 1 Τι είναι χημεία - Χημεία  Β Γυμνασίου
1 1 Τι είναι χημεία - Χημεία Β Γυμνασίου
 
Ο Περιοδικός πίνακας - Χημεία Γ' γυμνασίου
Ο Περιοδικός πίνακας - Χημεία Γ' γυμνασίουΟ Περιοδικός πίνακας - Χημεία Γ' γυμνασίου
Ο Περιοδικός πίνακας - Χημεία Γ' γυμνασίου
 
Kefalaio1 1 α
Kefalaio1 1 αKefalaio1 1 α
Kefalaio1 1 α
 
Kef1o Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef1o Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονKef1o Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef1o Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
 

Kürzlich hochgeladen

5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
Athina Tziaki
 

Kürzlich hochgeladen (10)

Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 

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

  • 1. ΚΕΦΑΛΑΙΟ 2: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ 2.1 Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΣ είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση του προβλήματος.  Πεπερασμένη διαδικασία  Αυστηρώς καθορισμένες εντολές  Πεπερασμένος χρόνος εκτέλεσης  Επίλυση συγκεκριμένου προβλήματος Κριτήρια που απαραίτητα ικανοποιεί ένας αλγόριθμος: ΕΙΣΟΔΟΣ (input) : Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής ή με τη βοήθεια άλλων απλών εντολών. ΕΞΟΔΟΣ (output) : Ο αλγόριθμος πρέπει να παράγει ένα αποτέλεσμα είτε προς το χρήστη ή προς έναν άλλο αλγόριθμο. ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ (definiteness) : Τα βήματα του αλγόριθμου πρέπει να είναι σαφώς καθορισμένα ως προς τον τρόπο εκτέλεσής τους. Λόγου χάριν, μια εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέτης λαμβάνει μηδενική τιμή. Οι εντολές δηλαδή να είναι επακριβώς και αυστηρώς καθορισμένες, έτσι που η εκτέλεσή τους να γίνεται χωρίς καμία αμφιβολία και να μην απαιτούνται πρόσθετες επεξηγήσεις. ΠΕΡΑΤΟΤΗΤΑ (finiteness) : Ο αλγόριθμος πρέπει να τερματίζει μετά από πεπερασμένα βήματα εκτέλεσης εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure). ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ (effectiveness) : Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή και να είναι εκτελέσιμη. Η έννοια του αλγόριθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής. Ελένη Κοκκίνου Σελίδα 12
  • 2. 2.3 Περιγραφή και αναπαράσταση αλγορίθμων Τρόποι αναπαράστασης αλγορίθμων  Ελεύθερο κείμενο (Free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης. Υπάρχει κίνδυνος να οδηγήσει σε μη εκτελέσιμη παρουσίαση, παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων το κριτήριο της αποτελεσματικότητας.  Διαγραμματικές τεχνικές (diagramming techniques): Αποτελούν ένα γραφικό τρόπο αναπαράστασης. Μια τεχνική (από τις πιο παλιές και γνωστές ) είναι το διάγραμμα ροής (Flow Chart). Η χρήση διαγρ. τεχνικών δεν είναι η καλύτερη λύση, γι’ αυτό εμφανίζονται όλο και σπανιότερα στην βιβλιογραφία και στην πράξη.  Φυσική γλώσσα κατά βήματα (natural language): Μοιάζει με το Ελεύθερο κείμενο απλά είναι κατά βήματα. Κίνδυνος να παραβιαστεί το κριτήριο της καθοριστικότητας.  Κωδικοποίηση (coding): Δηλαδή με ένα πρόγραμμα γραμμένο είτε με μία ψευδογλώσσα είτε σε κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο. Σύμβολα Διαγράμματος Ροής ΑΡΧΗ ΤΕΛΟΣ :έλλειψη: αρχή και τέλος αλγορίθμου ΑΡΧΗ ΤΕΛΟΣ Είσοδος πλάγιο παραλληλόγραμμο, δηλώνει είσοδο ή έξοδο στοιχείων Έξοδος Εκτέλεση : ορθογώνιο παραλληλόγραμμο, δηλώνει την εκτέλεση μίας ή πράξεων περισσοτέρων πράξεων. Αληθής Ψευδής ρόμβος, δηλώνει μια ερώτηση με δύο εξόδους για απάντηση. Συνθήκη Ελένη Κοκκίνου Σελίδα 13
  • 3. ΑΡΧΉ ΑΡΗ Είσοδος Ψευδής Αληθής Συνθήκη Εκτέλεση πράξεων Εκτέλεση πράξεων Έξοδος Έξοδος ΤΕΛΟΣ Ελένη Κοκκίνου Σελίδα 14
  • 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. Αν υπάρχουν σε μια έκφραση τελεστές της ίδιας ιεραρχίας τότε οι πράξεις εκτελούνται από αριστερά προς τα δεξιά. Η ακολουθιακή δομή εντολών (σειριακών βημάτων) χρησιμοποιείται πρακτικά για την αντιμετώπιση απλών προβλημάτων, όπου είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών π.χ. Συνταγή μαγειρικής. Κατά την ακολουθιακή εκτέλεση οι εντολές εκτελούνται διαδοχικά η μία μετά την άλλη. Δεσμευμένες λέξεις ονομάζονται οι λέξεις που έχουν αυστηρά προκαθορισμένη σημασία και χρησιμεύουν είτε στο να κάνουν πιο ομοιόμορφη τη γλώσσα του κώδικα (π.χ. Αλγόριθμος, Αρχή, Τέλος) είτε στο να περιγράψουν τις εντολές της ψευδογλώσσας (π.χ. διάβασε, γράψε). Παράδειγμα: Ανάγνωση και εκτύπωση αριθμών: Να διαβασθούν δύο αριθμοί, να υπολογισθεί και να εκτυπωθεί το άθροισμά τους. Αλγόριθμος Παράδειγμα Διάβασε α Διάβασε β Εισαγωγή Δεδομένων γ ← α+β Εκχώρηση τιμής Εμφάνιση αποτελέσματος Εμφάνισε γ Εκτύπωσε γ Εκτύπωσε “το αποτέλεσμα είναι:”, γ Τέλος Παράδειγμα  Αρχίζει πάντα με τη λέξη Αλγόριθμος και το όνομα του αλγορίθμου.  Εισαγωγή δεδομένων (Διάβασε)  Εκχώρηση τιμής : Μεταβλητή ← Έκφραση (γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα μεταδίδεται, μεταβιβάζεται, εκχωρείται στην μεταβλητή.)  Αποδίδει το αποτέλεσμα : Εμφάνιση, εκτύπωση, αποτυπώνει το τελικό αποτέλεσμα στην οθόνη ή στον εκτυπωτή αντίστοιχα (Εμφάνισε, Εκτύπωσε).  Τελειώνει πάντα με τη λέξη Τέλος και το όνομα του αλγορίθμου. Tα σχόλια είναι επεξηγηματικές φράσεις που μπορούν να προστεθούν σε οποιοδήποτε σημείο του αλγορίθμου. Τα σχόλια εισάγονται με το θαυμαστικό !. Ότι ακολουθεί το θαυμαστικό δεν εκτελείται. Οι εντολές διακρίνονται επίσης σε δηλωτικές και σε εκτελέσιμες. Δηλωτικές Εκτελέσιμες Αλγόριθμος Διάβασε χ Ελένη Κοκκίνου Σελίδα 16
  • 6. Λογική Συνθήκη είναι μία έκφραση, η οποία μπορεί να εκτιμηθεί είτε ως αληθής είτε ως ψευδής και συντάσσεται : Παράσταση1 τελεστής σύγκρισης Παράσταση2 Όπου: Παράσταση: μπορεί να είναι μια τιμή, μια μεταβλητή ή μια μαθηματική παράσταση. Τελεστής σύγκρισης: > μεγαλύτερο < μικρότερο > = μεγαλύτερο ή ίσο =< μικρότερο ή ίσο = ίσο <> διάφορο Λογικοί τελεστές είναι: Άρνηση της οποίας το αποτέλεσμα είναι αληθές όταν η λογική συνθήκη είναι ψευδής, ενώ είναι ψευδές όταν η λογική συνθήκη είναι αληθής. όχι (Λογική συνθήκη) Σύζευξη της οποίας το αποτέλεσμα είναι αληθές όταν και οι δυο λογικές συνθήκες είναι αληθείς (διαφορετικά είναι ψευδές). Λογική συνθήκη 1 και Λογική συνθήκη 2 Διάζευξη της οποίας το αποτέλεσμα είναι αληθές όταν τουλάχιστον μία από τις δύο λογικές συνθήκες είναι αληθής. Μόνο όταν και οι δυο συνθήκες είναι ψευδείς τότε το αποτέλεσμα της διάζευξης είναι ψευδές. Λογική συνθήκη 1 ή Λογική συνθήκη 2 Τη μεγαλύτερη προτεραιότητα την έχει η άρνηση, ακολουθεί η σύζευξη και την μικρότερη την έχει η διάζευξη. Πάραυτα προσοχή στις παρενθέσεις. Σ2 Σ1 ή Σ2 Όχι(Σ2) Σ1 Σ1 και Σ2 Αληθής αληθής αληθής Αληθής ψευδής Αληθής ψευδής ψευδής Αληθής Αληθής Ψευδής αληθής ψευδής Αληθής ψευδής Ψευδής ψευδής ψευδής Ψευδής αληθής Με τον όρο αλγοριθμική δομή εννοούμε τον τρόπο με τον οποίο εκτελείται ένα συγκεκριμένο πλήθος εντολών ενός αλγορίθμου. Κατά την ακολουθιακή εκτέλεση οι εντολές εκτελούνται διαδοχικά η μία μετά την άλλη. Ελένη Κοκκίνου Σελίδα 17
  • 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. Παράδειγμα: Αν βάρος > 80 τότε Αν ύψος > 1.80 τότε Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’ Αλλιώς Εμφάνισε ‘‘το άτομο έχει βάρος πάνω από το κανονικό’’ Τέλος_αν Αλλιώς Αν ύψος > 1.80 τότε Εμφάνισε ‘‘το άτομο είναι αδύνατο’’ Αλλιώς Εμφάνισε ‘‘το άτομο έχει κανονικό βάρος’’ Τέλος_αν Τέλος_αν Ελένη Κοκκίνου Σελίδα 19
  • 9. 2.4.5 Δομή επανάληψης Οι επαναληπτικές δομές αλγορίθμων είναι οι εξής:  Όσο ….επανάλαβε…τέλος_επανάληψης  Αρχή_επανάληψης … μέχρις_ότου  Για …από…μέχρι… με_βήμα… τέλος_επανάληψης Όσο …Επανάλαβε Συνθήκη συνέχειας Όσο η συνθήκη είναι αληθής, εκτελείται το σύνολο των εντολών που απαρτίζουν την ομάδα εντολών. Όσο συνθήκη επανάλαβε Ομάδα Εντολών Αληθής Τέλος_επανάληψης Εκτέλεση Συνθήκ ομάδας η εντολών Ψευδής Βήμα 1: Ελέγχεται, αν η τιμή της συνθήκης συνέχειας είναι αληθής. Αν αυτό ισχύει, τότε πηγαίνουμε στο βήμα 2, ενώ αν όχι πηγαίνουμε στο βήμα3. Βήμα 2: Εκτελούνται όλες οι εντολές της ομάδας εντολών και στη συνέχεια πηγαίνουμε στο βήμα 1. Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη εντολή μετά το τέλος_επανάληψης. Όταν χρησιμοποιείτε τις δυο πρώτες δομές επανάληψης μην ξεχνάτε να συμπεριλαμβάνετε μια εντολή η οποία θα αλλάζει την τιμή στη συνθήκη της επανάληψης. Αν δεν υπάρχει τέτοιου είδους εντολή τότε είναι πολύ πιθανό να μην πληρείται το κριτήριο της περατότητας στη συγκεκριμένη δομή επανάληψης και έτσι να δημιουργείται ατέρμων βρόχος. Ελένη Κοκκίνου Σελίδα 20
  • 10. Αρχή_επανάληψης …. Μέχρις_ότου Συνθήκη τερματισμού Επαναλαμβάνεται η εκτέλεση της ομάδας εντολών, μέχρι η συνθήκη τερματισμού να γίνει αληθής. Βήμα 1: Εκτελούνται όλες οι εντολές της ομάδας εντολών. Βήμα 2: Ελέγχεται η συνθήκη τερματισμού. Αν αυτή είναι ψευδής, η εκτέλεση συνεχίζεται με το βήμα 1, ενώ αν είναι αληθής, η εκτέλεση συνεχίζεται με το βήμα 3. Βήμα 3: Βγαίνουμε από την επαναληπτική δομή και εκτελείται αμέσως η επόμενη εντολή μετά το μέχρις_ότου συνθήκη. Εκτέλεση ομάδας Αρχή_επανάληψης εντολών Ομάδα Εντολών Μέχρις_ότου συνθήκη Ψευδής Συνθήκ η Αληθής Για …από…μέχρι… με_βήμα… τέλος_επανάληψης Γνωστός αριθμός επαναλήψεων Αρχικά ο μετρητής παίρνει την αρχική τιμή ατ. Όσο ο μετρητής βρίσκεται στο διάστημα μεταξύ αρχικής και τελικής τιμής, τότε εκτελείται η ομάδα εντολών και στη συνέχεια ο μετρητής μεταβάλλεται κατά μβ. Βήμα 1: Η μεταβλητή μτ παίρνει την αρχική τιμή ατ. Βήμα 2: Ελέγχεται η συνθήκη: μτ<=ττ αν το βήμα είναι θετικό ή μτ>=ττ αν το βήμα είναι αρνητικό. Αν η συνθήκη αυτή είναι αληθής, τότε πηγαίνουμε στο βήμα 3, ενώ αν είναι ψευδής, πηγαίνουμε στο βήμα 4. Ελένη Κοκκίνου Σελίδα 21
  • 11. Βήμα 3: Εκτελούνται όλες οι εντολές της ομάδας εντολών και αυξάνει το περιεχόμενο του μετρητή κατά μβ. Στη συνέχεια πηγαίνουμε στο βήμα2. Βήμα 4: Βγαίνουμε από την επαναληπτική δομή και εκτελείται η αμέσως επόμενη εντολή μετά το τέλος_επανάληψης. Για μτ από ατ μέχρι ττ με_βήμα μβ Ομάδα Εντολών μτ ← ατ Τέλος_επανάληψης Αληθής Εκτέλεση Συνθήκ ομάδας η εντολών μτ ← μτ + μβ Ψευδής Βασικά χαρακτηριστικά και διαφορές των τριών δομών επανάληψης Όσο …επανέλαβε: Είναι η βασικότερη δομής επανάληψης. Τα βασικά χαρακτηριστικά της είναι ότι: 1) η ομάδα εντολών εκτελείται καθ΄ όλη τη διάρκεια που η συνθήκη επανάληψης είναι αληθής και 2) υπάρχει περίπτωση αν η συνθήκη είναι εξ αρχής ψευδής οι εντολές να μην εκτελεστούν ούτε μία φορά. Οποιαδήποτε επαναληπτική διαδικασία μπορεί να εκφραστεί με αυτήν την συνθήκη. Αρχή_επανάληψης …μέχρις_ότου: το πόσες φορές θα εκτελεστεί η ομάδα εντολών καθορίζεται από τον έλεγχο μια συνθήκης όπως και η προηγούμενη δομή επανάληψης. Διαφέρει όμως από την προηγούμενη στο εξής: 1) η ομάδα εντολών εκτελείται καθ’ όλη τη διάρκεια που η συνθήκη επανάληψης είναι ψευδής. 2) η ομάδα εντολών θα εκτελεστεί τουλάχιστον μία φορά, ανεξάρτητα από το αν η συνθήκη είναι αληθής ή ψευδής. Για το λόγο αυτό, η δομή αυτή δεν μπορεί να εκφράσει οποιαδήποτε επαναληπτική διαδικασία. Για ..από..μέχρι. : Η δομή αυτή επανάληψης δεν ελέγχει άμεσα κάποια συνθήκη για να αποφασίσει τον τερματισμό των επαναλήψεων. Η χρήση της περιορίζεται μόνο σε εκείνες τις περιπτώσεις που γνωρίζουμε εκ των προτέρων τον αριθμό των επαναλήψεων που πρέπει να εκτελεστούν. Παρολαυτά αποτελεί την πιο απλή και κατανοητή δομή επανάληψης σε σχέση με τις άλλες δυο δομές. Ελένη Κοκκίνου Σελίδα 22
  • 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. αριθμός, αυτός δηλαδή που πολλαπλασιάζεται. Ακολουθείται η ίδια διαδικασία βηματικά, μέχρι ο αριθμός που από την αρχή τυχαία αποφασίσαμε ότι θα διαιρείται φθάσει να γίνει μηδέν. Το τελικό γινόμενο είναι ο αθροιστής. Αριθμός που πολ/ται Αριθμός που διαιρ/ται Αθροιστής 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