Τώρα είναι Πέμ 28 Μαρ 2024 11:53 am

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 2 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: ***ΣΧΗΜΑ HORNER*** [ΜΕ ΤΗΝ ΛΥΣΗ]
ΔημοσίευσηΔημοσιεύτηκε: Παρ 14 Δεκ 2007 05:38 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 13 Δεκ 2007 04:15 pm
Δημοσιεύσεις: 21
ΓΡΑΨΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΠΑΡΑΓΟΝΤΟΠΟΙΕΙ ΕΝΑ ΠΟΛΥΩΝΘΜΟ Ν ΒΑΘΜΟΥ (2<=Ν<=20, Ν ΦΥΣΙΚΟΣ) ΜΕ ΣΧΗΜΑ HORNER. ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ ΑΚΕΡΑΙΟΣ ΔΙΑΙΡΕΤΗΣ ΤΟΥ ΣΤΑΘΕΡΟΥ ΟΡΟΥ ΠΟΥ ΝΑ ΕΙΝΑΙ ΡΙΖΑ ΤΟΥ ΠΟΛΥΩΝΥΜΟΥ, ΤΟΤΕ ΝΑ ΕΜΦΑΝΙΖΕΙ ΣΧΕΤΙΚΟ ΜΥΝΗΜΑ ΟΤΙ ΔΕΝ ΕΙΝΑΙ ΔΥΝΑΤΗ Η ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ.

ΜΠΟΡΕΙΤΕ ΝΑ ΤΡΟΠΟΠΟΙΗΣΕΤΕ ΤΗΝ ΕΚΦΩΝΗΣΗ, ΠΧ ΝΑ ΠΑΡΑΓ ΠΟΛΥΩΝΥΜΑ ΜΕΓ ΒΑΘΜΟΥ ΑΠΟ 20, ΚΤΛ.. :wink:

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ HORNER
ΣΤΑΘΕΡΕΣ
  ΜΕΓ_ΒΑΘ = 20
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ :  ΒΑΘ, Ι, ΣΥΝΤ[ΜΕΓ_ΒΑΘ+1]!Η ΤΕΛ ΘΕΣΗ ΑΠΟΘ ΤΗΝ ΑΚ ΡΙΖΑ ΠΟΥ ΘΑ ΒΡΕΘΕΙ ΓΙΑ ΝΑ ΓΙΝΕΙ Η ΠΑΡΑΓ.
ΑΡΧΗ
  !ΕΙΣΟΔΟΣ
  ΓΡΑΨΕ 'ΔΩΣΤΕ ΒΑΘΜΟ ΠΟΛΥΩΝΥΜΟΥ'
  ΔΙΑΒΑΣΕ ΒΑΘ
  ΟΣΟ (ΒΑΘ < 2)Η(ΒΑΘ>ΜΕΓ_ΒΑΘ) ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Ο ΒΑΘΜΟΣ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΜΕΤΑΞΥ 2 ΚΑΙ ',ΜΕΓ_ΒΑΘ
    ΓΡΑΨΕ 'ΔΩΣΤΕ ΞΑΝΑ'
    ΔΙΑΒΑΣΕ ΒΑΘ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! ΟΣΟ
  ΒΑΘ <-- ΒΑΘ + 1 ! +1 ΜΕ ΤΟΝ ΣΤΑΘ ΟΡΟ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΒΑΘ
    ΓΡΑΨΕ 'ΔΩΣΤΕ ',Ι,'ο ΣΥΝΤΕΛΕΣΤΗ'
    ΔΙΑΒΑΣΕ ΣΥΝΤ[Ι]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! ΓΙΑ
  !ΕΙΣΟΔΟΣ
  ΑΝ ΑΚ_ΡΙΖΑ ΤΟΤΕ
    ΚΑΛΕΣΕ ΠΑΡΑΓ
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΑΝ ΑΚΕΡΑΙΕΣ ΡΙΖΕΣ'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(Χ):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : Ι,Χ
  ΠΡΑΓΜΑΤΙΚΕΣ : Σ
ΑΡΧΗ
  Σ <-- 0
  ΓΙΑ Ι ΑΠΟ ΒΑΘ ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
    Σ <-- Σ + ΣΥΝΤ[Ι]*(Χ^(ΒΑΘ-Ι))
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ Σ = 0 ΤΟΤΕ
    ΕΛΕΓΧΟΣ_ΡΙΖΑΣ <-- ΑΛΗΘΗΣ
  ΑΛΛΙΩΣ
    ΕΛΕΓΧΟΣ_ΡΙΖΑΣ <-- ΨΕΥΔΗΣ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΣΥΝΑΡΤΗΣΗ ΑΚ_ΡΙΖΑ:ΛΟΓΙΚΗ
!  ΥΠΟΛΟΓΙΣΜΟΣ ΤΩΝ ΠΙΘ.ΑΚ.ΛΥΣΕΩΝ ΤΟΥ ΠΟΛΥΩΝΥΜΟΥ
!  ΟΙ ΟΠΟΙΕΣ ΘΑ ΕΙΝΑΙ ΑΚ. ΡΙΖΕΣ ΤΟΥ ΣΤΑΘ ΟΡΟΥ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : Ι, Σ
ΑΡΧΗ
  ΑΚ_ΡΙΖΑ <-- ΨΕΥΔΗΣ
  Σ <-- Α_Τ(ΣΥΝΤ[ΒΑΘ]) ! Ο ΣΤΑΘΕΡΟΣ ΟΡΟΣ ΣΕ ΑΠΟΛΥΤΗ ΤΙΜΗ ΓΙΑ ΤΟ **
  ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(0) ΤΟΤΕ
    ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
    ΣΥΝΤ[ΒΑΘ+1] <-- 0
  ΑΛΛΙΩΣ
    Ι <-- 1
    ΟΣΟ (Ι < Σ) ΕΠΑΝΑΛΑΒΕ !** Ι < Σ ** ΚΑΝΕΙΣ ΑΡΙΘΜΟΣ ΔΕΝ ΔΙΑΙΡΕΙΤΑΙ ΜΕ ΜΕΓΑΛΥΤΕΡΟ ΤΟΥ...
      ΑΝ Σ MOD Ι = 0 ΤΟΤΕ
        ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(Ι) ΤΟΤΕ
          ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
          ΣΥΝΤ[ΒΑΘ+1] <-- Ι
        ΑΛΛΙΩΣ_ΑΝ ΕΛΕΓΧΟΣ_ΡΙΖΑΣ(-Ι) ΤΟΤΕ
          ΑΚ_ΡΙΖΑ <-- ΑΛΗΘΗΣ
          ΣΥΝΤ[ΒΑΘ+1] <-- -Ι
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΑΝ
      Ι <-- Ι + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΠΑΡΑΓ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : ΝΣΥΝΤ[ΜΕΓ_ΒΑΘ-1], Ι ! ΝΣΥΝΤ[ΒΑΘ-1] ΚΑΝΟΝΙΚΑ, ΑΛΛΑ ΔΕΝ ΓΙΝΕΤΑΙ.....
  ΧΑΡΑΚΤΗΡΕΣ : ΠΡ
ΑΡΧΗ
  ΝΣΥΝΤ[1] <-- ΣΥΝΤ[1]
  ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ ΒΑΘ-1
    ΝΣΥΝΤ[Ι] <-- ΝΣΥΝΤ[Ι-1]*ΣΥΝΤ[ΒΑΘ+1] + ΣΥΝΤ[Ι]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ΠΡ <-- '+' ! ΑΡΧ ΠΡΟΣΗΜΟ
  ΓΡΑΨΕ
  ΓΡΑΨΕ_ '(x-',ΣΥΝΤ[ΒΑΘ+1],')('
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΒΑΘ - 2
    ΑΝ ΝΣΥΝΤ[Ι+1] < 0 ΤΟΤΕ
      ΠΡ <-- '' ! ΤΟ ΜΕΙΟΝ ΘΑ ΥΠΑΡΧΕΙ ΗΔΗ
    ΤΕΛΟΣ_ΑΝ
    ΑΝ ΝΣΥΝΤ[Ι] <> 1 ΤΟΤΕ
      ΓΡΑΨΕ_ ΝΣΥΝΤ[Ι]
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ_ 'x^',(ΒΑΘ-Ι-1), ΠΡ
    ΠΡ <-- '+'                                  
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ_ ΝΣΥΝΤ[Ι],')'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

_________________
--** The Develloper is the God of the programs**--


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης: Re: ***ΣΧΗΜΑ HORNER*** [ΜΕ ΤΗΝ ΛΥΣΗ]
ΔημοσίευσηΔημοσιεύτηκε: Τρί 22 Ιούλ 2008 02:17 pm 
Χωρίς σύνδεση

Εγγραφή: Τρί 22 Ιούλ 2008 01:59 pm
Δημοσιεύσεις: 3
Με λίγες τροποποιήσεις στην εκτύπωση των αποτελεσμάτων και με μερικές αλλαγές ώστε να συγκρατεί όλους τους διαιρέτες δίνοντας έτσι όλους τους πιθανούς τρόπους παραγωντοποίησης έχουμε το παρακάτω πρόγραμμα:
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ 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), ΠΡ
      ΠΡ <-- '+'
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ_ ΝΣΥΝΤ[Ι],')'

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 2 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: