Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 20.10.2016, 19:29   #1 (permalink)
Smile188
Member
 
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа не работает, исправьте пожалуйста

Программа не работает, помогите исправить

Задача:
открытый текст записывается в матрицу по определенному ключу k1,
определяющему порядок записи открытого текста в строки матрицы при
шифровании. Шифртекст образуется при считывании из этой матрицы по
ключу k2, определяющему, в каком порядке записывается информация из
столбцов матрицы. Для реализации такого варианта перестановки можно не использовать непосредственно матрицу, а осуществлять перерасчет коэф- фициентов.
Код:
var
q, h: array of integer;
 
Text, Text_1, Text_2, text_3, S: String;
 
i, j,  kolsimvolov: integer;
key1: array of Byte;
key2: array of Byte;
p, m,t: Boolean;
r, b: integer;
Textmatr: Array of array of Char;
 
begin
 
 
write('введите кол-во строк в матрице : ');
readln(r);
write('введите кол-во столбцов в матрице : ');
readln(b);
//----
setlength(q, r);
setlength(h, b);
setlength(key1, r);
setlength(key2, b);
setlength(Textmatr, r);
 
 
 repeat
Write('введите текст для кодировки: ');
Readln(Text);
kolsimvolov:=Length(text); 
m:=True;
if kolsimvolov>r*b then
m:=False;
if not(m) then 
writeln('Кол-во символов не должно привышать r*b ');
until m;
If (kolsimvolov div (r*b))<> 1 then
begin
text:=text+' ';
Inc(kolsimvolov);
end;
Repeat 
Writeln('Введите ключ 1 , состоящий из  ',r,' символов, через "Enter"');
for i:=1 to r do
Readln(key1[i]);
p:=true;
for i:=1 to r-1 do
if (key1[i]=key1[i+1]) then
p:=false; 
If Not(p) then
writeln('Все символы должны быть различны!');
Until p;
Repeat 
Writeln('Введите ключ 2, состоящий из ',b,' символов, через "Enter"');
for i:=1 to b do
Readln(key2[i]);
t:=true; 
 
for i:=1 to b-1 do
if (key2[i]=key2[i+1]) then
t:=false; 
If Not(t) then
writeln('Все символы должны быть различны!');
 
Until t; 
Writeln;
//----------------------------------------------------—
For i:=1 to r do
For j:=1 to b do
Textmatr[key1[i],j]:=Text[(i-1)*b+j];
Writeln(' k1\k2 ');
For i:=1 to r do
begin
Write(' ',i,' ');
For j:=1 to b do
write(' ',textmatr[i,j],' ');
Writeln;
end;
//----------------------------------------------------—
Text_1:='';
For j:=1 to b do
for i:=1 to r do
begin
S:=textmatr[i,key2[j]];
Text_1:=Text_1+S;
end;
Writeln('Закодированный текст:',' ',text_1);
//-----------------------------------------------------—
Text_2:='';
For j:=1 to b do
begin
S:=Copy(Text_1,(key2[j]-1)*r+1,r);
Text_2:=Text_2+S;
end;
Text_3:='';
For i:=1 to r do
For j:=1 to b do
begin
S:=Copy(Text_2,(j-1)*r+key1[i],1);
Text_3:=Text_3+S;
end;
Writeln('Раскодированный текст:',' ',Text_3);
//-----------------------------------------------------—
Writeln;
Readln;
End.
Smile188 вне форума   Ответить с цитированием

Старый 20.10.2016, 19:29
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Информативные темы по вашему запросу

Программа не работает, исправьте пожалуйста. Паскаль
Исправьте ошибку
Паскаль. Исправьте, пожалуйста
Исправьте, пожалуйста, программу
исправьте мои ошибки

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:24.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.