Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

С++ => Delphi


Yanis ©   (2004-10-26 23:22:00) 

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


#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);
}


Yanis   (2004-10-31 21:53:00) [1]

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

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


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

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


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

procedure swap( vara,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 := tto  Length(_array) do
      begin
        swap(_array[t],_array[i]);
        inc(t);
        gen(_Array,t);
        dec(t);
        swap(_Array[t],_array[i]);
      end;
  end;
end;

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


Yanis   (2004-10-27 23:33:00) [4]

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

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

(*
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;


Warlock   (2004-10-27 11:25:00) [5]

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо