Главная страница
    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.032 c
3-1097562310
mr.Faga
2004-10-12 10:25
2004.11.14
Как вернуть назад QuickReport?


6-1094133088
Евгений30048
2004-09-02 17:51
2004.11.14
Как закачать на сервер БИНАРНЫЙ файл по http?


3-1097640812
sapsi
2004-10-13 08:13
2004.11.14
Раскрашивание грида


14-1098804150
Aldor
2004-10-26 19:22
2004.11.14
В России сейчас действительны монеты 1992 года?


3-1097736858
alsov1
2004-10-14 10:54
2004.11.14
Как в timestamp записать милисекунды?





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