English Version:
locale 1033 ' we get True and False - using 1032 we get the Greek words
Module TestEnumNumericValue {
print "Test Enumeration Type of Numeric Value"
enum alfa {
kappa
delta
}
var m as alfa
print m=1, eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
m++
print m=2, eval$(m)="delta", m=delta, type$(m)="alfa", m^=1
m=1
print m=1, eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
try ok {
m=100
}
if error or not ok then print error$ 'we get error message Expected Enumaration Type
print m=1, eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
clear
' clear all local variables
' make alfa start from 0 (by default is 1), also make the error value active
enum alfa {
kappa=0 ' we can use 0& for long type or 0&& for long long etc..
delta
error:
novalue=-1
}
var m as alfa
print m=0, eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
m++
print m=1, eval$(m)="delta", m=delta, type$(m)="alfa", m^=1
m=0
print m=0, eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
' this is bad value (not exist in values list of enumaration)
m=100
' then m turn to error vaue
print m=-1, eval$(m)="novalue", m=novalue, type$(m)="alfa", m^=2
m=kappa
do
print m^, type$(m^)="Long", eval$(m)
if m^=alfa^ then exit
m++
always
' we may have members of an enumaration with same value
clear
enum alfa {
kappa=0 ' we can use 0& for long type or 0&& for long long etc..
delta
epsilon=0
omega
error:
novalue=-1
}
var m as alfa
zeta=each(alfa)
oldtab=tab
// $(6,6) means center propotional print at 6 character's place column
print $(6, 6),"value", "name", "type","index", "same"
while zeta
m=eval(zeta) ' an object at index zeta^
? m, eval$(m), type$(m), m^, m^=zeta^
end while
print $(0, oldtab)
// we don't get the error value. Error value has index 4 now, but is out of the normal range.
}
module TestEnumStringValue {
print "Test Enumeration Type of String Value"
enum alfa {
kappa="North"
delta="East"
}
var m as alfa
print m="North", eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
m++
print m="East", eval$(m)="delta", m=delta, type$(m)="alfa", m^=1
m="North"
print m="North", eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
try ok {
m="Beep"
}
if error or not ok then print error$ 'we get error message Expected Enumaration Type
print m="North", eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
clear
' clear all local variables
' make the error value active
enum alfa {
kappa="True"
delta="False"
error:
novalue="?"
}
var m as alfa
print m="True", eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
m++
print m="False", eval$(m)="delta", m=delta, type$(m)="alfa", m^=1
m="True"
print m="True", eval$(m)="kappa", m=kappa, type$(m)="alfa", m^=0
' this is bad value (not exist in values list of enumaration)
m="Beep"
' then m turn to error vaue
print m="?", eval$(m)="novalue", m=novalue, type$(m)="alfa", m^=2
m=kappa
do
print m^, type$(m^)="Long", eval$(m)
if m^=alfa^ then exit
m++
always
' we may have members of an enumaration with same value
clear
enum alfa {
kappa="True"
delta="False"
epsilon="True"
omega="False"
error:
novalue="?"
}
var m as alfa
zeta=each(alfa)
oldtab=tab
// $(6,6) means center propotional print at 6 character's place column
print $(6, 6),"value", "name", "type","index", "same"
while zeta ' this is a variation of while using an iterator object
m=eval(zeta) ' an object at index zeta^
print m, eval$(m), type$(m), m^, m^=zeta^
end while
print $(0, oldtab)
// we don't get the error value. Error value has index 4 now, but is out of the normal range.
}
TestEnumNumericValue
TestEnumStringValue
Greek Version:
Τοπικό 1032 'θα έχουμε στα ελληνικά το Αληθές Ψευδές
Τμήμα ΔοκιμήΑπαρίθμησηςΑριθμητικήςΤιμής {
τύπωσε "Δοκιμή Απαρίθμησης με Αριθμητική Τιμή"
απαρ άλφα {
κάππα
δέλτα
}
μεταβλητή μ ως άλφα
τύπωσε μ=1, εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
μ++
τύπωσε μ=2, εκφρ$(μ)="δέλτα", μ=δέλτα, τύπος$(μ)="άλφα", μ^=1
μ=1
τύπωσε μ=1, εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
δες οκ {
μ=100
}
αν λάθος ή όχι οκ τότε τύπωσε λάθος$ 'θα πάρουμε το μήνυμα Λάθους Περίμενα τύπο απαρίθμησης
τύπωσε μ=1, εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
καθαρό
' καθαρίζουμε όλες τις τοπικές του τμήματος
' κάνουμε το άλφα να ξεκινάει από το 0 (εξ ορισμού είναι το 1), επίσης ενεργοποιούμε τη λάθος τιμή.
απαρ άλφα {
κάππα=0 ' με 0& για Μακρύς ή 0&& για Μακρύς Μακρύς κ.ο.κ.
δέλτα
λάθος:
μη_τιμή=-1
}
μεταβλητή μ ως άλφα
τύπωσε μ=0, εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
μ++
τύπωσε μ=1, εκφρ$(μ)="δέλτα", μ=δέλτα, τύπος$(μ)="άλφα", μ^=1
μ=0
τύπωσε μ=0, εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
' δίνουμε μια τιμή που δεν υπάρχει στη λίστα τιμών της απαρίθμησης
μ=100
' το μ θα πάρει την τιμή λάθους
τύπωσε μ=-1, εκφρ$(μ)="μη_τιμή", μ=μη_τιμή, τύπος$(μ)="άλφα", μ^=2
μ=κάππα
επανέλαβε
τύπωσε μ^, τύπος$(μ^)="Long", εκφρ$(μ)
αν μ^=άλφα^ τότε έξοδος
μ++
πάντα
' μπορούμε να έχουμε μέλη απαρίθμησης με ίδια τιμή
καθαρό
απαρ άλφα {
κάππα=0 ' με 0& για Μακρύς ή 0&& για Μακρύς Μακρύς κ.ο.κ.
δέλτα
έψιλον=0
ωμέγα
λάθος:
μη_τιμή=-1
}
μεταβλητή μ ως άλφα
ζήτα=κάθε(άλφα) ' το ζήτα είναι ένα αντικείμενο επαναλήπτης με το άλφα εντός
παλιά_στήλη=στήλη
// $(6,6) σημαίνει αναλογική γραφή με κεντράρισμα στη στήλη και στήλη 6 χαρακτήρων (μη αναλογικών)
τύπωσε $(6, 6),"τιμή", "όνομα", "τύπος","δείκτης", "όμοιος"
ενώ ζήτα ' η ενώ εδώ είναι παραλλαγή της ενώ και δουλεύει με επαναλήπτη
μ=εκφρ(ζήτα) ' μας δίνει ένα αντικειμενο του άλφα με δείκτη ζήτα^
τύπωσε μ, εκφρ$(μ), τύπος$(μ), μ^, μ^=ζήτα^
τέλος ενώ
τύπωσε $(0, παλιά_στήλη)
// δεν θα δούμε την τιμή του λάθους εδώ γιατί είναι εκτός λίστας (πάντα είναι στο δείκτη άλφα^+1, ακριβώς μετά το τελευταίο)
}
Τμήμα ΔοκιμηΑπαρίθμησηςΑλφαριθμητικήςΤιμής {
τύπωσε "Δοκιμή Απαρίθμησης με Αλφαριθμητική Τιμή"
απαρ άλφα {
κάππα="North"
δέλτα="East"
}
μεταβλητή μ ως άλφα
τύπωσε μ="North", εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
μ++
τύπωσε μ="East", εκφρ$(μ)="δέλτα", μ=δέλτα, τύπος$(μ)="άλφα", μ^=1
μ="North"
τύπωσε μ="North", εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
δες οκ {
μ="Beep"
}
αν λάθος ή όχι οκ τότε τύπωσε λάθος$ 'θα πάρουμε το μήνυμα Λάθους Περίμενα τύπο απαρίθμησης
τύπωσε μ="North", εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
καθαρό
' καθαρίζουμε όλες τις τοπικές του τμήματος
' ενεργοποιούμε τη λάθος τιμή.
απαρ άλφα {
κάππα="Αληθές"
δέλτα="Ψευδές"
λάθος:
μη_τιμή="?"
}
μεταβλητή μ ως άλφα
τύπωσε μ="Αληθές", εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
μ++
τύπωσε μ="Ψευδές", εκφρ$(μ)="δέλτα", μ=δέλτα, τύπος$(μ)="άλφα", μ^=1
μ="Αληθές"
τύπωσε μ="Αληθές", εκφρ$(μ)="κάππα", μ=κάππα, τύπος$(μ)="άλφα", μ^=0
' δίνουμε μια τιμή που δεν υπάρχει στη λίστα τιμών της απαρίθμησης
μ="Beep"
' το μ θα πάρει την τιμή λάθους
τύπωσε μ="?", εκφρ$(μ)="μη_τιμή", μ=μη_τιμή, τύπος$(μ)="άλφα", μ^=2
μ=κάππα
' το άλφα εξ ορισμού έχει δείκτη στο τελευταίο κανονικό στοιχείο (όχι στο λάθος)
επανέλαβε
τύπωσε μ^, τύπος$(μ^)="Long", εκφρ$(μ)
αν μ^=άλφα^ τότε έξοδος
μ++ ' αλλάζουμε τιμή με αλλαγή του δείκτη αλλά δεν αλλάζει στο τέρμα.
πάντα
' μπορούμε να έχουμε μέλη απαρίθμησης με ίδια τιμή
καθαρό
απαρ άλφα {
κάππα="Αληθές"
δέλτα="Ψευδές"
έψιλον="Αληθές"
ωμέγα="Ψευδές"
λάθος:
μη_τιμή="?"
}
μεταβλητή μ ως άλφα
ζήτα=κάθε(άλφα) ' το ζήτα είναι ένα αντικείμενο επαναλήπτης με το άλφα εντός
παλιά_στήλη=στήλη
// $(6,6) σημαίνει αναλογική γραφή με κεντράρισμα στη στήλη και στήλη 6 χαρακτήρων (μη αναλογικών)
τύπωσε $(6, 6),"τιμή", "όνομα", "τύπος","δείκτης", "όμοιος"
ενώ ζήτα ' η ενώ εδώ είναι παραλλαγή της ενώ και δουλεύει με επαναλήπτη
μ=εκφρ(ζήτα) ' μας δίνει ένα αντικειμενο του άλφα με δείκτη ζήτα^
τύπωσε μ, εκφρ$(μ), τύπος$(μ), μ^, μ^=ζήτα^
τέλος ενώ
τύπωσε $(0, παλιά_στήλη)
// δεν θα δούμε την τιμή του λάθους εδώ γιατί είναι εκτός λίστας (πάντα είναι στο δείκτη άλφα^+1, ακριβώς μετά το τελευταίο)
}
ΔοκιμήΑπαρίθμησηςΑριθμητικήςΤιμής
ΔοκιμηΑπαρίθμησηςΑλφαριθμητικήςΤιμής


Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.