Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

С++ => 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
14-1098697418
iboard
2004-10-25 13:43
2004.11.14
Вот что можно написать на KOL :)


3-1097758099
star
2004-10-14 16:48
2004.11.14
сортировка


4-1096864284
Сергей Ю.
2004-10-04 08:31
2004.11.14
Проблема с SetForegroundWindows


1-1098958825
Dionnis
2004-10-28 14:20
2004.11.14
Динамический массив


1-1098949125
gonzales
2004-10-28 11:38
2004.11.14
WinHelp?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский