/ / / Exponentiation στη γλώσσα προγραμματισμού Pascal: συμβουλές και κόλπα

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. εδώ εργαζόμαστε ήδη με αριθμούς, όχι μόνο με ακέραιους αριθμούς. Έτσι, εξετάσαμε πλήρως την εκτόξευση πραγματικών αριθμών. Απομένει να εξετάσουμε μόνο ένα ζήτημα.

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

Διαβάστε περισσότερα: