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

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

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

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

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

ΔΙΔΑΚΤΙΚΟΙ ΣΤΟΧΟΙ ΕΝΟΤΗΤΑΣ

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

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

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

ΜΑΘΗΜΑ 1οΗ εντολή Αρχή_επανάληψης … μέχρις_ότου


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

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

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

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

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

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

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

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

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


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


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

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

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

    ΑΡΧΗ

    !Checked OK No Data – 2018

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

    ΓΡΑΨΕ “Please enter password “

    ΔΙΑΒΑΣΕ pswd

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

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

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

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

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

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

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

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

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

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

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

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

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

     

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

    Διάβασε name

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

     

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

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

    Διάβασε _______________

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

     

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

    Διάβασε _______________

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

     

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

    Διάβασε year_of_Birth

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

     

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

    Διάβασε _______________

    Μέχρις_ότου _______________ = “Διοίκηση Επιχειρήσεων”


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


  • Η εντολή Αρχή_επανάληψης ….. μέχρις_ότου


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

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

    εντολές

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

    Λειτουργία

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

ΜΑΘΗΜΑ 2οΗ εντολή Αν … τότε … Τέλος_αν (Απλή Επιλογή)


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

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

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

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

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

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

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

    \( \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

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

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

  • Εντολή Απλής επιλογής


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

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

    εντολές

    Τέλος_αν

    Λειτουργία

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

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

ΜΑΘΗΜΑ 3οΗ εντολή Όσο … επανάλαβε


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

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

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

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

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

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

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


    Ας εφαρμόσουμε τον αλγόριθμο του Ευκλείδη για α = 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:     Το αποτέλεσμα είναι η τιμή του Χ.

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

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


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

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

    εντολές

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

    Λειτουργία

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

ΜΑΘΗΜΑ 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%.

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

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

  • Τιμή φρουρός

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

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

ΜΑΘΗΜΑ 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

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

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

  • Εντολή Αν .τότε …. αλλιώς …. Τέλος_Αν


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

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

    εντολές

    αλλιώς

    εντολές

    Τέλος_Αν

    Λειτουργία

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

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

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

  • Πρόβλημα

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

    Farenait = 9/5 * (Celcius + 32).

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


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

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

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

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

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

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

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

    Απλή, ξεκάθαρη και κυρίως εκτελέσιμη από τον αλγόριθμο: Farenait = 9/5 * (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%.

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

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

  • Πρόβλημα

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

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

  • Πρόβλημα

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

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

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

  • Πρόβλημα

    Το βάρος w ενός σώματος υπολογίζεται ως το γινόμενο της μάζας του m επί την επιτάχυνση της βαρύτητας g, ισχύει δηλ  w = m ∙ g (μονάδες Kgr ∙ m/s2 ή N). Αν δεχτούμε ότι η επιτάχυνση της βαρύτητας στην επιφάνεια της Γης είναι ίση με 9,81 m/s2, στην επιφάνεια της Σελήνης ίση με 1,62 m/s2, γράψτε αλγόριθμο που θα υπολογίζει το βάρος ενός σώματος στη γη και στη σελήνη. Ο αλγόριθμος περατώνεται υπολογίζοντας το βάρος ενός σώματος μηδενικής μάζας.

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

  • Πρόβλημα

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

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

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

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

    ΣΤΑΘΕΡΕΣ

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

    ΜΕΤΑΒΛΗΤΕΣ

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

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

    ΑΡΧΗ

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

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

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

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

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

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

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

  • Πρόβλημα

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

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

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

  • Πρόβλημα

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

    Εσφ = 4 ∙ π ∙ R2,         Vσφ = 4/3 ∙ π ∙ R3.

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

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

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

  • Στον παρακάτω αλγόριθμο για ποιες τιμές των δεδομένων έχουμε ως αποτέλεσμα λογικά λάθη; 

    Αλγόριθμος Σφαίρα

    π  3.14

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

    Διάβασε R

    Ε_σφ  4*π*R^2

    V_σφ  4/3*π*R^3

    Εμφάνισε Ε_σφ, V_σφ

    Μέχρις_ότου R>=100

    Τέλος Σφαίρα

    Διορθώστε τον αλγόριθμο.

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

  • Πρόβλημα

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

    Εκώνου = π ∙ R ∙ λ, Vκώνου = 1/3 ∙  π ∙  R2 ∙ ύψος.

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

  • Πρόβλημα

    Για την μαθηματική περιγραφή φυσικών και οικονομικών φαινομένων η σπουδαιότερη εκθετική συνάρτηση είναι η φυσική εκθετική συνάρτηση \( \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

  • Πρόβλημα

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

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

  • #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 αριθμών, εκ των οποίων, ο πρώτος δίνεται υποχρεωτικά θετικός ενώ ο δεύτερος μπορεί να είναι είτε θετικός είτε αρνητικός είτε μηδέν, αλλά σε καμμία περίπτωση δεν μπορεί να είναι ίσος με τον πρώτο.

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

  • #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%.
    Να γραφεί αλγόριθμος ο οποίος αφού δέχεται το όνομα, το επώνυμο και τις μικτές αποδοχές ενός υπαλλήλου θα επιστρέφει ως έξοδο το ποσό των κρατήσεων και τις καθαρές αποδοχές.

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

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

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

  • Πρόβλημα

    Αφού συμβουλευτείτε τον παρακάτω πίνακα, γράψτε αλγόριθμο που θα διαβάζει το είδος και την ποσότητα (σε 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/