Το βιβλίο έχει όντως παραδείγματα που συνδιάζουν ακέραιους και πραγματικούς και υπάρχει πρόβλημα γιατί ορίζει κάτι και το αναιρεί έπειτα.
Κατά τη γνώμη μου πρέπει να τηρηθεί η σημείωση στη σελίδα 155. Σε κάθε εντολή εκχώρησης
τόσο η μεταβλητή όσο και η έκφραση πρέπει να είναι ίδιου τύπου.
Το Β και Γ είναι ΑΚΕΡΑΙΟΥ τύπου. Το Α θα έχει ακέραια τιμή προφανώς, αλλά λόγω της σημείωσης στη σελίδα 155 πρέπει κι ο τύπος του να είναι
ΑΚΕΡΑΙΟΣ.
Δεν μπορείς να το δηλώσεις
ΠΡΑΓΜΑΤΙΚΟ γιατί σε περιορίζει η σελίδα 155 (όχι γιατί έχει ακέραια τιμή, μπορεί μία μεταβλητή πραγματικού τύπου να έχει ακέραια τιμή).
(Εάν κάποιος δεν καταλαβαίνει τη διαφορά ακέραιας τιμής - ακέραιου τύπου ας ποστάρει

).
Σημείωση: τα DIV και ΜOD είναι με κεφαλαία στο πρόγραμμα.
Τι γίνεται λοιπόν αν θέλουμε ακέραια διαίρεση σε δεδομένα πραγματικού
τύπου; Αν για παράδειγμα έχουμε:
Code:
[B]ΜΕΤΑΒΛΗΤΕΣ[/B]
[B]ΠΡΑΓΜΑΤΙΚΕΣ:[/B] Β, Γ, ΠΗΛΙΚΟ, ΥΠΟΛΟΙΠΟ
[B]ΑΡΧΗ[/B]
Β←7
Γ←3
Και θέλουμε ακέραια διαίρεση των Β και Γ;
Μία σκέψη
Code:
Β [B]DIV[/B] Γ [COLOR=DarkGreen][B]!ΛΑΘΟΣ[/B][/COLOR]
Γιατί τα Β και Γ είναι ΠΡΑΓΜΑΤΙΚΟΥ τύπου, άσχετα με το αν έχουν ακέραιες τιμές.
Το σωστό είναι:
Code:
[B]ΑΝ[/B] (Α_Μ(Β)=Β) [B]KAI[/B] (Α_Μ(Γ)=Γ) [B]ΚΑΙ[/B] (Β<>0) [B]ΤΟΤΕ[/B] [COLOR=DarkGreen][B]!Έτσι ελέγχουμε αν μεταβλητές οι Β και Γ έχουν ακέραιες τιμές. Αν ένας τουλάχιστον είναι δεκαδικός, δεν έχει νόημα να προχωρήσουμε. Και φυσικά ελέγχουμε ότι δεν διαιρούμε με το μηδέν.[/B][/COLOR]
ΠΗΛΙΚΟ ← Α_Τ(Α_Μ(Β/Γ)) [COLOR=DarkGreen][B]!Κρατάμε το ακέραιο μέρος της διαίρεσης και ύστερα παίρνουμε την απόλυτη τιμή καθώς μπορεί να είναι αρνητικοί.[/B][/COLOR]
ΥΠΟΛΟΙΠΟ ← Β - Γ * ΠΗΛΙΚΟ [COLOR=DarkGreen][B]!Ταυτότητα του Ευκλείδη.
[/B][/COLOR]
[B]ΑΝ[/B] Β*Γ<0 [B]ΤΟΤΕ[/B] [COLOR=DarkGreen][B]!Αν είναι ετερόσημοι, απλώς βάζουμε ένα '-' μπροστά από τα αποτελέσματα, όπως είπαμε προηγουμένως.[/B][/COLOR]
ΠΗΛΙΚΟ ← (-1)*ΠΗΛΙΚΟ
ΥΠΟΛΟΙΠΟ ← (-1)*ΥΠΟΛΟΙΠΟ
[B]ΤΕΛΟΣ_ΑΝ[/B]
[B]ΓΡΑΨΕ[/B] 'Πηλίκο = ', ΠΗΛΙΚΟ
[B]ΓΡΑΨΕ[/B] Υπόλοιπο = ', ΥΠΟΛΟΙΠΟ
[B]ΤΕΛΟΣ_ΑΝ[/B]
Τα σχόλια δεν χρειάζονται στο πρόγραμμα, τα έβαλα για να καταλάβουμε τι παίζει.
Σημείωση: Το μήνυμα αυτό γράφτηκε 17 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.