Главная страница
    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.45 MB
Время: 0.04 c
14-1098450829
BiN
2004-10-22 17:13
2004.11.14
У России все же будет свой процессор


3-1097829624
Пуртик
2004-10-15 12:40
2004.11.14
Как правильно сгенерить строку SQL?


14-1098952410
karat
2004-10-28 12:33
2004.11.14
Алгоритм встречи Нового года


1-1099295258
MAVOR
2004-11-01 10:47
2004.11.14
Как найти начало и конец строки файла (текстового)!???


14-1098948058
Jena_
2004-10-28 11:20
2004.11.14
кидалово или нет?





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