Τώρα είναι Πέμ 28 Μαρ 2024 10:07 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Έλεγχος εγκυρότητας ΑΦΜ
ΔημοσίευσηΔημοσιεύτηκε: Σάβ 06 Δεκ 2003 05:34 pm 
Χωρίς σύνδεση

Εγγραφή: Κυρ 30 Νοέμ 2003 07:20 pm
Δημοσιεύσεις: 5
Τοποθεσία: Αθήνα - Κηφισιά
Syntax: [ Download ] [ Hide ]
! ==================================================================================================
! ΑΛΓΟΡΙΘΜΟΣ ΕΛΕΓΧΟΥ ΕΓΚΥΡΟΤΗΤΑΣ Α.Φ.Μ.                                                            =
!                                                                                                  =
! Για να πιστοποιήσουμε αν ένας δοθείς εννεαψήφιος αριθμός μπορεί να είναι έγκυρος Α.Φ.Μ. ή όχι,   =
! εφαρμόζουμε την παρακάτω διαδικασία:                                                             =
! Έστω ότι ο δοθείς αριθμός είναι 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 ΤΟΤΕ
      ΓΡΑΨΕ 'Έγκυρος'
   ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'Άκυρος'
   ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Έλεγχος_εγκυρότητας_ΑΦΜ
 


Εικόνα


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης: Έλεγχος ΑΦΜ
ΔημοσίευσηΔημοσιεύτηκε: Κυρ 14 Δεκ 2003 10:32 pm 
Αγαπητοί συνάδελφοι, θεωρώ οτι η άσκηση 2.3.3.Ασκ4 στην ιστοσελίδα

http://users.kor.sch.gr/ptsiotakis/aepp ... k2_3_3.htm

με προσθήκη ελέγχου για 9 ψηφία αποτελεί καλύτερη λύση για τον έλεγχο ΑΦΜ και με μικρότερη πιθανότητα λάθους (πολλές εντολές div mod)

Με χαρά αναμένω σχόλια για τον δικτυακό κόμβο που έχω δημιουργήσει

Με εκτίμηση, Τσιωτάκης Παναγιώτης - http://users.kor.sch.gr/ptsiotakis


Κορυφή
  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Τρί 23 Δεκ 2003 01:49 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 01 Μάιος 2003 10:25 pm
Δημοσιεύσεις: 38
Τοποθεσία: Καλλιθέα Αττικής
Μπορείς να έχεις δίκιο αλλά η σύνδεση δεν μας το δείχνει :lol:
Δεν λειτουργεί!

_________________
Γλώσσα προγραμματισμού M2000


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Πέμ 01 Ιαν 2004 05:02 pm 
Αυτό το bug σου ξέφυγε Γιώργο ?? :)

Πράγματι η διεύθυνση τροποιήθηκε λίγο για οργανωτικούς λόγους:

http://users.kor.sch.gr/ptsiotakis/aepp ... k2_3_3.htm άσκηση 4

Φυσικά, χρειάζεται πίνακας 9 θέσεων στην προτεινόμενη λύση

Καλή χρονιά σε όλους,
Με εκτίμηση, Τσιωτάκης Παναγιώτης
http://users.kor.sch.gr/ptsiotakis


Κορυφή
  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Προβολές: