PDA

View Full Version : سوال: سوال در مورد آرایه ها



fire.angle
دوشنبه 29 فروردین 1390, 00:33 صبح
سلام
یه آرایه دارم به این صورت :

const
RoomCount=2;
var
percept:array[1..sqr(RoomCount),1..RoomCount] of string;


حالا میخوام با حلقه For این مقادیر رو در آرایه قرار بدم
00
01
10
11

چی باید بنویسم ؟؟؟؟ توجه کنید که اگر RoomCount زیاد یا کم بشه حالت های مسیله تغییر میکنه
مثلا اگه RoomCount=3 بشه دیگه 9 حالت مختلف پیش میاد یعنی
000
100
010
001
110
101
........... و الی آخر
لطفا راهنمایی کنید ؟؟؟؟

tdkhakpur
دوشنبه 29 فروردین 1390, 01:32 صبح
کد زیر میتونه در پیاده سازی الگوریتم برای شما کمک کنه

const
RoomCount=2;
var
s, res: string;
i:integer;
begin
for i:= 1 to 10 do
begin
s := IntToBin(i);
res:= string(@s[Length(s)-RoomCount]);
Caption := res;
end;

fire.angle
دوشنبه 29 فروردین 1390, 15:56 عصر
s := IntToBin(i)IntToBin نداریم که . چجوری اضافش کنم ؟؟؟؟

tdkhakpur
دوشنبه 29 فروردین 1390, 23:10 عصر
IntToBin نداریم که . چجوری اضافش کنم ؟؟؟؟


uses idglobal;

SAASTN
سه شنبه 30 فروردین 1390, 00:16 صبح
uses idglobal
آقا توش IntToBin نبودا؟! میگه توابع و کلاسای Indy این تو پیاده سازی شدن...

function IntToBin ( value: LongInt; digits: integer ): string;
begin
result := StringOfChar ( '0', digits ) ;
while value > 0 do begin
if ( value and 1 ) = 1 then
result [ digits ] := '1';
dec ( digits ) ;
value := value shr 1;
end;
end;

function BinToInt(Value: String): LongInt;
var i: Integer;
begin
Result:=0;
//remove leading zeroes
while Copy(Value,1,1)='0' do
Value:=Copy(Value,2,Length(Value)-1) ;
//do the conversion
for i:=Length(Value) downto 1 do
if Copy(Value,i,1)='1' then
Result:=Result+(1 shl (Length(Value)-i)) ;
end;
منبع: http://delphi.about.com/od/mathematics/a/baseconvert.htm

tdkhakpur
سه شنبه 30 فروردین 1390, 01:53 صبح
آقا توش IntToBin نبودا؟! میگه توابع و کلاسای Indy این تو پیاده سازی شدن...


اینکه یک تابع صرفا داخل یک unit جای داده بشه اجباری نیست میتونه همه جا درج شده باشه.
برای کامپایلری که استفاده میکنم ادرس رو همین یونیت که عرض شد نشان داده است به هر صورت میتونید یک دونه f1 و یا داخل help جستجو کنید فایل unit رو درش ذکر کرده.