[eeei.gr Logo]
Επικοινωνία
Ταυτότητα
Μαθήματα Internet | Μαθήματα Προγραμματισμού | Net Business | Τα νέα του Internet | Ο Κόσμος του Αύριο

Ψευδοκώδικας (while - until μέρος πρώτο)

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

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

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

Στο Hello World ο ψευδοκώδικας ήταν:

  • Γράψε Hello World ! (πιο απλό δεν γίνεται)

Στο πρώτο πρόγραμμα μετατροπής θερμοκρασίας ήταν:

  • Πάρε τη θερμοκρασία από τον χρήστη (από το STDIN)
  • Μετέτρεψέ την σε Κελσίου
  • Δώσε το αποτέλεσμα (και τέλος)

Στο δεύτερο πρόγραμμα μετατροπής θερμοκρασίας οι εργασίες έγιναν περισσότερες, αλλά φαινομενικά παρέμειναν σειριακές:

  • Πάρε τη θερμοκρασία από τον χρήστη (από το STDIN)
  • Μάθε αν είναι Fahrenheit ή Κελσίου (από το STDIN)
  • Αν είναι Fahrenheit μετέτρεψέ την σε Κελσίου και τύπωσε το αποτέλεσμα (και τέλος)
  • Αν είναι Κελσίου μετέτρεψέ την σε Fahrenheit και τύπωσε το αποτέλεσμα (και τέλος)
  • Διαφορετικά γράψε ένα μήνυμα διαμαρτυρίας (και τέλος)

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

  • Πάρε τη θερμοκρασία από τον χρήστη (από το STDIN)
  • Μάθε αν είναι Fahrenheit ή Κελσίου (από το STDIN)
  • Αν είναι Fahrenheit
    • Μετέτρεψέ την σε Κελσίου
    • Τύπωσε το αποτέλεσμα (και τέλος)
  • Αν είναι Κελσίου
    • Μετέτρεψέ την σε Fahrenheit
    • Τύπωσε το αποτέλεσμα (και τέλος)
  • Διαφορετικά
    • Γράψε ένα μήνυμα διαμαρτυρίας (και τέλος)

Όπως βλέπουμε υπάρχει το block:

    • Μετέτρεψέ την σε Κελσίου
    • Τύπωσε το αποτέλεσμα (και τέλος)

το block:

    • Μετέτρεψέ την σε Fahrenheit
    • Τύπωσε το αποτέλεσμα (και τέλος)

και το block

    • Γράψε ένα μήνυμα διαμαρτυρίας (και τέλος)

κάθε ένα από τα οποία είναι αυτόνομο και αδιαφορεί για το άλλο. Το πιο block θα εκτελεστεί καθορίζεται από τις ανώτερες από αυτά επιλογές:

  • Αν είναι Fahrenheit
  • Αν είναι Κελσίου
  • Διαφορετικά

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

Η συνοπτική ανάλυση – περιγραφή μας δίνει τα ακόλουθα:

  1. Έναρξη προγράμματος (καλωσόρισμα χρήστη)
  2. Δώσε την τιμή της θερμοκρασίας
  3. Δώσε το είδος της θερμοκρασίας (Fahrenheit ή Κελσίου)
  4. Δώσε το αποτέλεσμα
  5. Ξανάρχισε από την αρχή

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

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

Με βάση τα παραπάνω ο ψευδοκώδικάς μας γίνεται:

  • Έναρξη προγράμματος (καλωσόρισμα χρήστη)
    • Δώσε την τιμή της θερμοκρασίας
      • Αν πληκτρολόγησες q
        • Τέλος προγράμματος
      • Αν πληκτρολόγησες θετικό ακέραιο ή μηδέν
        • Δώσε το είδος της θερμοκρασίας (Fahrenheit ή Κελσίου)
          • Αν είναι Fahrenheit
            • Υπολόγισε το αποτέλεσμα
            • Τύπωσε το αποτέλεσμα
            • Ξανάρχισε από την αρχή (ζήτα την τιμή της θερμοκρασίας)
          • Αν είναι Κελσίου
            • Υπολόγισε το αποτέλεσμα
            • Τύπωσε το αποτέλεσμα
            • Ξανάρχισε από την αρχή (ζήτα την τιμή της θερμοκρασίας)
          • Αν είναι κάτι άλλο
            • Τύπωσε μήνυμα διαμαρτυρίας
            • Ξανάρχισε από την αρχή (ζήτα την τιμή της θερμοκρασίας)
      • Αν πληκτρολόγησες κάτι άλλο
        • Ξανάρχισε από την αρχή (ζήτα την τιμή της θερμοκρασίας)

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


Τρέχουσα Ενότητα: Perl


 

Φιλικά - συνεργαζόμενα sites: Left Handed Products


© Eeei.gr 2009