ΠΡΟΓΡΑΜΜΑ DIV_MOD
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι
ΠΡΑΓΜΑΤΙΚΕΣ:Χ,Υ,Π,ΥΠ
ΛΟΓΙΚΕΣ:ΑΡΝΗΤΙΚΟ[3]
ΧΑΡΑΚΤΗΡΕΣ:ΑΠ
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 3
ΑΡΝΗΤΙΚΟ[Ι] <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Θα γινει διαιρεση Χ/Υ. Δωσε Χ'
ΔΙΑΒΑΣΕ Χ
ΓΡΑΨΕ 'Δωσε Υ (διαφορο του 0)'
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Υ
ΜΕΧΡΙΣ_ΟΤΟΥ Υ<>0
! Εξεταζουμε ποιοι απο τους 2 αριθμους που δωθηκαν ειναι αρνητικοι και τους κανουμε θετικους
ΑΝ Χ<0 ΤΟΤΕ
ΑΡΝΗΤΙΚΟ[1] <-- ΑΛΗΘΗΣ
Χ <-- -Χ
ΤΕΛΟΣ_ΑΝ
ΑΝ Υ<0 ΤΟΤΕ
ΑΡΝΗΤΙΚΟ[2] <-- ΑΛΗΘΗΣ
Υ <-- -Υ
ΤΕΛΟΣ_ΑΝ
! Εξεταζουμε αν οι αριθμοι που δωθηκαν αρχηκα ειναι ομοσημοι
ΑΝ ΑΡΝΗΤΙΚΟ[1]=ΑΡΝΗΤΙΚΟ[2] ΤΟΤΕ
ΑΡΝΗΤΙΚΟ[3] <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΑΡΝΗΤΙΚΟ[3] <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
! Η μεταβλητη Π εχει το ποιλικο Χ/Υ
Π <-- ΠΟΙΛ(Χ,Υ)
! Αντιστοιχα η ΥΠ το υπολοιπο Χ/Υ
ΥΠ <-- ΥΠΟΛ(Π,Χ,Υ)
!Εξεταζουμε αν ειναι ομοσημοι
ΑΝ ΑΡΝΗΤΙΚΟ[3]= ΑΛΗΘΗΣ ΤΟΤΕ
!Αν ειναι ομοσημοι τότε εξεταζουμε αν ειναι και οι 2 αρνητικοι, αν ειναι αλλαζουμε το προσημο του υπολοιπου
ΑΝ ΑΡΝΗΤΙΚΟ[1]=ΑΡΝΗΤΙΚΟ[2] ΚΑΙ ΑΡΝΗΤΙΚΟ[2]=ΑΛΗΘΗΣ ΤΟΤΕ
ΥΠ <-- -ΥΠ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
!Αν δεν ειναι ομοσημοι αλλαζουμε το προσημο του Π και του Υπ
Π <-- -Π
ΥΠ <-- -ΥΠ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Ποιλικο:', Π
ΓΡΑΨΕ 'Υπολοιπο:', ΥΠ
ΓΡΑΨΕ 'Εκτελεση Ξανα ? (ΝΑΙ/ΟΧΙ)'
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΑΠ
ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ='ΝΑΙ' Η ΑΠ='NAI' Η ΑΠ='ΟΧΙ' Η ΑΠ='OXI'
ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ='ΟΧΙ' Η ΑΠ='OXI'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΠΟΙΛ(Χ,Υ):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ:Χ,Υ,Π,Μ
ΑΡΧΗ
Μ <-- 0
Π <-- 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Π <-- Π + 1
Μ <-- Μ +Υ
ΜΕΧΡΙΣ_ΟΤΟΥ Μ>=Χ
!Αν η Μ δεν ειναι ιση με τον Χ σημαινει οτι 'χωραει' μια φορα λιγοτερο
ΑΝ Μ>Χ ΤΟΤΕ
Π <-- Π -1
ΤΕΛΟΣ_ΑΝ
ΠΟΙΛ <-- Π
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΥΠΟΛ(Π,Χ,Υ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ:Π,Χ,ΒΟΗΘ,Ι,Υ
ΑΡΧΗ
! Ουσιαστικα γινεται η πραξη ΥΠΟΛ=Υ*Π - Χ
ΒΟΗΘ <-- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Π
ΒΟΗΘ <-- Υ+ΒΟΗΘ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΥΠΟΛ <-- Χ-ΒΟΗΘ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ