ΠΡΟΓΡΑΜΜΑ HORNER
ΣΤΑΘΕΡΕΣ
ΜΕΓ_ΒΑΘ = 20
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : ΒΑΘ, Ι,ΠΑΡ[ΜΕΓ_ΒΑΘ+1], Ν, ΣΥΝΤ[ΜΕΓ_ΒΑΘ+1]!Η ΤΕΛ ΘΕΣΗ ΑΠΟΘ ΤΗΝ ΑΚ ΡΙΖΑ ΠΟΥ ΘΑ ΒΡΕΘΕΙ ΓΙΑ ΝΑ ΓΙΝΕΙ Η ΠΑΡΑΓ.
ΑΡΧΗ
!ΕΙΣΟΔΟΣ
ΓΡΑΨΕ 'ΔΩΣΤΕ ΒΑΘΜΟ ΠΟΛΥΩΝΥΜΟΥ'
ΔΙΑΒΑΣΕ ΒΑΘ
ΟΣΟ (ΒΑΘ < 2)Η(ΒΑΘ>ΜΕΓ_ΒΑΘ) ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ 'Ο ΒΑΘΜΟΣ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΜΕΤΑΞΥ 2 ΚΑΙ ',ΜΕΓ_ΒΑΘ
ΓΡΑΨΕ 'ΔΩΣΤΕ ΞΑΝΑ'
ΔΙΑΒΑΣΕ ΒΑΘ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! ΟΣΟ
ΒΑΘ <-- ΒΑΘ + 1 ! +1 ΜΕ ΤΟΝ ΣΤΑΘ ΟΡΟ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΒΑΘ
ΓΡΑΨΕ 'ΔΩΣΤΕ ',Ι,'ο ΣΥΝΤΕΛΕΣΤΗ'
ΔΙΑΒΑΣΕ ΣΥΝΤ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!ΕΙΣΟΔΟΣ --------------------------
ΑΝ ΑΚ_ΡΙΖΑ ΤΟΤΕ
ΚΑΛΕΣΕ ΠΑΡΑΓ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΑΝ ΑΚΕΡΑΙΕΣ ΡΙΖΕΣ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!===============================================================================================
ΣΥΝΑΡΤΗΣΗ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(Χ):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : Ι,Χ
ΠΡΑΓΜΑΤΙΚΕΣ : Σ
ΑΡΧΗ
Σ <-- 0
ΓΙΑ Ι ΑΠΟ ΒΑΘ ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
Σ <-- Σ + ΣΥΝΤ[Ι]*(Χ^(ΒΑΘ-Ι))
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Σ = 0 ΤΟΤΕ
ΕΛΕΓΧΟΣ_ΡΙΖΑΣ <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΕΛΕΓΧΟΣ_ΡΙΖΑΣ <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!===============================================================================================
ΣΥΝΑΡΤΗΣΗ ΑΚ_ΡΙΖΑ:ΛΟΓΙΚΗ
! ΥΠΟΛΟΓΙΣΜΟΣ ΤΩΝ ΠΙΘ.ΑΚ.ΛΥΣΕΩΝ ΤΟΥ ΠΟΛΥΩΝΥΜΟΥ
! ΟΙ ΟΠΟΙΕΣ ΘΑ ΕΙΝΑΙ ΑΚ. ΡΙΖΕΣ ΤΟΥ ΣΤΑΘ ΟΡΟΥ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : Ι, Σ
ΑΡΧΗ
ΑΚ_ΡΙΖΑ <-- ΨΕΥΔΗΣ
Σ <-- Α_Τ(ΣΥΝΤ[ΒΑΘ]) ! Ο ΣΤΑΘΕΡΟΣ ΟΡΟΣ ΣΕ ΑΠΟΛΥΤΗ ΤΙΜΗ ΓΙΑ ΤΟ **
ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(0) ΤΟΤΕ
ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
ΣΥΝΤ[ΒΑΘ+1] <-- 0
ΑΛΛΙΩΣ
Ι <-- 1
Ν <-- 1
ΟΣΟ (Ι < Σ) ΕΠΑΝΑΛΑΒΕ !** Ι < Σ ** ΚΑΝΕΙΣ ΑΡΙΘΜΟΣ ΔΕΝ ΔΙΑΙΡΕΙΤΑΙ ΜΕ ΜΕΓΑΛΥΤΕΡΟ ΤΟΥ...
ΑΝ Σ MOD Ι = 0 ΤΟΤΕ
ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(Ι) ΤΟΤΕ
ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
ΣΥΝΤ[ΒΑΘ+1] <-- Ι
ΠΑΡ[Ν] <-- ΣΥΝΤ[ΒΑΘ+1]
Ν <-- Ν+1
ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(-Ι) ΤΟΤΕ ! ΕΞΕΤΆΖΕΤΑΙ ΚΑΙ Η ΑΡΝΗΤΙΚΉ ΤΙΜΉ
ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
ΣΥΝΤ[ΒΑΘ+1] <-- -Ι
ΠΑΡ[Ν] <-- ΣΥΝΤ[ΒΑΘ+1]
Ν <-- Ν+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ !
ΤΕΛΟΣ_ΑΝ
Ι <-- Ι + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!===============================================================================================
ΔΙΑΔΙΚΑΣΙΑ ΠΑΡΑΓ
ΣΤΑΘΕΡΕΣ
ΜΕΓ_ΒΑΘ=20
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : ΝΣΥΝΤ[ΜΕΓ_ΒΑΘ -1], Α,Ι ! ΝΣΥΝΤ[ΒΑΘ-1] ΚΑΝΟΝΙΚΑ, ΑΛΛΑ ΔΕΝ ΓΙΝΕΤΑΙ.....
ΧΑΡΑΚΤΗΡΕΣ : ΠΡ
ΑΡΧΗ
ΓΙΑ Α ΑΠΟ 1 ΜΕΧΡΙ Ν-1
ΣΥΝΤ[ΒΑΘ+1] <-- ΠΑΡ[Α]
ΝΣΥΝΤ[1] <-- ΣΥΝΤ[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ ΒΑΘ-1
ΝΣΥΝΤ[Ι] <-- ΝΣΥΝΤ[Ι-1]*ΣΥΝΤ[ΒΑΘ+1] + ΣΥΝΤ[Ι] !Διαδικασία Horner
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ΠΡ <-- '+' ! ΑΡΧ ΠΡΟΣΗΜΟ
ΓΡΑΨΕ
ΑΝ ΣΥΝΤ[ΒΑΘ+1]>0 ΤΟΤΕ
ΓΡΑΨΕ_ '(x -',ΣΥΝΤ[ΒΑΘ+1],')('
ΑΛΛΙΩΣ
ΓΡΑΨΕ_ '(x +', Α_Τ(ΣΥΝΤ[ΒΑΘ+1]),')('
ΤΕΛΟΣ_ΑΝ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΒΑΘ - 2
ΑΝ ΝΣΥΝΤ[Ι+1] < 0 ΤΟΤΕ
ΠΡ <-- '' ! ΤΟ ΜΕΙΟΝ ΘΑ ΥΠΑΡΧΕΙ ΗΔΗ
ΤΕΛΟΣ_ΑΝ
ΑΝ ΝΣΥΝΤ[Ι] <> 1 ΤΟΤΕ
ΓΡΑΨΕ_ ΝΣΥΝΤ[Ι]
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ_ 'x^',(ΒΑΘ-Ι-1), ΠΡ
ΠΡ <-- '+'
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ_ ΝΣΥΝΤ[Ι],')'
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ