Την προηγούμενη βδομάδα είχα μια εισαγωγή στο νοσοκομείο, για οξεία χολοκυστιτιδα, οπότε τώρα που είμαι καλά είδα το πρόβλημα που είχε δημιουργηθεί με την συνάρτηση Ταύτιση("Α") όπου αν δεν είχαμε αριθμό αλλά είχαμε πίνακα, τότε έδινε αληθές, ενώ έπρεπε να δώσει ψευδές. Αυτό το λάθος έγινε γιατί χρησιμοποίησα τριπλό συνεχόμενο if και δεν έδωσα την απαραίτητη οδηγία σε πρίπτωση που το δεύτερο if έβγαινε ψευδές, οπότε το λάμβανε αληθές!
Το παρακάτω πρόγραμμα δεν εμφανίζει λάθος. Στην αναθεώρηση 20 εμφάνιζε το "Η κορυφή του σωρού δεν είναι αριθμός" γιατί εκτελούνταν το Τύπωσε Αριθμός, και η Αριθμός διαβάζει μόνο αριθμό αλλιώς γυρνάει το λάθος. Τώρα το Ταύτιση("Α") με Α ελληνικό ή Ταύτιση("N") με N αγγλικό, επειδή θα δει τον πίνακα θα δώσει ψευδές, έτσι δεν θα εκτελεστεί το Τύπωσε Αριθμός.
In revision 20 we get error, but now fixed.
Το παρακάτω πρόγραμμα δεν εμφανίζει λάθος. Στην αναθεώρηση 20 εμφάνιζε το "Η κορυφή του σωρού δεν είναι αριθμός" γιατί εκτελούνταν το Τύπωσε Αριθμός, και η Αριθμός διαβάζει μόνο αριθμό αλλιώς γυρνάει το λάθος. Τώρα το Ταύτιση("Α") με Α ελληνικό ή Ταύτιση("N") με N αγγλικό, επειδή θα δει τον πίνακα θα δώσει ψευδές, έτσι δεν θα εκτελεστεί το Τύπωσε Αριθμός.
Πίνακας
Α(1)=10
Βάλε Α()
Δες {
Αν Ταύτιση("Α") Τότε Τύπωσε Αριθμός
}
Τύπωσε Λάθος$
Αδειασε ' αδειάζει τον σωρό
Βάλε Α()
Δες {
Αν Ταύτιση("Α") Τότε Τύπωσε Αριθμός
}
Τύπωσε Λάθος$
Αδειασε ' αδειάζει τον σωρό
In revision 20 we get error, but now fixed.
Dim
A(10)=1
Push A()
Try {
If Match("N") then Print Number \\ pop number or return error
}
Print Error$
Flush ' empty stack
Push A()
Try {
If Match("N") then Print Number \\ pop number or return error
}
Print Error$
Flush ' empty stack
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.