Ασκήσεις στις Κλάσεις
Γενική οδηγία:
Αποθηκεύστε τα αρχεία που σας δίνονται στον υπολογιστή σας και χρησιμοποιώντας την υλοποίηση της python που προτιμάτε απαντήστε στην ερώτηση.
- Φτιάξτε τη κλάση polynomial. Για τη δημιουργία ενός αντικειμένου της κλάσης polynomial θα δίνουμε μια λίστα με αριθμούς που θα περιέχει τους συντελεστές του πολυωνύμου. Π.χ. η εντολή p=polynomial([2,0,1]) θα κατασκευάζει το αντικείμενο p το οποίο θα είναι τύπου polynomial. Η λίστα [2,0,1] δηλώνει τους αντίστιχους συντελεστές του δηλαδή το
$$p(x) = 2 + x^2.$$
Κάθε αντικείμενο της κλάσης θα περιέχει τη μεταβλητή coef η οποία θα μια λίστα με τους συντελεστές του πολυωνύμου. Έτσι δίνοντας την παραπάνω εντολή p=polynomial([2,0,1]) θα δημιουργείται και η p.coef για το αντικείμενο p, τύπου polynomial, και η τιμή της θα είναι η [2,0,1].
Class11-polynomial_class.py
- Για τη κλάση polynomial που έχεται δημιουργήσει στο προηγούμενο ερώτημα να προσθέσετε τη μέθοδο eval(). Αν δημιουργήσουμε το αντι- κείμενο p=polynomial([1,-1,0,1]), τότε η p.eval(x) θα υπολογίζει τη τιμή του πολυωνύμου p στο σημείο x. Έτσι για το προηγούμενο p με συντελε- στές [1,-1,0,1], p.eval(1.0) θα ισούται με 1.0, ενώ η p.eval(2.0) θα ισούται με 7.0.
Class11-polynomial_class.py
- Στην παραπάνω κλάση θα προσθέσετε και τη κατάλληλη μέθοδο για να μπορείτε να αθροίζετε πολυώνυμα. Έτσι αν p, q είναι δύο αντικείμενα της κλάσης polynomial το άθροισμα
p + q,
θα είναι ένα νέο πολυώνυμο με συντελεστές το άθροισμα των αντίστοι- χων συντελεστών. Αν π.χ. p=polynomial([1,-1,0,1]) και q=polynomial([0,- 1,1]), τότε το p+q θα είναι ένα αντικείμενο της κλάσης polynomial με συντελεστές [1,-2,1,1].
Class11-polynomial_class.py
-
Στην παραπάνω κλάση θα προσθέσετε και τη κατάλληλη μέθοδο για να μπορείτε να αφαιρείτε πολυώνυμα. Έτσι αν p, q είναι δύο αντικείμενα της κλάσης polynomial η διαφορά
p − q,
θα είναι ένα νέο πολυώνυμο με συντελεστές τη διαφορά των αντίστοιχων συντελεστών. Αν π.χ. p=polynomial([1,-1,0,1]) και q=polynomial([0,-1,1]), τότε το p-q θα είναι ένα αντικείμενο της κλάσης polynomial με συντελεστές [1,0,-1,1].
Class11-polynomial_class.py
- Στην παραπάνω κλάση θα προσθέσετε και τη μέθοδο deriv() για να μπορείτε να παραγωγίζετε πολυώνυμα. Έτσι αν π.χ. p=polynomial([1,-1,0,1]) είναι ένα αντικείμενο της κλάσης polynomial το p.deriv() θα δημιουργεί ένα νέο αντικείμενο της κλάσης το οποίο θα είναι το πολυώνυμο που ταυτίζεται με τη παράγωγο του p(x) και έχει συντελεστές [-1,0,3].
Class11-polynomial_class.py
-
Στην παραπάνω κλάση θα προσθέσετε και τη μέθοδο integral() για να μπορείτε να ολοκληρώνετε πολυώνυμα. Έτσι αν π.χ. p=polynomial([1,- 1,0,1]) είναι ένα αντικείμενο της κλάσης polynomial το p.integral() θα δημιουργεί ένα νέο αντικείμενο της κλάσης το οποίο θα είναι το πολυώ- νυμο που ταυτίζεται με το αόριστο ολοκλήρωμα του p(x) και έχει συντελεστές [0,1,-0.5,0,0.25].
Class11-polynomial_class.py