! ==================================================================================================
! ΑΛΓΟΡΙΘΜΟΣ ΕΛΕΓΧΟΥ ΕΓΚΥΡΟΤΗΤΑΣ Α.Φ.Μ. =
! =
! Για να πιστοποιήσουμε αν ένας δοθείς εννεαψήφιος αριθμός μπορεί να είναι έγκυρος Α.Φ.Μ. ή όχι, =
! εφαρμόζουμε την παρακάτω διαδικασία: =
! Έστω ότι ο δοθείς αριθμός είναι A1A2A3A4A5A6A7A8A9, =
! όπου κάθε Ai αντιστοιχεί σε ένα ψηφίο του αριθμού. =
! Υπολογίζουμε το άθροισμα Σ = 256*A1 + 128*A2 +64*A3 + 32*A4 + 16*A5 + 8*A6 +4*A7 + 2*A8 =
! Υπολογίζουμε το υπόλοιπο Υ της διαίρεσης του Σ με τον αριθμό 11. =
! Αν το υπόλοιπο της διαίρεσης είναι 10 και A9=0 τότε ο αριθμός είναι έγκυρος Α.Φ.Μ. =
! Αν το υπόλοιπο της διαίρεσης είναι Υ και A9=Υ τότε ο αριθμός είναι έγκυρος Α.Φ.Μ. =
! Σε αντίθετη περίπτωση, ο αριθμός είναι δεν έγκυρος Α.Φ.Μ. =
! ==================================================================================================
ΠΡΟΓΡΑΜΜΑ Έλεγχος_εγκυρότητας_ΑΦΜ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΑΦΜ , Ψ1 , Ψ2 , Ψ3 , Ψ4 , Ψ5 , Ψ6 , Ψ7 , Ψ8 , Ψ9 , ΑΘΡΟΙΣΜΑ , ΥΠΟΛΟΙΠΟ
ΑΡΧΗ
! Εισαγωγή αριθμού και έλεγχος αν έχει 9 ψηφία
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε τον ΑΦΜ που θέλεις να ελέγξεις'
ΔΙΑΒΑΣΕ ΑΦΜ
ΜΕΧΡΙΣ_ΟΤΟΥ (ΑΦΜ <= 999999999 ) και (ΑΦΜ > 99999999 )
! Απομόνωση των ψηφίων του αριθμού.
! (Μπορεί να χρησιμοποιηθεί και δομή επανάληψης, αν αρχικά έχει οριστεί ένας πίνακας Ψ[9])
Ψ1 <-- ΑΦΜ DIV 100000000
ΑΦΜ <-- ΑΦΜ MOD 100000000
Ψ2 <-- ΑΦΜ DIV 10000000
ΑΦΜ <-- ΑΦΜ MOD 10000000
Ψ3 <-- ΑΦΜ DIV 1000000
ΑΦΜ <-- ΑΦΜ MOD 1000000
Ψ4 <-- ΑΦΜ DIV 100000
ΑΦΜ <-- ΑΦΜ MOD 100000
Ψ5 <-- ΑΦΜ DIV 10000
ΑΦΜ <-- ΑΦΜ MOD 10000
Ψ6 <-- ΑΦΜ DIV 1000
ΑΦΜ <-- ΑΦΜ MOD 1000
Ψ7 <-- ΑΦΜ DIV 100
ΑΦΜ <-- ΑΦΜ MOD 100
Ψ8 <-- ΑΦΜ DIV 10
ΑΦΜ <-- ΑΦΜ MOD 10
Ψ9 <-- ΑΦΜ
! Υπολογισμοί
ΑΘΡΟΙΣΜΑ <-- 256*Ψ1+128*Ψ2 +64*Ψ3 + 32*Ψ4 + 16*Ψ5 + 8*Ψ6 +4*Ψ7 + 2*Ψ8
ΥΠΟΛΟΙΠΟ <-- ΑΘΡΟΙΣΜΑ MOD 11
ΑΝ ΥΠΟΛΟΙΠΟ =10 ΤΟΤΕ
ΥΠΟΛΟΙΠΟ <-- 0
ΤΕΛΟΣ_ΑΝ
! Έλεγχος εγκυρότητας
ΑΝ ΥΠΟΛΟΙΠΟ = Ψ9 ΤΟΤΕ
ΓΡΑΨΕ 'Έγκυρος'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Άκυρος'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Έλεγχος_εγκυρότητας_ΑΦΜ