Sezar usulida shifrlashning kodi
Download 85.1 Kb.
|
include
Sezar usulida shifrlashning kodi #include #include using namespace std; int main()
// Matndagi har bir belgi uchun for (int i = 0; i < text.length(); i++) { // Harf (hujjat) nomini aniqlang char c = text[i]; // Harfni alfavitdagi tartib raqamiga aylantiring if (isupper(c)) c = ((c + key - 65) % 26) + 65; else if (islower(c)) c = ((c + key - 97) % 26) + 97; cout << c; } return 0; } Dasturga sharx getline(cin, text) satrida, cin obyekti yordamida foydalanuvchi kiritgan matn (satr) text o'zgaruvchiga yoziladi. getline() funksiyasi foydalanuvchining kiritgan matnni qabul qiladi va kiritilgan matning oxiriga yetguncha (enter tugmasini bosguncha) kutishni to'xtatadi. Shunda kiritilgan matn text o'zgaruvchiga yoziladi. text.length() usuli, text o'zgaruvchisida saqlangan matnning uzunligini hisoblash uchun ishlatiladi. Bu usul sizga matndagi belgilar sonini olish imkonini beradi. Yuqoridagi koddagi for tsikli matndagi har bir belgi uchun takrorlanadi. i o'zgaruvchisi 0 dan boshlab text o'zgaruvchisining uzunligi qadar takrorlanadi. Her bir marta tsiklda, text[i] ifodasi orqali matndagi harfni aniqlaymiz. text[i] ifodasi o'zgaruvchining i-chi indeksdagi belgisini qaytaradi. text.length() esa matndagi belgilar sonini qaytaradi. Misol uchun, agar siz "hello" matnini o'zgaruvchiga o'rnatsangiz, text.length() 5 ni qaytaradi. Dasturda harflar ASCII kodlari sifatida ifodalanadi. ASCII kodlari - bu belgilarni raqamlar sifatida ko'rsatish uchun standart kodlar to'plami. ASCIIda A dan Z gacha bo'lgan bosh harflar 65 dan 90 gacha kodlar bilan, a dan z gacha bo'lgan kichik harflar esa 97 dan 122 gacha kodlar bilan ifodalanadi. Dasturda kalit harflarning o'rnini o'zgartirish uchun ishlatiladi. O'zgartirish har bir harfning ASCII kodiga kalit qiymatini qo'shish orqali amalga oshiriladi. Misol uchun, agar kalit 3 bo'lsa va harf ASCII kodiga ega bo'lgan "A" bo'lsa, yangi ASCII kodi 68 (65 + 3) bo'ladi. Yangi belgi ASCII kodi 68, ya'ni "D" harfi bilan ifodalangan belgi bo'ladi. Dastur yangi ASCII kodi harflarni ifodalovchi qiymatlar diapazonidan oshib ketadigan holatlarni ko'rib chiqish uchun modul operatoridan (%) foydalanadi (ya'ni, katta harflar uchun 65 dan 90 gacha va kichik harflar uchun 97 dan 122 gacha). Dastur shuningdek, mos ravishda isupper() va islower() funksiyalari yordamida har bir belgi katta yoki kichik harf ekanligini tekshiradi. Agar belgi katta bo'lsa, dastur katta harflar uchun ASCII kodiga o'tishni qo'llaydi (65 dan 90 gacha). Agar belgi kichik bo'lsa, Download 85.1 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling