Exponentiation στη γλώσσα προγραμματισμού Pascal: συμβουλές και κόλπα
Υπάρχει ένας τεράστιος αριθμός γλωσσώνπρογραμματισμό και ο Pascal δεν συμπεριλαμβάνει μεταξύ τους την τελευταία θέση. Και αν πρόκειται να συμμετάσχετε σοβαρά στον προγραμματισμό στο μέλλον, θα πρέπει να αρχίσετε να γνωρίζετε τον κόσμο αυτό με τη μελέτη αυτής της γλώσσας, καθώς είναι πιο απλή στην αντίληψη και, κυρίως, το πρόγραμμα είναι απολύτως ελεύθερο.
Σε αυτό το άρθρο, θα συζητήσουμε ένα τόσο δύσκολο πρόβλημα,ως εκτονώσεις. Ο Pascal, δυστυχώς, δεν μας παρέχει έναν ξεχωριστό φορέα εκμετάλλευσης για την επίλυση αυτού του προβλήματος, σε αντίθεση με άλλες γλώσσες προγραμματισμού. Έτσι, εδώ είναι απαραίτητο, όπως λένε, να απαλλαγούμε από αυτοσχέδια μέσα, να καταφύγουμε σε κύκλους και μαθηματικούς χειριστές - εδώ μπορούμε να δώσουμε διέξοδο στη φαντασία μας. Ας εξετάσουμε διάφορες μεθόδους για την επίλυση αυτού του προβλήματος.
Ας δοθεί το πιο απλό καθήκον, όπου ένας ορισμένος αριθμός πρέπει να αυξηθεί σε όλο το θετικό βαθμό. Ας υποθέσουμε ότι ο αριθμός α αυξάνουμε σε 4 βαθμούς. Εδώ κάνουμε μια απλή μαθηματική λειτουργία: β: = α * α * α * α.
Τα προηγούμενα παραδείγματα μας επιτρέπουν να δημιουργούμε αριθμούςμόνο σε θετικές ακέραιες δυνάμεις. Αλλά υπάρχουν προβλήματα όπου είναι απαραίτητο να αυξηθεί ο αριθμός σε μια κλασματική ισχύ. Όταν γράφουμε ένα τέτοιο πρόγραμμα, χρειαζόμαστε γνώση των ιδιοτήτων των λογαρίθμων. Συγκεκριμένα: αβ= eb. Συνεχίζοντας αυτό, το απαραίτητο κομμάτι του προγράμματος μας θα έχει τη μορφή: r: = exp (b * ln (a)). Αλλά εδώ βρισκόμαστε αντιμέτωποι με αυτό το γεγονόςΟ χειριστής δεν λειτουργεί με μηδενικούς και αρνητικούς αριθμούς. Προκειμένου το πρόγραμμά μας να εκτελέσει την εκτόξευση σε 0, πρέπει να καθορίσουμε την κατάσταση: Εάν b = 0 Στη συνέχεια r: = 1 Else r: = exp (b * ln (a)). Αλλά πώς μοιάζει η εμφάνιση με έναν αρνητικό αριθμό;
Ο Pascal μας κάνει να ξανασκεφτούμε. Εδώ πρέπει να εκτελέσουμε αυτή τη λειτουργία με το μέτρο του αριθμού μας και να πάρουμε δεδομένα με αρνητικό αποτέλεσμα. Στη συνέχεια, ελέγξτε την ισοτιμία του βαθμού: αν ο βαθμός μας ήταν ομοιόμορφος, τότε θα πάρουμε την ενότητα από το αποτέλεσμα. Σε αυτή την περίπτωση, το πρόγραμμά μας θα μοιάζει με: r: = (-1) * exp (b * ln (abs (a))). Αν Γύρος (b / 2) = b / 2 Στη συνέχεια r: = abs (r). Η κατάσταση ελέγχει αν ο βαθμός είναι ομοιόμορφος ή όχι.
Ως αποτέλεσμα, προσεγγίζουμε ένα πιο οικουμενικό μοντέλοΤο πρόγραμμά μας, το οποίο θα λειτουργεί με οποιονδήποτε αριθμό. Τώρα πρέπει να ενώσουμε όλα τα παραπάνω σε ένα ενιαίο σύνολο. Στην εικόνα στα δεξιά μπορείτε να δείτε το πλήρες κείμενο του τελικού μας προγράμματος. Δώστε προσοχή στον δεδομένο τύπο δεδομένων. Σε αντίθεση με το πρώτο πρόγραμμα, χρησιμοποιεί Πραγματικά, t. εδώ εργαζόμαστε ήδη με αριθμούς, όχι μόνο με ακέραιους αριθμούς. Έτσι, εξετάσαμε πλήρως την εκτόξευση πραγματικών αριθμών. Απομένει να εξετάσουμε μόνο ένα ζήτημα.