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

Много ошибок в коде, код переделан с с++, но python я совсем не знаю

21.12.2022, 13:49. Показов 701. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажу сразу что в питоне ничего не смыслю. У меня была задача реализовать вот это на python:

Шифровка текста с помощью решётки заключается в следующем. Решётка, т.е. квадрат из клетчатой бумаги 10х10 клеток, некоторые клетки в котором вырезаны, совмещается с целым квадратом 10х10 клеток и через прорези на бумагу наносятся первые буквы текста. Затем поворачивается на 90 градусов и через прорези записываются следующие буквы. Это повторяется ещё дважды. Таким образом на бумагу наноситься 100 букв текста. Решётку можно изображать квадратной матрицей порядка 10 из нулей и единиц (ноль изображает прорезь). Даны последовательность из 100 букв и матрица ключ.
1)Зашифровать
2)Расшифровать.

Был найден готовый код на с++(ниже прикреплю), увы но за короткий срок мне не удалось выучить до конца синтаксис питона и все его процессы и пришел сюда попросить помощь)))
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
43
44
45
46
47
48
49
#include <iostream> 
#include <ctime> 
using namespace std;
void rot(int** x, int M)
{
int a, b, c;
for (a = 0; a - M / 2; a++) for (b = 0; b - M / 2 - (M & 1); b++)
c = x[a][b], x[a][b] = x[b][M - 1 - a], x[b][M - 1 - a] = x[M - 1 - a][M - 1 - b], x[M - 1 - a][M - 1 - b] = x[M - 1 - b][a], x[M - 1 - b][a] = c;
}
int main()
{
 
int j, k, l, M;
int N = 10;
M = N / 2;
char* in = new char[N * N + 1];
char* ou = new char[N * N + 1];
for (j = 0; j - N * N; in[j++] = 0x30 + j);
in[N * N] = 0;
cout << "text:\n" << in << endl << endl;
int* A = new int[M * M];
int** a = new int* [M]; 
for (j = 0; j - M; j++) a[j] = &A[j * M];
int* R = new int[M * M];
int** r = new int* [M];
for (j = 0; j - M; j++) r[j] = &R[j * M];
char* S = new char[N * N];
char** s = new char* [N];
for (j = 0; j - N; j++) s[j] = &S[j * N];
int* U = new int[N * N];
int** u = new int* [N];
for (j = 0; j - N; j++) u[j] = &U[j * N];
for (j = 0; j - M * M;
R[j] = rand() % 4, A[j++] = -1);
for (j = 0; j - M * M;
A[k] = j++) for (;
A[k = rand() % (M * M)] >= 0;);
for (l = 0; l - 4; l++, rot(r, M)) for (j = 0; j - M; j++) for (k = 0; k - M; k++) u[!!(l % 3) * N / 2 + j][!!(l & 2) * (N / 2) + k] = !(r[j][k] == l);
cout << "mask:" << endl;
for (j = 0; j - N; j++, cout << endl) for (k = 0; k - N; k++) cout << u[j][k]; cout << endl;
cout << "encryption:" << endl;
for (k = l = 0; l - 4; l++, rot(u, N)) for (j = 0; j - N * N; j++) if (!U[j]) S[j] = in[k++];
for (j = 0; j - N; j++, cout << endl) for (k = 0; k - N; k++) cout << s[j][k]; cout << endl;
cout << "decryption:" << endl;
for (k = l = 0; l - 4; l++, rot(u, N)) for (j = 0; j - N * N; j++) if (!U[j]) ou[k++] = S[j]; ou[N * N] = 0;
cout << ou << endl;
delete[] A, a, R, r, S, s, U, u, in, ou;
return 0;
}
вот код на питоне, слишко все не правильно и много ошибок
Python
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
43
44
45
46
47
48
49
50
def rot ( int** x, int M) :
 int a, b, c;
for (a = 0; a - M / 2; a++) for (b = 0; b - M / 2 - (M & 1); b++)
c = x[a][b], x[a][b] = x[b][M - 1 - a], x[b][M - 1 - a] = x[M - 1 - a][M - 1 - b], x[M - 1 - a][M - 1 - b] = x[M - 1 - b][a], x[M - 1 - b][a] = c;
 
 
   j, k, l, M 
   N = 10
   M = N / 2
 
   char* in = new char[N * N + 1]
   char* ou = new char[N * N + 1]
   for (j = 0; j - N * N; in[j++] = 0x30 + j)
   in [N * N] = 0
 
   print ("text:") 
   print in
 
    int* A = new int[M * M]
int** a = new int* [M]
for (j = 0; j - M; j++) a[j] = &A[j * M]
int* R = new int[M * M]
int** r = new int* [M]
for (j = 0; j - M; j++) r[j] = &R[j * M]
char* S = new char[N * N]
char** s = new char* [N]
for (j = 0; j - N; j++) s[j] = &S[j * N]
int* U = new int[N * N]
int** u = new int* [N]
for (j = 0; j - N; j++) u[j] = &U[j * N]
for (j = 0; j - M * M
R[j] = rand() % 4, A[j++] = -1)
for (j = 0; j - M * M
A[k] = j++) for (
A[k = rand() % (M * M)] >= 0)
for (l = 0; l - 4; l++, rot(r, M)) for (j = 0; j - M; j++) for (k = 0; k - M; k++) u[!!(l % 3) * N / 2 + j][!!(l & 2) * (N / 2) + k] = !(r[j][k] == l);
 
    print ("mask:")
for (j = 0; j - N; j++, cout << endl) for (k = 0; k - N; k++) 
    print  u[j][k]; 
 
    print ("encryption:")
for (k = l = 0; l - 4; l++, rot(u, N)) for (j = 0; j - N * N; j++) if (!U[j]) S[j] = in[k++];
for (j = 0; j - N; j++, cout << endl) for (k = 0; k - N; k++) 
    print s[j][k];
    print ("decryption:")
for (k = l = 0; l - 4; l++, rot(u, N)) for (j = 0; j - N * N; j++) if (!U[j]) ou[k++] = S[j]; ou[N * N] = 0;
 
    print ou
delete[] A, a, R, r, S, s, U, u, in, ou;
Буду признателен за любую помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2022, 13:49
Ответы с готовыми решениями:

Много ошибок и не знаю , как исправить
Вот они &lt; для вложений используйте встроенные возможности форума /&gt; , а вот сам код программы. Объясните в чём проблема и , как её...

много ошибок в коде
Помогите с кодом. много ошибок. Rashet.cpp #include &quot;Raschet.h&quot; //============= ïàðàìåòðû ñõåìû ðàñ÷åòà ======================= ...

Много ошибок в коде
Подскажите как исправить код. Ошибки в 21ой строке. using System; using System.Collections.Generic; using System.Linq; using...

2
 Аватар для Aviz__
2757 / 2064 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
21.12.2022, 18:57
X GOOD, забей в гугл такое "шифр кардано python" или "cardan grille python"
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
21.12.2022, 19:02
Цитата Сообщение от X GOOD Посмотреть сообщение
слишко все не правильно
ключевое слово ВСЕ. начина с того что в питоне тип переменных задается динамически в зависимости от введенного значения, цикл пишется совсем по другому. вообщем полный бред. но это пол беды. судя по условию
Цитата Сообщение от X GOOD Посмотреть сообщение
Даны последовательность из 100 букв
то есть что бы зашифровать 100 букв матрица должна состоять из одних 0 потому как матрица 10Х10 имеет 100 элементов а если рандомно создать то при повороте какой либо из 0 прорезь будет накладываться на существующею букву.как тогда поступать?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2022, 19:02
Помогаю со студенческими работами здесь

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

Я знаю код на С++ но мне нужен на Питоне. не знаю синтаксис Python
Вам задан неориентированный граф с N вершинами и М ребрами (1 &lt;= N &lt;= 20000, 1 &lt;= M &lt;= 200 000). В графе отсутствуют петли и кратные ребра....

Очень много ошибок в коде
Помогите пожалуйста исправить ошибки в коде #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; int...

Очень много ошибок в коде
Помогите пожалуйста исправить ошибки: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Сложная задача, много ошибок в коде
Есть задача: код должен подсчитывать произведение минимальных положительных элементов и выводить на экран, Я написал код, но он...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru