Ένα σύστημα υπολογιστή χρησιμοποιεί για τον έλεγχο πρόσβασης των χρηστών του έναν πίνακα 1000 γραμμών και 3 στηλών με τα στοιχεία τους. Σε κάθε γραμμή του αποθηκεύει, στην πρώτη στήλη το όνομα πρόσβασης του χρήστη, στη δεύτερη στήλη το συνθηματικό του και στην τρίτη έναν από τους χαρακτήρες «Σ» ή «Α». (Ο χαρακτήρας «Σ» δηλώνει ότι το συνθηματικό συνεχίζει να ισχύει, ενώ ο χαρακτήρας «Α» δηλώνει ότι το συνθηματικό πρέπει να αλλάξει).

Θεωρήστε ότι υπάρχει ένα κύριο πρόγραμμα που υλοποιεί τα παραπάνω και καλεί τη διαδικασία ΕΛΕΓΧΟΣ η οποία ελέγχει την πρόσβαση του χρήστη στο σύστημα. Να γράψετε τη διαδικασία ΕΛΕΓΧΟΣ η οποία να περιλαμβάνει:

Γ1. Τμήμα δηλώσεων.

Μονάδες 2

Κύριο τμήμα το οποίο:

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

Μονάδες 8

Γ3. Μετά την εμφάνιση του μηνύματος «ΚΑΛΩΣ ΗΡΘΑΤΕ» ελέγχει αν το συνθηματικό χρειάζεται αλλαγή. Αν χρειάζεται, ζητά από τον χρήστη την εισαγωγή νέου συνθηματικού δύο φορές (η δεύτερη ως επιβεβαίωση) μέχρις ότου το συνθηματικό και η επιβεβαίωσή του ταυτιστούν. Όταν ταυτιστούν, η διαδικασία αντικαθιστά το παλιό συνθηματικό με το νέο και τον αντίστοιχο χαρακτήρα «Α» της τρίτης στήλης με το «Σ».

Μονάδες 10

Τα θέματα σε pdf, 2010, Επαναληπτικές, Ημερήσια

ΛΥΣΗ

ΘΕΜΑ_Γ_2010_ΕΠΑΝ_ΗΜΕΡ [δεδομένα_για_20_εγγραφές]

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ_2010_ΕΠΑΝ_ΗΜΕΡ
ΣΤΑΘΕΡΕΣ
  ΕΓΓΡΑΦΕΣ=20   ! 20 Εγγραφές για τα demo δεδομένα, 1000 για την άσκηση
                ! Η σταθερά ΕΓΓΡΑΦΕΣ δηλώνεται και στο υποπρόγραμμα.
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i
  ΧΑΡΑΚΤΗΡΕΣ: x[ΕΓΓΡΑΦΕΣ,3]
ΑΡΧΗ
! Εισαγωγή δεδομένων για την εκτέλεση του προγράμματος στη ΓλωσσοΜάθεια
  !Ονόματα
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ ΕΓΓΡΑΦΕΣ
    ΔΙΑΒΑΣΕ x[i,1]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  !Συνθηματικά
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ ΕΓΓΡΑΦΕΣ
    ΔΙΑΒΑΣΕ x[i,2]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  !Α ή Σ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ ΕΓΓΡΑΦΕΣ
    ΔΙΑΒΑΣΕ x[i,3]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ(x)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΛΕΓΧΟΣ(Χ)
ΣΤΑΘΕΡΕΣ
  ΕΓΓΡΑΦΕΣ=20
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: Χ[ΕΓΓΡΑΦΕΣ, 3], ΟΝ, ΣΥΝΘ, Νέο1, Νέο2
  ΑΚΕΡΑΙΕΣ: εγγραφή, i
  ΛΟΓΙΚΕΣ: βρέθηκε
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ ΟΝ
    ΔΙΑΒΑΣΕ ΣΥΝΘ
    βρέθηκε <-- ΨΕΥΔΗΣ
    i <-- 1
    ΟΣΟ (i <= ΕΓΓΡΑΦΕΣ) ΚΑΙ (βρέθηκε = ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ
      ΑΝ (Χ[i, 1] = ΟΝ) ΚΑΙ (Χ[i, 2] = ΣΥΝΘ) ΤΟΤΕ
        βρέθηκε <-- ΑΛΗΘΗΣ
        εγγραφή <-- i
      ΑΛΛΙΩΣ
        i <-- i+1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ βρέθηκε = ΨΕΥΔΗΣ ΤΟΤΕ
      ΓΡΑΨΕ 'ΛΑΘΟΣ ΟΝΟΜΑ ΠΡΟΣΒΑΣΗΣ Ή ΣΥΝΘΗΜΑΤΙΚΟ'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ βρέθηκε = ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΚΑΛΩΣ ΗΡΘΑΤΕ'
  ΑΝ Χ[εγγραφή, 3] = 'Α' ΤΟΤΕ
    ΓΡΑΨΕ 'ο κωδικός σας έχει λήξει'
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'πληκτρολογήστε νέο κωδικό'
      ΔΙΑΒΑΣΕ Νέο1
      ΓΡΑΨΕ 'πληκτρολογήστε ξανά τον κωδικό'
      ΔΙΑΒΑΣΕ Νέο2
    ΜΕΧΡΙΣ_ΟΤΟΥ Νέο1 = Νέο2
    Χ[εγγραφή, 2] <-- Νέο1
    Χ[εγγραφή, 3] <-- 'Σ'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ