Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/64: Рейтинг темы: голосов - 64, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 5

Шифровать методом Магического квадрата (размер квадрата 9х9) С++

17.10.2012, 22:58. Показов 12305. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Шифровать методом Магического квадрата (размер квадрата 9х9) С++
Дана таблица 9х9. Надо реализовать программу на С++ шифрующий/дешифрующий вводимый текст методом Магического квадрата.
Откликнитесь...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <conio.h>
#include "string.h"
using namespace std;
 
int main(){
setlocale(0,"RUS");
 
//int m,j;
char t[82],t2[82];
//string t2;
 
int a[81]={
          37,78,29,70,21,62,13,54,5,
          6,38,79,30,71,22,63,14,16,
          47,7,39,80,31,72,23,55,15,
          16,48,8,40,81,32,54,24,56,
          57,17,49,9,41,73,33,65,25,
          26,58,18,50,1,42,74,34,66,
          67,27,59,10,51,2,43,75,35,
          36,68,19,60,11,52,3,44,76,
          77,28,69,20,61,12,53,4,45};
    
cout<<"text: ";
cin>>t;
 
//if (strlen(t)<82) { for(int i=strlen(t);i<82;i++) t=t+'*'; }
 
int i,k;
for (i=0; i<81; i++)
{   
for (k=0; k<t[i]!='\0'; k++)
    {
    if (k==a[i]){
    t2[k]=t[k];}
    else { t2[k]='*'; } 
    } 
}
 
cout<<"text2: "<<t2;
getch();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2012, 22:58
Ответы с готовыми решениями:

Заполнение магического квадрата методом коня
Пробую написать программу для заполнения магического квадрата методом коня, программа компилируется, но при выполнении возникает ошибка...

Генерация магического квадрата
Написать программу, генерирующую магические квадраты заданного пользователем размера.

Построение магического квадрата
Помогите построить магический квадрат (магическим квадратом n-ого порядка называется квадрат размерами nxn со вписанными в него...

5
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 5
22.10.2012, 10:52  [ТС]
?????
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
22.10.2012, 11:20
Добавлено через 1 минуту
если что непоянтно могу схемотично пояснить

Добавлено через 1 минуту

Не по теме:

пля чтото какуюто хрень сделаи с редактированием



Добавлено через 1 минуту
Собственно вам бы не помешало бы сначала алгоритм почитать =)
я думаю следует написать одномерный массив из структуры. в самой структуре будет содержаться значение из вашего квадрата и положение его в вашем квадрате. Далее следует отсортировать этот массив по значению. И потом когда вы шифруете, находите значение символа находящимся на i,j и ставите его на место i,j уже следующей ячейки массива структуры. соответственно при дешифровании следует ставить координаты из предыдущей ячейки массива
Добавлено через 1 минуту
если что непоянтно могу схемотично пояснить

Добавлено через 6 минут
чепуху написал!!!
при считывании iго элемента из строки, смотрите в вашем весторе а значение которое соответствует iму элементу и вставляете iй элемент из строки на "векторную" позицию в новую строку

при дешифрации наоборот смотрите какому iму значению соответствует векторное значение и вставляете в iю позицию
0
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 5
22.10.2012, 12:07  [ТС]
Цитата Сообщение от MrGrig Посмотреть сообщение
если что непоянтно могу схемотично пояснить
да хочу ))

а алгоритм прочитал. Исходный текст индексируется по символно, если индекс символа равен значению iий ячейки матрицы, то символ пишется в эту ячейку новой матрицы, пустые ячейки заполняются '*'.
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
22.10.2012, 12:57
допустим есть вектор нашего волшебного квадрата, повторяю, допустим он такой
kv=[2,4,1,3]
у нас есть слово СЛОН
соовтветственно в векторе он выглядит так
2 4 1 3
с л о н
теперь меняем значения чтобы сортировка была через вектор
1 2 3 4
о с н л
далее у нас есть зашифрованое слово
хмау
в дешифрованом векторе это слово выглядит так
1 2 3 4
х м а у
меняем местами значения вектора чтобы они подходили под наш квадрат
2 4 1 3
м у х а

Добавлено через 21 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string shifr(int vektor[], string str){
    char* str1 = new char[82];
    for(int i=0;i<str.size();i++)
        str1[i]=str[vektor[i-1]];
    str1[str.size()]='\n';
    return str1;
}
string deshifr(int devektor[], string str){
    char* str1 = new char[82];
    for(int i=0;i<str.size();i++)
        str1[i]=str[devektor[i-1]];
    str1[str.size()]='\n';
    return str1;
}
Добавлено через 17 секунд
как-то так наверное
1
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 5
23.10.2012, 20:42  [ТС]
Не совсем так.

Пример:
Текст: СЛОН
матрица:
37,78,29,70,21,62,13,54,5,
6,38,79,30,71,22,63,14,16,
47,7,39,80,31,72,23,55,15,
16,48,8,40,81,32,54,24,56,
57,17,49,9,41,73,33,65,25,
26,58,18,50,1,42,74,34,66,
67,27,59,10,51,2,43,75,35,
36,68,19,60,11,52,3,44,76,
77,28,69,20,61,12,53,4,45

индексируем С=1, Л=2, О=3, Н=4.
находим 1 из матрицы:
матрица[6][5]=1 и т.д. вместо значение м[6][5] вcтавляем букву 'С'.
после расставления всех букв по матрице пишем матрицу с первого элемента до последнего.
где нет букв заполняем звездочкей '*'.

матрица после расстановки:
*********
*********
*********
*********
*********
****C****
*****Л***
******О**
*******Н*

шифрованный текст: **************************************** *********C*********Л*********О*********Н *

Вот это я пытаюсь сделать..!!!

Добавлено через 32 секунды
Не совсем так.

Пример:
Текст: СЛОН
матрица:
37,78,29,70,21,62,13,54,5,
6,38,79,30,71,22,63,14,16,
47,7,39,80,31,72,23,55,15,
16,48,8,40,81,32,54,24,56,
57,17,49,9,41,73,33,65,25,
26,58,18,50,1,42,74,34,66,
67,27,59,10,51,2,43,75,35,
36,68,19,60,11,52,3,44,76,
77,28,69,20,61,12,53,4,45

индексируем С=1, Л=2, О=3, Н=4.
находим 1 из матрицы:
матрица[6][5]=1 и т.д. вместо значение м[6][5] вcтавляем букву 'С'.
после расставления всех букв по матрице пишем матрицу с первого элемента до последнего.
где нет букв заполняем звездочкей '*'.

матрица после расстановки:
*********
*********
*********
*********
*********
****C****
*****Л***
******О**
*******Н*

шифрованный текст: **************************************** *********C*********Л*********О*********Н *

Вот это я пытаюсь сделать..!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2012, 20:42
Помогаю со студенческими работами здесь

Шифрование текста с применением магического квадрата
Задание: Магический квадрат. 11 8 5 10 2 13 16 3 14 1 4 15 7 12 9 6 Алгоритм:

Доработать код для магического квадрата
Вот задание дали для допуска на экзамен. 3. Магическим квадратом порядка n называется квадратная таблица размером n x n, состоящая из...

Найти ошибку в коде определения магического квадрата
Интересуют последние строки, при введении массива n=1, т.е. все будет равно и по условию должен быть магический квадрат, выводит, что он НЕ...

Площадь квадрата равна S. Вычислить сторону квадрата а, диагональ d и площадь S1 описанного около этого квадрата круга
Напишите код в C++ Пожалуйста :confusion:

Шифрование методом магического квадрата
Ребят, помогите правильно написать код... я нашёл в интернете шифрование методом магического квадрата. Программа работает так: вводим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru