Σφάλμα: Απροσδιόριστη αναφορά στο Pow στη C++

Sphalma Aprosdioriste Anaphora Sto Pow Ste C



Όταν εργάζεστε σε γλώσσες προγραμματισμού, πρέπει να περιέχουν βιβλιοθήκες, συναρτήσεις, σύνταξη κ.λπ. Επομένως, υπάρχει πιθανότητα σφάλματος στα προγράμματά μας. Υπάρχουν διάφορα λάθη διαφορετικών ειδών στον προγραμματισμό της C++. Εδώ, θα συζητήσουμε το σφάλμα 'απροσδιόριστη αναφορά στο δυναμικό' στον προγραμματισμό C++. Μερικές φορές, εμφανίζεται ως 'η ισχύς δεν δηλώθηκε σε αυτό το πεδίο εφαρμογής' και και τα δύο έχουν την ίδια σημασία. Αυτό το σφάλμα παρουσιάζεται όταν δεν προσθέτουμε το αρχείο κεφαλίδας στον κώδικα C++ ή ενδέχεται να μην μεταγλωττίσουμε σωστά τον κώδικα. Θα διερευνήσουμε επίσης τα αρχεία κεφαλίδας που βοηθούν στην αφαίρεση αυτού του σφάλματος από τον κώδικά μας C++.

Επίλυση της απροσδιόριστης αναφοράς σε Pow σε C++

Όταν αντιμετωπίζουμε αυτό το μήνυμα σφάλματος, απλώς προσθέτουμε το αρχείο κεφαλίδας στον κώδικά μας στον οποίο δηλώνεται η συνάρτηση 'pow()'. Αυτό αφαιρεί το σφάλμα από τον κώδικά μας. Τα αρχεία κεφαλίδας που χρησιμοποιούνται για τη συνάρτηση 'pow()' είναι:

  • #include αρχείο κεφαλίδας
  • #include αρχείο κεφαλίδας
  • #include αρχείο κεφαλίδας

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







Παράδειγμα 1:

Στο πρώτο μας παράδειγμα, προσθέτουμε το αρχείο κεφαλίδας «#include » που βοηθά στην εκτέλεση των εργασιών εισόδου και εξόδου. Στη συνέχεια, πρέπει να γράψουμε 'using namespace std' μετά από αυτήν την κεφαλίδα. Αυτό βοηθά στην αποφυγή της σύγχυσης που θα μπορούσε να προκύψει από δύο ταυτότητες που μοιράζονται το ίδιο όνομα.



Μετά από αυτό, καλούμε τη συνάρτηση 'int main()' εδώ, η οποία χρησιμοποιείται για να ορίσει την έναρξη του κώδικα C++ μας. Τώρα, σε αυτή τη συνάρτηση, χρησιμοποιούμε τη δήλωση 'cout<<' που βοηθά στην εκτύπωση των δεδομένων στην οθόνη. Η δήλωση '<< endl' χρησιμοποιείται για να μετατοπίσουμε τον δείκτη μας στη νέα γραμμή.



Μετά από αυτό, χρησιμοποιείται η συνάρτηση «pow()» στην οποία πρέπει να περάσουμε δύο παραμέτρους: βάση και εκθέτη. Εδώ, προσθέτουμε το '10, 4', στο οποίο το '10' είναι ο βασικός αριθμός και το '4' ο εκθέτης. Στο τέλος αυτού του κωδικού, εισάγουμε μια ακόμη δήλωση που είναι 'return 0'.





Κωδικός 1:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( ) {
cout << 'Η συνάρτηση ισχύος χρησιμοποιείται εδώ' ;
cout << endl << endl ;
cout << pow ( 10 , 4 ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή:
Αφού συμπληρώσουμε τον κώδικα, πρέπει να τον μεταγλωττίσουμε και να τον εκτελέσουμε. Όταν μεταγλωττίζουμε τον προηγούμενο κώδικα, εμφανίζεται το μήνυμα λάθους που δηλώνει 'το pow δεν δηλώθηκε σε αυτό το πεδίο'. Αυτό το σφάλμα εμφανίζεται επειδή δεν έχουμε προσθέσει το αρχείο κεφαλίδας στο οποίο δηλώνεται αυτή η συνάρτηση 'pow()'. Για να λύσουμε αυτό το σφάλμα, πρέπει να εισαγάγουμε οποιοδήποτε από τα αρχεία κεφαλίδας που αναφέραμε προηγουμένως.



Τώρα, πρέπει να λύσουμε αυτό το σφάλμα για να έχουμε το αποτέλεσμα. Για αυτό, κάναμε μερικές αλλαγές στον κώδικα. Στον ίδιο κώδικα, προσθέτουμε το αρχείο κεφαλίδας «#include» μετά το αρχείο κεφαλίδας «». Αυτό βοηθά στην αφαίρεση του σφάλματος του προηγούμενου κώδικα επειδή η συνάρτηση 'pow()' δηλώνεται σε αυτό το αρχείο κεφαλίδας.

Ενημερωμένος Κωδικός 1:

#include
#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( ) {
cout << 'Η συνάρτηση ισχύος χρησιμοποιείται εδώ' ;
cout << endl << endl ;
cout << pow ( 10 , 4 ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

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

Παράδειγμα 2:

Εδώ, έχουμε ένα άλλο παράδειγμα στη C++. Αφού προσθέσουμε το « » και το «std», καλούμε τώρα τη συνάρτηση «main()». Μέσα στο main(), απλώς εκτυπώνουμε μια γραμμή με τη βοήθεια μιας δήλωσης 'cout'. Στη συνέχεια, δηλώνουμε τρεις μεταβλητές ακέραιου τύπου δεδομένων με το όνομα 'num, exp, and result'. Μετά από αυτό, αρχικοποιούμε το 'num' με '25' και το 'exp' με '2'. Η μεταβλητή «αποτέλεσμα» αρχικοποιείται με τη συνάρτηση «pow()» στην οποία τα «num» και «exp» μεταβιβάζονται ως οι δύο παράμετροι αυτής της συνάρτησης. Μετά από αυτό, εμφανίζουμε αυτό το αποτέλεσμα ισχύος χρησιμοποιώντας το 'cout'.

Κωδικός 2:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( )
{
cout << 'Βρίσκουμε τη δύναμη ενός αριθμού εδώ στον προγραμματισμό C++.' << endl << endl ;
ενθ σε ένα, exp , αποτέλεσμα ;
σε ένα = 25 ;
exp = 2 ;
αποτέλεσμα = pow ( σε ένα, exp ) ;
cout << 'Η δύναμη του αριθμού είναι =' << αποτέλεσμα ;
cout << endl ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή :
Τώρα, αυτός ο νέος κώδικας εμφανίζει το ίδιο μήνυμα σφάλματος με το προηγούμενο παράδειγμα. Ο λόγος είναι ότι είναι επίσης το ίδιο επειδή δεν εισαγάγαμε το αρχείο κεφαλίδας με το οποίο μπορούμε να λάβουμε αυτήν τη συνάρτηση 'pow()'.

Τώρα, προσθέτουμε το αρχείο κεφαλίδας στον κώδικά μας που είναι το αρχείο κεφαλίδας 'cmath'. Αυτό το αρχείο κεφαλίδας χρησιμοποιείται στον προγραμματισμό C++ για να λάβουμε τη συνάρτηση 'pow()' του κώδικά μας. Αφού προσθέσουμε το αρχείο κεφαλίδας «#include», παίρνουμε την απαιτούμενη έξοδο του κώδικά μας.

Παράδειγμα 3:

Τώρα, έχουμε ένα ακόμη παράδειγμα. Εδώ, μετά τη συνάρτηση 'main()', δηλώνουμε και αρχικοποιούμε το 'base_num' του τύπου δεδομένων 'long double' με '4.5'. Στη συνέχεια, δηλώνουμε και αρχικοποιούμε επίσης το 'expo_num' του τύπου δεδομένων 'ακέραιος' με '-2'. Δηλώνουμε επίσης μια ακόμη μεταβλητή του ονόματος 'result_1' που είναι τύπου δεδομένων 'long double'.

Τώρα, χρησιμοποιούμε τη συνάρτηση 'pow()' για να αρχικοποιήσουμε τη μεταβλητή 'result_1' και να περάσουμε τα 'base_num' και 'expo_num' σε αυτήν τη συνάρτηση. Μετά από αυτό, εκτυπώνουμε το αποτέλεσμα χρησιμοποιώντας την εντολή «cout». Τώρα, δηλώνουμε και αρχικοποιούμε δύο ακόμη μεταβλητές, 'f_baseNum' και 'f_expoNum', με τον τύπο δεδομένων 'float'. Τα αρχικοποιούμε με “-9,2” και “5”, αντίστοιχα. Στη συνέχεια, δηλώνουμε το 'result_2' ως 'διπλό' τύπο δεδομένων. Τώρα αρχικοποιούμε τη μεταβλητή 'result_22' χρησιμοποιώντας τη μέθοδο 'pow()', περνώντας στα 'f_baseNum' και 'f_expoNum'. Στη συνέχεια, χρησιμοποιούμε την εντολή 'cout' για να εκτυπώσουμε το αποτέλεσμα.

Κωδικός 3:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( ) {
μακρύς διπλό βάση_αριθμός = 4.5 ;
ενθ expo_num = - 2 ;
μακρύς διπλό αποτέλεσμα_1 ;
αποτέλεσμα_1 = pow ( βασικό_αριθμός, expo_num ) ;
cout << 'Το base_num εδώ είναι σε long double και το expo_num είναι σε ακέραιο τύπο ' << endl << endl ;
cout << βάση_αριθμός << '^' << expo_num << ' = ' << αποτέλεσμα_1 << endl << endl ;
φλοτέρ f_baseNum = - 9.2 , f_expoNum = 5 ;
διπλό αποτέλεσμα_2 ;
αποτέλεσμα_2 = pow ( f_baseNum, f_expoNum ) ;
cout << 'Το f_baseNum εδώ είναι σε float και το f_expoNum είναι διπλού τύπου' << endl << endl ;
cout << f_baseNum << '^' << f_expoNum << ' = ' << αποτέλεσμα_2 ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

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

Το σφάλμα επιλύεται τώρα χρησιμοποιώντας το αρχείο κεφαλίδας ''. Αυτή τη φορά, χρησιμοποιούμε το αρχείο κεφαλίδας '#include ', επειδή αυτό το αρχείο κεφαλίδας βοηθά επίσης στην επίλυση αυτού του σφάλματος.

Μετά την τοποθέτηση αυτού, ο κώδικας συμμορφώνεται με επιτυχία και παίρνουμε την έξοδο του κωδικού μας που εμφανίζεται επίσης εδώ.

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

Αφού προσθέσουμε το ' ', παίρνουμε την απαιτούμενη έξοδο επειδή το 'bits/stdc++.h>' περιέχει κάθε τυπική βιβλιοθήκη. Έτσι, το σφάλμα αφαιρείται τώρα μετά την προσθήκη αυτής της βιβλιοθήκης στον κώδικά μας και το αποτέλεσμα εξόδου εμφανίζεται εδώ.

συμπέρασμα

Σε αυτό το άρθρο, το σφάλμα 'απροσδιόριστη αναφορά στο δυναμικό' ή 'το pow δεν δηλώθηκε σε αυτό το πεδίο εφαρμογής' στον προγραμματισμό C++ συζητείται επίσης λεπτομερώς. Εξερευνήσαμε επίσης τους τρόπους ή τα αρχεία κεφαλίδας που βοηθούν στην αφαίρεση του σφάλματος για επιτυχημένη μεταγλώττιση κώδικα. Παρουσιάσαμε τα παραδείγματα στα οποία δείξαμε το μήνυμα σφάλματος και το αποτέλεσμα του κώδικα μετά την κατάργηση αυτού του μηνύματος σφάλματος.