Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1237532294
CaptainAlex
2009-03-20 09:58
2011.05.29
Indy + SSL = не могу залогиниться


2-1297940727
SIV5000
2011-02-17 14:05
2011.05.29
Загрузка файла разными потоками


9-1189415446
Help me!
2007-09-10 13:10
2011.05.29
Есть какая-нибудь разница в способе создания MIPMAP?


10-1174398087
msgipss
2007-03-20 16:41
2011.05.29
Как оптимизировать чтение excel документа


15-1297716299
Mark
2011-02-14 23:44
2011.05.29
Слонение топонимов для украинского языка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский