Результат виконання програми


Розглянемо ще одну, забавну, задачу розробки «тарабарської грамоти». Це найпростішій шифр, коли алфавіт поділяється на дві частини, і букви з першої частини замінюються буквами із другої.

Для того, щоб алгоритм був застосований для шифровки та розшифровки, будемо робити заміну першої букви тексту на останню, другу – на передостанню і так далі.

Алгоритм оформлений у вигляді функції-підпрограми tarabar з аргументом – рядком text. У вигляді рядка заданий і ключовий константний масив alphabet, що об’єднує латинський і кириличний алфавіти і деякі знаки, у тому числі пробіл,, а також команду переходу на новий рядок. Команда \n, як і \0, сприймаються як один символ (можна записувати в одинарні лапки).

//файл PART3\3_10.ccp

/* Перетворення рядка, передача рядкового масиву у функцію

обробка рядкового масиву */

//ТАРАБАРСЬКА ГРАМОТА

typedef char STRING; //ввід псевдоніму для типу char

#include “c:\CPP\SUBPROG\\roll.h”

#include “c:\CPP\SUBPROG\\roll_txt.h”

void tarabar(STRING text[]); // тарабарська грамота

main () { clrscr();

STRING text[] =

“Humpty Dumpty sat on a wall,

\nHumpty Dumpty had a great fall!

\nШалтай-Болтай сидел на стене,

\nШалтай-Болтай свалился во сне! #$”;

cout<<” вхідний текст\n”<<text;

k=sizeof(text);

cout<<”\nкількість знаків у тексті = ”<<k-1;

tarabara(text);

cout<<”\n зашифрований текст\n”<<text;

tarabara(text);

cout<<”\n розшифрований текст\n”<<text;

cout<<”\n кінець задачі”;

pause(0); return 0; }

void tarabar(STRING text[])

{ //константний масив; всього символів: 0-126, латиниця: 0-51,

//знаки: 52-62, кирилиця: 63-126

const STRING alphabet[]=

“AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz

!?.,*/+-:\АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсЕеУуФф


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: