e-ΜΑΘΗΜΑΤΑ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό περιβάλλον

Λύσεις ασκήσεων από θέματα Πανελλαδικών εξετάσεων


Αλγόριθμος κρυπτογράφηση
!Ε2012-Γ
! H κρυπτογράφηση χρησιμοποιείται για την προστασία των μεταδιδομένων πληροφοριών.
! Ένας απλός αλγόριθμος κρυπτογράφησης χρησιμοποιεί την αντιστοίχιση κάθε γράμματος
! ενός κειμένου σε ένα άλλο γράμμα της αλφαβήτου.
!
! Για το σκοπό αυτό δίνεται πίνακας ΑΒ[2,24], ο οποίος στην πρώτη γραμμή του περιέχει σε
! αλφαβητική σειρά τους χαρακτήρες από το Α έως και το Ω.
! Στη δεύτερη γραμμή του βρίσκονται οι ίδιοι χαρακτήρες, αλλά με διαφορετική σειρά.
! Κάθε χαρακτήρας της πρώτης γραμμής κρυπτογραφείται στον αντίστοιχο χαρακτήρα
! της δεύτερης γραμμής, που βρίσκεται στην ίδια στήλη.
!
! Επίσης, δίνεται πίνακας ΚΕΙΜ[500], ο οποίος περιέχει αποθηκευμένο με κεφαλαία
! ελληνικά γράμματα το προς κρυπτογράφηση κείμενο.
! Κάθε χαρακτήρας του κειμένου βρίσκεται σε ένα κελί του πίνακα ΚΕΙΜ[500].
! Οι λέξεις του κειμένου χωρίζονται με έναν χαρακτήρα κενό (΄ ΄),
! ενώ στο τέλος του κειμένου μπορεί να υπάρχουν χαρακτήρες κενό (΄ ΄),
! μέχρι να συμπληρωθεί ο πίνακας.
!
! Να αναπτύξετε αλγόριθμο ο οποίος:
! Γ1. Να εμφανίζει το πλήθος των χαρακτήρων κενό (΄ ΄), που υπάρχουν μετά το
! τέλος του κειμένου στον πίνακα ΚΕΙΜ[500]. Αν δεν υπάρχει χαρακτήρας κενό
! μετά τον τελευταίο χαρακτήρα του μη κρυπτογραφημένου κειμένου,
! τότε να εμφανίζεται το μήνυμα: «Το μήκος του κειμένου είναι 500 χαρακτήρες».
! Θεωρήστε ότι ο πίνακας ΚΕΙΜ[500] περιέχει τουλάχιστον μία λέξη.
! Γ2. Να κρυπτογραφεί τους χαρακτήρες του πίνακα ΚΕΙΜ[500] στον πίνακα ΚΡΥΠ[500],
! με βάση τον πίνακα ΑΒ[2,24]. Η κρυπτογράφηση να τερματίζεται με το τέλος του κειμένου.
! Δίνεται ότι κάθε χαρακτήρας κενό, που υπάρχει στον πίνακα ΚΕΙΜ[500],
! παραμένει χαρακτήρας κενό στον πίνακα ΚΡΥΠ[500].
! Γ3. Να εμφανίζει το πλήθος των λέξεων του κειμένου, καθώς και το πλήθος
! των χαρακτήρων που έχει η μεγαλύτερη λέξη του κειμένου στον πίνακα ΚΡΥΠ[500].
! Θεωρήστε ότι η μεγαλύτερη λέξη είναι μοναδική.

Δεδομένα // ΑΒ, ΚΕΙΜ // 
Ν <- 500         


! Γ1
i <- Ν
πλήθος_κενών_τέλους <- 0
Όσο (ΚΕΙΜ[i] = " ") και (i > 0) επανάλαβε
  i <- i - 1
  πλήθος_κενών_τέλους <- πλήθος_κενών_τέλους + 1
Τέλος_επανάληψης
Αν πλήθος_κενών_τέλους = 0 τότε
  Εμφάνισε "Το μήκος του κειμένου είναι 500 χαρακτήρες"
αλλιώς
  Εμφάνισε "Πλήθος των κενών χαρακτήρων στο τέλος του κειμένου ", πλήθος_κενών_τέλους
Τέλος_αν



! Γ2
Για i από 1 μέχρι Ν
  ΚΡΥΠ[i] <- " "
Τέλος_επανάληψης

Για i από 1 μέχρι Ν - πλήθος_κενών_τέλους
  Αν ΚΕΙΜ[i] = " " τότε
    ΚΡΥΠ[i] <- " "
  αλλιώς
    j <- 1
    βρέθηκε <- Ψευδής
    Όσο βρέθηκε = Ψευδής και j  24 επανάλαβε
      Αν ΚΕΙΜ[i] = ΑΒ[1, j] τότε
        ΚΡΥΠ[i] <- ΑΒ[2, j] 
        βρέθηκε <- Αληθής
      Τέλος_αν
      j <- j + 1
    Τέλος_επανάληψης
    Αν βρέθηκε = Ψευδής τότε
                                  ! " " ή κάποιος χαρακτήρας όχι κωδικοποιημένος
      ΚΡΥΠ[i] <- ΚΕΙΜ[i] 
    Τέλος_αν
  Τέλος_αν
Τέλος_επανάληψης

! Γ3. Να εμφανίζει το πλήθος των λέξεων του κειμένου, καθώς και το πλήθος
! των χαρακτήρων που έχει η μεγαλύτερη λέξη του κειμένου στον πίνακα ΚΡΥΠ[500].
! Θεωρήστε ότι η μεγαλύτερη λέξη είναι μοναδική.
! Οι λέξεις του κειμένου χωρίζονται με έναν χαρακτήρα κενό (΄ ΄),
πλήθος_λέξεων <- 0
i <- 0
μήκος_λέξης <- 0
μέγιστο_μήκος <- 0
Όσο i < Ν - πλήθος_κενών_τέλους επανάλαβε
  i <- i + 1
  Αν (ΚΕΙΜ[i] = " ") ή (i = Ν - πλήθος_κενών_τέλους) τότε
! Σε κάθε κενό (εκτός αν είναι στην αρχή) αρχίζει νέα λέξη
    Αν μήκος_λέξης > 0 τότε
      πλήθος_λέξεων <- πλήθος_λέξεων + 1
    Τέλος_αν
! Αν τέλος κειμένου
    Αν (i = Ν - πλήθος_κενών_τέλους) τότε
      μήκος_λέξης <- μήκος_λέξης + 1
    Τέλος_αν

! Έλεγχος μέγιστης λέξης
    Αν μήκος_λέξης > μέγιστο_μήκος τότε
      μέγιστο_μήκος <- μήκος_λέξης
    Τέλος_αν
    μήκος_λέξης <- 0
  αλλιώς
    μήκος_λέξης <- μήκος_λέξης + 1
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε "Πλήθος των λέξεων του κειμένου : ", πλήθος_λέξεων
Εμφάνισε "Πλήθος χαρακτήρων μεγαλύτερης λέξης : ", μέγιστο_μήκος

Τέλος κρυπτογράφηση

 

Κεντρική Σελίδα Αλλα e-μαθήματα ΑΕΠΠ Αλλη άσκησηΕπιστροφή στην κορυφή της σελίδας
© 2013,14 - 2ο Γενικό Λύκειο Γέρακα - Βασίλειος Αναστόπουλος