Форум программистов, компьютерный форум CyberForum.ru

Расшифровка/зашифровка Решётка Кардано - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем разница. http://www.cyberforum.ru/cpp-beginners/thread66510.html
Извиняюсь за тупой вопрос, но в чем разница. оператора ++ к примеру. a=b++ и a=++b ?
C++ перестановка строк в матрице С++ Дана целочисленная матрица размера 6х9. Найти матрицу, получающуюся из данной: перестановкой строк первой с последней, второй с предпоследней и т.д. http://www.cyberforum.ru/cpp-beginners/thread66505.html
Сортировка векторов со строковыми переменными C++
День добрый. У меня возник вопрос, возможно ли сделать сортировку строковых переменных в массиве не в алфавитном порядке, а в заданном ранее? Да, и ещё, какие самые эффективные структуры данных для хранения хранения векторов. Я начал делать с массивами, но не поспешил ли я?
Отображение данных C++
Привет всем! Каким образом можно вывести таблицу, чтобы последовательный вывод информации выполнялся в определенной части строки? Как в этом случае сдвинуть курсор на n-ое количество символов? Наглядный пример: _____________________________________________________________ |№№|Name |Tag 1 |Tag 2 | |__|__________________________________________|______|______| |0...
C++ Не могу понять почему не работает (или правильно не работает) http://www.cyberforum.ru/cpp-beginners/thread66441.html
#include <iostream.h> #include <conio.h> #define N 5 #define M 3 void main() { int a; int i,j; cout<<"nachalnya matricha:"<<endl;
C++ конструктор копии и операторы list::list(list const& l) { l.H(); if (l.head==NULL) {head=present=NULL; return;} head=present=new element(l.head); while(l.present->next) { l.Next(); present->next = new element(l.present->number); Next(); подробнее

Показать сообщение отдельно
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
24.11.2009, 16:47     Расшифровка/зашифровка Решётка Кардано
Строим двумерную матрицу произвольного размера NxN.
Матрица состоит из -1.
На местах куда будем писать буквы пишем номера 0, 1, 2, 3, 4, ..., M-1 (всего M).
Это будет матрица - шаблон.
Это примерное такая же матрица как у тебя, только мы еще укажем номера для дырок.

Строим еще матрицу с текстом сообщения.

Бежим по матрицы шаблону - ищем 0.
Находим где находится 0, и пишем первую букву сообщения в соответствующее место в матрице с текстом.

Потом опять бежим по шаблону - ищем 1.
Пишем вторую букву.

И так далее.
Записали M/4 букв.

Далее делаем поворот на 90 матрицы-шаблона.
Для этого пишем отдельную функцию.

И опять ищем 0 в матрице шаблоне.
Пишем следующую букву.
И так далее.

Вообщем через 3 поворота мы запишем все сообщение.

Можно написать более быстрый алгоритм, но этот хоть и тормозной, зато наглядный


Как повернуть матрицу.
Самый просто способ - завести еще одну матрицу, а не пытатья повернуть на месте.
А далее тупо - берем каждую ячейку и находим куда она попадет после поворота.
 
Текущее время: 07:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru