|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
20.10.2016, 19:29 | #1 (permalink) |
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. |
20.10.2016, 19:29 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Информативные темы по вашему запросу Программа не работает, исправьте пожалуйста. Паскаль Исправьте ошибку Паскаль. Исправьте, пожалуйста Исправьте, пожалуйста, программу исправьте мои ошибки |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|