سلام
مي خوام تو دلفي به ازاي هر كاربري كه وارد نرم افزار حسابداري مي شه يك عدد تصادفي براي اين كاربر تو بانك ثبت بشه
توليد عدد تصادفي تو دلفي با چه تابعي انجام مي شه و مقدار برگشتي از اين تابع از چه نوعي هست؟
Printable View
سلام
مي خوام تو دلفي به ازاي هر كاربري كه وارد نرم افزار حسابداري مي شه يك عدد تصادفي براي اين كاربر تو بانك ثبت بشه
توليد عدد تصادفي تو دلفي با چه تابعي انجام مي شه و مقدار برگشتي از اين تابع از چه نوعي هست؟
اول باید کلمه کلیدی Randomize رو بنویسی تا تمام احتمالات رو هم شانس کنه.
بعد بسته به میران مورد نظر x از تابع Random(x) استفاده کن. البته خروجی یک عدد اعشاری بین صفر و عدد x خواهد بود و اگه بخوای میتونی روند کنیش.
اگه يه نمونه كد بذارين ممنون مي شم
اینو توی بخش OnFormShow بزارین.
برای مثلا هم این کد رو توی OnClick یک دکمه بنویسید :کد:Randomize;
وقتی دکمه رو فشار بدین توی لیبل یک عدد تصادفی بین 0 تا 99 ایجاد میشه.کد:lable1.caption := inttostr(round(Random(100)));
اگه بخواید 1 تا 100 باشه باید به مقدار اون عدد یک رو اضافه کنید.
موفق باشی.
سلام خوبی
بهتره از هیچ کدوم این کارها استفاده نکنی
بهترین کار اینه که اگر از بانک اطلاعاتی access استفاده میکنی جنس اون فیلدت رو autonumber بگیری وprimarykey هم روش انجام بدی تا یه کد دیگه مثل اون ایجاد نشه .این کار باعث میشه که هر وقت رکوردی به بامکت اضافه کردی این فیلد خودش به صورت اتوماتیک یک دونه بهش اضافه بشه. تازه اگر بخواهی یه عدد تصادفی ایجاد کنی شاید 2تاش یا بیشتر مثله هم درست بشه .بهتره این کارا رو روی بانکت انجام بدی .بای بای
سلام
خوب حالا برای اینکه با تابع Random آشنا بشی با اجازه مردمباح کد ها رو کمی ویرایش کنم...
دستور Randomize بهتره توی OnCreate باشه... که هیچ مشکلی پیش نیاد.... دلیل خواستید ، بگید...
برای دستور Random
از 1 تا 50
از 0 تا 50کد:X := Random(49)+1;
از 50 تا 100کد:X := Random(50);
و برای منفی بودن هم میتونید بجای + منفی رو قرار بدید....کد:X := Random(50)+50;
اما برای دیتابیس بستگی به امکانات دیتابیس داره... بعضی از دیتابیس ها امکاناتی مثل
Primary Key و AutoInc... (اینها رو برای نمونه گفتم)
اگر دیتابیس شما امکان Random رو داشت ، نیازی به این دستورات ندارید.
اما بهتره با این تابع آشنا بشی چون بعد ها بدرد میخوره...
موفق باشید
سلام
از همكاري دوستان ممنونم
من متوجه نشدم كه چرا بايد randomize فقط يكبار اجرا بشه و در روال formcreate باشه
و در مورد بانك هم از interbase استفاده مي كنم كه زياد به امكاناتي كه داره وارد نيستم
من به جاي استفاده از range كد رو به صورت زير نوشتم:
کد:random(maxint);
خوب اگر دستور Randomize استفاده نشه
هر بار که برنامه اجرا شد یک روال همیشگی برای random میمونه...
یعنی هر بار که برنامه اجرا شد و random استفاده کردی با بار اول که برنامه اجرا شده یکی در میاد...
امیدوارم منظورم رو خوب رسونده باشم...
مرسي از راهنمايي هاي دوستان