помогите сделать свою таблицу .Закодировать известие: Носит Сеня в сени сено,спать
Помогите сделать свою таблицу .Закодировать сообщение: Носит Сеня в сени сено,почивать на сене будет Сеня.
Задать свой вопросНе пользуйся одной таблицей, это не неопасно. :) Я рекомендую творить отдельную таблицу для каждой сессии.
Извини, если код будет плохо читаться. Этот веб-сайт не поддерживает табуляцию и не умеет обрабатывать код.
/* only for windows */
include lt;stdio.hgt;
include lt;stdlib.hgt;
include lt;stdbool.hgt;
include lt;string.hgt;
include lt;time.hgt;
include lt;conio.hgt;
include lt;windows.hgt;
define ALPH_SIZE 67
define STR_SIZE_MAX 256
define RANDOM_MIN 33
define RANDOM_MAX 126
int main(void)
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL)); /* for "visible" random */
char str[STR_SIZE_MAX];
printf("Введите строчку: ");
scanf("%[^\n]s", str);
printf("\n");
/* encode only these symbols */
char alph[ALPH_SIZE] = "абвгежзиклмнопрстуфхцчшщъыьэюя" \
"АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ .,!?";
char genAlph[ALPH_SIZE];
int i;
for (i = 0; i lt; ALPH_SIZE; i++)
/* for beauty */
if ((i % 5 == 0) amp;amp; (i != 0))
printf("\n");
genAlph[i] = RANDOM_MIN + rand() % (RANDOM_MAX - RANDOM_MIN + 1);
/* that don't use goto */
if (i gt; 0)
if (genAlph[i - 1] == genAlph[i])
while (genAlph[i - 1] == genAlph[i])
genAlph[i] = RANDOM_MIN + rand() % (RANDOM_MAX - RANDOM_MIN + 1);
SetConsoleTextAttribute(handle, 10 0); /* set symbol color to green */
printf("%c", alph[i]);
SetConsoleTextAttribute(handle, 7 0); /* set symbol color to white */
printf(" = %c; ", genAlph[i]);
printf("\n\n");
char buf[STR_SIZE_MAX] = "";
for (i = 0; i lt; (int) strlen(str); i++)
bool coded = false;
int j;
for (j = 0; j lt; ALPH_SIZE; j++)
if (str[i] == alph[j])
buf[i] = genAlph[j];
coded = true;
if (!coded)
buf[i] = str[i];
printf("Закодированная строчка: %s", buf);
getch();
return 0;
Пример из программки:
Введите строчку: Носит Сеня в сени сено,дремать на сене будет Сеня.
а = ; б = ; в = ; г = 8; д = ^;
е = Q; ж = 6; з = gt;; и = m; к = *;
л = ?; м = V; н = m; о = S; п = ;
р = amp;; с = p; т = S; у = \; ф = ;
х = h; ц = ]; ч = g; ш = n; щ = 0;
ъ = Y; ы = [; ь = i; э = 5; ю = I;
я = u; А = n; Б = \; В = S; Г = _;
Д = k; Е = 5; Ж = ; З = c; И = g;
К = ; Л = lt;; М = /; Н = t; О = 6;
П = t; Р = '; С = i; Т = D; У = E;
Ф = 0; Х = O; Ц = w; Ч = Q; Ш = ';
Щ = 6; Ъ = h; Ы = /; Ь = h; Э = a;
Ю = [; Я = '; = H; . = J; , = w;
! = ; ? = @;
Закодированная строчка: tSpmSHiQmuHHpQmmHpQmSwpSiHmHpQmQH\^QSHiQmuJ
Таблица даётся только на время сессии и утрачивает собственный смысл после окончания программки. :)
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.