Форум: "Начинающим";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];
ВнизШифрование Найти похожие ветки
← →
Distemp © (2011-02-21 00:50) [0]Суть в том, что программа работает немного неправильно. Например, если ввести лозунг "тетрадь", текст "ручка", и нажать шифр, то в алфавите лозунга выведется "теТрадьбвгжзийклмнопсуфхцчшщъыэюя". Как сделать так, чтобы в алфавите лозунга выводилась только 1 буква "Т" (т.е. как убрать ту, которая выделена)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k: integer;
l,m: string;
flag: boolean;
begin
flag:=false;
m:="";
k:=0;
l:="абвгдежзийклмнопрстуфхцчшщъыьэюя";
for i:=1 to 50 do
begin
if length(edit1.text)>=i then m:=m+edit1.Text[i]
else
begin
inc(k);
for j:=1 to length(edit1.text) do
if l[k]=edit1.Text[j] then flag:=true;
if not flag then m:=m+l[k];
flag:=false;
end;
end;
for i:=1 to length(edit2.Text) do
for j:=1 to length(m) do
if edit2.Text[i]=l[j] then edit3.Text:=edit3.Text+m[j];
edit4.Text:=l;
edit5.Text:=m;
end;
end.
← →
KilkennyCat © (2011-02-21 02:22) [1]медленный способ: проверять строку на наличие такой буквы.
быстрый способ: запоминать, какие буквы были.
один из вариантов медленного:
медленный:var
i, z : integer;
m : string;
begin
z := length(edit1.text);
if z < 1 then exit;
m:= edit1.text[1];
if z > 1 then for i := 2 to z do if AnsiPos(edit1.text[i], m) = 0 then m := m + edit1.text[i];
for i := 1072 to 1105 do if AnsiPos(chr(i), m) = 0 then m := m + chr(i);
end;
← →
Гость (2011-02-21 11:25) [2]1. а что за шифр такой?
2. т.е. дано 2 слова, из второго надо буквы, встречающиеся в первом, вынести вперед?
зы
недавно спам письмо получил - сплошные Т в теме...
не? :-|)
← →
Distemp © (2011-02-21 11:54) [3]
> 1. а что за шифр такой?2. т.е. дано 2 слова, из второго
> надо буквы, встречающиеся в первом, вынести вперед?зынедавно
> спам письмо получил - сплошные Т в теме... не? :-|)
Например
лозунг: тетрадь
текст: ручка
алфавит: абвгдежзийклмнопрстуфхцчшщъыьэюя
алф. лозунга: терадьбвгжзийклмнопсуфхцчшщъыэюя
шифр: нсцзт
Алфавит лозунга должен получиться из лозунга+алфавит, без повторяющихся букв. Потом берем первую букву текста "Р" и ищем в алф. лозунга соответствующую ей по счету букву, получается "Н" и т.д., так и получается шифр.
← →
Dennis I. Komarov © (2011-02-21 12:05) [4]Это учебное задание?
← →
Distemp © (2011-02-21 12:10) [5]
> Это учебное задание?
Да
← →
Dennis I. Komarov © (2011-02-21 12:23) [6]X := []; a := "";
i:=1..n do
if x[i] not in X then begin
X add x[i];
a add x[i];
end;
ABC:=a+ABC;
А что будешь делать если будет?
P.S. Это не код, это алгоритм...
← →
han_malign (2011-02-21 13:33) [7]вообще то RC4 немного не так работает - перемешивание кодовой таблицы происходят не только на ключевой последовательности, но и на кодируемой посылке...
http://ru.wikipedia.org/wiki/RC4
← →
Dennis I. Komarov © (2011-02-21 13:43) [8]
> А что будешь делать если будет?
Тетрадь
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c