|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
21.10.2016, 23:53 | #1 (permalink) |
Member
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа работает. Помогите ее немного переделать
В программе должны быть реализованы отдельно друг от друга, а не вместе( как тут) режимы: 1)шифровка 2)расшифровка 3) другое-> выход из программы Код:
program Project5; {$APPTYPE CONSOLE} uses Windows, SysUtils; 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 SetConsoleCP(1251); SetConsoleOutputCP(1251); write('введите кол-во строк в матрице : '); readln(r); write('введите кол-во столбцов в матрице : '); readln(b); //--— setlength(q, r); setlength(h, b); setlength(key1, r); setlength(key2, b); setlength(Textmatr, r, b); repeat Write('введите текст для кодировки: '); Readln(Text); kolsimvolov:=Length(text); m := (kolsimvolov <= r * b); if not(m) then writeln('Кол-во символов не должно привышать r*b '); until m; Repeat Writeln('Введите ключ 1 , состоящий из ',r,' символов, через "Enter"'); for i:=0 to r-1 do Readln(key1[i]); p:=true; for i:=0 to r-1 do for j:=i+1 to r-1 do if (key1[i] = key1[j]) then p := False; If Not(p) then writeln('Все символы должны быть различны!'); Until p; Repeat Writeln('Введите ключ 2, состоящий из ',b,' символов, через "Enter"'); for i:=0 to b-1 do Readln(key2[i]); t:=true; for i:=0 to b-1 do for j:=i+1 to b-1 do if (key2[i]=key2[j]) then t:=false; If Not(t) then writeln('Все символы должны быть различны!'); Until t; Writeln; //----------------------------------------------------— for i := 0 to r - 1 do for j := 0 to b - 1 do begin //OutPutDebugString(PWideChar(inttostr(i)+' '+inttostr(j))); if i * b + j + 1 <= Length(Text) then Textmatr[key1[i] - 1, j] := Text[(i) * b + j + 1] else Textmatr[key1[i] - 1, j] := ' '; end; Writeln(' k1\k2 '); For i:=0 to r-1 do begin Write(' ',i,' '); For j:=0 to b-1 do write(' ',textmatr[i,j],' '); Writeln; end; //----------------------------------------------------— Text_1:=''; For j:=0 to b-1 do for i:=0 to r-1 do begin S:=textmatr[i,key2[j]-1]; Text_1:=Text_1+S; end; Writeln('Закодированный текст:',' ',text_1); //-----------------------------------------------------— Text_2:=''; For j:=0 to b-1 do begin S:=Copy(Text_1,(key2[j]-1)*r+1,r); Text_2:=Text_2+S; end; Text_3:=''; For i:=0 to r-1 do For j:=0 to b-1 do begin S:=Copy(Text_2,(j)*r+key1[i],1); Text_3:=Text_3+S; end; Writeln('Раскодированный текст:',' ',Text_3); //-----------------------------------------------------— Writeln; Readln; End. |
21.10.2016, 23:53 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Решение проблемы так же зависит от просмотра аналогичных топиков Не работает программа, помогите Программа в С++ готовая, только поменять немного что-то нужно Гексагон, помогите составить описание, как работает программа Помогите переделать |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|