Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

С++ => Delphi   Найти похожие ветки 

 
Yanis ©   (2004-10-26 23:22) [0]

Что то я никак перевести эту программу(алгоритм) немогу. Не выходит. Вроде всё правильно но не работает
Помогите плиз. Вот полный код:


#include "stdio.h"
#include "string.h"

void swap(char &a, char &b)
{
char c = a;

a = b;
b = c;
}

void gen(char *Array, int t=0)
{
if (t == strlen(Array)-1) printf("%s\n", Array);
else
 for (int i = t; i < strlen(Array); i++)
 {
  swap(Array[t], Array[i]);
  t++;
  gen(Array, t);
  t--;
  swap(Array[t], Array[i]);
 }

}

void main(void)
{
char Array[100];
printf(":");
scanf("%s", Array);
gen(Array);
}



 
DVM ©   (2004-10-27 00:35) [1]

Покажи как перевел.


 
Warlock ©   (2004-10-27 11:25) [2]

Похоже на алгоритм подбора пароля :)
я перевел код работает, правда не знаю правильно или нет.


 
Yanis ©   (2004-10-27 23:33) [3]

Извиняюсь за задержку.

Вот так я перевёл:

(*
void swap(char &a, char &b)
{
char c = a;

a = b;
b = c;
}

void gen(char *Array, int t=0)
{
if (t == strlen(Array)-1) printf("%s\n", Array);
else
 for (int i = t; i < strlen(Array); i++)
 {
  swap(Array[t], Array[i]);
  t++;
  gen(Array, t);
  t--;
  swap(Array[t], Array[i]);
 }
}
*)

procedure swap(a,b:char);
var
 c:char;
begin
 c := a;
 a := b;
 b := c;
end;

procedure gen(_array:String;t:integer=0);
var
 i:integer;
begin
 if (t = strlen(Pchar(_array))-1) then Form1.ListBox1.Items.add(Format("%s",[_array]))
 else
   begin
     for i := 0 to strlen(pchar(_array))-1 do
       begin
         swap(_array[t],_array[i]);
         inc(t);
         gen(_Array,t);
         dec(t);
         swap(_Array[t],_array[i]);
       end;
   end;
end;


 
Тестировщица ©   (2004-10-28 02:56) [4]

procedure swap(var a,b:char);
var
c:char;
begin
c := a;
a := b;
b := c;
end;

procedure gen(_array:String;t:integer=1);
var
i:integer;
begin
if t = Length(_array) then Form1.ListBox1.Items.add(_array)
else
  begin
    for i := t to  Length(_array) do
      begin
        swap(_array[t],_array[i]);
        inc(t);
        gen(_Array,t);
        dec(t);
        swap(_Array[t],_array[i]);
      end;
  end;
end;

Самые главные ошибки выделены жирным шрифтом...


 
Тестировщица ©   (2004-10-28 03:28) [5]

и не советую использовать ListBox -) (намек - подсчитайте  n! при n=100)


 
Yanis ©   (2004-10-31 21:53) [6]

Еле нашел свою тему.

To Тестировщица
Спасибо большое за помощь. А ошиПки то глупые у меня глупые :)



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
14-1098867372
Developerr
2004-10-27 12:56
2004.11.14
Чтение и запись файла с расширением dat


14-1098668960
Думкин
2004-10-25 05:49
2004.11.14
С днем рождения! 25 октября


6-1092936315
Фёдор Мегатронов
2004-08-19 21:25
2004.11.14
Две функции возвращают белеберду в место размера файла в инете


6-1093915853
Смертник
2004-08-31 05:30
2004.11.14
Отправка почты по IMAP.


14-1098798518
oldman
2004-10-26 17:48
2004.11.14
Я ЕЕ ТАКИ РЕШИЛ!!!