Τώρα είναι Παρ 19 Απρ 2024 07:48 pm

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




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

Εγγραφή: Πέμ 01 Μάιος 2003 10:25 pm
Δημοσιεύσεις: 38
Τοποθεσία: Καλλιθέα Αττικής
Δοκιμάστε τον παρακάτω κώδικα, χρησιμοποιώ τις ΜΗΚΟΣ_ΧΑΡ, ΧΑΡ, ΣΕΙΡΑ_ΧΑΡ
Θα βρείτε όμως πολλές ενδιαφέρουσες συναρτήσεις.
Η υλοποίηση δεν έχει τελειώσει ακόμα. Πάντα δουλεύουμε προοδευτικά με λογικότατα βήματα!
Πάρτε όποιες συναρτήσεις-διαδικασίες θέλετε **Ελεύθερα**

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

 

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


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Τετ 07 Μάιος 2003 05:41 pm 
Χωρίς σύνδεση
Διαχειριστής

Εγγραφή: Παρ 28 Φεβ 2003 06:10 pm
Δημοσιεύσεις: 84
Φίλε bugman περιμένω και ένα παράδειγμα που να μην προσομοιώνει σύστημα αρχείων, αλλά να χρησιμοποιεί τις εντολές διαχείρισης αρχείων της έκδοσης 4!


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Πέμ 08 Μάιος 2003 11:21 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 01 Μάιος 2003 10:25 pm
Δημοσιεύσεις: 38
Τοποθεσία: Καλλιθέα Αττικής
Παρακάτω είναι η συνάρτηση άνοιξε, όπου θέλει όνομα αρχείου 11 χαρακτήρες μέγιστο (δεν το ελέγχει - φτιάξτε το), καθός και νούμερο που δηλώνει την χρήση (κοιτάξτε στις σταθερές στην πρώτη διμοσίευση).
Προσοχή ΔΕΝ ΕΧΕΙ ελεγχθεί από όλες τις περιπτώσεις.
Αυτό θα γίνει όταν αρχίζουμε να μεταφέρουμε από και προς το αρχείο δεδομένα.

Syntax: [ Download ] [ Hide ]
..........

ΑΡΧΗ
  ΤΥΠΙΚΟ_ΟΝΟΜΑ <-- 'ΑΛΦΑ'
  ΚΑΛΕΣΕ ΦΟΡΜΑΡΙΣΜΑ(ΤΥΠΙΚΟ_ΟΝΟΜΑ)
  Μ <-- ΑΝΟΙΞΕ('ΑΛΦΑ.ΤΧΤ', ΕΙΣΑΓΩΓΗ)
  ΚΑΤΑΛΟΓΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
..........

ΣΥΝΑΡΤΗΣΗ ΑΝΟΙΞΕ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ, ΧΡΗΣΗ):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΧΡΗΣΗ,  Φ1, Θ1, ΑΡΧΙΚΟ, Ι, Κ
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ_ΑΡΧΕΙΟΥ
  ΛΟΓΙΚΕΣ: ΟΚ
ΑΡΧΗ
  ΑΝ ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ<ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ ΤΟΤΕ
! ΕΠΙΣΤΡΟΦΗ = 0 ΣΗΜΑΙΝΕΙ ΑΠΟΤΥΧΙΑ!
    ΑΝΟΙΞΕ <-- 0
    ΟΚ <-- ΨΕΥΔΗΣ
!ΜΗΠΩΣ ΕΧΟΥΜΕ ΑΝΟΙΞΕΙ ΑΠΟ ΠΡΙΝ ΤΟ ΑΡΧΕΙΟ;
!ΤΟ ΕΠΙΤΡΕΠΟΥΜΕ ΜΟΝΟ ΓΙΑ ΕΙΣΑΓΩΓΗ
!ΔΗΛΑΔΗ (ΝΑ ΕΧΟΥΜΕ ΔΥΟ Η ΤΡΕΙΣ ΦΟΡΕΣ ΤΟ ΙΔΙΟ ΑΡΧΕΙΟ ΑΝΟΙΚΤΟ)
    ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ,Φ1,Θ1)
    ΑΝ Φ1>0 ΤΟΤΕ
      ΟΚ <-- ΑΛΗΘΗΣ
      ΑΝ ΧΡΗΣΗ<>ΕΙΣΑΓΩΓΗ ΤΟΤΕ
  !ΘΑ ΔΟΥΜΕ ΠΟΙΟ ΕΙΝΑΙ ΤΟ ΑΡΧΙΚΟ ΦΟΡΤΩΜΑ ΤΟΥ ΑΡΧΕΙΟΥ ΑΥΤΟΥ
        ΑΡΧΙΚΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+12,2))
  !ΚΑΙ ΘΑ ΔΟΥΜΕ ΑΝ ΑΛΛΟ ΑΡΧΕΙΟ ΣΕ ΧΡΗΣΗ ΕΧΕΙ ΤΟ ΙΔΙΟ ΑΡΧΙΚΟ ΦΟΡΤΩΜΑ!
        ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΜΕΓΙΣΤΑ_ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
          ΑΝ (ΑΡΧΙΚΟ=ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[Ι]) ΚΑΙ (ΤΥΠΟΣ_ΧΡΗΣΗΣ[Ι]<>ΕΙΣΑΓΩΓΗ) ΤΟΤΕ
            ΟΚ <-- ΨΕΥΔΗΣ
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΛΛΙΩΣ
        ΟΚ <-- ΨΕΥΔΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ
  !ΣΙΓΟΥΡΑ ΔΕΝ ΥΠΑΡΧΕΙ ΑΛΛΟ ΟΜΟΙΟ ΑΝΟΙΚΤΟ
      ΑΝ ΦΤΙΑΧΤΗΚΕ_ΑΡΧΕΙΟ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ) ΤΟΤΕ
        ΚΑΛΕΣΕ ΒΡΕΣ_ΑΡΧ(ΟΝΟΜΑ_ΑΡΧΕΙΟΥ,Φ1,Θ1)
        ΑΡΧΙΚΟ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+12,2))
        ΟΚ <-- ΑΛΗΘΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ
    ΑΝ ΟΚ ΤΟΤΕ
  !**********ΟΚ************
  !ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΤΗΝ ΜΕΤΑΒΛΗΤΗ ΔΙΑΘΕΣΙΜΟ ΠΟΥ ΦΤΙΑΞΑΜΕ ΜΕ ΤΗΝ ΑΝΟΙΚΤΑ_ΑΡΧΕΙΑ
      ΑΡΧΙΚΟ_ΦΟΡΤΩΜΑ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΡΧΙΚΟ
      ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΡΧΙΚΟ
      ΑΝ ΧΡΗΣΗ=ΣΥΜΠΛΗΡΩΣΗ ΤΟΤΕ
    ! ΕΝΑ ΧΑΡΑΚΤΗΡΑ ΜΕΤΑ ΤΟ ΤΕΛΟΣ
        ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Φ1],Θ1+14,2))+1
    !ΜΗΠΩΣ ΔΡΟΜΕΑΣ > 128 ;
        Κ <-- ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] DIV 128
        ΟΣΟ K>1 ΕΠΑΝΑΛΑΒΕ
    ! ΕΠΟΜΕΝΟ ΦΟΡΩΜΑ ;
          ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ]],129,2))
          Κ <-- Κ-1
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

      ΑΛΛΙΩΣ_ΑΝ ΧΡΗΣΗ=ΕΞΑΓΩΓΗ ΤΟΤΕ
        ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- 1
    ! ΑΛΛΑ ΜΗΔΕΝΙΖΟΥΜΕ ΤΟ ΜΗΚΟΣ ΑΡΧΕΙΟΥ
        ΔΙΣΚΟΣ[Φ1] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Φ1],ΛΕΞΗ(0),Θ1+14)
    !ΚΑΙ ΦΥΣΙΚΑ ΔΕΝ ΞΕΧΝΑΜΕ ΚΑΙ ΤΑ ΣΥΝΔΕΔΕΜΕΝΑ ΦΟΡΤΩΜΑΤΑ
    !ΤΟ ΑΡΧΙΚΟ ΘΑ ΤΟ ΑΦΗΣΟΥΜΕ
        Ι <-- ΑΡΧΙΚΟ
        Κ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Ι],129,2))
        ΔΙΣΚΟΣ[Ι] <-- ΠΑΡΕΜΒΟΛΗ(ΔΙΣΚΟΣ[Ι],ΛΕΞΗ(0),129)
        Ι <-- Κ
    ! απο το δευτερο και μετα θα τα σβήσουμε
        ΟΣΟ Ι>0 ΕΠΑΝΑΛΑΒΕ
          Κ <-- ΑΚ_ΛΕΞΗ(ΜΕΡΟΣ(ΔΙΣΚΟΣ[Ι],129,2))
          ΚΑΛΕΣΕ ΑΠΟΔΟΣΗ_ΦΟΡΤΩΜΑΤΟΣ(Ι)
          Ι <-- Κ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

      ΑΛΛΙΩΣ
        ΔΡΟΜΕΑΣ[ΔΙΑΘΕΣΙΜΟ] <-- 1
      ΤΕΛΟΣ_ΑΝ
      ΠΡΟΣΩΡΙΝΟ[ΔΙΑΘΕΣΙΜΟ] <-- ΔΙΣΚΟΣ[ΕΙΚΟΝΑ_ΦΟΡΤΩΜΑΤΟΣ[ΔΙΑΘΕΣΙΜΟ]]
      ΤΥΠΟΣ_ΧΡΗΣΗΣ[ΔΙΑΘΕΣΙΜΟ] <-- ΧΡΗΣΗ
      ΑΝΟΙΞΕ <-- ΔΙΑΘΕΣΙΜΟ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

 

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


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

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


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

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


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

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