5.5 Η συνάρτηση math στην γλώσσα C

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

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

Για παράδειγμα, η συνάρτηση sqrt() χρησιμοποιείται για τον υπολογισμό της τετραγωνικής ρίζας ενός αριθμού. Η σύνταξη για τη χρήση αυτής της συνάρτησης είναι sqrt(x), όπου x είναι ο αριθμός για τον οποίο θέλουμε να υπολογίσουμε την τετραγωνική ρίζα.

Με αυτόν τον τρόπο, η βιβλιοθήκη math μας παρέχει πρόσβαση σε μια πληθώρα μαθηματικών συναρτήσεων που μπορούμε να χρησιμοποιήσουμε στη γλώσσα προγραμματισμού C για να εκτελέσουμε πολλαπλούς υπολογισμούς.

Για να τις χρησιμοποιήσετε, πρέπει να συμπεριλάβετε το αρχείο κεφαλίδας math.h στο πρόγραμμά σας:

#include <stdio.h>
#include <math.h>

int main() {
    double x = 2.0; // Αρχικοποίηση της μεταβλητής x με την τιμή 2.0
    double y = sqrt(x); // Υπολογισμός της τετραγωνικής ρίζας της μεταβλητής x και αποθήκευση στη μεταβλητή y
    printf("The square root of %f is %f", x, y); // Εκτύπωση του αποτελέσματος
    return 0;
}

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

  1. Περιλαμβάνονται οι απαραίτητες βιβλιοθήκες με τη χρήση των δηλώσεων #include <stdio.h> και #include <math.h>. Η <stdio.h> περιέχει τις δηλώσεις που αφορούν την είσοδο/έξοδο, ενώ η <math.h> περιέχει μαθηματικές συναρτήσεις, όπως η sqrt() (τετραγωνική ρίζα).
  2. Ορίζεται η συνάρτηση main(), η οποία αποτελεί την κύρια συνάρτηση εκτέλεσης του προγράμματος.
  3. Δηλώνεται μια μεταβλητή x τύπου double με τιμή 2.0. Αυτή η μεταβλητή αποτελεί τον αριθμό για τον οποίο θα υπολογιστεί η τετραγωνική ρίζα.
  4. Υπολογίζεται η τετραγωνική ρίζα της μεταβλητής x με τη χρήση της συνάρτησης sqrt() από τη βιβλιοθήκη math.h. Το αποτέλεσμα αποθηκεύεται στη μεταβλητή y, η οποία είναι επίσης τύπου double.
  5. Χρησιμοποιείται η συνάρτηση printf() για να εκτυπωθεί το αποτέλεσμα στην οθόνη. Μέσα στην συμβολοσειρά που περιέχει το κείμενο προς εκτύπωση, χρησιμοποιούνται format specifiers, όπως %f, για την εμφάνιση των δεδομένων των μεταβλητών x και y. Η τιμή της x εμφανίζεται ως %f, ενώ η τιμή της y ως %f.
  1. Τέλος, η συνάρτηση main() επιστρέφει την τιμή 0 με τη δήλωση return 0;, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.

Ο κώδικας υπολογίζει και εκτυπώνει την τετραγωνική ρίζα του αριθμού 2.0. Στην οθόνη θα εμφανιστεί το μήνυμα “The square root of 2.000000 is 1.414214”.

Η βιβλιοθήκη math.h περιλαμβάνει μια πληθώρα συναρτήσεων για μαθηματικούς υπολογισμούς. Ανάμεσα σε αυτές τις συναρτήσεις περιλαμβάνονται οι συναρτήσεις για τον υπολογισμό του συνημιτόνου (sin), του εφαπτομένου (cos), του λογαρίθμου (log), της εκθετικής (exp) και πολλές άλλες. Για να βρείτε την πλήρη λίστα των συναρτήσεων που περιέχει η βιβλιοθήκη math.h, μπορείτε να ανατρέξετε στην τεκμηρίωση της βιβλιοθήκης.

Ένα από τα παραδείγματα συναρτήσεων που περιλαμβάνονται στην math.h είναι η συνάρτηση ceil(). Αυτή η συνάρτηση χρησιμοποιείται για τη στρογγυλοποίηση ενός αριθμού προς τα πάνω στο πλησιέστερο ακέραιο και επιστρέφει το αποτέλεσμα ως μια τιμή διπλής ακρίβειας. Η συνάρτηση ceil() επίσης βρίσκεται στη βιβλιοθήκη math.h και μπορεί να χρησιμοποιηθεί για ακριβείς υπολογισμούς στρογγυλοποίησης προς τα πάνω.

Παρακάτω παρατίθεται ένα παράδειγμα χρήσης της συνάρτησης ceil():

#include <stdio.h>
#include <math.h>

int main() {
    double x = 5.25; // Ορίζουμε τη μεταβλητή x και την αρχικοποιούμε με την τιμή 5.25
    double y = ceil(x); // Καλούμε τη συνάρτηση ceil για να πάρουμε το ακέραιο άνω φράγμα του x και το αποθηκεύουμε στη μεταβλητή y
    printf("The ceiling of %f is %f", x, y); // Εκτυπώνουμε το αποτέλεσμα με τη χρήση της συνάρτησης printf
    return 0;
}

Ο παραπάνω κώδικας υπολογίζει το άνω φράγμα (ceiling) μιας δεκαδικής τιμής. Συγκεκριμένα, ο κώδικας περιλαμβάνει τα εξής βήματα:

  1. Περιλαμβάνει τις απαραίτητες βιβλιοθήκες, την stdio.h για τη χρήση της συνάρτησης printf, και την math.h για τη χρήση της συνάρτησης ceil.
  2. Ορίζει μια μεταβλητή x και την αρχικοποιεί με την τιμή 5.25.
  3. Χρησιμοποιεί τη συνάρτηση ceil από τη βιβλιοθήκη math.h για να υπολογίσει το άνω φράγμα της τιμής x και το αποθηκεύει στη μεταβλητή y.
  4. Χρησιμοποιεί τη συνάρτηση printf για να εκτυπώσει τη φράση “The ceiling of [τιμή του x] is [τιμή του y]”.
  5. Επιστρέφει την τιμή 0, υποδεικνύοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.

Έτσι, ο κώδικας υπολογίζει το άνω φράγμα της τιμής 5.25, το οποίο είναι 6, και το εκτυπώνει στην οθόνη.

[adinserter block=”2″]

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

Παρακάτω παρατίθεται το ίδιο παράδειγμα με τη συνάρτηση floor():

#include <stdio.h>
#include <math.h>

int main() {
    double x = 5.25; // Ορισμός μιας μεταβλητής x με τιμή 5.25
    double y = floor(x); // Κλήση της συνάρτησης floor για τον υπολογισμό του ακέραιου μέρους του x
    printf("The floor of %f is %f", x, y); // Εκτύπωση του αποτελέσματος
    return 0; // Επιστροφή της τιμής 0
}

Ο παραπάνω κώδικας υπολογίζει το ακέραιο μέρος ενός δεκαδικού αριθμού. Αρχικά, ορίζεται η μεταβλητή x με τιμή 5.25. Στη συνέχεια, χρησιμοποιείται η συνάρτηση floor() από τη βιβλιοθήκη math.h για να υπολογιστεί το ακέραιο μέρος του x. Αυτή η τιμή αποθηκεύεται στη μεταβλητή y. Τέλος, με τη χρήση της συνάρτησης printf(), εκτυπώνεται το αποτέλεσμα που περιλαμβάνει τον αρχικό αριθμό x και το ακέραιο μέρος του x, που είναι ο y.

Σε αυτήν την περίπτωση, η στρογγυλοποίηση της τιμής 5.25 προς τα κάτω δίνει τον ακέραιο 5.0. Έτσι, το παραπάνω πρόγραμμα θα εμφανίσει το αποτέλεσμα:

The floor of 5.250000 is 5.000000

Οι δύο συναρτήσεις ceil() και floor() χρησιμοποιούνται για τη στρογγυλοποίηση ενός αριθμού προς τα πάνω ή προς τα κάτω, αντίστοιχα, στον πλησιέστερο ακέραιο. Μπορούν να εφαρμοστούν σε δεκαδικούς αριθμούς και βρίσκονται στη βιβλιοθήκη math.h. Οι συναρτήσεις αυτές έχουν πολλές εφαρμογές, όπως για παράδειγμα τον υπολογισμό του ακέραιου μέρους ενός δεκαδικού αριθμού.

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

Παρακάτω παρατίθεται ένα παράδειγμα χρήσης της συνάρτησης pow():

#include <stdio.h>
#include <math.h>

int main() {
    double x = 2.0; // Αρχικοποίηση της μεταβλητής x με την τιμή 2.0
    double y = 3.0; // Αρχικοποίηση της μεταβλητής y με την τιμή 3.0
    double result = pow(x, y); // Υπολογισμός του x υψωμένου στην δύναμη y και αποθήκευση στη μεταβλητή result
    printf("%f raised to the power of %f is %f", x, y, result); // Εκτύπωση του αποτελέσματος στην οθόνη
    return 0;
}

Ο παραπάνω κώδικας υπολογίζει το αποτέλεσμα της δύναμης μιας τιμής x υψωμένης στην δύναμη y, χρησιμοποιώντας τη συνάρτηση pow από τη βιβλιοθήκη math.h της C.

Αρχικά, δημιουργούνται και αρχικοποιούνται οι μεταβλητές x και y με τις τιμές 2.0 και 3.0 αντίστοιχα.

Στη συνέχεια, η συνάρτηση pow(x, y) καλείται για να υπολογίσει την τιμή του x υψωμένου στην δύναμη y. Το αποτέλεσμα αποθηκεύεται στη μεταβλητή result.

Τέλος, με τη χρήση της συνάρτησης printf, το αποτέλεσμα εκτυπώνεται στην οθόνη με τη μορφή "x raised to the power of y is result", όπου οι τιμές των μεταβλητών x, y και result αντικαθίστανται στη θέση των αντίστοιχων %f στοιχείων.

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

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

2.000000 raised to the power of 3.000000 is 8.000000

Αυτό σημαίνει ότι το αποτέλεσμα της δύναμης 2.0 υψωμένης στην δύναμη 3.0 είναι 8.0. Τα δεκαδικά ψηφία εμφανίζονται με ακρίβεια δεκαδικού ψηφίου (6 δεκαδικά ψηφία) λόγω της χρήσης της μορφοποιημένης συμβολοσειράς “%f” στη συνάρτηση printf.

[adinserter block=”3″]

Η βιβλιοθήκη περιέχει πολλές άλλες συναρτήσεις μαθηματικών, εκτός από τις ceil() και floor() που αναφέρθηκαν παραπάνω και τη pow() που αναφέρθηκε προηγουμένως. Ακολουθεί μια λίστα μερικών από τις πιο δημοφιλείς συναρτήσεις μαθηματικών:

ΣυνάρτησηΠεριγραφή
abs(x)Επιστρέφει την απόλυτη τιμή του x
acos(x)Επιστρέφει το αντίστροφο άρκοσινο του x
asin(x)Επιστρέφει το αντίστροφο άρκταντα του x
atan(x)Επιστρέφει το αντίστροφο αρκταντικό του x
cbrt(x)Επιστρέφει την τρίτη ρίζα του x
cos(x)Επιστρέφει το συνημίτονο του x
exp(x)Επιστρέφει την τιμή του e υψωμένη στη δύναμη του x
sin(x)Επιστρέφει τον ημίτονο του x
tan(x)Επιστρέφει την εφαπτομένη του x

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

Για παράδειγμα, ο παρακάτω κώδικας χρησιμοποιεί τις συναρτήσεις sqrt() και pow() για να υπολογίσει την υποτετραγωνική απόσταση μεταξύ δύο σημείων στο δισδιάστατο χώρο:

#include <stdio.h>
#include <math.h>

int main() {
    // Ορισμός των συντεταγμένων των δύο σημείων
    double x1 = 1.0;
    double y1 = 2.0;
    double x2 = 4.0;
    double y2 = 6.0;

    // Υπολογισμός των αποστάσεων dx και dy
    double dx = x2 - x1;
    double dy = y2 - y1;

    // Υπολογισμός της απόστασης μεταξύ των δύο σημείων
    double distance = sqrt(pow(dx, 2) + pow(dy, 2));

    // Εκτύπωση της απόστασης στην οθόνη
    printf("The distance between (%f, %f) and (%f, %f) is %f\n",
           x1, y1, x2, y2, distance);

    return 0;
}

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

Αρχικά, ορίζονται οι συντεταγμένες των δύο σημείων (x1, y1) και (x2, y2). Έπειτα, υπολογίζονται οι αποστάσεις dx και dy μεταξύ των συντεταγμένων των δύο σημείων.

Στη συνέχεια, η απόσταση υπολογίζεται χρησιμοποιώντας τη συνάρτηση sqrt() για τον υπολογισμό της τετραγωνικής ρίζας και τη συνάρτηση pow() για τον υπολογισμό του τετραγώνου των dx και dy.

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

Αν εκτελέσετε τον παραπάνω κώδικα, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:

The distance between (1.000000, 2.000000) and (4.000000, 6.000000) is 5.000000

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

21 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων