Αγαπητέ, Spin
Έχω μια ένσταση όσον αφορά στο συγκεκριμένο πρόγραμμα. Από τη μια ο τίτλος της άσκησης είναι «Επίλυση δευτεροβάθμιας εξίσωσης» και από την άλλη στην εκφώνηση ζητάται επίλυση εξίσωσης της Αχ^2+Βχ+Γ.
Δευτεροβάθμια εξίσωση ή αλλιώς πολυωνυμική δευτέρου βαθμού ονομάζεται εξίσωση Αχ^2+Βχ+Γ, με Α<>0 εξ’ ορισμού. Σε διαφορετική περίπτωση θα μιλούσαμε για εξίσωση πρώτου ή μηδενικού βαθμού. Δεν νοείται λοιπόν δευτεροβάθμια εξίσωση πρώτου ή μηδενικού βαθμού…
Έτσι άλλος αλγόριθμος επιλύει εξίσωση δευτέρου βαθμού και άλλος την εξίσωση Αχ^2+Βχ+Γ γιατί πολύ απλά η εξίσωση αυτή δεν είναι απαραίτητα δευτεροβάθμια.
Πιστεύω πως για την παρούσα εκφώνηση ο αλγόριθμος που γράψατε είναι ο κατάλληλος αλλά ο τίτλος της ασκήσεως δεν είναι ορθός.
Τέλος, θα έπρεπε, για την περίπτωση Δ<0, στο μήνυμα προς το χρήστη να αναφέρετε ότι η εξίσωση δεν έχει ρίζες στο R. Γιατί μια τέτοια εξίσωση είναι αδύνατη μόνο στο R αλλά έχει δύο ρίζες στο C. Η δική μου πρόταση για την ολοκληρωμένη επίλυση
δευτεροβάθμιας είναι παρακάτω. Ίσως είναι λίγο τραβηγμένη για τα στενά πλαίσια των πανελλαδικών εξετάσεων και ξεφεύγει από το σκοπό για τον οποίο γράφτηκε η άσκηση αλλά νομίζω πως θα ενδιέφερε κάποιους που επιθυμούν να ασχοληθούν λίγο παραπάνω και για αυτό το λόγο το δημοσιεύω.
! Να γίνει πρόγραμμα που να ζητάει 3 πραγματικούς
! αριθμούς Α, Β και Γ και στη συνέχεια να λύνει
! δευτεροβάθμια εξίσωση.
! ================================================
ΠΡΟΓΡΑΜΜΑ ΕΠΙΛΥΣΗ_ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α, Β, Γ, Δ, ρ1, ρ2, Χ, Υ1, Υ2
ΑΡΧΗ
ΓΡΑΨΕ 'ΠΛΗΚΤΡΟΛΟΓΗΣΕ ΤΑ Α, Β ΚΑΙ Γ ΤΗΣ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΞΙΣΩΣΗΣ (ΜΕ Α<>0 ΥΠΟΧΡΕΩΤΙΚΑ)'
ΔΙΑΒΑΣΕ Α, Β, Γ
Δ <-- Β^2-4*Α*Γ
ΑΝ (Δ>0) ΤΟΤΕ
ρ1 <-- (-Β+Τ_Ρ(Δ))/(2*Α)
ρ2 <-- (-Β-Τ_Ρ(Δ))/(2*Α)
ΓΡΑΨΕ 'ΟΙ ΡΙΖΕΣ ΤΗΣ ΔΟΘΗΣΑΣ ΕΞΙΣΩΣΗΣ ΕΙΝΑΙ: ', ρ1, ρ2
ΑΛΛΙΩΣ_ΑΝ (Δ=0) ΤΟΤΕ
ρ1 <-- ((-Β)/(2*Α))
ΓΡΑΨΕ 'Η ΜΙΑ ΔΙΠΛΗ ΡΙΖΑ ΑΥΤΗΣ ΤΗΣ ΕΞΙΣΩΣΗΣ ΕΙΝΑΙ: ', ρ1
ΑΛΛΙΩΣ
Χ <-- (-Β)/(2*Α)
Υ1 <-- (Τ_Ρ(Α_Τ(Δ)))/(2*Α)
Υ2 <-- (-(Τ_Ρ(Α_Τ(Δ)))/(2*Α))
ΓΡΑΨΕ 'ΑΥΤΗ Η ΕΞΙΣΩΣΗ ΕΧΕΙ ΔΥΟ ΣΥΖΥΓΕΙΣ ΜΙΓΑΔΙΚΕΣ ΡΙΖΕΣ, ΟΙ ΟΠΟΙΕΣ ΕΙΝΑΙ ΟΙ ΕΞΕΙΣ: '
ΓΡΑΨΕ 'Ζ1 ΜΕ RΕ(Ζ1)=', Χ, 'ΚΑΙ ΙΜ(Ζ1)=', Υ1
ΓΡΑΨΕ 'Ζ2 ΜΕ RE(Z2)=', Χ, 'ΚΑΙ ΙΜ(Ζ2)=', Υ2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ