Ένα μικρό πρόγραμμα για σταυρόλεξο!
Φαίνεται η χρήση αλφαριθμητικών και ιδιαίτερα των συναρτήσεων:
Αρισ$(), Μεσ$(), Δεξι$()
Έκδοση 2.2
Οδηγίες:
Το πρόγραμμα χρησιμεύει για να φτιάξουμε και να "τρέξουμε" σταυρόλεξα!
Ο πίνακας Ερ$() μπορεί να μεγαλώσει για να πάρει όλες τις ερωτήσεις
Η ρουτίνα οριζ() βάζει λέξεις οριζόντια στο πίνακα Στ$(), με άνω αριστερό άκρο το 0,0
Οι δυο πρώτες παράμετροι είναι η θέση του πρώτου γράμματος (όπου θα εμφανίζεται ο αριθμός της ερώτησης). Ακολουθεί ο αριθμός της ερώτησης, η λέξη και η ερώτηση.
Το σταυρόλεξο λύνεται με την μετακίνηση ενός δρομέα και επιλογή του σωστού γράμματος. Όταν βρούμε όλα τα γράμματα ή πατήσουμε το 1 τότε έχουμε το ποσοστό επιτυχίας. Για ευκολία εμφανίζετε ο αριθμός των γραμμάτων που πρέπει να βρούμε (άρα ξέρουμε άμεσα αν έχουμε βρει το σωστό, αφού με το που το βρούμε μειώνεται ο αριθμός). Μπορούμε να αλλάξουμε γράμμα ή να διαγράψουμε γράμμα με delete. Με το 0 "χάνουμε" το μήκος κάθε λέξης. Με το 3 εμφανίζεται η λύση. Με το διάστημα εμφανίζεται/εξαφανίζεται ο αριθμός της ερώτησης. Στα κουτάκια μπορεί να εμφανίζεται και ο αριθμός και το γράμμα. Αν υπάρχει σε κάθετη λέξη ο αριθμός της τότε ο "αλγόριθμος" επιλέγει να γράψει τον αριθμό της οριζόντιας λέξης στο τέλος της λέξης.
η Διαμέσου (Gosub) είναι προαιρετική για τις ρουτίνες τύπου Ρουτίνα/Τέλος Ρουτίνας. Εδώ μπορεί να αφαιρεθεί. Είναι υποχρεωτική αν έχουμε πίνακα με ίδιο όνομα (και αυτός έχει παρενθέσεις) γιατί ο διερμηνευτής βρίσκει τον πίνακα πριν την ρουτίνα. Με την διαμέσου όμως έχουμε μια αναζήτηση (το Διαμέσου) και άμεσα καλεί την ρουτίνα. Η διαφορά είναι ελάχιστη.
Προστέθηκε η εντολή Φόρμα 40,20 για να φτιάξει την κονσόλα σωστά!
Καθαρό
Αδειασε
Φόρμα 40,20
Γενική π, δ$="ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
Γενική Εμφαν=Αληθής, ΕμφΝ, Γράμματα, Συνολικά
Γενική ΕμφΚ, χ_μετάθεση, υ_μετάθεση
π<=(Υ.Σημεία Δια Ύψος)*1.5
Κάνε ΜετΧ(Χ)=π*Χ
χ_μετάθεση<=(χ.σημεια-ΜετΧ(12))/2
υ_μετάθεση<=(υ.σημεια-ΜετΧ(10))/2
Τμήμα Κουτί {
Διάβασε Χ, Υ
Θέση Χ+χ_μετάθεση, Υ+υ_μετάθεση
Αν Ταύτιση("Α") Τότε {
Βήμα 30,30
Πέτα : Βάψε @ π-90,π-90,3,1
} Αλλιώς {
Βάψε @ π,π,4,1
Βήμα 0, π*0.15
Πένα 0 {
Αν Ταύτιση("Γ") Τότε Βάψε @ π,π*.6,5, Γράμμα$
}
}
}
Πίνακας Στ$(12,10), Ερ$(10)
Διαμέσου Οριζ(2,2,2,"ΗΛΙΟΣ","Τον λέγαν και Απόλλων")
Διαμέσου Καθ(2,1,1, "ΣΗΜΕΡΑ","Μετά το χθές")
Διαμέσου Οριζ(1,4,3,"ΠΕΡΙΠΤΕΡΟ","Μαγαζί του δρόμου")
Διαμέσου Καθ(6,1,4, "ΑΣΕΤΟΝ","Διαλυτικό")
Διαμέσου Οριζ(6,1,7, "ΑΛΑΤΙ","... και πιπέρι")
Διαμέσου Οριζ(6,6,5,"ΝΥΧΤΑ","Μέρα και ..")
Διαμέσου Καθ(4,1,6, "ΜΙΝΙΟΝ","Μικρό")
Συνολικά<=Γράμματα
\\ εμφάνιση
\\Διαμέσου Εμφ(Αληθής)
Διπλά
Αναφορά 2, "Σταυρόλεξο"
κανονικά
Οθόνη, -4
Στη Δχ=2, Δψ=1, ΕρΝ=1
Διαμέσου Εμφ(0)
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
Δες {
' για το Διέκοψε...ώστε να σταματήσει σε αυτό το μπλοκ
' κανονικά το Διέκοψε σταματάει το τμήμα
' ενώ το έξοδος σταματάει ένα μόνο μπλοκ
Κάθε 100 {
Ανανέωση 100
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
Αν Πατημένο(49) Τότε {
Διεκοψε
} Αλλιώς.Αν Πατημένο(50) Τότε {
Εμφαν~
Διαμεσου Εμφ(Εμφαν)
} Αλλιώς.Αν Πατημένο(48) Τότε {
ΕμφΚ~
Διαμεσου Εμφ(0)
} Αλλιώς.Αν Πατημένο(32) Τότε {
ΕμφΝ~
Διαμεσου Εμφ(0)
} Αλλιώς.Αν Πατημένο(0x25) Τότε {
Αν Δχ>0 Τότε Αν ""<>Στ$(Δχ-1,Δψ) Τότε Δχ--
} Αλλιώς.Αν Πατημένο(0x26) Τότε {
Αν Δψ>0 Τότε Αν ""<>Στ$(Δχ,Δψ-1) Τότε Δψ--
} Αλλιώς.Αν Πατημένο(0x27) Τότε { ' ->>
Αν Δχ<11 Τότε Αν ""<>Στ$(Δχ+1,Δψ) Τότε Δχ++
} Αλλιώς.Αν Πατημένο(0x28) Τότε {
Αν Δψ<9 Τότε Αν ""<>Στ$(Δχ,Δψ+1) Τότε Δψ++
} Αλλιώς.Αν Πατημένο(0x2E) Τότε {
Αν Θεση(δ$,Δεξι$(Στ$(Δχ,Δψ),1))>0 Τότε {
Αν Μήκος(Στ$(Δχ,Δψ))>1 και Αρισ$(Στ$(Δχ,Δψ),1)=Δεξι$(Στ$(Δχ,Δψ),1) Τότε Γράμματα++
Στ$(Δχ,Δψ)=Μεσ$(Στ$(Δχ,Δψ),1,Μήκος(Στ$(Δχ,Δψ))-1)
Διαμέσου Εμφ1(Μεσ$(Στ$(Δχ,Δψ),2))
}
} Αλλιώς {
ββ$=Ενκομ$
Αν ββ$<>"" Τότε {
ββ$=κεφ$(ββ$)
Αν Θέση(δ$,ββ$)=0 Τότε έξοδος
α$=Στ$(Δχ,Δψ)
Αν Μήκος(α$)>1 και Θεση(δ$,Δεξι$(α$,1))>0 Τότε {
Αν Αρισ$(α$,1)=Δεξι$(α$,1) Τότε Γράμματα++
Στ$(Δχ,Δψ)=Μεσ$(α$,1,Μήκος(α$)-1)
}
Στ$(Δχ,Δψ)=Στ$(Δχ,Δψ)+ββ$
α$=Στ$(Δχ,Δψ)
Αν Μήκος(α$)>1 και Αρισ$(α$,1)=Δεξι$(α$,1) Τότε Γράμματα--
Διαμέσου Εμφ1(Μεσ$(α$,2))
}
}
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
αα$=Μεσ$(Στ$(Δχ,Δψ),2)
Αν αα$<>"" Τότε Αν Τιμή(αα$) >0 Τότε ΕρΝ=Τιμή(αα$)
Οθόνη
Αναφορά 2, μορφη$("{0}. {1}",ΕρΝ, Ερ$(ΕρΝ-1))
Αναφορά 2, μορφη$("Γράμματα που δεν έχουν βρεθεί: {0}", Γράμματα)
Αναφορά 2, "1: Τερματισμός, 0: Πλαίσια, Διάστημα: Αριθμοί"
ανανεωση
Αν Γράμματα=0 Τότε Έξοδος
}
}
Ενώ Ενκομ$<>"" { Ανανέωση }
ΕμφΝ<=Αληθής
Οθόνη , -4
Ανανέωση 50
Διπλά
Κάθε 250 {
Οθόνη , -2
Αν ΕμφΝ Τότε {
ΕμφΝ~
Τύπωσε Πάνω $(6), μορφή$("ΕΠΙΤΥΧΙΑ {0:0}%", (Συνολικά-γράμματα)/Συνολικά*100)
} Αλλιώς {
ΕμφΝ~
}
Ανανέωση
Αν Ενκομ$<>"" τότε έξοδος
}
Κανονικά
Ενώ Ενκομ$<>"" { Ανανέωση }
Οθόνη ,0
Τέλος
Ρουτίνα Εμφ1(α$)
Αν θεση(δ$,αρισ$(α$,1))=0 και θεση(δ$,δεξι$(α$,1))>0 Τότε {
Αν ΕμφΝ Τότε {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), Αρισ$(α$,Μήκος(α$)-1)+"/"+δεξι$(α$,1)
} Αλλιώς {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), δεξι$(α$,1)
}
} Αλλιώς {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), α$
}
Τέλος Ρουτίνας
Ρουτίνα Εμφ(Όλα)
Τοπική ι, κ, ι1, κ1, α$
Ανανέωση 5000
Θέση χ_μετάθεση,υ_μετάθεση
Βάψε ΜετΧ(12),ΜετΧ(8), 1,5
Για ι=ΜετΧ(0) έως ΜετΧ(11) ανά π {
κ1=0
Για κ=ΜετΧ(0) έως ΜετΧ(7) ανά π {
α$=Στ$(ι1,κ1)
Αν α$="" Τότε {
Αν ΕμφΚ Τότε Κουτί ι, κ, " "
} Αλλιώς.Αν Όλα Τότε {
Κουτί ι, κ, Αρισ$(α$,1)
} Αλλιώς.Αν μηκος(α$)=1 Τότε {
Αν ΕμφΚ τότε { Κουτί ι, κ } Αλλιώς Κουτί ι, κ, "?"
} Αλλιώς {
α$=Μεσ$(α$,2)
Αν θεση(δ$,αρισ$(α$,1))=0 και θεση(δ$,δεξι$(α$,1))>0 Τότε {
Αν ΕμφΝ Τότε {
Κουτί ι, κ, Αρισ$(α$,Μήκος(α$)-1)+"/"+δεξι$(α$,1)
} Αλλιώς Κουτί ι, κ, δεξι$(α$,1)
} Αλλιώς Κουτί ι, κ, α$
}
κ1++
}
ι1++
}
Ανανέωση 50
Τέλος Ρουτίνας
Ρουτίνα Οριζ(ι,κ, Ν, Α$, Ερ$)
Τοπική θ, β$
Ερ$(Ν-1)=Ερ$
Για ι=ι έως ι+μήκος(Α$)-1
θ++
β$=Αρισ$(Στ$(ι,κ),1)
Αν β$="" Τότε {
Στ$(ι,κ)=Μεσ$(Α$,θ,1)
Γράμματα++
} Αλλιώς {
Αν β$<>Μεσ$(Α$,θ,1) Τότε Λάθος μορφή$("Δεν ταιριάζει το {0} στο {1} γραμμα",Ν,θ)
}
Επόμενο ι
Αν Μήκος(Στ$(ι-θ,κ))=1 Τότε {ι-=θ } αλλιώς ι--
Στ$(ι,κ)=Μορφή$("{0}{1}",Αρισ$(Στ$(ι,κ),1),Ν)
Τέλος Ρουτίνας
Ρουτίνα Καθ(ι,κ,Ν, Α$,Ερ$)
Τοπική θ, β$
Ερ$(Ν-1)=Ερ$
Για κ=κ έως κ+μήκος(Α$)-1
θ++
β$=Αρισ$(Στ$(ι,κ),1)
Αν β$="" Τότε {
Στ$(ι,κ)=Μεσ$(Α$,θ,1)
Γράμματα++
} Αλλιώς {
Αν β$<>Μεσ$(Α$,θ,1) Τότε Λάθος μορφή$("Δεν ταιριάζει το {0} στο {1} γράμμα",Ν,θ)
}
Επόμενο κ
Αν Μήκος(Στ$(ι,κ-θ))=1 Τότε {κ-=θ } αλλιώς κ--
Στ$(ι,κ)=Μορφή$("{0}{1}",Αρισ$(Στ$(ι,κ),1),Ν)
Τέλος Ρουτίνας
Φαίνεται η χρήση αλφαριθμητικών και ιδιαίτερα των συναρτήσεων:
Αρισ$(), Μεσ$(), Δεξι$()
Έκδοση 2.2
Οδηγίες:
Το πρόγραμμα χρησιμεύει για να φτιάξουμε και να "τρέξουμε" σταυρόλεξα!
Ο πίνακας Ερ$() μπορεί να μεγαλώσει για να πάρει όλες τις ερωτήσεις
Η ρουτίνα οριζ() βάζει λέξεις οριζόντια στο πίνακα Στ$(), με άνω αριστερό άκρο το 0,0
Οι δυο πρώτες παράμετροι είναι η θέση του πρώτου γράμματος (όπου θα εμφανίζεται ο αριθμός της ερώτησης). Ακολουθεί ο αριθμός της ερώτησης, η λέξη και η ερώτηση.
Το σταυρόλεξο λύνεται με την μετακίνηση ενός δρομέα και επιλογή του σωστού γράμματος. Όταν βρούμε όλα τα γράμματα ή πατήσουμε το 1 τότε έχουμε το ποσοστό επιτυχίας. Για ευκολία εμφανίζετε ο αριθμός των γραμμάτων που πρέπει να βρούμε (άρα ξέρουμε άμεσα αν έχουμε βρει το σωστό, αφού με το που το βρούμε μειώνεται ο αριθμός). Μπορούμε να αλλάξουμε γράμμα ή να διαγράψουμε γράμμα με delete. Με το 0 "χάνουμε" το μήκος κάθε λέξης. Με το 3 εμφανίζεται η λύση. Με το διάστημα εμφανίζεται/εξαφανίζεται ο αριθμός της ερώτησης. Στα κουτάκια μπορεί να εμφανίζεται και ο αριθμός και το γράμμα. Αν υπάρχει σε κάθετη λέξη ο αριθμός της τότε ο "αλγόριθμος" επιλέγει να γράψει τον αριθμό της οριζόντιας λέξης στο τέλος της λέξης.
η Διαμέσου (Gosub) είναι προαιρετική για τις ρουτίνες τύπου Ρουτίνα/Τέλος Ρουτίνας. Εδώ μπορεί να αφαιρεθεί. Είναι υποχρεωτική αν έχουμε πίνακα με ίδιο όνομα (και αυτός έχει παρενθέσεις) γιατί ο διερμηνευτής βρίσκει τον πίνακα πριν την ρουτίνα. Με την διαμέσου όμως έχουμε μια αναζήτηση (το Διαμέσου) και άμεσα καλεί την ρουτίνα. Η διαφορά είναι ελάχιστη.
Προστέθηκε η εντολή Φόρμα 40,20 για να φτιάξει την κονσόλα σωστά!
Καθαρό
Αδειασε
Φόρμα 40,20
Γενική π, δ$="ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
Γενική Εμφαν=Αληθής, ΕμφΝ, Γράμματα, Συνολικά
Γενική ΕμφΚ, χ_μετάθεση, υ_μετάθεση
π<=(Υ.Σημεία Δια Ύψος)*1.5
Κάνε ΜετΧ(Χ)=π*Χ
χ_μετάθεση<=(χ.σημεια-ΜετΧ(12))/2
υ_μετάθεση<=(υ.σημεια-ΜετΧ(10))/2
Τμήμα Κουτί {
Διάβασε Χ, Υ
Θέση Χ+χ_μετάθεση, Υ+υ_μετάθεση
Αν Ταύτιση("Α") Τότε {
Βήμα 30,30
Πέτα : Βάψε @ π-90,π-90,3,1
} Αλλιώς {
Βάψε @ π,π,4,1
Βήμα 0, π*0.15
Πένα 0 {
Αν Ταύτιση("Γ") Τότε Βάψε @ π,π*.6,5, Γράμμα$
}
}
}
Πίνακας Στ$(12,10), Ερ$(10)
Διαμέσου Οριζ(2,2,2,"ΗΛΙΟΣ","Τον λέγαν και Απόλλων")
Διαμέσου Καθ(2,1,1, "ΣΗΜΕΡΑ","Μετά το χθές")
Διαμέσου Οριζ(1,4,3,"ΠΕΡΙΠΤΕΡΟ","Μαγαζί του δρόμου")
Διαμέσου Καθ(6,1,4, "ΑΣΕΤΟΝ","Διαλυτικό")
Διαμέσου Οριζ(6,1,7, "ΑΛΑΤΙ","... και πιπέρι")
Διαμέσου Οριζ(6,6,5,"ΝΥΧΤΑ","Μέρα και ..")
Διαμέσου Καθ(4,1,6, "ΜΙΝΙΟΝ","Μικρό")
Συνολικά<=Γράμματα
\\ εμφάνιση
\\Διαμέσου Εμφ(Αληθής)
Διπλά
Αναφορά 2, "Σταυρόλεξο"
κανονικά
Οθόνη, -4
Στη Δχ=2, Δψ=1, ΕρΝ=1
Διαμέσου Εμφ(0)
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
Δες {
' για το Διέκοψε...ώστε να σταματήσει σε αυτό το μπλοκ
' κανονικά το Διέκοψε σταματάει το τμήμα
' ενώ το έξοδος σταματάει ένα μόνο μπλοκ
Κάθε 100 {
Ανανέωση 100
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
Αν Πατημένο(49) Τότε {
Διεκοψε
} Αλλιώς.Αν Πατημένο(50) Τότε {
Εμφαν~
Διαμεσου Εμφ(Εμφαν)
} Αλλιώς.Αν Πατημένο(48) Τότε {
ΕμφΚ~
Διαμεσου Εμφ(0)
} Αλλιώς.Αν Πατημένο(32) Τότε {
ΕμφΝ~
Διαμεσου Εμφ(0)
} Αλλιώς.Αν Πατημένο(0x25) Τότε {
Αν Δχ>0 Τότε Αν ""<>Στ$(Δχ-1,Δψ) Τότε Δχ--
} Αλλιώς.Αν Πατημένο(0x26) Τότε {
Αν Δψ>0 Τότε Αν ""<>Στ$(Δχ,Δψ-1) Τότε Δψ--
} Αλλιώς.Αν Πατημένο(0x27) Τότε { ' ->>
Αν Δχ<11 Τότε Αν ""<>Στ$(Δχ+1,Δψ) Τότε Δχ++
} Αλλιώς.Αν Πατημένο(0x28) Τότε {
Αν Δψ<9 Τότε Αν ""<>Στ$(Δχ,Δψ+1) Τότε Δψ++
} Αλλιώς.Αν Πατημένο(0x2E) Τότε {
Αν Θεση(δ$,Δεξι$(Στ$(Δχ,Δψ),1))>0 Τότε {
Αν Μήκος(Στ$(Δχ,Δψ))>1 και Αρισ$(Στ$(Δχ,Δψ),1)=Δεξι$(Στ$(Δχ,Δψ),1) Τότε Γράμματα++
Στ$(Δχ,Δψ)=Μεσ$(Στ$(Δχ,Δψ),1,Μήκος(Στ$(Δχ,Δψ))-1)
Διαμέσου Εμφ1(Μεσ$(Στ$(Δχ,Δψ),2))
}
} Αλλιώς {
ββ$=Ενκομ$
Αν ββ$<>"" Τότε {
ββ$=κεφ$(ββ$)
Αν Θέση(δ$,ββ$)=0 Τότε έξοδος
α$=Στ$(Δχ,Δψ)
Αν Μήκος(α$)>1 και Θεση(δ$,Δεξι$(α$,1))>0 Τότε {
Αν Αρισ$(α$,1)=Δεξι$(α$,1) Τότε Γράμματα++
Στ$(Δχ,Δψ)=Μεσ$(α$,1,Μήκος(α$)-1)
}
Στ$(Δχ,Δψ)=Στ$(Δχ,Δψ)+ββ$
α$=Στ$(Δχ,Δψ)
Αν Μήκος(α$)>1 και Αρισ$(α$,1)=Δεξι$(α$,1) Τότε Γράμματα--
Διαμέσου Εμφ1(Μεσ$(α$,2))
}
}
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), 1
αα$=Μεσ$(Στ$(Δχ,Δψ),2)
Αν αα$<>"" Τότε Αν Τιμή(αα$) >0 Τότε ΕρΝ=Τιμή(αα$)
Οθόνη
Αναφορά 2, μορφη$("{0}. {1}",ΕρΝ, Ερ$(ΕρΝ-1))
Αναφορά 2, μορφη$("Γράμματα που δεν έχουν βρεθεί: {0}", Γράμματα)
Αναφορά 2, "1: Τερματισμός, 0: Πλαίσια, Διάστημα: Αριθμοί"
ανανεωση
Αν Γράμματα=0 Τότε Έξοδος
}
}
Ενώ Ενκομ$<>"" { Ανανέωση }
ΕμφΝ<=Αληθής
Οθόνη , -4
Ανανέωση 50
Διπλά
Κάθε 250 {
Οθόνη , -2
Αν ΕμφΝ Τότε {
ΕμφΝ~
Τύπωσε Πάνω $(6), μορφή$("ΕΠΙΤΥΧΙΑ {0:0}%", (Συνολικά-γράμματα)/Συνολικά*100)
} Αλλιώς {
ΕμφΝ~
}
Ανανέωση
Αν Ενκομ$<>"" τότε έξοδος
}
Κανονικά
Ενώ Ενκομ$<>"" { Ανανέωση }
Οθόνη ,0
Τέλος
Ρουτίνα Εμφ1(α$)
Αν θεση(δ$,αρισ$(α$,1))=0 και θεση(δ$,δεξι$(α$,1))>0 Τότε {
Αν ΕμφΝ Τότε {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), Αρισ$(α$,Μήκος(α$)-1)+"/"+δεξι$(α$,1)
} Αλλιώς {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), δεξι$(α$,1)
}
} Αλλιώς {
Κουτί ΜετΧ(Δχ),ΜετΧ(Δψ), α$
}
Τέλος Ρουτίνας
Ρουτίνα Εμφ(Όλα)
Τοπική ι, κ, ι1, κ1, α$
Ανανέωση 5000
Θέση χ_μετάθεση,υ_μετάθεση
Βάψε ΜετΧ(12),ΜετΧ(8), 1,5
Για ι=ΜετΧ(0) έως ΜετΧ(11) ανά π {
κ1=0
Για κ=ΜετΧ(0) έως ΜετΧ(7) ανά π {
α$=Στ$(ι1,κ1)
Αν α$="" Τότε {
Αν ΕμφΚ Τότε Κουτί ι, κ, " "
} Αλλιώς.Αν Όλα Τότε {
Κουτί ι, κ, Αρισ$(α$,1)
} Αλλιώς.Αν μηκος(α$)=1 Τότε {
Αν ΕμφΚ τότε { Κουτί ι, κ } Αλλιώς Κουτί ι, κ, "?"
} Αλλιώς {
α$=Μεσ$(α$,2)
Αν θεση(δ$,αρισ$(α$,1))=0 και θεση(δ$,δεξι$(α$,1))>0 Τότε {
Αν ΕμφΝ Τότε {
Κουτί ι, κ, Αρισ$(α$,Μήκος(α$)-1)+"/"+δεξι$(α$,1)
} Αλλιώς Κουτί ι, κ, δεξι$(α$,1)
} Αλλιώς Κουτί ι, κ, α$
}
κ1++
}
ι1++
}
Ανανέωση 50
Τέλος Ρουτίνας
Ρουτίνα Οριζ(ι,κ, Ν, Α$, Ερ$)
Τοπική θ, β$
Ερ$(Ν-1)=Ερ$
Για ι=ι έως ι+μήκος(Α$)-1
θ++
β$=Αρισ$(Στ$(ι,κ),1)
Αν β$="" Τότε {
Στ$(ι,κ)=Μεσ$(Α$,θ,1)
Γράμματα++
} Αλλιώς {
Αν β$<>Μεσ$(Α$,θ,1) Τότε Λάθος μορφή$("Δεν ταιριάζει το {0} στο {1} γραμμα",Ν,θ)
}
Επόμενο ι
Αν Μήκος(Στ$(ι-θ,κ))=1 Τότε {ι-=θ } αλλιώς ι--
Στ$(ι,κ)=Μορφή$("{0}{1}",Αρισ$(Στ$(ι,κ),1),Ν)
Τέλος Ρουτίνας
Ρουτίνα Καθ(ι,κ,Ν, Α$,Ερ$)
Τοπική θ, β$
Ερ$(Ν-1)=Ερ$
Για κ=κ έως κ+μήκος(Α$)-1
θ++
β$=Αρισ$(Στ$(ι,κ),1)
Αν β$="" Τότε {
Στ$(ι,κ)=Μεσ$(Α$,θ,1)
Γράμματα++
} Αλλιώς {
Αν β$<>Μεσ$(Α$,θ,1) Τότε Λάθος μορφή$("Δεν ταιριάζει το {0} στο {1} γράμμα",Ν,θ)
}
Επόμενο κ
Αν Μήκος(Στ$(ι,κ-θ))=1 Τότε {κ-=θ } αλλιώς κ--
Στ$(ι,κ)=Μορφή$("{0}{1}",Αρισ$(Στ$(ι,κ),1),Ν)
Τέλος Ρουτίνας
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.