ΠΡΟΓΡΑΜΜΑ 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 ΜΕΧΡΙ Π ΒΟΗΘ <-- Υ+ΒΟΗΘ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΥΠΟΛ <-- Χ-ΒΟΗΘ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ