ΠΡΟΓΡΑΜΜΑ Crypto
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:i, j, k, AL, AK, Αριθμός_Αρχικής[10], Αριθμός_Κλειδί[10], s, d
ΧΑΡΑΚΤΗΡΕΣ: Αρχική_Λέξη[10], Λέξη_Κλειδί[10], Τελική_Λέξη[10], Γράμμα[24]
ΛΟΓΙΚΕΣ: Check
ΑΡΧΗ
Γράμμα[1] <-- 'Α'
Γράμμα[2] <-- 'Β'
Γράμμα[3] <-- 'Γ'
Γράμμα[4] <-- 'Δ'
Γράμμα[5] <-- 'Ε'
Γράμμα[6] <-- 'Ζ'
Γράμμα[7] <-- 'Η'
Γράμμα[8] <-- 'Θ'
Γράμμα[9] <-- 'Ι'
Γράμμα[10] <-- 'Κ'
Γράμμα[11] <-- 'Λ'
Γράμμα[12] <-- 'Μ'
Γράμμα[13] <-- 'Ν'
Γράμμα[14] <-- 'Ξ'
Γράμμα[15] <-- 'Ο'
Γράμμα[16] <-- 'Π'
Γράμμα[17] <-- 'Ρ'
Γράμμα[18] <-- 'Σ'
Γράμμα[19] <-- 'Τ'
Γράμμα[20] <-- 'Υ'
Γράμμα[21] <-- 'Φ'
Γράμμα[22] <-- 'Χ'
Γράμμα[23] <-- 'Ψ'
Γράμμα[24] <-- 'Ω'
! Λέξη που θα κρυπτογραφηθεί
ΓΡΑΨΕ 'Δώσε τον αριθμό των γραμμάτων που αποτελούν τη λέξη που θέλεις να κρυπτογραφήσεις (έως 10 γράμματα)'
! Δέχεται μέχρι 10 γράμματα
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ AL
ΜΕΧΡΙΣ_ΟΤΟΥ AL<=10
ΓΡΑΨΕ 'Δώσε ένα-ένα τα γράμματα της λέξης (Ελληνικοί κεφαλαίοι χαρακτήρες)'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
Check <-- Ψευδής
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Γράμμα',i
ΔΙΑΒΑΣΕ Αρχική_Λέξη[i]
! Έλεγχος μόνο για κεφαλαίους Ελληνικούς χαρακτήρες
ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αρχική_Λέξη[i]= Γράμμα[k] ΤΟΤΕ
Check <-- Αληθής
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Check=Αληθής
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Μετατροπή των γραμμάτων σε αριθμούς για τη λέξη που θα κρυπτογραφηθεί
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αρχική_Λέξη[i]=Γράμμα[j] ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- j
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Λέξη κλειδί
ΓΡΑΨΕ 'Δώσε τον αριθμό των γραμμάτων που αποτελούν τη λέξη κλειδί (έως 10 γράμματα)'
! Δέχεται μέχρι 10 γράμματα
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ AK
ΜΕΧΡΙΣ_ΟΤΟΥ AK<=10
ΓΡΑΨΕ 'Δώσε ένα-ένα τα γράμματα της λέξης (Ελληνικοί κεφαλαίοι χαρακτήρες)'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AK
Check <-- Ψευδής
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Γράμμα',i
ΔΙΑΒΑΣΕ Λέξη_Κλειδί[i]
! Έλεγχος μόνο για κεφαλαίους Ελληνικούς χαρακτήρες
ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Λέξη_Κλειδί[i]= Γράμμα[k] ΤΟΤΕ
Check <-- Αληθής
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Check=Αληθής
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Μετατροπή των γραμμάτων σε αριθμούς για τη λέξη κλειδί
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AK
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Λέξη_Κλειδί[i]=Γράμμα[j] ΤΟΤΕ
Αριθμός_Κλειδί[i] <-- j
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Κρυπτογράφηση
ΑΝ AL>AK ΤΟΤΕ
! Πόσες φορές θα χρησιμοποιηθεί η λέξη κλειδί
s <-- AL DIV AK
! Πόσα γράμματα περισσεύουν
d <-- AL MOD AK
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ s
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ AK
Αριθμός_Αρχικής[(s+1)*(i-1)+j] <-- Αριθμός_Αρχικής[(s+1)*(i-1)+j] + Αριθμός_Κλειδί[j]
ΑΝ Αριθμός_Αρχικής[(s-1)*(i-1)+j]>24 ΤΟΤΕ
Αριθμός_Αρχικής[(s+1)*(i-1)+j] <-- Αριθμός_Αρχικής[(s+1)*(i-1)+j]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ AL+1-d ΜΕΧΡΙ AL
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i] + Αριθμός_Κλειδί[i-AK*s]
ΑΝ Αριθμός_Αρχικής[i]>24 ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i] + Αριθμός_Κλειδί[i]
ΑΝ Αριθμός_Αρχικής[i]>24 ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Η κρυπτογραφημένη λέξη είναι:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αριθμός_Αρχικής[i]=j ΤΟΤΕ
Αρχική_Λέξη[i] <-- Γράμμα[j]
ΓΡΑΨΕ Αρχική_Λέξη[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ