ΠΡΟΓΡΑΜΜΑ ΛΕΙΤΟΥΡΓΙΚΟ_ΑΡΧΕΙΩΝ
ΣΤΑΘΕΡΕΣ
ΑΝΕΝΕΡΓΟ=0
ΕΞΑΓΩΓΗ=1
ΕΙΣΑΓΩΓΗ=2
ΣΥΜΠΛΗΡΩΣΗ=3
ΤΥΧΑΙΑ=4
ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ=4
ΜΕΓΕΘΟΣ_ΦΟΡΤΩΜΑΤΟΣ=130
ΑΡΙΘΜΟΣ_ΦΟΡΤΩΜΑΤΩΝ_ΔΙΣΚΟΥ=100
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΔΟΚΙΜΗ
ΧΑΡΑΚΤΗΡΕΣ: ΔΙΣΚΟΣ[ΑΡΙΘΜΟΣ_ΦΟΡΤΩΜΑΤΩΝ_ΔΙΣΚΟΥ]
ΧΑΡΑΚΤΗΡΕΣ: ΠΡΟΣΩΡΙΝΟ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΤΥΠΙΚΟ_ΟΝΟΜΑ
ΑΚΕΡΑΙΕΣ: ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΔΙΑΘΕΣΙΜΟ, ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ
ΑΚΕΡΑΙΕΣ: ΔΡΟΜΕΑΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ],
ΑΚΕΡΑΙΕΣ: ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ]
ΑΚΕΡΑΙΕΣ: ΔΟΚ[10], Μ, Φ1, Θ1
ΑΡΧΗ
ΤΥΠΙΚΟ_ΟΝΟΜΑ <-- 'ΑΛΦΑ'
ΚΑΛΕΣΕ ΦΟΡΜΑΡΙΣΜΑ(ΤΥΠΙΚΟ_ΟΝΟΜΑ)
Μ <-- ΑΝΟΙΞΕ('ΑΛΦΑ.ΤΧΤ', ΕΞΑΓΩΓΗ)
ΓΡΑΨΕ 'ΣΥΝΟΛΙΚΑ ΑΝΟΙΚΤΑ ΑΡΧΕΙΑ:', ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
ΓΡΑΨΕ 'ΕΠΟΜΕΝΟ ΔΙΑΘΕΣΙΜΟ ΝΟΥΜΕΡΟ:', ΔΙΑΘΕΣΙΜΟ
ΚΑΤΑΛΟΓΟΣ
ΑΝ ΘΕΣΕ(Μ,'GEORGE KARRAS: YES, ΗΕ IS THE MYSTERIOUS BUGMAN. THE MAN WHO EATS BUGS FROM SOURCES FOR BREACFAST') ΤΟΤΕ
ΓΡΑΨΕ 'ΕΙΣΑΓΩΓΗ ΜΙΑΣ ΓΡΑΜΜΗΣ '
ΤΕΛΟΣ_ΑΝ
ΑΝ ΘΕΣΕ(Μ,ΠΑΡΕΜΒΟΛΗ('ΒΒΒΒLAAAAAHHH ','ΑHHAAAAAHHH',100)) ΤΟΤΕ
ΓΡΑΨΕ 'ΕΙΣΑΓΩΓΗ ΑΛΛΗΣ ΜΙΑΣ ΓΡΑΜΜΗΣ '
ΤΕΛΟΣ_ΑΝ
ΚΑΛΕΣΕ ΚΛΕΙΣΙΜΟ(Μ)
ΓΡΑΨΕ 'ΣΥΝΟΛΙΚΑ ΑΝΟΙΚΤΑ ΑΡΧΕΙΑ:', ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
ΓΡΑΨΕ 'ΕΠΟΜΕΝΟ ΔΙΑΘΕΣΙΜΟ ΝΟΥΜΕΡΟ:', ΔΙΑΘΕΣΙΜΟ
ΚΑΤΑΛΟΓΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΝΑΙ(ΕΜΦΑΝΙΣΗ) :ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΕΜΦΑΝΙΣΗ, ΝΝ
ΛΟΓΙΚΕΣ: ΟΚ
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ΕΜΦΑΝΙΣΗ,'(Ν/Ο)'
ΔΙΑΒΑΣΕ ΝΝ
ΟΚ <-- ΨΕΥΔΗΣ
ΑΝ (ΝΝ='N') Ή (ΝΝ='Ν') ΤΟΤΕ
ΝΑΙ <-- ΑΛΗΘΗΣ
ΟΚ <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ_ΑΝ (ΝΝ='O') Ή (ΝΝ='Ο') ΤΟΤΕ
ΝΑΙ <-- ΨΕΥΔΗΣ
ΟΚ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΟΚ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!Συναρτήσεις βασικές
ΣΥΝΑΡΤΗΣΗ ΜΕΡΟΣ(Χ,Ι,Λ): ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ, Ψ
ΑΚΕΡΑΙΕΣ: Ι,Λ
ΑΡΧΗ
Ψ <-- ''
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)>=Ι ΤΟΤΕ
Λ <-- Ι+Λ-1
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)<Λ ΤΟΤΕ
Λ <-- ΜΗΚΟΣ_ΧΑΡ(Χ)
ΤΕΛΟΣ_ΑΝ
ΓΙΑ Ι ΑΠΟ Ι ΜΕΧΡΙ Λ
Ψ <-- Ψ+Χ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΡΟΣ <-- Ψ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
! ΑΡΙΘΜΟΣ ΣΕ ΔΥΟ ΧΑΡΑΚΤΗΡΕΣ (2 ΒΥΤΕ)
ΣΥΝΑΡΤΗΣΗ ΛΕΞΗ(Α):ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α
ΑΡΧΗ
! κατα INTEL (msb πρώτο - lsb δεύτερο)
ΛΕΞΗ <-- ΧΑΡ(Α DIV 256)+ΧΑΡ(Α MOD 256)
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
! ΛΕΞΗ ΜΗΚΟΥΣ 2 ΧΑΡΑΚΤΗΡΩΝ ΣΕ ΑΡΙΘΜΟ
ΣΥΝΑΡΤΗΣΗ ΑΚ_ΛΕΞΗ(Χ):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ
ΑΡΧΗ
! κατα INTEL (msb πρώτο - lsb δεύτερο)
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)=2 ΤΟΤΕ
ΑΚ_ΛΕΞΗ <-- ΣΕΙΡΑ_ΧΑΡ(Χ[1])*256+ΣΕΙΡΑ_ΧΑΡ(Χ[2])
ΑΛΛΙΩΣ
ΑΚ_ΛΕΞΗ <-- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΠΑΡΕΜΒΟΛΗ(Χ,Ψ,Ι):ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ, ΑΧ, Ψ
ΑΚΕΡΑΙΕΣ: Ι, Κ
ΑΡΧΗ
ΑΝ Ψ='' ΤΟΤΕ
Ψ <-- ' '
ΤΕΛΟΣ_ΑΝ
ΑΝ Χ='' ΤΟΤΕ
Χ <-- ' '
ΤΕΛΟΣ_ΑΝ
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)< (Ι+ΜΗΚΟΣ_ΧΑΡ(Ψ)+1) ΤΟΤΕ
ΓΙΑ Κ ΑΠΟ ΜΗΚΟΣ_ΧΑΡ(Χ) ΜΕΧΡΙ Ι+ΜΗΚΟΣ_ΧΑΡ(Ψ)-2
Χ <-- Χ+' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΧ <-- Χ
ΓΙΑ Κ ΑΠΟ Ι ΜΕΧΡΙ ΜΗΚΟΣ_ΧΑΡ(ΑΧ)
ΑΝ (Κ-Ι)<ΜΗΚΟΣ_ΧΑΡ(Ψ) ΤΟΤΕ
Χ[Κ] <-- Ψ[Κ-Ι+1]
ΑΛΛΙΩΣ
Χ[Κ] <-- ΑΧ[Κ]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΠΑΡΕΜΒΟΛΗ <-- Χ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΦΟΡΜΑΡΙΣΜΑ_ΠΙΝΑΚΑ_ΑΡΧΕΙΩΝ(Ι):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι, Κ
ΑΡΧΗ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 129-16 ΜΕ ΒΗΜΑ 16
ΔΙΣΚΟΣ[Ι] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ι],ΧΑΡ(0),Κ)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΦΟΡΜΑΡΙΣΜΑ_ΠΙΝΑΚΑ_ΑΡΧΕΙΩΝ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΦΟΡΜΑΡΙΣΜΑ(ΟΝΟΜΑ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΧΑΡΑΚΤΗΡΑΣ: ΟΝΟΜΑ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΑΡΙΘΜΟΣ_ΦΟΡΤΩΜΑΤΩΝ_ΔΙΣΚΟΥ
ΔΙΣΚΟΣ[Ι] <-- ΠΑΡΕΜΒΟΛΗ('',ΛΕΞΗ((Ι+1) MOD 100),129)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΕΓΙΝΕ ΦΟΡΜΑΡΙΣΜΑ ΤΟΥ ΔΙΣΚΟΥ ΜΕ ΟΝΟΜΑ:', ΟΝΟΜΑ
ΑΝ ΦΟΡΜΑΡΙΣΜΑ_ΠΙΝΑΚΑ_ΑΡΧΕΙΩΝ(1) ΤΟΤΕ
! ΤΟ ΠΡΩΤΟ ΦΟΡΤΩΜΑ ΤΟΝ ΠΙΝΑΚΑ ΑΡΧΕΙΩΝ, ΕΤΣΙ ΓΙΑ ΚΑΘΕ 16 ΧΑΡΑΚΤΗΡΕΣ ΚΑΙ ΜΙΑ ΔΟΜΗ
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΟΝΟΜΑ+ΧΑΡ(0),1)
! ΠΡΩΤΟ ΚΕΝΟ ΦΟΡΤΩΜΑ
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(2),13)
! ΚΕΝΑ ΦΟΡΤΩΜΑΤΑ
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(100-1),15)
! ΠΡΩΤΟ ΑΡΧΕΙΟ (ΜΗΔΕΝΙΚΟ-ΚΕΝΟ ΟΝΟΜΑ-ΒΑΖΟΥΜΕ ΧΑΡΑΚΤΗΡΑ 0)
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΧΑΡ(0),17)
! ΕΠΟΜΕΝΟΣ ΦΟΡΤΩΜΑ ΓΙΑ ΔΟΜΗ ΑΡΧΕΙΩΝ (ΠΡΟΣ ΤΟ ΠΑΡΟΝ 0 - ΔΕΝ ΥΠΑΡΧΕΙ)
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(0),129)
! ΠΡΟΣΕΞΤΕ ΤΑ ΝΟΥΜΕΡΑ 129, 1, 13, 15, 17
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΑΝΑΚΤΗΣΗ_ΧΑΡ(ΦΟΡΤΩΜΑ, ΘΕΣΗ, ΣΗΜΕΙΟ_ΤΕΛΟΥΣ):ΧΑΡΑΚΤΗΡΕΣ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΦΟΡΤΩΜΑ, ΘΕΣΗ, ΣΗΜΕΙΟ_ΤΕΛΟΥΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ, Σ_Τ
ΑΡΧΗ
Χ <-- ''
Σ_Τ <-- ΧΑΡ(ΣΗΜΕΙΟ_ΤΕΛΟΥΣ)
ΟΣΟ ΦΟΡΤΩΜΑ<>0 ΕΠΑΝΑΛΑΒΕ
ΟΣΟ (ΘΕΣΗ<129) ΚΑΙ (ΦΟΡΤΩΜΑ<>0) ΕΠΑΝΑΛΑΒΕ
ΑΝ ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ, ΘΕΣΗ]<>Σ_Τ ΤΟΤΕ
Χ <-- Χ+ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ, ΘΕΣΗ]
ΑΛΛΙΩΣ
ΦΟΡΤΩΜΑ <-- 0
ΤΕΛΟΣ_ΑΝ
ΘΕΣΗ <-- ΘΕΣΗ+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ ΘΕΣΗ=129 ΤΟΤΕ
ΘΕΣΗ <-- 1
!ΦΟΡΤΩΜΑ<<ΣΥΝΔΕΣΗ
ΦΟΡΤΩΜΑ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ],129,2))
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝΑΚΤΗΣΗ_ΧΑΡ <-- Χ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΚΑΤΑΛΟΓΟΣ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Α, Β
ΑΚΕΡΑΙΕΣ: Ι, Λ, ΦΟΡΤΩΜΑ, ΜΕΓΕΘΟΣ, ΑΡΧ
ΑΡΧΗ
ΓΡΑΨΕ 'ΚΑΤΑΛΟΓΟΣ'
! ΦΟΡΤΩΜΑ 0, ΘΕΣΗ 1, ΣΗΜΕΙΟ ΤΕΛΟΥΣ 0
ΦΟΡΤΩΜΑ <-- 1
ΑΡΧ <-- 0
Α <-- ΑΝΑΚΤΗΣΗ_ΧΑΡ(ΦΟΡΤΩΜΑ,1,0)
ΓΡΑΨΕ 'ΔΙΣΚΟΣ:', Α
ΓΡΑΨΕ 'ΚΕΝΟΣ ΧΩΡΟΣ:',ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ],15,2))*128, ' Χαρακτήρες'
Λ <-- 17
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Β <-- ''
ΑΝ Λ>127 ΤΟΤΕ
!ΦΟΡΤΩΜΑ<<ΣΥΝΔΕΣΗ
ΦΟΡΤΩΜΑ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ],129,2))
Λ <-- 1
ΤΕΛΟΣ_ΑΝ
ΑΝ ΦΟΡΤΩΜΑ<>0 ΤΟΤΕ
Β <-- ΑΝΑΚΤΗΣΗ_ΧΑΡ(ΦΟΡΤΩΜΑ,Λ,0)
ΑΝ ΟΧΙ (ΜΗΚΟΣ_ΧΑΡ(Β)=0) ΤΟΤΕ
ΜΕΓΕΘΟΣ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΦΟΡΤΩΜΑ],Λ+14,2))
ΓΡΑΨΕ Β,ΜΕΓΕΘΟΣ:4
ΑΡΧ <-- ΑΡΧ +1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
Λ <-- Λ+16
ΜΕΧΡΙΣ_ΟΤΟΥ ΜΗΚΟΣ_ΧΑΡ(Β)=0
ΓΡΑΨΕ 'ΑΡΧΕΙΑ:',ΑΡΧ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΚΕΝΟ_ΦΟΡΤΩΜΑ:ΛΟΓΙΚΗ
ΑΡΧΗ
ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],13,2))
ΚΕΝΟ_ΦΟΡΤΩΜΑ <-- ΑΛΗΘΗΣ
ΑΝ ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ=0 ΤΟΤΕ
ΚΕΝΟ_ΦΟΡΤΩΜΑ <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
ΓΡΑΨΕ 'ΕΓΙΝΕ ΖΗΤΗΣΗ ΦΟΡΤΩΜΑΤΟΣ'
ΑΝ ΚΕΝΟ_ΦΟΡΤΩΜΑ ΤΟΤΕ
Ν <-- ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ
ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Ν],129,2))
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1], ΛΕΞΗ(ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ),13)
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],15,2))-1),15)
ΔΙΣΚΟΣ[Ν] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ν],ΛΕΞΗ(0),129)
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΠΟΔΟΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
! ΣΥΝΔΕΣΗ ΣΤΗΝ ΛΙΣΤΑ
ΔΙΣΚΟΣ[Ν] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ν],ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],13,2),129)
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(Ν),13)
ΔΙΣΚΟΣ[1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[1],ΛΕΞΗ(ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],15,2))+1),15)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΒΡΕΣ_ΑΡΧ(Α, Φ, Θ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Φ,Θ, Κ, ΕΠΟΜΕΝΟ, ΑΡΧ_Θ, ΜΜ
ΛΟΓΙΚΕΣ: ΟΚ
ΧΑΡΑΚΤΗΡΕΣ: Α, ΕΥΡ
ΑΡΧΗ
ΑΡΧ_Θ <-- 17
ΕΥΡ <-- Α+ΧΑΡ(0)
ΜΜ <-- ΜΗΚΟΣ_ΧΑΡ(ΕΥΡ)
ΟΚ <-- ΨΕΥΔΗΣ
ΕΠΟΜΕΝΟ <-- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Θ <-- ΑΡΧ_Θ
ΑΡΧ_Θ <-- 1
Φ <-- ΕΠΟΜΕΝΟ
ΕΠΟΜΕΝΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ],129,2))
ΓΙΑ Κ ΑΠΟ Θ ΜΕΧΡΙ 129-16 ΜΕ ΒΗΜΑ 16
ΑΝ ΟΧΙ ΟΚ ΤΟΤΕ
ΑΝ ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ],Κ,ΜΜ)=ΕΥΡ ΤΟΤΕ
ΟΚ <-- ΑΛΗΘΗΣ
Θ <-- Κ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ ΟΚ Ή (ΕΠΟΜΕΝΟ=0)
ΑΝ ΟΧΙ ΟΚ ΤΟΤΕ
Φ <-- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ:ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι, Κ
ΑΡΧΗ
Κ <-- 0
ΔΙΑΘΕΣΙΜΟ <-- 0
ΓΙΑ Ι ΑΠΟ ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
ΑΝ ΤΥΠΟΣ_ΧΡΗΣΗΣ[Ι]=ΑΝΕΝΕΡΓΟ ΤΟΤΕ
Κ <-- Κ+1
ΔΙΑΘΕΣΙΜΟ <-- Ι
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ <-- ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ-Κ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ(Α):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Φ1, Θ1, Μ
ΧΑΡΑΚΤΗΡΕΣ: ΔΟΚΙΜΗ, Α
ΑΡΧΗ
ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ <-- ΨΕΥΔΗΣ
ΔΟΚΙΜΗ <-- ''
ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ(ΔΟΚΙΜΗ,Φ1,Θ1)
ΑΝ Φ1>0 ΤΟΤΕ
ΚΑΛΕΣΕ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Μ)
ΑΝ Μ>0 ΤΟΤΕ
ΔΙΣΚΟΣ[Φ1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Φ1],Α+ΧΑΡ(0),Θ1)
ΔΙΣΚΟΣ[Φ1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Φ1],ΛΕΞΗ(Μ),Θ1+12)
ΔΙΣΚΟΣ[Φ1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Φ1],ΛΕΞΗ(0),Θ1+14)
ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΒΡΕΣ_ΑΡΧ_ΑΝΟΙΚΤΟ(Α_ΑΡΧ, Φ,Θ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Φ,Θ, Κ, ΕΠΟΜΕΝΟ, ΑΡΧ_Θ, Α_ΑΡΧ, ΕΥΡ
ΛΟΓΙΚΕΣ: ΟΚ
ΑΡΧΗ
ΟΚ <-- ΨΕΥΔΗΣ
ΕΥΡ <-- ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[Α_ΑΡΧ]
ΑΡΧ_Θ <-- 17
ΕΠΟΜΕΝΟ <-- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Θ <-- ΑΡΧ_Θ
ΑΡΧ_Θ <-- 1
Φ <-- ΕΠΟΜΕΝΟ
ΕΠΟΜΕΝΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ],129,2))
ΓΙΑ Κ ΑΠΟ Θ ΜΕΧΡΙ 129-16 ΜΕ ΒΗΜΑ 16
ΑΝ ΟΧΙ ΟΚ ΤΟΤΕ
ΑΝ ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ],Κ+12,2))=ΕΥΡ ΤΟΤΕ
ΟΚ <-- ΑΛΗΘΗΣ
Θ <-- Κ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ ΟΚ Ή (ΕΠΟΜΕΝΟ=0)
ΑΝ ΟΧΙ ΟΚ ΤΟΤΕ
Θ <-- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΕΝΗΜ_ΜΗΚΟΣ(ΑΡΧ, ΠΡΟΣΘΕΤΟ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΑΡΧ, ΠΡΟΣΘΕΤΟ, ΑΛΛΟ, ΦΡΤ, ΘΣ
ΑΡΧΗ
ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ_ΑΝΟΙΚΤΟ(ΑΡΧ, ΦΡΤ, ΘΣ)
ΑΝ ΘΣ>0 ΤΟΤΕ
ΑΛΛΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΦΡΤ], ΘΣ+14,2))
ΓΡΑΨΕ 'ΠΑΛΙΟ ΜΗΚΟΣ ΑΡΧΕΙΟΥ:',ΑΛΛΟ
ΔΙΣΚΟΣ[ΦΡΤ] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[ΦΡΤ],ΛΕΞΗ(ΑΛΛΟ+ΠΡΟΣΘΕΤΟ),ΘΣ+14)
ΓΡΑΨΕ 'ΝΕΟ ΜΗΚΟΣ ΑΡΧΕΙΟΥ:',ΑΛΛΟ+ΠΡΟΣΘΕΤΟ
ΕΝΗΜ_ΜΗΚΟΣ <-- ΑΛΛΟ+ΠΡΟΣΘΕΤΟ
ΑΛΛΙΩΣ
ΕΝΗΜ_ΜΗΚΟΣ <-- -1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΑΦΟΡΑ(Α_ΑΡΧ, Π_ΦΟΡΤ, ΘΕΣ_Χ, ΚΑΤΙΤΙΣ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α_ΑΡΧ, Π_ΦΟΡΤ, ΘΕΣ_Χ, Τ_ΦΟΡΤ, ΟΥΡΑ11, ΟΥΡΑ12, ΟΥΡΑ21, ΟΥΡΑ22, ΝΕΟ_ΦΟΡΤ
ΧΑΡΑΚΤΗΡΕΣ: ΚΑΤΙΤΙΣ, ΠΡΩΤΟ_ΜΕΡΟΣ
ΑΡΧΗ
! ΓΡΑΨΕ 'ΜΕΤΑΦΟΡΑ ',Π_ΦΟΡΤ,' ', ΘΕΣ_Χ
Τ_ΦΟΡΤ <-- (ΔΡΟΜΕΑΣ[Α_ΑΡΧ] DIV 128)+1
ΑΝ Τ_ΦΟΡΤ<Π_ΦΟΡΤ ΤΟΤΕ
ΟΣΟ Τ_ΦΟΡΤ<Π_ΦΟΡΤ ΕΠΑΝΑΛΑΒΕ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ]
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],129,2))
ΑΝ ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]=0 ΤΟΤΕ
ΚΑΛΕΣΕ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(ΝΕΟ_ΦΟΡΤ)
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΑΡΕΜΒΟΛΗ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],ΛΕΞΗ(ΝΕΟ_ΦΟΡΤ),129)
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΝΕΟ_ΦΟΡΤ
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΠΑΡΕΜΒΟΛΗ('',ΛΕΞΗ(0),129)
ΑΛΛΙΩΣ
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]]
ΤΕΛΟΣ_ΑΝ
Τ_ΦΟΡΤ <-- Τ_ΦΟΡΤ+1
ΘΕΣ_Χ <-- 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ_ΑΝ Τ_ΦΟΡΤ>Π_ΦΟΡΤ ΤΟΤΕ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ]
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[Α_ΑΡΧ]
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]]
Τ_ΦΟΡΤ <-- 1
! ΣΥΝΕΧΙΖΟΥΜΕ ΟΠΩΣ ΠΡΙΝ!
ΟΣΟ Τ_ΦΟΡΤ<Π_ΦΟΡΤ ΕΠΑΝΑΛΑΒΕ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ]
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],129,2))
ΑΝ ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]=0 ΤΟΤΕ
ΚΑΛΕΣΕ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(ΝΕΟ_ΦΟΡΤ)
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΑΡΕΜΒΟΛΗ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],ΛΕΞΗ(ΝΕΟ_ΦΟΡΤ),129)
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΝΕΟ_ΦΟΡΤ
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΠΑΡΕΜΒΟΛΗ('',ΛΕΞΗ(0),129)
ΑΛΛΙΩΣ
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]]
ΤΕΛΟΣ_ΑΝ
Τ_ΦΟΡΤ <-- Τ_ΦΟΡΤ+1
ΘΕΣ_Χ <-- 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΟΥΡΑ22 <-- ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]
ΟΥΡΑ12 <-- ΘΕΣ_Χ
! ΓΡΑΨΕ 'ΟΥΡΑ22=',ΟΥΡΑ22,' ΟΥΡΑ12=',ΟΥΡΑ12
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΟΥΡΑ21 <-- ΟΥΡΑ22
ΟΥΡΑ11 <-- ΟΥΡΑ12
! ΓΡΑΨΕ '1) ΟΥΡΑ21=',ΟΥΡΑ21,' ΟΥΡΑ11=',ΟΥΡΑ11
ΑΝ ΟΥΡΑ21<>ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] ΤΟΤΕ
ΑΝ ΟΥΡΑ21=0 ΤΟΤΕ
ΚΑΛΕΣΕ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(ΝΕΟ_ΦΟΡΤ)
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΑΡΕΜΒΟΛΗ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],ΛΕΞΗ(ΝΕΟ_ΦΟΡΤ),129)
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΝΕΟ_ΦΟΡΤ
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΠΑΡΕΜΒΟΛΗ('',ΛΕΞΗ(0),129)
ΑΛΛΙΩΣ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ]
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],129,2))
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[Α_ΑΡΧ]]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΠΡΩΤΟ_ΜΕΡΟΣ <-- ΜΕΡΟΣ(ΚΑΤΙΤΙΣ, 1,128-ΟΥΡΑ11+1)
ΚΑΤΙΤΙΣ <-- ΜΕΡΟΣ(ΚΑΤΙΤΙΣ, ΜΗΚΟΣ_ΧΑΡ(ΠΡΩΤΟ_ΜΕΡΟΣ)+1,ΜΗΚΟΣ_ΧΑΡ(ΚΑΤΙΤΙΣ)-ΜΗΚΟΣ_ΧΑΡ(ΠΡΩΤΟ_ΜΕΡΟΣ))
ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ] <-- ΠΑΡΕΜΒΟΛΗ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],ΠΡΩΤΟ_ΜΕΡΟΣ,ΟΥΡΑ11)
ΟΥΡΑ22 <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΠΡΟΣΩΡΙΝΟ[Α_ΑΡΧ],129,2))
ΟΥΡΑ12 <-- 1
ΜΕΧΡΙΣ_ΟΤΟΥ ΚΑΤΙΤΙΣ=''
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΑΝΟΙΞΕ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ, ΧΡΗΣΗ):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΧΡΗΣΗ, Φ1, Θ1, ΑΡΧΙΚΟ, Ι, Κ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ_ΑΡΧΕΙΟΥ
ΛΟΓΙΚΕΣ: ΟΚ
ΑΡΧΗ
ΑΝ ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ<ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ ΤΟΤΕ
ΑΝΟΙΞΕ <-- 0
ΟΚ <-- ΨΕΥΔΗΣ
ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ,Φ1,Θ1)
ΑΝ Φ1>0 ΤΟΤΕ
ΟΚ <-- ΑΛΗΘΗΣ
ΑΝ ΧΡΗΣΗ<>ΕΙΣΑΓΩΓΗ ΤΟΤΕ
ΑΡΧΙΚΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+12,2))
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
ΑΝ (ΑΡΧΙΚΟ=ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[Ι]) ΚΑΙ (ΤΥΠΟΣ_ΧΡΗΣΗΣ[Ι]<>ΕΙΣΑΓΩΓΗ) ΤΟΤΕ
ΟΚ <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΟΚ <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ΑΝ ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ) ΤΟΤΕ
ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ,Φ1,Θ1)
ΑΡΧΙΚΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+12,2))
ΟΚ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΑΝ ΟΚ ΤΟΤΕ
ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΡΧΙΚΟ
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΡΧΙΚΟ
ΑΝ ΧΡΗΣΗ=ΣΥΜΠΛΗΡΩΣΗ ΤΟΤΕ
ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+14,2))+1
Κ <-- ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] DIV 128
ΟΣΟ K>1 ΕΠΑΝΑΛΑΒΕ
ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ]],129,2))
Κ <-- Κ-1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ_ΑΝ ΧΡΗΣΗ=ΕΞΑΓΩΓΗ ΤΟΤΕ
ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- 1
ΔΙΣΚΟΣ[Φ1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Φ1],ΛΕΞΗ(0),Θ1+14)
Ι <-- ΑΡΧΙΚΟ
Κ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Ι],129,2))
ΔΙΣΚΟΣ[Ι] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ι],ΛΕΞΗ(0),129)
Ι <-- Κ
ΟΣΟ Ι>0 ΕΠΑΝΑΛΑΒΕ
Κ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Ι],129,2))
ΚΑΛΕΣΕ ΑΠΟΔΟΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Ι)
Ι <-- Κ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- 1
ΤΕΛΟΣ_ΑΝ
ΠΡΟΣΩΡΙΝΟ[ΔΙΑΘΕΣΙΜΟ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ]]
ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΧΡΗΣΗ
ΑΝΟΙΞΕ <-- ΔΙΑΘΕΣΙΜΟ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΚΛΕΙΣΙΜΟ(ΑΡΧ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΑΡΧ
ΑΡΧΗ
ΑΝ (ΑΡΧ>0) ΚΑΙ (ΑΡΧ<5) ΤΟΤΕ
ΑΝ ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΑΡΧ]<>ΑΝΕΝΕΡΓΟ ΤΟΤΕ
ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΑΡΧ] <-- ΑΝΕΝΕΡΓΟ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[ΑΡΧ]
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ_ΑΝ ΑΡΧ=0 ΤΟΤΕ
!ΚΛΕΙΣΕ ΟΛΑ ΤΑ ΑΡΧΕΙΑ
ΓΙΑ ΑΡΧ ΑΠΟ 1 ΜΕΧΡΙ ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
ΑΝ ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΑΡΧ]<>ΑΝΕΝΕΡΓΟ ΤΟΤΕ
ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΑΡΧ] <-- ΑΝΕΝΕΡΓΟ
ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΑΡΧ]] <-- ΠΡΟΣΩΡΙΝΟ[ΑΡΧ]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΡΧ <-- -1
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΘΕΣΕ(ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ, ΜΙΑ_ΓΡΑΜΜΗ):ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ, ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ, ΘΕΣΗ_ΣΕ_ΑΥΤΟ, ΑΛΛΟ
ΧΑΡΑΚΤΗΡΕΣ: ΜΙΑ_ΓΡΑΜΜΗ
ΑΡΧΗ
ΘΕΣΕ <-- ΨΕΥΔΗΣ
ΕΠΙΛΕΞΕ ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ]
ΠΕΡΙΠΤΩΣΗ ΕΞΑΓΩΓΗ, ΣΥΜΠΛΗΡΩΣΗ
ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ <-- (ΔΡΟΜΕΑΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ] DIV 128)+1
ΜΙΑ_ΓΡΑΜΜΗ <-- ΜΙΑ_ΓΡΑΜΜΗ+ΧΑΡ(13)
ΘΕΣΗ_ΣΕ_ΑΥΤΟ <-- ((ΔΡΟΜΕΑΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ]-1) MOD 128)+1
ΑΛΛΟ <-- ΜΗΚΟΣ_ΧΑΡ(ΜΙΑ_ΓΡΑΜΜΗ)
ΚΑΛΕΣΕ ΜΕΤΑΦΟΡΑ(ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ, ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ, ΘΕΣΗ_ΣΕ_ΑΥΤΟ, ΜΙΑ_ΓΡΑΜΜΗ)
ΑΛΛΟ <-- ΕΝΗΜ_ΜΗΚΟΣ(ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ,ΑΛΛΟ )
ΔΡΟΜΕΑΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ] <-- ΑΛΛΟ+1
ΘΕΣΕ <-- ΑΛΗΘΗΣ
ΠΕΡΙΠΤΩΣΗ ΤΥΧΑΙΑ
ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ <-- (ΔΡΟΜΕΑΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ] DIV 4)+1
ΘΕΣΗ_ΣΕ_ΑΥΤΟ <-- (((ΔΡΟΜΕΑΣ[ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ]-1) MOD 4) * 32)+1
ΜΙΑ_ΓΡΑΜΜΗ <-- ΜΕΡΟΣ(ΠΑΡΕΜΒΟΛΗ(ΜΙΑ_ΓΡΑΜΜΗ,'*',33),1,32)
ΚΑΛΕΣΕ ΜΕΤΑΦΟΡΑ(ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ, ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ, ΘΕΣΗ_ΣΕ_ΑΥΤΟ, ΜΙΑ_ΓΡΑΜΜΗ)
ΘΕΣΕ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ