ΠΡΟΓΡΑΜΜΑ ΛΕΙΤΟΥΡΓΙΚΟ_ΑΡΧΕΙΩΝ
ΣΤΑΘΕΡΕΣ
ΑΝΕΝΕΡΓΟ=0
ΕΞΑΓΩΓΗ=1
ΕΙΣΑΓΩΓΗ=2
ΣΥΜΠΛΗΡΩΣΗ=3
ΤΥΧΑΙΑ=4
ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ=4
ΜΕΓΕΘΟΣ_ΦΟΡΤΩΜΑΤΟΣ=130
ΑΡΙΘΜΟΣ_ΦΟΡΤΩΜΑΤΩΝ_ΔΙΣΚΟΥ=100
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΔΟΚΙΜΗ
ΧΑΡΑΚΤΗΡΕΣ: ΔΙΣΚΟΣ[ΑΡΙΘΜΟΣ_ΦΟΡΤΩΜΑΤΩΝ_ΔΙΣΚΟΥ]
ΧΑΡΑΚΤΗΡΕΣ: ΠΡΟΣΩΡΙΝΟ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΤΥΠΙΚΟ_ΟΝΟΜΑ
ΑΚΕΡΑΙΕΣ: ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΔΙΑΘΕΣΙΜΟ, ΕΠΟΜΕΝΟ_ΦΟΡΤΩΜΑ
ΑΚΕΡΑΙΕΣ: ΔΡΟΜΕΑΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ], ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ],
ΑΚΕΡΑΙΕΣ: ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ]
ΑΚΕΡΑΙΕΣ: ΔΟΚ[10], Μ, Φ1, Θ1
ΑΡΧΗ
ΑΝ ΝΑΙ('ΘΕΛΕΙΣ ΝΑ ΚΑΝΕΙΣ ΤΗΝ ΔΟΚΙΜΗ ΕΝΑ') ΤΟΤΕ
ΚΑΛΕΣΕ ΔΟΚ_ΔΥΟ
ΤΕΛΟΣ_ΑΝ
ΑΝ ΝΑΙ('ΘΕΛΕΙΣ ΝΑ ΚΑΝΕΙΣ ΤΗΝ ΔΟΚΙΜΗ ΔΥΟ') ΤΟΤΕ
ΚΑΛΕΣΕ ΔΟΚ_ΕΝΑ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΝΑΙ(ΕΜΦΑΝΙΣΗ) :ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΕΜΦΑΝΙΣΗ, ΝΝ
ΛΟΓΙΚΕΣ: ΟΚ
ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ΕΜΦΑΝΙΣΗ,'(Ν/Ο)'
ΔΙΑΒΑΣΕ ΝΝ
ΟΚ <-- ΨΕΥΔΗΣ
ΑΝ (ΝΝ='N') Ή (ΝΝ='Ν') ΤΟΤΕ
ΝΑΙ <-- ΑΛΗΘΗΣ
ΟΚ <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ_ΑΝ (ΝΝ='O') Ή (ΝΝ='Ο') ΤΟΤΕ
ΝΑΙ <-- ΨΕΥΔΗΣ
ΟΚ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΟΚ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!Συναρτήσεις βασικές
ΣΥΝΑΡΤΗΣΗ ΜΕΡΟΣ(Χ,Ι,Λ): ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ, Ψ
ΑΚΕΡΑΙΕΣ: Ι,Λ
ΑΡΧΗ
Ψ <-- ''
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)>=Ι ΤΟΤΕ
Λ <-- Ι+Λ-1
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)<Λ ΤΟΤΕ
Λ <-- ΜΗΚΟΣ_ΧΑΡ(Χ)
ΤΕΛΟΣ_ΑΝ
ΓΙΑ Ι ΑΠΟ Ι ΜΕΧΡΙ Λ
Ψ <-- Ψ+Χ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΜΕΡΟΣ <-- Ψ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
! ΑΡΙΘΜΟΣ ΣΕ ΔΥΟ ΧΑΡΑΚΤΗΡΕΣ (2 ΒΥΤΕ)
ΣΥΝΑΡΤΗΣΗ ΛΕΞΗ(Α):ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α
ΑΡΧΗ
! κατα INTEL (msb πρώτο - lsb δεύτερο)
ΛΕΞΗ <-- ΧΑΡ(Α DIV 256)+ΧΑΡ(Α MOD 256)
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
! ΛΕΞΗ ΜΗΚΟΥΣ 2 ΧΑΡΑΚΤΗΡΩΝ ΣΕ ΑΡΙΘΜΟ
ΣΥΝΑΡΤΗΣΗ ΑΚ_ΛΕΞΗ(Χ):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ
ΑΡΧΗ
! κατα INTEL (msb πρώτο - lsb δεύτερο)
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)=2 ΤΟΤΕ
ΑΚ_ΛΕΞΗ <-- ΣΕΙΡΑ_ΧΑΡ(Χ[1])*256+ΣΕΙΡΑ_ΧΑΡ(Χ[2])
ΑΛΛΙΩΣ
ΑΚ_ΛΕΞΗ <-- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ ΠΑΡΕΜΒΟΛΗ(Χ,Ψ,Ι):ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Χ, ΑΧ, Ψ
ΑΚΕΡΑΙΕΣ: Ι, Κ
ΑΡΧΗ
ΑΝ Χ='' ΤΟΤΕ
Χ <-- ' '
ΤΕΛΟΣ_ΑΝ
ΑΝ ΜΗΚΟΣ_ΧΑΡ(Χ)< (Ι+ΜΗΚΟΣ_ΧΑΡ(Ψ)+1) ΤΟΤΕ
ΓΙΑ Κ ΑΠΟ ΜΗΚΟΣ_ΧΑΡ(Χ) ΜΕΧΡΙ Ι+ΜΗΚΟΣ_ΧΑΡ(Ψ)-1
Χ <-- Χ+' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΑΧ <-- Χ
ΓΙΑ Κ ΑΠΟ Ι ΜΕΧΡΙ ΜΗΚΟΣ_ΧΑΡ(ΑΧ)
ΑΝ (Κ-Ι)<ΜΗΚΟΣ_ΧΑΡ(Ψ) ΤΟΤΕ
Χ[Κ] <-- Ψ[Κ-Ι+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))
!ΓΡΑΨΕ ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],15,2))
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΠΟΔΟΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
! ΣΥΝΔΕΣΗ ΣΤΗΝ ΛΙΣΤΑ
ΔΙΣΚΟΣ[Ν] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ν],ΜΕΡΟΣ(ΔΙΣΚΟΣ[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)
ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΔΙΑΔΙΚΑΣΙΑ ΔΟΚ_ΕΝΑ
ΑΡΧΗ
ΤΥΠΙΚΟ_ΟΝΟΜΑ <-- 'ΒΗΤΑ'
ΚΑΛΕΣΕ ΦΟΡΜΑΡΙΣΜΑ(ΤΥΠΙΚΟ_ΟΝΟΜΑ)
ΚΑΛΕΣΕ ΚΑΤΑΛΟΓΟΣ
ΓΡΑΨΕ 'ΑΝΟΙΚΤΑ ΑΡΧΕΙΑ:', ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
ΓΡΑΨΕ 'ΠΡΩΤΟ ΔΙΑΘΕΣΙΜΟ:No ', ΔΙΑΘΕΣΙΜΟ
ΓΡΑΨΕ 'ΘΑ ΔΕΣΜΕΥΣΩ 10 ΤΜΗΜΑΤΑ'
ΓΙΑ Μ ΑΠΟ 1 ΜΕΧΡΙ 10
ΚΑΛΕΣΕ ΖΗΤΗΣΗ_ΦΟΡΤΩΜΑΤΟΣ(ΔΟΚ[Μ])
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΚΑΤΑΛΟΓΟΣ
ΓΡΑΨΕ 'ΘΑ ΤΑ ΑΠΟΔΕΣΜΕΥΣΩ'
ΓΙΑ Μ ΑΠΟ 1 ΜΕΧΡΙ 10
ΚΑΛΕΣΕ ΑΠΟΔΟΣΗ_ΦΟΡΤΩΜΑΤΟΣ(ΔΟΚ[Μ])
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΚΑΤΑΛΟΓΟΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΔΟΚ_ΔΥΟ
ΑΡΧΗ
ΤΥΠΙΚΟ_ΟΝΟΜΑ <-- 'ΑΛΦΑ'
ΚΑΛΕΣΕ ΦΟΡΜΑΡΙΣΜΑ(ΤΥΠΙΚΟ_ΟΝΟΜΑ)
ΚΑΛΕΣΕ ΚΑΤΑΛΟΓΟΣ
ΑΝ ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ('GEORGE') ΤΟΤΕ
ΑΝ ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ('KARRAS') ΤΟΤΕ
ΓΡΑΨΕ 'ΕΦΤΙΑΞΑ ΔΥΟ ΑΡΧΕΙΑ'
ΓΡΑΨΕ '-------------------------------'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΚΑΤΑΛΟΓΟΣ
ΓΡΑΨΕ 'ΕΛΕΥΘΕΡΑ ΤΜΗΜΑΤΑ ΣΤΟΝ ΔΙΣΚΟ:',ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[1],15,2))
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ