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

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

21.12.2022, 13:49. Показов 673. Ответов 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__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
21.12.2022, 18:57
X GOOD, забей в гугл такое "шифр кардано python" или "cardan grille python"
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru