Sezar usulida shifrlashning kodi


Download 85.1 Kb.
Sana21.04.2023
Hajmi85.1 Kb.
#1374308
Bog'liq
include


Sezar usulida shifrlashning kodi

#include


#include

using namespace std;

int main()
{
string text;
int key;
cout << "Matn kiriting: ";
getline(cin, text);
cout << "Kalit kiriting (0-25): ";
cin >> key;

// 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'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling