i <-- 1
Όσο (i <= N) ΚΑΙ (Α[i] > 0) Επανάλαβε
i <-- i + 1
Τέλος_Επανάληψης
Αν δηλαδή το γράψει κάποιος σε μια άσκηση που ζητάει αλγόριθμο και όχι πρόγραμμα είναι σωστό ή όχι?Νομίζω ότι στο συγκεκριμένο, ό,τι ισχύει για τη ΓΛΩΣΣΑ θα πρέπει να ισχύει και για τους αλγορίθμους.
Αν κάνουμε μερική αποτίμηση αλλάζοντας τη σειρά στη σύνθετη συνθήκη τότε θα προκύψει λάθος ή όχι;Yeap, θα προκύψει λάθος.
Αν όντως είναι έτσι, αυτό είναι ένα επιχείρημα κατά της μερικής αποτίμησης αφού παραβιάζεται η αντιμεταθετικότητα του λογικού τελεστή «και».
Αλλά αν το οτιδήποτε είναι πχ η αλφαριθμητική τιμή «ΑΒΓ» τότε το 0 * «ΑΒΓ» δεν έχει νόημα γιατί δεν ορίζεται ο πολλαπλασιασμός αριθμού με χαρακτήρες.Αυτό είναι θέμα συντακτικού ελέγχου, που πραγματοποιείται πριν την εκτέλεση του προγράμματος. Αντίθετα, οι μη αρχικοποιημένες μεταβλητές είναι σφάλμα χρόνου εκτέλεσης.
Εδώ το α[ν+1] είναι κάτι που δεν υπάρχει. Άρα η συνθήκη key<>α[ν+1] δεν ορίζεται.Όλα αυτά είναι μέρος του ορισμού της μερικής αποτίμησης. Οι λογικοί τελεστές αλλάζουν έννοια και κατά περίπτωση μπορεί να πάρουν την σημασιολογία μιας δεύτερης ΑΝ: ΑΝ (ι <= Ν) ΤΟΤΕ ΑΝ (Α[ι] > 0) ...
Εκεί αν πεις (Ψευδής και α[1]) με το α[1] δηλωμένο λογικό το πράγμα αλλάζει.Γιώργο σ' αυτό δε βλέπω καμία απολύτως διαφορά με τους ακεραίους. Αν θεωρείς ότι το α[1] είναι ή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ, τότε και το α[1] με α=ακέραιος θα πρέπει να είναι ..., -2, -1, 0, 1, 2, ... δηλαδή στο πεδίο ορισμού του. Δεν έχει σημασία που το πεδίο ορισμού των λογικών μεταβλητών είναι πιο μικρό από αυτό των ακεραίων. Αντίστοιχα, αν θεωρείς ότι ένας μη αρχικοποιημένος ακέραιος ...δεν είναι ακέραιος, το ίδιο θα πρέπει να ισχύει και για τις λογικές μεταβλητές.