المسارات
/
C++
C++
/
التمارين
/
شيفرة السياج
شيفرة السياج

شيفرة السياج

متوسط

التعليمات

نفّذ الترميز وفك الترميز لشيفرة السياج.

شيفرة السياج شكل من أشكال شيفرات النقل، وقد اكتسبت اسمها من الطريقة التي تُرمَّز بها. وقد استخدمها الإغريق القدماء بالفعل.

في شيفرة السياج، تُكتب الرسالة نزولًا على "قضبان" متتالية لسياج تخيلي، ثم تتحرك صعودًا عند الوصول إلى القاع (على شكل خط متعرج). وفي النهاية تُقرأ الرسالة في صفوف.

على سبيل المثال، باستخدام ثلاثة "قضبان" والرسالة "WE ARE DISCOVERED FLEE AT ONCE"، يكتب المُشفِّر:

W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .

ثم يقرأ:

WECRLTEERDSOEEFEAOCAIVDEN

لفك ترميز رسالة، تأخذ شكل الخط المتعرج وتملأ النص المُشفَّر على طول الصفوف.

? . . . ? . . . ? . . . ? . . . ? . . . ? . . . ?
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

يحتوي الصف الأول على سبع خانات يمكن ملؤها بـ "WECRLTE".

W . . . E . . . C . . . R . . . L . . . T . . . E
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

ثم يأخذ الصف الثاني "ERDSOEEFEAOC".

W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

ليتبقى "AIVDEN" للصف الأخير.

W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .

إذا قرأت الآن على طول شكل الخط المتعرج، يمكنك قراءة الرسالة الأصلية.


المصدر

ويكيبيديايفتح الرابط في نافذة أو علامة تبويب جديدة
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
C++ Exercism

مستعد لبدء شيفرة السياج؟

سجّل في Exercism لتتعلّم وتتقن C++ عبر 19 مفهومًا100 تمرين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.