Τώρα είναι Πέμ 28 Μαρ 2024 10:06 pm

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




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Τρί 13 Μάιος 2003 02:44 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 01 Μάιος 2003 10:25 pm
Δημοσιεύσεις: 38
Τοποθεσία: Καλλιθέα Αττικής
Στέλνω ολόκληρο το προσχέδιο Β. Σε αυτό θα δούμε την καταχώρηση αλφαριθμητικών σε σειριακό αρχείο (κάθε εισαγωγή θα γίνει στο τέλος του αρχείου). Θα δούμε πως **απλώνει** ένα αρχείο.
Θα ακολουθήσει και 'άλλο...ΣΥΝΤΟΜΑ!

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΛΕΙΤΟΥΡΓΙΚΟ_ΑΡΧΕΙΩΝ
ΣΤΑΘΕΡΕΣ
  ΑΝΕΝΕΡΓΟ=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)
      ΚΑΛΕΣΕ ΜΕΤΑΦΟΡΑ(ΑΝΟΙΚΤΟ_ΑΡΧΕΙΟ, ΠΡΩΤΟ_ΦΟΡΤΩΜΑ_ΑΡΧΕΙΟΥ, ΘΕΣΗ_ΣΕ_ΑΥΤΟ, ΜΙΑ_ΓΡΑΜΜΗ)
      ΘΕΣΕ <-- ΑΛΗΘΗΣ
  ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

Παρατήρηση: Η συνάρτηση ΠΑΡΕΜΒΟΛΗ είχε ένα κρυφό BUG αντί -2 είχε ένα -1 (φτιάχτηκε στο Β ενώ στο ΠΡΟΣΧΕΔΙΟ Α το έχω αφήσει με το λάθος!)

_________________
Γλώσσα προγραμματισμού M2000


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

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


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

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


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

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