Α – Αριθμητικοί Υπολογισμοί

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ – ΑΕΠΠ

ΚΕΦΑΛΑΙΟ ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ – ΕΠΙΛΟΓΗΣ

& ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΝΑΡΤΗΣΕΙΣ)

ΕΝΟΤΗΤΑ Α ΑΡΙΘΜΗΤΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ

ΔΙΔΑΚΤΙΚΟΙ ΣΤΟΧΟΙ

Μετά το τέλος της ενότητας ο μαθητής θα πρέπει να είναι σε θέση:

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

Μάθημα 1οΜάθημα 2οΜάθημα 3οΜάθημα 4οΜάθημα 5ο

Μάθημα 1οΗ ΕΝΤΟΛΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ …  ΜΕΧΡΙΣ_ΟΤΟΥ


Διδακτικοί Στόχοι Μαθήματος

Μετά το τέλος του μαθήματος ο μαθητής θα πρέπει να είναι σε θέση:

  • να εντοπίζει σε ένα πρόβλημα τις ενέργειες εκείνες που απαιτείται να εκτελεστούν -πιθανόν- περισσότερες από μία φορές.
  • ν’ αναγνωρίζει σ’ ένα πρόβλημα το κριτήριο για τον τερματισμό μιας επαναληπτικής διαδικασίας.
  • να συντάσει επαναληπτικές διαδικασίες χρησιμοποιώντας την εντολή επανάληψης μέχρις_ότου.
  • να ελέγχει (εκτελώντας) έναν επαναληπτικό αλγόριθμο.

  • Πρόβλημα -Κωδικός WiFi

    Η πρόσβαση στο ασύρματο δίκτυο του 1ου ΓΕΛ Πολίχνης προστατεύεται από έναν κωδικό. Οι μαθητές επιθυμούν διακαώς να τον “σπάσουν” προκειμένου, με τα κινητά τους τηλέφωνα να συνδεθούν στο διαδύκτιο (Internet). Μετά από πολλές προσπάθειες και ενώ η απογοήτευση έχει κυριαρχήσει το σύνολο των επίδοξων εισβολέων (hackers), φαίνεται κάτι ν’ αλλάζει. Ο καθηγητής Πληροφορικής τους καλεί να μαντέψουν τον κωδικό εκτελώντας έναν αλγόριθμο που ο ίδιος ανέπτυξε. Επιπλέον πληροφορίες δίνονται: ο κωδικός είναι ο μοναδικός τετραψήφιος αριθμός, που όταν υψωθεί στο τετράγωνο δίνει ως αποτέλεσμα έναν αριθμό του οποίου τα τέσσερα τελευταία ψηφία είναι όμοια με αυτά του κωδικού.

    Ο αλγόριθμος όπως διαπίστωσαν οι μαθητές (και μετά από τις διευκρινήσεις του καθηγητή) δεν κάνει τίποτε άλλο παρά να διαβάζει κάθε φορά έναν κωδικό και να τον συγκρίνει με τον σωστό κωδικό. Η διαδικασία αυτή επαναλαμβάνεται μέχρι να διαβαστεί κωδικός ίδιος με τον σωστό.
    Μικρή παύση για ερώτηση: Ποιος είναι ο κωδικός του WiFi;  wink

    Καλείστε να γράψετε τον αλγόριθμο που περιγράφηκε παραπάνω.

    Λέξεις κλειδιά: hacking, access denied, Επανάλαβε, Αρχή_επανάληψης, μέχρις_ότου, λογική έκφραση, συνθήκη, αληθής, ψευδής.

  • Η απάντηση στο ερώτημα – Ποιος είναι ο κωδικός του Wifi; – μπορεί ν’ αναζητηθεί σ’ ένα υποσύνολο του συνόλου των φυσικών αριθμών, ή, αν θέλετε σ’ ένα υποσύνολο του συνόλου των μη αρνητικών ακεραίων αριθμών- αυτό που περιλαμβάνει τους αριθμούς από το 1000 μέχρι και το 9999. Ένας μόνο εξ’ αυτών όπως δηλώνεται ρητά άλλωστε και στο πρόβλημα θα έχει την επιθυμητή ιδιότητα – τα τέσσερα τελευταία ψηφία του τετραγώνου του να ταυτίζονται με τον ίδιο τον αριθμό.


    Δεν έχετε παρά ν’ αρχίσετε να δοκιμάζετε. Θα φτάσετε αν έχετε τον χρόνο και την υπομονή 624 νούμερα πριν τον μεγαλύτερο τετραψήφιο, ήτοι,
    ο αριθμός 9376 είναι ο μοναδικός τετραψήφιος που αν υψωθεί στο τετράγωνο, δίνει αποτέλεσμα τον ίδιο αριθμό για τα τέσσερα τελευταία ψηφία του, δηλαδή, 93762 = 87909376


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

    Θέτουμε αρχικά το εξής ερώτημα:
    – Ποια η εντολή που θα κυριαρχεί στον αλγόριθμο;

    Δίνουμε και την απάντηση:
    – Μία εντολή είν’ αυτή που θα κυριαρχεί στον αλγόριθμο και ουσιαστικά θα δίνει την δυνατότητα στον οποιονδήποτε να εισάγει έναν κωδικό. Η εντολή αυτή είναι η γνωστή μας εντολή εισόδου Διάβασε.
    Έστω λοιπόν pswd το όνομα της μεταβλητής που θα την ακολουθεί -οπότε ολοκληρωμένη η εντολή θα είναι: 

    Διάβασε pswd

    Συνεχίζουμε με το ακόλουθο ερώτημα:
    – Πόσες φορές θα εκτελεστεί η εντολή Διάβασε pswd;

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

    Ο αριθμός συνεπώς των επαναλήψεων εκτέλεσης στον αλγόριθμο της εντολής που μας απασχολεί είναι εκ των προτέρων άγνωστος. Η στιγμή που κατά την εκτέλεση της εντολής θα δοθεί και ο σωστός κωδικός θα οδηγεί στο επόμενο βήμα στον τερματισμό του αλγορίθμου.
    Η εντολή Διάβασε pswd λέμε λοιπόν ότι μπορεί να εκτελείται περισσότερες (πιθανόν) από μία φορές ή πιο απλά να επαναλαμβάνεται.

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


    Αναρωτηθείτε: Ποιος είναι ο μικρότερος αριθμός επαναλήψεων της εντολής Διάβασε pswd και πότε θα συμβεί;


    ΄Ενας αλγόριθμος εκφρασμένος σε φυσική γλώσσα κατά βήματα θα μπορούσε να είναι ο εξής:

    Βήμα 1: Διάβασε pswd.

    Βήμα 2: Στην περίπτωση που ισχύει pswd = 9376 ενημέρωσε για την επιτυχή κατάληξη της διαδικασίας πήγαινε στο βήμα 4.

    Βήμα 3: Πήγαινε στο βήμα 1.

    Βήμα 4: Τέλος

    Απορία:
     – Πως ο αλγόριθμος που μόλις περιγράφηκε μπορεί να εκφραστεί στην ψευδογλώσσα;

    Απάντηση σύντομη, απλή και κατανοητή:
    – Οι δημιουργοί της ψευδογλώσσας έχουν ορίσει ότι για την ανάπτυξη επαναληπτικών αλγορίθμων -αλγορίθμων που υλοποιούν επαναληπτικές διαδικασίες- μπορεί να χρησιμοποιηθεί η εντολή μέχρις_ότου. Η εντολή  αυτή συμπληρώνεται πάντα από από μία έκφραση που την ακολουθεί και η οποία “περιγράφει” ουσιαστικά τις προϋποθέσεις (κριτήρια) που θα οδηγήσουν στον τερματισμό της επαναληπτικής διαδικασίας (επανάληψης).

    Η έκφραση που ακολουθεί την εντολή μέχρις_ότου είναι στην πραγματικότητα μια σύγκριση μεταξύ της τιμής της μεταβλητής pswd και του αριθμού 9376. Μια εναλλακτική διατύπωση θα μπορούσε να μετονομάζει την σύγκριση σε μια διαδικασία που ελέγχει αν η τιμή της μεταβλητής pswd ισούται με τον αριθμό 9376. Ως αποτέλεσμα του ελέγχου μπορεί να επιστραφεί τιμή αληθής ή  ψευδής.
    Αυτού του είδους οι εκφράσεις ονομάζονται λογικές εκφράσεις.


    Για την περίπτωσή μας η εντολή Διάβασε pswd λοιπόν θα εκτελείται μέχρις_ότου pswd = 9376 και ο αλγόριθμος με την προσθήκη μιας εντολής εξόδου και με την συμφωνία αυτή να προηγείται της εντολής Διάβασε θα έχει ως εξής :

    Αλγόριθμος ΚωδικόςWi_fi

    _____________________

    Εμφάνισε “Please enter password: “

    Διάβασε pswd

    μέχρις_ότου pswd = 9376

    Τέλος ΚωδικόςWi_fi

    Ακόμη κάτι απουσιάζει για να ολοκληρωθεί η επαναληπτική διαδικασία. Τι είναι αυτό;

    Μα φυσικά το σημείο έναρξης στον αλγόριθμο της επαναληπτικής διαδικασίας. Το σημείο από το οποίο και μετά θα ξεκινούν οι εντολές που υλοποιούν την επανάληψη. Για τον σκοπό αυτό χρησιμοποιείται η εντολή Επανάλαβε ή Αρχή_Επανάληψης που μαζί με την μέχρις_ότου ορίζουν ολοκληρωμένα πλέον ένα μπλοκ, μια ομάδα εντολών που παύουν να εκτελούνται όταν δοθεί ως τιμή στην μεταβλητή pswd ο αριθμός 9376.


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


    Τελικώς η επανάληψη θα ξεκινά με την δεσμευμένη λέξη Αρχή_επανάληψης, θα συνεχίζει με τις εντολές της επανάληψης και θα ολοκληρώνεται με την έκφραση που θα ακολουθεί την μέχρις_ότου, ήτοι:


    Αλγόριθμος ΚωδικόςWi_fi

    Αρχή_επανάληψης

    Εμφάνισε “Please enter password: “

    Διάβασε pswd

    μέχρις_ότου pswd = 9376

    Εμφάνισε “Password accepted. Loading system information…”

    Τέλος ΚωδικόςWi_fi


    Έχοντας ολοκληρώσει την ανάλυσή μας και καταλήξει στην τελική μορφή του αλγορίθμου, ορίζουμε στο εξής την γενική σύνταξη και την λειτουργία της εντολής μέχρις_ότου.

    Γενική Σύνταξη

    Αρχή_επανάληψης

    εντολές

    μέχρις_ότου λογική έκφραση

    Λειτουργία

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


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


  • Αλγόριθμος ΚωδικόςWi_fi 

          Αρχή_επανάληψης

                Εμφάνισε “Please enter password “

                Διάβασε pswd

           μέχρις_ότου pswd = 9376

           Εμφάνισε “Password accepted. Loading system information!!!”

    Τέλος ΚωδικόςWi_fi

    ΠΡΟΓΡΑΜΜΑ ΚωδικόςWifi

    ΜΕΤΑΒΛΗΤΕΣ

    ΑΚΕΡΑΙΕΣ: pswd

    ΑΡΧΗ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

    ΓΡΑΨΕ “Please enter password “

    ΔΙΑΒΑΣΕ pswd

    ΜΕΧΡΙΣ_ΟΤΟΥ pswd = 9376

    ΓΡΑΨΕ “Password accepted. Loading system information!!!”

    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 

  • Μετά από συστηματικές προσπάθειες οι μαθητές τελικά τα κατάφεραν. Ο κωδικός του ασύρματου δικτύου “αποκαλύφθηκε” και φυσικά μαθεύτηκε απ’ όλους. Ο υπεύθυνος καθηγητής είναι πια αναγκασμένος να “αλλάξει” τον κωδικό. Η επιλογή νέου κωδικού που έγινε είναι τώρα συνδυασμός χαρακτήρων και αριθμητικών ψηφίων, με συνολικό μήκος τουλάχιστον 6.

    Καλείστε ν’ απαντήσετε στα παρακάτω ερωτήματα.

    1) Ποιος θα μπορούσε να είναι ένας κωδικός που να ικανοποιεί τις παραπάνω προϋποθέσεις;

    2) Ποιο σημείο του αρχικού αλγορίθμου θα τροποποιηθεί και πως;

    3) Η μεταβλητή pswd του αλγορίθμου πλέον θα παίρνει ως τιμές τόσο χαρακτήρες όσο και αριθμούς. Σε ποιον τύπο δεδομένων εκτιμάτε ότι “ταιριάζει” περισσότερο;

    4) Πιστεύετε ότι το επίπεδο ασφαλείας του νέου κωδικού είναι τώρα υψηλότερο; Τεκμηριώστε την απάντησή σας.

    Διευκρίνηση: Ως συνολικό μήκος νοείται ο συνολικός αριθμός χαρακτήρων και αριθμητικών ψηφίων που αποτελούν τον νέο κωδικό.

    1- Ποια τιμή των δεδομένων εισόδου τερματίζει την επανάληψη στα τμήματα αλγορίθμων που ακολουθούν;

    Αρχή_επανάληψης

    Διάβασε τύπος_τσαγιού

    Μέχρις_ότου τύπος_τσαγιού = “Fruit of Passion”

    Αρχή_επανάληψης

    Διάβασε name

    Μέχρις_ότου name = “Κανένας”

    2- Συμπληρώστε τα κενά στα παρακάτω τμήματα αλγορίθμων.

    Αρχή_επανάληψης

    Διάβασε _______________

    Μέχρις_ότου auto = “bugatti veiron”

    Αρχή_επανάληψης

    Διάβασε _______________

    Μέχρις_ότου BestXmas = 2011

    Αρχή_επανάληψης

    Διάβασε year_of_Birth

    Μέχρις_ότου ________________ = 1998

    Αρχή_επανάληψης

    Διάβασε _______________

    Μέχρις_ότου _______________ = “Θεσσαλονίκη”


  • Στην κατηγορία Απλά Προβλήματα δίνονται μια σειρά θεμάτων για τα οποία πρέπει να υλοποιήσετε τους αντίστοιχους αλγόριθμους.

  • ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ

    ΟΙ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ – ΓΕΝΙΚΑ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.2 ΕΝΤΟΛΗ ΜΕΧΡΙΣ_ΟΤΟΥ

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

    Ο βρόχος είναι βασική δομή επανάληψης, η οποία επιτρέπει την εκτέλεση εντολών περισσότερες από μία φορά.

    Οι επαναλήψεις ελέγχονται πάντοτε από κάποια συνθήκη, η οποία καθορίζει την έξοδο από το βρόχο. 

     

    ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

      8.1 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΕΣ

     

    Για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης χρησιμοποιούνται σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικοί και λογικοί τελεστές, καθώς και παρενθέσεις. Στις λογικές εκφράσεις γίνεται σύγκριση της τιμής μίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό τελεστή με την τιμή μιας άλλης έκφρασης που βρίσκεται δεξιά. Το αποτέλεσμα είναι μία λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ. 

    ΣΥΓΚΡΙΤΙΚΟΙ ΤΕΛΕΣΤΕΣ

    Τελεστής Ελεγχόμενη σχέση Παράδειγμα
    = ισότητα Αριθμός = 0
    <> Ανισότητα ονομα1 <> ‘Κώστας’
    > Μεγαλύτερο από τιμή > 10000
    >= Μεγαλύτερο ή ίσο Χ+υ >= (Α+Β)/γ
    < Μικρότερο από Β^2-4*Α*γ < 0
    <= Μικρότερο ή ίσο Βάρος <= 500

     

    ΠΑΡΑΤΗΡΗΣΕΙΣ

    Οι συγκρίσεις γίνονται σε δεδομένα αριθμητικά, αλφαριθμητικά και λογικά. 

    Η σύγκριση μεταξύ δύο αριθμών γίνεται με προφανή τρόπο. Στην περίπτωση των πραγματικών αριθμών θεωρούμε ότι οι αριθμοί μπορούν να έχουν άπειρο αριθμό ψηφίων. 

    Η σύγκριση ατομικών χαρακτήρων στηρίζεται στην αλφαβητική σειρά, για παράδειγμα το ‘α’ θεωρείται μικρότερο από το ‘β’. 

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

    Η σύγκριση λογικών έχει έννοια μόνο στην περίπτωση του ίσου ( = ) και του διάφορου (<>), αφού οι τιμές που μπορούν να έχουν είναι ΑΛΗΘΗΣ και ΨΕΥΔΗΣ. 

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

     

    Η ΕΝΤΟΛΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ …  ΜΕΧΡΙΣ_ΟΤΟΥ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 8 ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

    2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.2 ΕΝΤΟΛΗ ΜΕΧΡΙΣ_ΟΤΟΥ

    Στην εντολή επανάληψης ΜΕΧΡΙΣ_ΟΤΟΥ οι εντολές του βρόχου εκτελούνται μέχρις ότου ικανοποιηθεί κάποια συνθήκη η οποία ελέγχεται στο τέλος της επανάληψης. 

    Στην εντολή ΜΕΧΡΙΣ_ΟΤΟΥ η συνθήκη βρίσκεται στο τέλος του βρόχου και εκτελείται συνεχώς μέχρις ότου η συνθήκη αυτή γίνει Αληθής.

    Σύνταξη

    Αρχή_επανάληψης 

    Διαδικασία

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

     

    όπου ως διαδικασία λαμβάνεται ένα σύνολο εντολών.

    Σύνταξη 

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 

    εντολή-1

    εντολή-2

    εντολή-ν 

    ΜΕΧΡΙΣ_ΟΤΟΥ λογική-έκφραση 

    Λειτουργία 

    Εκτελούνται οι εντολές μεταξύ των ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ και ΜΕΧΡΙΣ_ΟΤΟΥ. Στη συνέχεια ελέγχεται η λογική έκφραση και αν δεν ισχύει (είναι ψευδής), τότε οι εντολές που βρίσκονται ανάμεσα στις ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ και ΜΕΧΡΙΣ_ΟΤΟΥ, εκτελούνται πάλι. Ελέγχεται ξανά η λογική έκφραση και αν δεν ισχύει, επαναλαμβάνεται η εκτέλεση των ίδιων εντολών. 

    Όταν η λογική έκφραση γίνει Αληθής, τότε σταματάει η επανάληψη και εκτελείται η εντολή μετά από την ΜΕΧΡΙΣ_ΟΤΟΥ.  

    ΠΑΡΑΤΗΡΗΣΕΙΣ

    Πρόκειται για επαναληπτικό σχήμα με έλεγχο επανάληψης στο τέλος.

    Ας σημειωθεί ότι, ο βρόχος επανάληψης θα εκτελεσθεί οπωσδήποτε τουλάχιστον μία φορά, δηλαδή:
    Η εντολή Αρχή_επανάληψης … μέχρις_ότου εκτελείται οπωσδήποτε μια φορά. 

    Γενικά σε περιπτώσεις όπου η επανάληψη θα συμβεί υποχρεωτικά μία φορά, είναι προτιμότερη η χρήση της ΜΕΧΡΙΣ_ΟΤΟΥ. 

    Χαρακτηριστική περίπτωση όπου προτιμάται η εντολή ΜΕΧΡΙΣ_ΟΤΟΥ είναι στον έλεγχο αποδεκτών τιμών καθώς και στην επιλογή από προκαθορισμένες απαντήσεις ή μενού.

     

    ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 

    Γενική Σύνταξη

    Αρχή_επανάληψης

    εντολές

    μέχρις_ότου λογική έκφραση

    Λειτουργία

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

Μάθημα 2οΗ ΕΝΤΟΛΗ ΑΝ … ΤΟΤΕ … ΤΕΛΟΣ_ΑΝ ΠΛΗ ΕΠΙΛΟΓΗ)


Διδακτικοί Στόχοι Μαθήματος

Μετά το τέλος του μαθήματος ο μαθητής θα πρέπει να είναι σε θέση:

  • να “φιλτράρει” τιμές δεδομένων σ’ έναν αλγόριθμο χρησιμοποιώντας εντολές απλής επιλογής.

  • Πρόβλημα

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

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • #include <iostream>
    using namespace std;
    int main() {
    double x , y, maximum;
    do {
    cout<<“Please enter a  number: “;
    cin>>x;
    cout<<“Please enter another number: “;
    cin>>y;
    if (x>y)
    maximum = x;
    if (y>x)
    maximum = y;
    cout<<“max(“<<x<<“,”<<y<<“) = “<<maximum<<“\n\n”;
    } while (x!=y);
    cout<<“\nEnd pf program ………..”;
    }

  • Να γραφεί αλγόριθμος που θα πληροφορεί για το αν ένας δοσμένος αριθμός είναι θετικός ή αρνητικός. Ο αλγόριθμος τερματίζει όταν δοθεί αριθμός που δεν είναι ούτε θετικός, ούτε αρνητικός.

  • ΟΙ ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ – ΓΕΝΙΚΑ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.2 ΔΟΜΗ ΕΠΙΛΟΓΗΣ 8.1. ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ

    Στην πραγματικότητα πολύ λίγα προβλήματα μπορούν να επιλυθούν με τον τρόπο της σειριακής/ακολουθιακής δομής ενεργειών. Συνήθως τα προβλήματα έχουν κάποιες ιδιαιτερότητες και δεν ισχύουν τα ίδια βήματα για κάθε περίπτωση. Η πλέον συνηθισμένη περίπτωση είναι να λαμβάνονται κάποιες αποφάσεις με βάση κάποια δεδομένα κριτήρια, που μπορεί να είναι διαφορετικά για κάθε διαφορετικό στιγμιότυπο ενός προβλήματος. Οι καθημερινές απλές μας ενέργειες περιέχουν αυτή τη διαδικασία επιλογής με βάση κάποια κατάσταση.
    Για παράδειγμα,
    το πρόβλημα της προετοιμασίας μας για έξοδο σχετίζεται με τις καιρικές συνθήκες. Έτσι λέμε ότι, “αν βρέχει, θα πάρω ομπρέλα, αλλιώς θα πάρω καπέλο”. Η συνθήκη εδώ είναι το “αν βρέχει”, ενώ η απόφαση είναι είτε να πάρω την “ομπρέλα” είτε το “καπέλο” με βάση την “τιμή” της συνθήκης. 

    Γενικά η διαδικασία της επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης κάποιας ενέργειας με βάση την τιμή της λογικής αυτής συνθήκης.

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

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

    Η ΕΝΤΟΛΗ ΑΠΛΗΣ_ΕΠΙΛΟΓΗΣ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.2 ΔΟΜΗ ΕΠΙΛΟΓΗΣ 8.1.1 ΕΝΤΟΛΗ ΑΝ

    Στην παράσταση αλγορίθμων με ψευδογλώσσα η επιλογή υλοποιείται με την εντολή Αν…τότε.

    Η δομή επιλογής υλοποιείται στη ΓΛΩΣΣΑ με την εντολή ΑΝ. Η εντολή ΑΝ εμφανίζεται με τρεις διαφορετικές μορφές. Την απλή εντολή ΑΝ… ΤΟΤΕ, την εντολή ΑΝ…ΤΟΤΕ..ΑΛΛΙΩΣ και τέλος την εντολή ΑΝ…ΤΟΤΕ.. ΑΛΛΙΩΣ_ΑΝ. Κάθε εντολή ΑΝ πρέπει να κλείνει με ΤΕΛΟΣ_ΑΝ. 

    Στην απλούστερη μορφή της η εντολή ΑΝ ελέγχει τη συνθήκη και αν αυτή ισχύει (είναι αληθής), τότε εκτελούνται οι εντολές που περιλαμβάνονται μεταξύ των λέξεων ΤΟΤΕ και ΤΕΛΟΣ_ΑΝ. 

    Σύνταξη

    Αν συνθήκη τότε εντολή

    Λειτουργία

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

     

    Στην εντολή Αν…τότε είναι πιθανό, όταν ισχύει η συνθήκη, να απαιτείται η εκτέλεση περισσότερων από μία εντολές. Στην περίπτωση αυτή οι διαδοχικές εντολές γράφονται από κάτω και σε εσοχή, ενώ το σχήμα επιλογής κλείνει με τη λέξη Τέλος_αν. 

    Αν συνθήκη τότε

    εντολή_1
    εντολή_2
    …………..
    εντολή_ν 

    Τέλος_αν 

    Η γενική μορφή της εντολής ΑΝ είναι η εξής: 

    Σύνταξη

    ΑΝ συνθήκη ΤΟΤΕ

    εντολή-1
    εντολή-2

    εντολή-ν 

    ΤΕΛΟΣ_ΑΝ 

    Λειτουργία 

    Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων ΤΟΤΕ και ΤΕΛΟΣ_ΑΝ, σε αντίθετη περίπτωση οι εντολές αυτές αγνοούνται. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ.

    ΠΑΡΑΤΗΡΗΣΕΙΣ

     

    ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 

    Γενική Σύνταξη

    Αν λογική έκφραση τότε

    εντολές

    Τέλος_αν

    Λειτουργία

    Ελέγχεται η λογική έκφραση που ακολουθεί την Αν. Εφ’ όσον ως αποτέλεσμα του ελέγχου επιστρέφεται η τιμή αληθής εκτελούνται οι εντολές που ακολουθούν την δεσμευμένη λέξη τότε. Σε κάθε άλλη περίπτωση (η λογική έκφραση ψευδής) εκτελούνται οι εντολές μετά το Τέλος_αν

  • Στην κατηγορία Σύνθετα προβλήματα μπορείτε να υλοποιήσετε μια σειρά από αλγόριθμους εφαρμόζοντας όσα μάθατε.

Μάθημα 3οΗ ΕΝΤΟΛΗ ΟΣΟ … ΕΠΑΝΑΛΑΒΕ


Διδακτικοί Στόχοι Μαθήματος

Μετά το τέλος του μαθήματος ο μαθητής θα πρέπει να είναι σε θέση:

  • να συντάσει επαναληπτικές διαδικασίες χρησιμοποιώντας την εντολή Όσο … επανάλαβε.
  • να ελέγχει εκτελώντας έναν επαναληπτικό αλγόριθμο.

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

    Βήμα 1: Διαίρεσε το α με το β και ονόμασε υ το υπόλοιπο.
    Βήμα 2: Αν το υπόλοιπο είναι διαφορετικό του μηδενός, θέσε την τιμή του α ίση με β, την τιμή του β ίση με υ και πήγαινε στο βήμα 1. Σε διαφορετική περίπτωση (το υπόλοιπο ίσο με μηδέν) συνέχισε με το βήμα 3.
    Βήμα 3: Οι υπολογισμοί σταματούν και ο μέγιστος κοινός διαιρέτης είναι ο β.
    Ζητείται να υλοποιήσετε τον παραπάνω αλγόριθμο σε ψευδογλώσσα.
    Λέξεις κλειδιά: Μέγιστος Κοινός Διαιρέτης, Ευκλείδης, υπόλοιπο διαίρεσης, Όσο, επανάλαβε, Τέλος_επανάληψης.

  • Ορισμός

    Ως μέγιστος κοινός διαιρέτης δύο θετικών ακεραίων αριθμών, έστω α, β ορίζεται ο μεγαλύτερος από τους κοινούς διαιρέτες των α και β.

    Παρατηρήσεις

    Στον αλγόριθμο που περιγράφεται η εντολή Πήγαινε στο βήμα 1 στην ουσία επιβάλει την εκτέλεση μιας επαναληπτικής διαδικασίας η οποία περιλαμβάνει τις ενέργειες που περιγράφονται στα βήματα 1 και 2.
    Η επαναληπτική αυτή διαδικασία τερματίζει όταν υ = 0 ή σε διαφορετική διατύπωση συνεχίζει όσο υ < > 0. Ο αλγόριθμος πρέπει να επανασχεδιασθεί χωρίς την εντολή Πήγαινε.

    Αντιμετώπιση προβλήματος

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

     

    Μετά από πολύ συζήτηση με τον Παναγιώτη (βλέπε Μπακοπούλειο Θεώρημα)

    ΑΡΧΙΚΑ

    ΜΕΤΑ ΑΠΟ ΣΥΖΗΤΗΣΗ, ΠΡΟΒΛΗΜΑΤΙΣΜΟ
    & TESTING

    Αλγοριθμος μεγιστος_κοινος_διαιρετης

    γραψε “Δωσε δυο αριθμους”

    διαβασε α, β

    μκδ 0

    επαναλαβε

    αν α mod β=0 τοτε

    μκδ <- β

    τελος_αν

    αν α mod β<>0 τοτε

    υ <- α mod β

    α <- β

    β <- υ

    τελος_αν

    μεχρις_οτου α mod β=0

    γραψε “Ο μεγιστος κοινος διαιρετης ειναι “, μκδ

    τελος μεγιστος_κοινος_διαιρετης

    Αλγοριθμος μεγιστος_κοινος_διαιρετης

    γραψε “Δωσε δυο αριθμους”

    διαβασε α, β

    υ <- α mod β

    επαναλαβε

    αν υ <> 0 τοτε

    α <- β

    β <- υ

    υ <- α mod β

    τελος_αν

    αν υ = 0 τοτε

    μκδ <- β

    τελος_αν

    μεχρις_οτου υ = 0

    γραψε “Ο μεγιστος κοινος διαιρετης ειναι “, μκδ

    Τέλος μεγιστος_κοινος_διαιρετης

     

    Αλγοριθμος μεγιστος_κοινος_διαιρετης
    γραψε “Δωσε δυο θετικους και ταυτοχρονα ακεραιους αριθμους”
    διαβασε α, β
    επαναλαβε
    υ <- α mod β
    αν υ <> 0 τοτε
    α <- β
    β <- υ
    τελος_αν
    μεχρις_οτου υ = 0
    μκδ <- β
    γραψε “Ο μεγιστος κοινος διαιρετης ειναι “, μκδ
    τελος μεγιστος_κοινος_διαιρετης

    Αλγοριθμος μεγιστος_κοινος_διαιρετης

    γραψε “Δώσε δυο θετικους και ταυτοχρονα ακεραιους αριθμους”

    διαβασε α, β

    υ <- α mod β

    Όσο υ <> 0 επανάλαβε

    α <- β

    β <- υ

    υ <- α mod β

    Τέλος_επανάληψης

    μκδ <- β

    γραψε “Ο μεγιστος κοινος διαιρετης ειναι “, μκδ

    τελος μεγιστος_κοινος_διαιρετης

     


    Ας εφαρμόσουμε τον αλγόριθμο του Ευκλείδη για α = 12, β = 18.

    Βήμα 1:

    Διαίρεσε το α με το β και ονόμασε υ το υπόλοιπο.

    Διαιρούμε λοιπόν το α = 12 με το β = 18 και βρίσκω υπόλοιπο υ = 12.

    Εντολή που πρέπει να εκτελεστεί:    υ ← α mod β

    Βήμα 2:

    Αν το υπόλοιπο είναι διαφορετικό του μηδενός, θέσε την τιμή του α ίση με β, την τιμή του β ίση με υ και πήγαινε στο βήμα 1. Σε διαφορετική περίπτωση (το υπόλοιπο ίσο με μηδέν) συνέχισε με το βήμα 3.

    Το υπόλοιπο δεν είναι 0, οπότε προχωράμε θέτοντας

    α = β δηλ. α = 18 και β = υ ήτοι β = 12.

    Εντολές που πρέπει να εκτελεστούν:

    α  ← β

    β ← υ

    Συνεχίζουμε με το βήμα 1.

    Βήμα 1:

    Διαίρεσε το α με το β και ονόμασε υ το υπόλοιπο.

    Νέα τιμή για το υπόλοιπο: υ = 18 mod 12 = 6.

    Εντολή που πρέπει να εκτελεστεί (ξανά):

    υ ← α mod β

    Συνεχίζουμε με το βήμα 2, αφού υ < > 0.

    Βήμα 2:

    Αν το υπόλοιπο είναι διαφορετικό του μηδενός, θέσε την τιμή του α ίση με β, την τιμή του β ίση με υ και πήγαινε στο βήμα 1. Σε διαφορετική περίπτωση (το υπόλοιπο ίσο με μηδέν) συνέχισε με το βήμα 3.

    Το α παίρνει την τιμή του β και το β την τιμή του υ. Έχουμε δηλ. νέες τιμές,

     α = 12, β = 6.

    Οι ίδιες εντολές όπως προηγουμένως πρέπει να εκτελεστούν:

    α  ← β

    β ← υ

    Ξανά στο βήμα 1.

    Βήμα 1:

    Διαίρεσε το α με το β και ονόμασε υ το υπόλοιπο.

    Η εντολή υ ← α mod β δίνει ως αποτέλεσμα υ = 0.

    Βήμα 2:

    Αν το υπόλοιπο είναι διαφορετικό του μηδενός, θέσε την τιμή του α ίση με β, την τιμή του β ίση με υ και πήγαινε στο βήμα 1. Σε διαφορετική περίπτωση (το υπόλοιπο ίσο με μηδέν) συνέχισε με το βήμα 3.

    Ισχύει υ = 0, συνεχίζουμε με το βήμα 3.

    Βήμα 3: 

    Οι υπολογισμοί σταματούν και ο μέγιστος κοινός διαιρέτης είναι ο β.

    δηλ. ο ΜΚΔ των 12 και 18 είναι ο αριθμός 6.

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

    υ ← α mod β

    α  ← β

    β ← υ

    Ερώτημα που ζητά απάντηση:

    – Από τι εξαρτάται αυτή η επαναληπτική εκτέλεση των εντολών αυτών;

    Η απάντηση:

    – Μα φυσικά από την τιμή του υπολοίπου που υπολογίζεται κάθε φορά στο βήμα 1. Η επανάληψη τερματίζει όταν το υπόλοιπο γίνει ίσο με μηδέν. Σε διαφορετική διατύπωση η επανάληψη συνεχίζει όσο – τι συμβαίνει;

    Υπόλοιπο < > 0 ή υ <> 0

    Το ποιο από τα δύο ερωτήματα θα επιλέξουμε ν’ απαντήσουμε καθορίζει και το ποια εντολή θα χρησιμοποιήσουμε για την επανάληψη. Για το συγκεκριμμένο πρόβλημα θα επιλέξουμε η επανάληψη να συνεχίζει όσο το υ< >0. Θα ειναι λοιπόν,

    Όσο υ<>0 επανάλαβε

    Ακολουθεί την εντολή Όσο πάντα μια έκφραση. Η έκφραση αυτή αποτελείται, σχηματίζεται, διαμορφώνεται από μια μεταβλητή (υ), μία σταθερά (αριθμός 0) και ένα συγκριτικό τελεστή (σύμβολο σύγκρισης) < >. Οι εκφράσεις αυτής της μορφής συναντήθηκαν σε προηγούμενο μάθημα, είναι γνωστές ως λογικές εκφράσεις ή αλλιώς συνθήκες και πάντα χαρακτηρίζονται (παίρνουν τιμή) αληθής ή ψευδής ανάλογα με το αν ισχύουν ή όχι. Η τιμή της λογικής έκφρασης καθορίζει και ποια θα είναι η επόμενη εντολή που θα εκτελεστεί. Έτσι στην περίπτωση που η λογική έκφραση είναι αληθής εκτελούνται οι εντολές μετά την δεσμευμένη λέξη επανάλαβε.

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

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

    υ ← α mod β

    Όσο υ<>0 επανάλαβε

    α ← β

    β ← υ

    υ ← α mod β

    Τέλος_επανάληψης

  • Ο Δημήτρης πρότεινε για την επίλυση του προβλήματος τον αλγόριθμο που ακολουθεί. Ζητείται να εκτελέσετε τον αλγόριθμο για τα παρακάτω ζευγάρια δεδομένων:

    α) 12, 18 β) 18, 12 γ) 24, 12.

    Σχολιάστε τα αποτελέσματα και βρείτε τα λάθη στον αλγόριθμο.

    Αλγόριθμος ΜέγιστοςΚοινόςΔιαιρέτης_Μέχρις_Ότου

     !Checked OK & Errors & No Data

    Διάβασε α, β

    υ α mod β

    Αρχή_επανάληψης

    α β

    β υ

    υ α mod β

    μέχρις_ότου υ = 0

    ΜΚΔ β

    Εμφάνισε ΜΚΔ

    Τέλος ΜέγιστοςΚοινόςΔιαιρέτης_Μέχρις_Ότου

  • Αλγόριθμος ΜέγιστοςΚοινόςΔιαιρέτης

    !Checked OK & Data – 2018

    Διάβασε α, β

    υ  α mod β

    Όσο υ<>0 επανάλαβε

    α β

    β  υ

    υ  α mod β

    Τέλος_επανάληψης

    ΜΚΔ  β

    Εμφάνισε ΜΚΔ

    Τέλος ΜέγιστοςΚοινόςΔιαιρέτης

    Παρατηρήσεις

    Κάθε πρόβλημα που απαιτεί επαναληπτική εκτέλεση εντολών μπορεί ν’ αντιμετωπιστεί αποτελεσματικά ως εξής:

    1ον) εντοπίζεται η μεταβλητή ή οι μεταβλητές που ελέγχουν την επανάληψη – για το παράδειγμά μας αυτή είναι η μεταβλητή που αντιστοιχεί στο υπόλοιπο της διαίρεσης με το α και το β και συμβολίζεται με υ.

    2ον) η μεταβλητή ελέγχου της επανάληψης έχει τρία χαρακτηριστικά – ιδιότητες:

    α) Αρχική τιμή – πάντα πριν την επανάληψη

    β) Τελική τιμή – συμπίπτει με την συνθήκη πάντα της Όσο.

    γ) Μεταβολή – πάντα μέσα στις εντολές της επανάληψης.

  • Υλοποιήστε αλγόριθμο σε ψευδογλώσσα που θα δίνει ως αποτέλεσμα το υπόλοιπο της διαίρεσης δύο θετικών ακεραίων αριθμών. Δίνεται ο αλγόριθμος σε φυσική γλώσσα κατά βήματα.

    Βήμα 1:     Έστω δύο αριθμοί Χ και Υ.

    Βήμα 2:     Είναι ο Υ μεγαλύτερος από τον Χ;

    Βήμα 3:     Αν όχι αντικατέστησε τον Χ με Χ-Υ και πήγαινε στο Βήμα 2. Διαφορετικά συνέχισε με το Βήμα 4.

    Βήμα 4:     Το αποτέλεσμα είναι η τιμή του Χ.

  • Υλοποιήστε τις επαναληπτικές διαδικασίες των προβλημάτων της κατηγορίας Απλά Προβλήματα και Σύνθετα Προβλήματα με την εντολή Όσο … επανάλαβε.

  • ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ

    Η ΕΝΤΟΛΗ ΟΣΟ … ΕΠΑΝΑΛΑΒΕ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.1 ΕΝΤΟΛΗ ΟΣΟ … ΕΠΑΝΑΛΑΒΕ

    Η ΓΛΩΣΣΑ υποστηρίζει την εντολή ΟΣΟ, όπου η επανάληψη ελέγχεται από μία λογική έκφραση στην αρχή και εκτελείται συνεχώς όσο η συνθήκη είναι Αληθής.

    Πιο συγκεκριμμένα:
    Η γενικότερη δομή επανάληψης υλοποιείται στη ΓΛΩΣΣΑ με την εντολή ΟΣΟ… ΕΠΑΝΑΛΑΒΕ. Σε αυτή, η συνθήκη που ελέγχει την επανάληψη βρίσκεται στην αρχή της επανάληψης και ο βρόχος επαναλαμβάνεται συνεχώς, όσο η συνθήκη αυτή ισχύει. 

    Σύνταξη

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

    εντολές 

    Τέλος_επανάληψης

    Λειτουργία

    Η λειτουργία της εντολής είναι η εξής:
    Επαναλαμβάνεται η εκτέλεση των εντολών, όσο η συνθήκη είναι αληθής. Όταν η συνθήκη γίνει ψευδής, τότε ο αλγόριθμος συνεχίζεται με την εντολή που ακολουθεί το ‘Τέλος_ επανάληψης’.

    Σύνταξη 

    ΟΣΟ συνθήκη ΕΠΑΝΑΛΑΒΕ

    εντολή-1
    εντολή-2

    εντολή-ν 

    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

    Λειτουργία 

    Ελέγχεται η συνθήκη και αν είναι Αληθής, εκτελούνται οι εντολές που βρίσκονται ανάμεσα στις ΟΣΟ_ΕΠΑΝΑΛΑΒΕ και ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Στη συνέχεια ελέγχεται πάλι η συνθήκη και αν ισχύει, εκτελούνται πάλι οι ίδιες εντολές. Όταν η λογική έκφραση γίνει Ψευδής, τότε σταματάει η επανάληψη και εκτελείται η εντολή μετά το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. 

    ΠΑΡΑΤΗΡΗΣΕΙΣ

    Πρόκειται για επαναληπτικό σχήμα με έλεγχο επανάληψης στην αρχή.

    Tο τμήμα του αλγορίθμου που επαναλαμβάνεται, δηλαδή από την εντολή Όσο μέχρι το τέλος_επανάληψης αποκαλείται βρόχος. 

    Ο βρόχος επανάληψης μπορεί να μην εκτελεσθεί καμία φορά.

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

    Ο αλγόριθμος που δεν διαθέτει τρόπο τερματισμού ονομάζεται ατέρμων βρόχος.

    Με τη δομή αυτή μπορούν να εκφραστούν όλες οι επαναλήψεις και γι’ αυτό η εντολή ΟΣΟ… ΕΠΑΝΑΛΑΒΕ είναι η σημαντικότερη από όλες τις εντολές επανάληψης. Χαρακτηριστικό της επανάληψης αυτής είναι ότι ο αριθμός των επαναλήψεων δεν είναι γνωστός, ούτε μπορεί να υπολογιστεί πριν από την εκτέλεση του προγράμματος.

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

     

    ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 

    Εντολή Όσο …. επανάλαβε

    Γενική Σύνταξη

    Όσο λογική έκφραση επανάλαβε

    εντολές

    Τέλος_επανάληψης

    Λειτουργία

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

Μάθημα 4οΗ ΤΙΜΗ ΦΡΟΥΡΟΣ – ΔΙΑΦΟΡΕΣ ΟΣΟ & ΜΕΧΡΙΣ_ΟΤΟΥ


Διδακτικοί Στόχοι Μαθήματος

Μετά το τέλος του μαθήματος ο μαθητής θα πρέπει να είναι σε θέση:

  • να αναγνωρίζει σ’ ένα πρόβλημα την τιμή των δεδομένων εκείνη που δεν είναι λογικά “σωστή” και επιπλέον οδηγεί στον τερματισμό μιας επαναληπτικής διαδικασίας.
  • να διατυπώνει τις διαφορές μεταξύ των εντολών Όσο και μέχρις_ότου.

  • Πρόβλημα

    Να γραφεί αλγόριθμος που θα δίνει ως έξοδο το εμβαδό κύκλου, χρησιμοποιώντας τον τύπο Eκυκλ = πR2 και την περίμετρό του η οποία δίνεται από την σχέση  Περκυκλ = 2πR. Οι υπολογισμοί επαναλαμβάνονται για κύκλους διαφόρων ακτίνων και παύουν να πραγματοποιούνται όταν δοθεί ακτίνα ίση με μηδέν.

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


    Κύκλος εστί σχήμα επίπεδον υπό μιας γραμμής περιεχόμενον [ή καλείται περιφέρεια], πρός ήν αφ’ενός σημείου τών εντός τού σχήματος κειμένων πάσαι αι προσπίπτουσαι ευθείαι [πρός τήν τού κύκλου περιφέρειαν] ίσαι αλλήλαις εισίν. Κέντρον δε τού κύκλου το σημείον καλείται. Διάμετρος δε του κύκλου εστίν ευθεία τις διά τού κέντρου ηγμένη και περατουμένη εφ’ εκάτερα τά μέρη υπό τής τού κύκλου περιφερείας, ήτις καί δίχα τέμνει τόν κύκλον“.

    Ευκλείδης Στοιχεία – Βιβλίο Πρώτο


    Λέξεις κλειδιά: κύκλος, εμβαδόν, περίμετρος, τιμή φρουρός.

  • Ανάλυση

    Θέτουμε τα επόμενα ερωτήματα:

    Ποια τα δεδομένα του προβλήματος;

    π = 3,14 (σταθερά)

    R, η μεταβλητή που παριστά την ακτίνα του κύκλου

    Ποιο από τα δεδομένα του προβλήματος επηρεάζει την επανάληψη;

    Η τιμή της ακτίνας, δηλ. το R.

    Για ποια τιμή του R τερματίζει η επανάληψη;

    Για R = 0

    Η τιμή 0 (μηδέν) για την ακτίνα αποτελεί έγκυρη τιμή ή αλλιώς είναι λογικά σωστή για το πρόβλημα;

    Η τιμή 0 (μηδέν) σαφώς και δεν αποτελεί έγκυρη τιμή, αφού δεν υπάρχει κύκλος με ακτίνα ίση με μηδέν.

    Υποδείξεις

    Υλοποιούμε αρχικά τον αλγόριθμο χρησιμοποιώντας της εντολής μέχρις_ότου. Θα είναι:

    Αλγόριθμος Κύκλος

    π 3.14

    Αρχή_επανάληψης

       Διάβασε R

       Εκυκλ π * R^2

       Περκυκλ 2 * π * R

       Εμφάνισε Εκυκλ, Περκυκλ

    μέχρις_ότου R = 0

    Τέλος Κύκλος

    Σχολιασμός αλγορίθμου

    Είναι προφανές ότι ο αλγόριθμος εκτελεί σωστά τους υπολογισμούς που απαιτούνται από το πρόβλημα για εκείνες τις τιμές της ακτίνας που είναι διαφορετικές του μηδενός.

    Όταν η ακτίνα πάρει τιμή ίση με μηδέν -και αυτό θα συμβεί κατά την τελευταία επανάληψη- και παρ’ ότι η εκφώνηση του προβλήματος ρητά αναφέρει ότι για τιμή ακτίνας ίση με μηδέν οι υπολογισμοί σταματούν- ο αλγόριθμος θα εκτελέσει ακόμη δύο υπολογισμούς επιστρέφοντας ως αποτέλεσμα μηδενική τιμή για το εμβαδό του κύκλου και μηδενική τιμή για την περίμετρο.
    Η τελευταία αυτή επανάληψη λοιπόν δεν πρέπει να εκτελεστεί.

    Αναπόφευκτα δημιουργείται το ερώτημα:

    Σε τι αλλαγές όμως θα προχωρήσουμε στον αλγόριθμο ώστε να επιτευχθεί το ζητούμενο αποτέλεσμα -δεδομένου των περιορισμών που θέτει η λειτουργία της εντολής μέχρις_ότου;


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


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

     

    Αλγόριθμος Κύκλος

    !ChOK ND

    π ← 3.14

    Διάβασε R

    Όσο R<>0 επανάλαβε

    Εκυκλ ← π * R^2

    ΠερΚυκλ ← 2 * π * R

    Διάβασε R

    Τέλος_επανάληψης

    Τέλος Κύκλος

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

    Ολοκληρώνοντας,

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

    Διαφορές μεταξύ Όσο … επανάλαβε και Αρχή_επανάληψης … μέχρις_ότου 

    Όσο … επανάλαβε Αρχή_επανάληψης … μέχρις_ότου
    Η επανάληψη τερματίζει όταν η συνθήκη γίνει ψευδής Η επανάληψη τερματίζει όταν η συνθήκη γίνει αληθής

    ή σε διαφορετική διατύπωση

    Η επανάληψη συνεχίζει όταν η συνθήκη είναι ψευδής Η επανάληψη συνεχίζει όταν η συνθήκη είναι αληθής

    Συνεπεία αυτού είναι ότι όταν μετατρέπουμε από την μία στην άλλη οι συνθήκες είναι κατά κανόνα συμπληρωματικές

    Ο έλεγχος της συνθήκης γίνεται στην αρχή της επανάληψης Ο έλεγχος της συνθήκης γίνεται στο τέλος της επανάληψης
    Στο παράδειγμά μας

    Όσο R<>0 επανάλαβε

    ……..

    Τέλος_επανάληψης

    Αρχή_επανάληψης

    ……..

    μέχρις_ότου R = 0

    Συνεπεία αυτού είναι ότι, 
    στην εντολή Όσο … επανάλαβε, πρέπει του ελέγχου της συνθήκης να προηγείται πάντα μια εντολή που -όπως ήδη έχουμε δει- να δίδει τιμή στην μεταβλητή που ελέγχει την επανάληψη. Ανάλογη απαίτηση δεν υπάρχει στην μέχρις_ότου.
    Στο παράδειγμά μας

    Διάβασε R

    Όσο R<>0 επανάλαβε

    ……..

    Τέλος_επανάληψης

  • Αλγόριθμος Κύκλος

    !ChOK ND

    π ← 3.14

    Διάβασε R

    Όσο R<>0 επανάλαβε

    Εκυκλ ← π * R^2

    ΠερΚυκλ ← 2 * π * R

    Διάβασε R

    Τέλος_επανάληψης

    Τέλος Κύκλος

  •  

  • Ελλάδα 2014. Για τον φόρο εισοδήματος ατομικών επιχειρήσεων, ΟΕ και ΕΕ ιχύουν τα εξής:

    • Κέρδη έως 50.000€ συντελεστής φόρου 26%.
    • Κέρδη από 50.001€ και άνω συντελεστής φόρου 33%.

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

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

  • Η ΤΙΜΗ ΦΡΟΥΡΟΣ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.5 ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 8.2.1 ΕΝΤΟΛΗ ΟΣΟ …ΕΠΑΝΑΛΑΒΕ

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

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

    ΠΑΡΑΤΗΡΗΣΕΙΣ

    Η τιμή φρουρός δεν μπορεί να ανήκει στις εισαγόμενες τιμές (αποδεκτές τιμές εισόδου ενός αλγορίθμου). 

Μάθημα 5οΗ ΕΝΤΟΛΗ ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ … ΤΕΛΟΣ_ΑΝ ΥΝΘΕΤΗ ΕΠΙΛΟΓΗ)


  • Να δημιουργηθεί αλγόριθμος που θα διαβάζει ένα θετικό ακέραιο αριθμό και θα ελέγχει αν είναι άρτιος ή όχι. Ο αλγόριθμος συνεχίζεται όσο συνεχίζεται και η έγκυρη εισαγωγή δεδομένων.

    Λέξεις κλειδιά:  έλεγχος εγκυρότητας, άρτιοι αριθμοί, υπόλοιπο, mod, Αν … τότε, αλλιώς, Τέλος_αν, Όσο … επανάλαβε.

  • Άρτιοι αριθμοί: 2, 4, 6, 8, 10, ………

    Περιττοί αριθμοί: 1, 3, 5, 7, 9, ……….

    Θέτουμε το ερώτημα:

    Τι κοινό χαρακτηριστικό έχουν οι άρτιοι αριθμοί;

    Δίνουμε και την απάντηση

    Είναι πολλαπλάσια του 2 ή καλύτερα,

    διαιρούνται όλοι ακριβώς (υπόλοιπο μηδέν) με το 2.

    Μία ακόμη ερώτηση 

    Τι σημαίνει έγκυρη τιμή δεδομένων;

    και η απάντηση

    Σημαίνει τιμές δεδομένων όχι μικρότερες του μηδενός, όχι ίσες με μηδέν.

  • Αλγόριθμος ΆρτιοιΠεριττοί

    !Checked OK & Data

    Διάβασε x

    Όσο x>0 επανάλαβε

    !Έλεγχος για το αν ο x είναι άρτιος ή όχι

    Αν x mod 2 = 0 τότε

    Εμφάνισε “Άρτιος”

    αλλιώς

    Εμφάνισε “Όχι άρτιος, αλλά περιττός”

    Τέλος_αν

     Διάβασε x

    Τέλος_επανάληψης

    Τέλος ΆρτιοιΠεριττοί

  • Το πρόβλημα που δόθηκε –Άρτιοι Περιττοί- να λυθεί με χρήση λογικών μεταβλητών.

    ΠΡΟΓΡΑΜΜΑ ΆρτιοιΠεριττοί

    ΜΕΤΑΒΛΗΤΕΣ

    ΑΚΕΡΑΙΕΣ: x

    ΛΟΓΙΚΕΣ: flag

    ΑΡΧΗ

    ΔΙΑΒΑΣΕ x

    ΟΣΟ x > 0 ΕΠΑΝΑΛΑΒΕ

    !Έλεγχος για το αν ο x είναι άρτιος ή όχι

    ΑΝ x mod 2 = 0 ΤΟΤΕ

    flag ← ΑΛΗΘΗΣ

    ΑΛΛΙΩΣ

    flag ← ΨΕΥΔΗΣ

    ΤΕΛΟΣ_ΑΝ

    ΓΡΑΨΕ ‘O ‘, x, ‘ άρτιος: ‘, flag

    ΔΙΑΒΑΣΕ x

    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

  • ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΟΝ

    Η ΕΝΤΟΛΗ ΑΝ … ΤΟΤΕ … ΑΛΛΙΩΣ … ΤΕΛΟΣ_ΑΝ

    ΑΕΠΠ ΨΕΥΔΟΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

    ΑΕΠΠ ΓΛΩΣΣΑ

    ΚΕΦΑΛΑΙΟ 7 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

    2.4.2 ΔΟΜΗ ΕΠΙΛΟΓΗΣ 8.1 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ

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

    Η μορφή αυτής της εντολής ονομάζεται ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ.

    Γενική μορφή

    Αν συνθήκη τότε

    εντολή ή εντολές

    αλλιώς

    εντολή ή εντολές

    Τέλος_αν

     

    ή εναλλακτικά 

    Αν <συνθήκη> τότε

    <διαδικασία_1>

    αλλιώς

    <διαδικασία_2>

    Τέλος_αν

    όπου ως διαδικασία λαμβάνεται ένα σύνολο εντολών.

    Λειτουργία

     

     

    Σύνταξη

    Αν συνθήκη τότε

    εντολή-1

    εντολή-2

    εντολή-ν

    αλλιώς

    εντολή-1

    εντολή-2

    εντολή-ν

    Τέλος_αν

    Λειτουργία 

    Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων ΤΟΤΕ και ΑΛΛΙΩΣ, διαφορετικά εκτελούνται οι εντολές μεταξύ ΑΛΛΙΩΣ και ΤΕΛΟΣ_ΑΝ. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ

    Η γενική μορφή της εντολής ΑΝ καλύπτει την επιλογή μιας από δύο εναλλακτικές περιπτώσεις.

    ΠΑΡΑΤΗΡΗΣΕΙΣ (PervoliSchool) 
    Εντολή Αν ….

    Γενική Σύνταξη

    Αν συνθήκη τότε

    εντολή ή εντολές

    αλλιώς

    εντολή ή εντολές

    Τέλος_αν

    Λειτουργία

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

  • Μπορείτε να ολοκληρώσετε την μελέτη της κατηγορίας Αριθμητικοί Υπολογισμοί αναπτύσσοντας τους αλγορίθμους για τα προβλήματα της κατηγορίας Συνδιασμένων Δεξιοτήτων.

Α. ΓΕΝΙΚΑCelsius FarenaitΔείκτης μάζαςΕκπτώσειςΚαταθέσειςΣτατιστικά πληθυσμούΦΠΑΟικοδομικήΒ. ΕΙΔΙΚΑΕυθύγραμμο τμήμαΣφαίραΚώνοςΜάζα - ΒάροςΑνατοκισμόςΔιάσπαση ατόμου

  • Πρόβλημα

    Να αναπτυχθεί αλγόριθμος που θα μετατρέπει σε βαθμούς Φαρενάιτ (Farenait) θερμοκρασίες μετρημένες σε βαθμούς Κελσίου (Celcius). Ο αλγόριθμος επαναλαμβάνει την διαδικασία έως ότου προκύψει αποτέλεσμα ίσο με μηδέν. Ισχύει ότι,

    \( Farenait = \cfrac{9}{5} * (Celcius + 32). \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ


    Ακολουθεί διάλογος

    Ποιο το αποτέλεσμα ή διαφορετικά η τιμή εξόδου του αλγορίθμου;

    – Η προσεκτική ανάγνωση της εκφώνησης “υποδεικνύει” θερμοκρασίες της κλίμακας Farenait ως το αποτέλεσμα (ζητούμενο) που πρέπει να δίνει ο αλγόριθμος. 

    Ποια τα δεδομένα του αλγορίθμου;

    – Προκειμένου ο αλγόριθμος να υπολογίζει το ζητούμενο οπωσδήποτε πρέπει να γνωρίζει τους βαθμούς Κελσίου.

    Πως ο αλγόριθμος θα επεξεργαστεί τα δεδομένα;

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

    Απλή, ξεκάθαρη και κυρίως εκτελέσιμη από τον αλγόριθμο: \( Farenait = 9/5 \cdot (Celcius + 32) \)

    Επαναληπτική διαδικασία περιγράφεται στο πρόβλημα;

    – Αντιγράφουμε από την εκφώνηση σημειώνοντας λέξεις, φράσεις που οδηγούν σε καταφαντική απάντηση: 

    “Να αναπτυχθεί αλγόριθμος …………..θερμοκρασίες ………… Ο αλγόριθμος επαναλαμβάνει την διαδικασία …………”

    Από τι εξαρτάται η επαναληπτική διαδικασία που ξεκάθαρα περιγράφεται στο πρόβλημα;

    “Ο αλγόριθμος επαναλαμβάνει την διαδικασία έως ότου προκύψει αποτέλεσμα ίσο με μηδέν.”

    – Καμμιά αμφιβολία ότι το αποτέλεσμα του αλγορίθμου όπως πιο πάνω περιγράφηκε θα καθορίζει και τον αριθμό των επαναλήψεων που θα εκτελεστούν. Ειδικότερα:

    Ποια η εντολή επανάληψης που θα εκτελεί ο αλγόριθμος;

    – Το αποτέλεσμα του αλγόριθμου λοιπόν αφορά θερμοκρασίες εκφρασμένες σε βαθμούς Farenait. Συμφώνως λοιπόν προς την εκφώνηση, η μεταβλητή του αποτελέσματος θα είναι και η μεταβλητή ελέγχου της επανάληψης. Τιμή αυτής ίση με μηδέν θα έχει ως αποτέλεσμα τον τερματισμό της επανάληψης, άρα και του αλγορίθμου.

    Η εντολή επανάληψης συνεπώς θα είναι:

    Αρχή_επανάληψης

    …….

    μέχρις_ότου  Farenait = 0

    Ποιες οι εντολές που πρέπει να εκτελεστούν στο εσωτερικό της επανάληψης;

    – Αφού η μεταβλητή Farenait παριστά το αποτέλεσμα μιας αριθμητικής έκφρασης, υποχρεωτικά θα παίρνει τιμή με μια εντολή εκχώρησης της μορφής,

    Farenait 9/5 * (Celcius + 32)

    όπου Celsius η μεταβλητή που θα δέχεται ως τιμή το δεδομένο του προβλήματος.

    Στην εντολή εκχώρησης όμως η τιμή της έκφρασης που εμφανίζεται στα δεξιά, δεν είναι δυνατό να αποτιμηθεί αν δεν έχει δοθεί τιμή στην μεταβλητή Celcius. Εφ’ όσον η μεταβλητή αυτή παριστά το δεδομένο του προβλήματος θα πάρει τιμή μετά την εκτέλεση μιας εντολής εισόδου, ήτοι:

    Διάβασε Celcius

    Γράψτε ολοκληρωμένη ποια την επανάληψη.

    Τα βάζουμε όλα μαζί και έχουμε:

    Αρχή_επανάληψης

      Διάβασε Celcius

      Farenait 9/5 * (Celcius + 32)

    μέχρις_ότου  Farenait = 0

  • Πρόβλημα

    Υποψήφιοι που διεκδικούν την είσοδό τους στις στρατιωτικές σχολές πέραν των επιδόσεών τους στις εξετάσεις που διενεργούνται κάθε χρόνο και των αθλητικών δοκιμασιών που υποβάλλονται, είναι απαραίτητο να πληρούν και μερικές ακόμη προϋποθέσεις. Μία απ’ αυτές σχετίζεται με τον λεγόμενο Δείκτη Μάζας Σώματος (ΔΜΣ). Ο δείκτης αυτός είναι ένας αριθμός που υπολογίζεται ως το πηλίκο του βάρους του υποψηφίου (σε χιλιόγραμμα) προς το τετράγωνο του ύψους του (σε μέτρα).
    Στο αθλητικό κέντρο της πόλης της Ξάνθης την ημέρα των δοκιμασιών οι μαθητές προσέρχονται αλφαβητικά στον ορισμένο χώρο συγκέντρωσης, όπου, υπεύθυνος καθηγητής καταγράφει με την βοήθεια αλγορίθμου για τον καθένα απ’ αυτούς ονοματεπώνυμο, βάρος και ύψος.

    Γράψτε τον αλγόριθμο που επιπλέον της δυνατότητας καταγραφής θα υπολογίζει τον ΔΜΣ του κάθε υποψηφίου και θα ενημερώνει με κατάλληλο μήνυμα για το αποτέλεσμα. Ο τελευταίος μαθητής που επεξεργάζεται ο αλγόριθμος είναι ο Ωραιοχαριτωνίδης Ιωάννης.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Εντοπίστε και διορθώστε τα λάθη που εμφανίζονται στον παρακάτω αλγόριθμο.

    Αλγόριθμος ΔείκτηςΜάζας

    Αρχή_επανάληψης

    Διάβασε ονοματεπώνυμο

    Διάβασε βάρος, ύψος

    ΔΜΣ (βάρος/ύψος)^2

    Εμφάνισε ονοματεπώνυμο, ΔΜΣ

    μέχρις_ότου ονοματεπώνυμο = ” Ωραιοχαριτωνίδης Ιωάννης”

    Τέλος ΔείκτηςΜάζας

     

    Αλγόριθμος ΔείκτηςΜάζας

    Διάβασε ονοματεπώνυμο

    Όσο ονοματεπώνυμο < > ” Ωραιοχαριτωνίδης Ιωάννης” επανάλαβε

    Διάβασε βάρος, ύψος

    ΔΜΣ βάρος/ύψος^2

    Εμφάνισε ονοματεπώνυμο, ΔΜΣ

    Διάβασε ονοματεπώνυμο

    Τέλος_επανάληψης

    Τέλος ΔείκτηςΜάζας

     

  • Πρόβλημα

    Η κυρία Δέσποινα διατηρεί ένα μπακάλικο στη γειτονιά της. Προκειμένου να τονώσει την ζήτηση αποφασίζει να προχωρήσει σε μείωση της τιμής των προϊόντων του κατά 15%. Να αναπτυχθεί αλγόριθμος που θα δίνεται ο κωδικός ενός προϊόντος και η τιμή του. Θα υπολογίζει ο αλγόριθμος και θα εμφανίζει την έκπτωση και την τελική του τιμή. Ο αλγόριθμος επαναλαμβάνεται μέχρι να δοθεί κωδικός προϊόντος a12G18K.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Να γραφεί αλγόριθμος που θα δέχεται ως είσοδο το όνομα και το επώνυμο ενός ατόμου καθώς και το κεφάλαιο κατάθεσής του σε τράπεζα. Θα δίνει ως έξοδο τον τόκο που θα εισπράξει ο καταθέτης μετά ένα χρόνο και όταν το ετήσιο επιτόκιο είναι 2,5%.

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

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • ΠΡΟΓΡΑΜΜΑ Καταθέσεις

    ΣΤΑΘΕΡΕΣ

              επιτόκιο = 0.025

    ΜΕΤΑΒΛΗΤΕΣ

              ΧΑΡΑΚΤΗΡΕΣ: όνομα, επώνυμο

              ΠΡΑΓΜΑΤΙΚΕΣ: κεφάλαιο, τόκος

    ΑΡΧΗ

              ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

              ΓΡΑΨΕ ‘Δώσε το ονοματεπώνυμο του καταθέτη:’

              ΔΙΑΒΑΣΕ όνομα, επώνυμο

              ΓΡΑΨΕ ‘Ποιο το κεφάλαιο κατάθεσης;’

              ΔΙΑΒΑΣΕ κεφάλαιο

              τόκος κεφάλαιο * επιτόκιο

              ΓΡΑΨΕ ‘Τόκος μετά ένα χρόνο: ‘, τόκος

              ΜΕΧΡΙΣ_ΟΤΟΥ επώνυμο = ‘Μιχαλοδημητρακόπουλος’

    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

  • Πρόβλημα

    Ο πληθυσμός της Ελλάδας (απογραφή 2017) είναι 10,77 εκατομμύρια. Γράψτε αλγόριθμο που θα δίνεται το όνομα μιας πόλης και ο πληθυσμός της και θα επιστρέφει ως αποτέλεσμα τον πληθυσμό της ως ποσοστό επί του συνολικού πληθυσμού της χώρας. Η τελευταία πόλη που επεξεργάζεται ο αλγόριθμος είναι η Αλεξανδρούπολη.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Επιχείρηση που δραστηριοποιείται σε νησί των Σποράδων υποβάλλει δήλωση στην οποία για κάθε μήνα του χρόνου αναγράφονται τα έσοδά της. Δεδομένου ότι το κράτος απαιτεί να αποδοθεί το 14% των εσόδων της ως ΦΠΑ να γραφεί αλγόριθμος που θα δίνει ως έξοδο το μήνα και το ποσό ΦΠΑ που πρέπει να αποδοθεί.

    Υπόδειξη: Στην εισαγωγή των δεδομένων να θεωρήσετε ότι ο τελευταίος μήνας είναι ο Δεκέμβριος.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Μεγάλη οικοδομική εταιρεία προχωρά σε μια μείωση της τάξης του 25% της τιμής των απούλητων διαμερισμάτων της προκειμένου να τονώσει την ζήτηση γι’ αυτά. Γράψτε αλγόριθμο στον οποίο θα δίνεται η διεύθυνση ενός διαμερίσματος, τα τετραγωνικά μέτρα που καλύπτει και η μειωμένη -ανά τετραγωνικό μέτρο- τιμή πώλησής του.

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

  • Ο Κωνσταντίνος έδωσε τον παρακάτω αλγόριθμο ως λύση της άσκησης. Συμφωνείτε; Προχωρήστε σε διορθώσεις -αν το θεωρείτε απαραίτητο.

    ΠΡΟΓΡΑΜΜΑ Εκπτώσεις

    ΣΤΑΘΕΡΕΣ

    ποσοστό_έκπτωσης = 1/4

    ΜΕΤΑΒΛΗΤΕΣ

    ΧΑΡΑΚΤΗΡΕΣ: διεύθυνση

    ΠΡΑΓΜΑΤΙΚΕΣ: τετρ_μέτρα, τελικήΤιμήτμ, ΑρχικήΤιμή

    ΑΡΧΗ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

    ΔΙΑΒΑΣΕ διεύθυνση, τετρ_μέτρα, τελικήΤιμή_τμ

    ΑρχικήΤιμή 1/4 * τελικήΤιμή_τμ + τελικήΤιμή_τμ

    ΓΡΑΨΕ ‘Επιθυμείς να συνεχίσεις Ναί ή Όχι; ‘

    ΔΙΑΒΑΣΕ απάντηση

    ΜΕΧΡΙΣ_ΟΤΟΥ απάντηση = ‘Όχι’

    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

  • Πρόβλημα

    Δίνονται δύο σημεία \( A(x_1, y_1), \ B(x_2, y_2) \) του καρτεσιανού επιπέδου. Να γράψετε αλγόριθμο που υπολογίζοντας το αποτέλεσμα της παράστασης \( \sqrt { (x_2 – x_1)^2 – (y_2 – y_1)^2 } \), θα πληροφορεί για το μέτρο του ευθύγραμμου τμήματος με άκρα τα Α και Β.

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

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Να γραφεί επαναληπτικός αλγόριθμος που θα δίνει ως έξοδο το εμβαδό \( (Ε_{σφ}) \) και τον όγκο σφαίρας \( (V_{σφ}) \). Ο αλγόριθμος ολοκληρώνεται με την πρώτη μηδενική τιμή ακτίνας που θα δοθεί. Ισχύει ότι,

    \( Ε_{σφ} = 4πR^2, \hspace{15 mm} V_{σφ} = \cfrac{4}{3} πR^3 \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

    Ζητείται να υπολογιστεί το εμβαδόν και ο όγκος μιας σφαίρας ακτίνας R.

    Ποια είναι η προϋπόθεση για την συνέχιση της επανάληψης;

  • π = 3.14
    R = float ( input() )
    while R < 100 :
    Esf = 4 * π * R ** 2
    Vsf = 4 / 3 * π * R **3
    print ( ‘Το εμβαδον και ο ογκος της σφαιρας ειναι αντιστοιχα’, Esf, Vsf )
    R = float ( input(‘Ξαναδώσε ακτίνα: ‘) )

  • Πρόβλημα

    Να γραφεί επαναληπτικός αλγόριθμος του οποίου το αποτέλεσμα θα είναι το εμβαδό \( (Ε_κ) \) ορθού κυκλικού κώνου και ο όγκος του \( (V) \) . Είναι,

    \( Ε_κ = π \cdot R \cdot λ, \hspace{10 mm} V_κ = \cfrac{1}{3} \cdot  π \cdot  R^2 \cdot ύψος \)

    Το κριτήριο για τον τερματισμό του αλγορίθμου αφήνεται στην κρίση σας.

  • Πρόβλημα

    Το βάρος w ενός σώματος υπολογίζεται ως το γινόμενο της μάζας του m επί την επιτάχυνση της βαρύτητας g, ισχύει δηλ  \( w = m \cdot g \), (μονάδες) \( Kgr \cdot m/s^2 \) ή Newton (N)). Αν δεχτούμε ότι η επιτάχυνση της βαρύτητας στην επιφάνεια της Γης είναι ίση με \( 9.81\ m/s^2 \), στην επιφάνεια της Σελήνης ίση με \( 1.62\ m/s^2 \), γράψτε αλγόριθμο που θα υπολογίζει το βάρος ενός σώματος στη γη και στη σελήνη. Ο αλγόριθμος περατώνεται υπολογίζοντας το βάρος ενός σώματος μηδενικής μάζας.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Για την μαθηματική περιγραφή φυσικών και οικονομικών φαινομένων η σπουδαιότερη εκθετική συνάρτηση είναι η φυσική εκθετική συνάρτηση \( \color{SteelBlue} { y = y_0 \cdot e^{kx} } \), όπου κ είναι μια μη μηδενική σταθερά.

    Συναντάται στην περίπτωση του συνεχούς ανατοκισμού κεφαλαίου, όπου εφαρμόζεται το μοντέλο \( \color{SteelBlue} { y = P \cdot e^{rt} } \), όπου \( \color{SteelBlue} { e = 2,718281828 } \), \( \color{SteelBlue} { P } \) το αρχικό κεφάλαιο, \( \color{SteelBlue} { r } \) το επιτόκιο ως δεκαδικός αριθμός και \( \color{SteelBlue} { t } \) ο χρόνος κατάθεσης σε έτη.

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

    Σημείωση: Το επιτόκιο θεωρείται σταθερό και ίσο με 2%.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

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


    Παραδείγματος χάριν ο ραδιενεργός άνθρακας-14 διασπάται σε άζωτο, ενώ το ράδιο μετά από μια αλληλουχία διασπάσεων μετατρέπεται τελικά σε μόλυβδο.


    Εκτελέστε αλγόριθμο ο οποίος θα δέχεται ως είσοδο τον αριθμό των ραδιενεργών πυρήνων A που υπάρχουν την χρονική στιγμή μηδέν για τον άνθρακα-14 και θα υπολογίζει και θα εμφανίζει τον αριθμό των πυρήνων που θα συνεχίζουν να υπάρχουν σε μια οποιαδήποτε μελλοντική στιγμή t, γνωρίζοντας ότι ισχύει \( \color{SteelBlue} { y = A \cdot e^{-rt} } \), όπου \( \color{SteelBlue} { r = 1,2 x 10^{-4} } \) ο ρυθμός διασπάσεως της ραδιενεργούς ουσίας του άνθρακα-14, όταν ο χρόνος μετράται σε έτη.
    Τι ποσοστό % των αρχικών πυρήνων θα έχει απομείνει;

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

Α. ΓΕΝΙΚΑΑπόλυτη ΤιμήΕλάχιστος από δύοΕνηλικίωσηΜισθοδοσία υπαλλήλωνΔιατροφήΒ. ΕΙΔΙΚΑΓωνίες τριγώνουΠυθαγόρειες τριάδεςFunction 2Function 3Function 4

  • Να αναπτυχθεί αλγόριθμος που θα δίνει ως αποτέλεσμα την απόλυτη τιμή ενός αριθμού. Ο αλγόριθμος συνεχίζεται έως ότου δοθεί ως είσοδος το μηδέν.

    Λέξεις κλειδιά: απόλυτη τιμή, Α_Τ, Αν, τότε, Τέλος_αν, ενσωματωμένες συναρτήσεις.

  • Είναι γνωστό από τα Μαθηματικά, ότι, η απόλυτη τιμή ενός αριθμού ισούται με τον ίδιο τον αριθμό στην περίπτωση που αυτός είναι θετικός, με τον αντίθετό του όταν αυτός είναι αρνητικός.
    Ξεκάθαρα λοιπόν για τον υπολογισμό της απόλυτης τιμής ενός οποιουδήποτε αριθμού διακρίνουμε δύο περιπτώσεις.

    Παραδείγματα

    \( \color{Olive} { \left | 3 \right | = 3, \hspace{15 mm} \left | -3 \right | = 3, \hspace{15 mm} \left | 10 \right | = 10, \hspace{15 mm} \left | -10 \right | = 10 } \)

    Η απόλυτη τιμή του μηδενός είναι ίση με μηδέν \( \color{Olive} { \left | 0 \right | = 0 } \)

    Οι εντολές του αλγορίθμου λοιπόν θα έχουν ως εξής:

    Διάβασε α

    ΑπόλυτηΤιμή ← ………….
    Στην περίπτωση που ο αριθμός είναι θετικός Η δεύτερη περίπτωση είναι ο αριθμός να είναι αρνητικός
    η απόλυτη τιμή του είναι ο ίδιος ο αριθμός η απόλυτη τιμή του είναι ο αντίθετός του
    ΑπόλυτηΤιμή ← α ΑπόλυτηΤιμή ← -α,

     

    Όλα μαζί,

    Διάβασε α

    ΑπόλυτηΤιμή ← α

    Αν α < 0 τότε ΑπόλυτηΤιμή ← – α

    Η εντολή Αν ακολουθείται πάντα από μια λογική έκφραση (συνθήκη). Η γενική της σύνταξη έχει ως εξής:

    Αν λογική έκφραση τότε

    εντολές

    Τέλος_αν

    και όσον αφορά τη λειτουργία της εντολής ορίζεται ότι,

    οι εντολές μετά την δεσμευμένη λέξη τότε εκτελούνται μόνο στην περίπτωση που η έκφραση της Αν είναι αληθής. Σε κάθε άλλη περίπτωση εκτελούνται οι εντολές μετά το Τέλος_αν.

    Σημείωση

    Για τον υπολογισμό της απόλυτης τιμής ενός οποιουδήποτε αριθμού μπορεί να χρησιμοποιηθεί η συνάρτηση της απόλυτης τιμής, που συμβολίζεται με Α_Τ.

    Ας δούμε ορισμένα παραδείγματα:

    | -3 | θα κωδικοποηθεί στην ψευδογλώσσα ως Α_Τ(-3).

    Ομοίως, | α | θα γραφεί ως    Α_Τ(α).

    Η έκφραση Α_Τ( ) λοιπόν επιστρέφει ως αποτέλεσμα την απόλυτη τιμή του αριθμού που γράφεται εντός των παρενθέσεων.

  • Αλγόριθμος Απόλυτη_Τιμή

    !Checked OK & Data  – 2018

    Αρχή_επανάληψης

    Διάβασε α

    ΑπόλυτηΤιμή α

    Αν α < 0 τότε

    ΑπόλυτηΤιμή – α

    Τέλος_αν

    Εμφάνισε ΑπόλυτηΤιμή

    μέχρις_ότου α = 0

    Τέλος Απόλυτη_Τιμή

    Αλγόριθμος Απόλυτη_Τιμή

    !Checked OK & Data  – 2018

    Διάβασε α

    Όσο α<>0 επανάλαβε

    ΑπόλυτηΤιμή  α

    Αν α < 0 τότε

    ΑπόλυτηΤιμή  – α

    Τέλος_αν

    Εμφάνισε ΑπόλυτηΤιμή

    Διάβασε α

    Τέλος_επανάληψης

    Τέλος Απόλυτη_Τιμή

    ΠΡΟΓΡΑΜΜΑ Απόλυτη_Τιμή

    ΜΕΤΑΒΛΗΤΕΣ

    ΠΡΑΓΜΑΤΙΚΕΣ: α, ΑπόλυτηΤιμή

    ΑΡΧΗ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

    ΔΙΑΒΑΣΕ α

    ΑπόλυτηΤιμή α

    ΑΝ α<0 ΤΟΤΕ

    ΑπόλυτηΤιμή

    ΤΕΛΟΣ_ΑΝ

    ΓΡΑΨΕ “| “,α, ” | = “, ΑπόλυτηΤιμή

    ΜΕΧΡΙΣ_ΟΤΟΥ α = 0

    ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

  • Πρόβλημα

    Να αναπτυχθεί αλγόριθμος που θα εντοπίζει τον μικρότερο 2 αριθμών, εκ των οποίων, ο πρώτος δίνεται υποχρεωτικά θετικός ενώ ο δεύτερος μπορεί να είναι είτε θετικός είτε αρνητικός είτε μηδέν, αλλά σε καμμία περίπτωση δεν μπορεί να είναι ίσος με τον πρώτο.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • #include <iostream>
    using namespace std;

    int main() {
    int   x , y ;

        do {
    cout<<“Give me the  first number: “;
    cin>>x;
    } while (x <= 0);

        cout<<“Give me the second number: ” ;
    cin>>y;
    if (x<y)
    cout<<x<<” is smaller than “<<y;
    if (y<x)
    cout<<y<<” is smaller than “<<x;
    }

  • Πρόβλημα

    Να αναπτυχθεί αλγόριθμος που θα διαβάζει το ονοματεπώνυμο και την ηλικία (ακέραιος αριθμός) ενός ατόμου. Θα εμφανίζει μήνυμα ως εξής:
    Στην περίπτωση που το άτομο είναι ενήλικο το σύνολο των ετών που έχουν παρέλθει από την ενηλικίωσή του. Αν το άτομο είναι ανήλικο το συνολικό αριθμό των ετών που πρέπει να παρέλθουν για να ενηλικιωθεί.
    Το τελευταίο άτομο του οποίου τα στοιχεία ο αλγόριθμος επεξεργάζεται είναι ο Παπαδημητρακoπουλίδης Θεοχάρης.

  • ΕΡΩΤΗΣΕΙΣ ΚΑΤΑΝΟΗΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ

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

    Είσοδος Αναμενόμενο αποτέλεσμα (έξοδος)
    ηλικία
    14
    32
    18

  • Πρόβλημα

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

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

    Σημείωση: Θεωρήστε ότι υπάρχει μόνο ένας υπάλληλος ο οποίος είναι ο πλέον χαμηλόμισθος – οι καθαρές του αποδοχές είναι μικρότερες των 1200 ευρώ.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

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

     

    Τρoφή ποσότητας

    100 gr

    Θερμίδες
    Kcal
    Πρωτείνες
    gr
    Λίπη
    gr
    Υδατάνθρακες
    gr
    Αρνί ψημένο 350 17 22 0
    Κοτόπουλο ψητό 170 32 3,5 0
    Μοσχάρι 240 27 13,5 0
    Μπιφτέκι 290 25 20 0
    Βούτυρο 720 1 80 1
    Τυρί 370 22 31 3
    Μέλι 320 0,3 0 84
    Φρυγανιές 480 5,1 20 72
    Ψωμί 280 9,7 0,8 51

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

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

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

    Ποια ιδιαίτερη προϋπόθεση πρέπει να πληρούν τα δεδομένα του προβλήματος;

  • Πρόβλημα

    Μια τριάδα θετικών ακεραίων αριθμών, έστω α, β, γ που ικανοποιεί την σχέση α2 = β2 + γ2, λέμε ότι αποτελεί μια Πυθαγόρεια τριάδα. Να αναπτυχθεί αλγόριθμος που θα δέχεται ως είσοδο τρεις αριθμούς και θα εμφανίζει μήνυμα για το αν αυτοί αποτελούν Πυθαγόρεια τριάδα ή όχι. Ο αλγόριθμος ολοκληρώνεται με την πρώτη τριάδα αριθμών που αποτελούν Πυθαγόρεια τριάδα.

    Σημείωση: Θεωρήστε ότι ο πρώτος εκ των αριθμών που δίνονται είναι πάντα ο μεγαλύτερος.

  • Πρόβλημα

    Να δημιουργηθεί αλγόριθμος που θα δίνει ως αποτέλεσμα την τιμή της συνάρτησης,

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    x \left ( x + \cfrac{3}{x} \right ), & \text{αν } x \neq 0  \\
    3, & \text{αν } x = 0
    \end{array}
    \right. } \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Να γραφεί πρόγραμμα που θα δέχεται ως είσοδο την τιμή του x και θα υπολογίζει την τιμή της συνάρτησης,

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    \sqrt{x – 4}, & \text{αν } x >4  \\
    8 – 2x, & \text{αν } x < 4  \\
    0, & \text{αν } x = 4
    \end{array}
    \right. } \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Δίνονται οι συναρτήσεις f, g με τύπους

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    \cfrac{x + 1}{\sqrt{x – 4} }, & \text{αν } x > 4  \\
    12, & \text{αν } x <= 4
    \end{array}
    \right. } \)
    \( \color{SteelBlue} {g(x) = \left \{ \begin{array}{ll}
    \cfrac{\sqrt[3]{x -8}}{x – 4}, & \text{αν } x > 4  \\
    12, & \text{αν } x <= 4
    \end{array}
    \right. } \)

     

    Να δημιουργηθεί πρόγραμμα που για δοσμένη τιμή του x θα βρίσκει τις τιμές των f(x), g(x).

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

Α. ΕΙΔΙΚΑΑντίστροφοιFunction 5Function 6Function 7Function 8Β. ΓΕΝΙΚΑΑυτόματος πωλητής

  • Πρόβλημα

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

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 

  • Να γραφεί με μέχρις_ότου

    Αλγόριθμος Αντίστροφος

    !ChOK ND

    Διάβασε x

    Όσο x<>0 επανάλαβε

    inverseNumber  1/x

    Εμφάνισε x, inverseNumber

    Διάβασε x

    Τέλος_επανάληψης

    Τέλος Αντίστροφος

     

  • Πρόβλημα

    Βρείτε με την βοήθεια προγράμματος τις τιμές της παρακάτω συνάρτησης

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    \cfrac{\sqrt{x^2 – x}}{|x -2| – 1}, & \text{αν } x <= 1  \\
    \cfrac{1}{1 – \cfrac{1}{1 -x}} + ln \left ( \cfrac{x + 3}{3 -x}  \right), & \text{αν } x > 1
    \end{array}
    \right. } \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

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

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    | \sqrt{(x +α)(x + β) } -x |, & \text{αν } α \neq β  \\
    -3, & \text{αν } α = β
    \end{array}
    \right. } \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Δίνονται οι συναρτήσεις f, g με τύπους

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    συν \left ( \cfrac{x^2 + y^3}{ x + y } \right ), & \text{αν } x \neq y  \\
    \cfrac{1 – ημ(x \cdot y) }{|ημ(x + y)|}, & \text{αν } x = y
    \end{array}
    \right. } \)
    \( \color{SteelBlue} {g(x) = \left \{ \begin{array}{ll}
    εφ \left( \cfrac{x^2 – y^2}{x – y}  \right), & \text{αν } x \neq y  \\
    εφ(x + y), & \text{αν } x = y
    \end{array}
    \right. } \)

     Να δημιουργηθεί πρόγραμμα που θα διαβάζει μια τιμή για τα x και y (διάφορη του μηδενός) και θα εμφανίζει ως έξοδο τις τιμές των f(x, y), g(x, y).

    Για ποιες τιμές των δεδομένων εισόδου παραβιάζεται το κριτήριο της καθοριστικότητας;

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Να αναπτυχθεί πρόγραμμα που θα εμφανίζει την τιμή της συνάρτησης,

    \( \color{SteelBlue} {f(x) = \left \{ \begin{array}{ll}
    \cfrac{1 – \cfrac{1}{x}}{1 – \cfrac{1}{x^2}} + \left | \cfrac{1- \sqrt{1- x^2} }{1 – x^2}  \right |, & \text{αν } x <= 1  \\
    \cfrac{| x^2 – 3x | + | x – 2 |}{x^2 + x + 1}, & \text{αν } x > 1
    \end{array}
    \right. } \)

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

  • Πρόβλημα

    Σε κεντρικό σημείο έχει τοποθετηθεί μηχάνημα αυτόματης πώλησης καφέ και αναψυκτικών. Το μηχάνημα δέχεται μόνο κέρματα και κέρματα επίσης επιστρέφει ως ρέστα. Η τιμή του καφέ έχει οριστεί στο 70 λεπτά, οι τιμές των αναψυκτικών στα 50 λεπτά, το νερό στοιχίζει 32 λεπτά και το τσάι 45. Γράψτε αλγόριθμο που θα διαβάζει την επιλογή του χρήστη, θα εμφανίζει το αντίτιμο που πρέπει να δοθεί, θα δέχεται το αντίτιμο από τον χρήστη και θα υπολογίζει και θα εμφανίζει τα τον ελάχιστο αριθμό κερμάτων που πρέπει να δοθούν ως ρέστα.
    Το μηχάνημα τερματίζει τη λειτουργία του όταν δοθεί ως επιλογή του χρήστη η σειρά χαρακτήρων “k12!F67_”.

  • ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

    Αριθμητικό παράδειγμα

    Έστω η επιλογή του χρήστη ότι είναι νερό και εισάγει στο μηχάνημα 1 ευρώ. Θα του δοθούν 0.68 (1 – 0.32) λεπτά ως ρέστα ως εξής:

    1 κέρμα των 50 λεπτών, 1 κέρμα των 10, 1 των 5, 1 των 2 και 1 του 1 λεπτού.

    Τι πράξεις έγιναν για να καταλήξουμε στο αποτέλεσμα;

    Εφ’ όσον πρέπει να υπολογιστεί ο ελάχιστος αριθμός κερμάτων που θα δοθούν ως ρέστα

    68 div 50 = 1 πενηντάλεπτο και υπολείπονται 68 mod 50 = 18 ακόμη λεπτά

    18 div 20 = 0 εικοσάλεπτα και υπόλοιπο ξανά 18 mod 20 = 18 λεπτά

    18 div 10= 1 δεκάλεπτο και υπόλοιπο 18 mod 10 = 8 λεπτά.

    Ομοίως και τα υπόλοιπα

    8 div 5 = 1 πεντάλεπτο και υπόλοιπο 8 mod 5 = 3 λεπτά.

    3 div 2 = 1 πεντάλεπτο και υπόλοιπο 3 mod 2 = 1 λεπτό.

Permanent link to this article: http://pervolischool.edu.gr/computer-science/algorithms-aepp/repeatif/a-numerical-calculations/