Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α6.12 · Υπολογισμός ριζών τριωνύμου

Εργαστήριο 3, Άσκηση 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 6, 5

2.1 Παραγωγή τυχαίων αριθμών

Γράψτε ένα πρόγραμμα root.c που να παράγει τρεις τυχαίους πραγματικούς αριθμούς στο διάστημα [0,1] και να τους αποθηκεύει στις μεταβλητές τύπου double a, b και c, τις οποίες στη συνέχεια να εκτυπώνει.

int rand()

Απαιτείται ενσωμάτωση του αρχείου επικεφαλίδας stdlib.h.

Επιστρέφει έναν ψευδο-τυχαίο ακέραιο από 0 έως RAND_MAX - συμβολική σταθερά που ορίζεται στο αρχείο επικεφαλίδας stdlib.h.

void srand(unsigned int seed)

Απαιτείται ενσωμάτωση του αρχείου επικεφαλίδας stdlib.h.

Αρχικοποιεί την γεννήτρια ψευδο-τυχαίων αριθμών με βάση τον αριθμό/φύτρα seed. Συνήθως χρησιμοποιούμε σα φύτρα την τρέχουσα ώρα, όπως επιστρέφεται από την κλήση της συνάρτησης time(NULL) (απαιτείται το αρχείο επικεφαλίδας time.h).

2.2 Εύρεση ριζών

Τροποποιήστε το root.c ώστε να υπολογίζει τις πραγματικές ρίζες ενός τριωνύμου. Τα δεδομένα εισόδου (συντελεστές του τριωνύμου) θα είναι τυχαίες πραγματικές μεταβλητές a, b, c στο διάστημα [0,1]. Αν το τριώνυμο δεν έχει πραγματικές ρίζες, να εκτυπώνεται ένα σχετικό μήνυμα ενημέρωσης. Οι ρίζες να εκτυπώνονται με ακρίβεια 3 δεκαδικών ψηφίων.

Θυμηθείτε τη δομή ελέγχου if...else:

if (C)
    E1;
else
    E2;

Αν η συνθήκη C είναι αληθής εκτελείται η εντολή (ή το μπλοκ εντολών) E1, αλλιώς η εντολή (ή το μπλοκ εντολών) E2. Το σκέλος else είναι προαιρετικό: αν λείπει και η C είναι ψευδής, δεν εκτελείται τίποτα.

2.3 Μιγαδικές ρίζες

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

Υπόδειξη

Για τυχαίο πραγματικό στο [0,1] διαιρέστε το αποτέλεσμα της rand() με το RAND_MAX, προσέχοντας να γίνει η διαίρεση σε double. Οι περιπτώσεις καθορίζονται από το πρόσημο της διακρίνουσας. Για τις μιγαδικές ρίζες τυπώστε χωριστά πραγματικό και φανταστικό μέρος, χρησιμοποιώντας την απόλυτη τιμή της διακρίνουσας.

Αριθμός στον οδηγό: Α6.12 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: lab-lab03-root · Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab03-root.html · Markdown (GitHub)