السلام عليكم
ممكن اللي يعرف للداله الراند يشرحها لي مع مثال
وشكلها يكون
rand()%6
:D:D:D:D:D:D:D:D
السلام عليكم
ممكن اللي يعرف للداله الراند يشرحها لي مع مثال
وشكلها يكون
rand()%6
:D:D:D:D:D:D:D:D
مثلا نريد توليد رقم بين الـ a و b نكتب : num = a + rand() % b;
ويجب أن نكتب srand(Time(NULL)) قبل استدعاء التابع السابق كي نحصل على أرقام عشوائية مختلفة
مرحبا
ياليت لو يتم توضيح الدالة بطريقة اشمل من هذي الطريقة
لانها بصراحة دالة معقدتني
بلييييز لاتطولون في الرد
السلام عليكم ورحمة الله وبركاته
المقصود من هذه الدالة هو اختيار ارقام عشوائيه
من انا اريد ارقام عشوانية من 1 الى 100
اكتب الدالة على الشكل
num= 1+rand() %100
المقصود بباقي القسمة هنا لتحديد الارقام تكون اقل من 100
اختكم
لغة سي
شكرا لكم على الرد
لاااااكن
لما يطلبوا اني اعمل TRACE كيف اعرف المتغيرااات
وشكرا
اخ اسمااعيل انا مافهمت قصدك في srand time null
اتمنى التوضيح في اسرع وقت
مثال على داله الراند
لااكن ماني فاهمتوه
int i;
unsigned seed;
printf("enter seed");
scanf("%u",&seed);
scand(seed);
for(i=1;i<=10;i++)
printf("%10d",1+(rand()%6));
if(i%5==0)
printf("n");
اتمنى المسااعده
موضوعي له اسبوع ولا احد راد علي او معبرني:mad::mad::mad::mad::mad::mad::mad:
أخت ديمة راجعي موضوع أسئلة شائعة تجدي ما تطلبين بالتفصيل
http://www.arabteam2000.com/vb/showthread....?threadid=26862
تحت عنوان طريقة توليد ارقام عشوائية
اخ محمد راحعت الموضوع من فتره لااكن صدقني مااافهمت القصد بsrand:'(:'(:'(:'(:'(
اخت ديمه الراند تعطيك رقم عشوائي من 1 الى max int لكم لما تحط لك rand%6 تقصد من 1 الى 5 وهي زي اللعبه على قوله استاذه سميره يعني ما اتوقع يجيبونها بالامتحانات لانها كل مره انت تختارين القيمه من 1 الى 5 مثل المثال ..........
أختي ديمة ... دالة Rand هي دالة تقوم بتوليد ارقام عشوائية
و اذا كان سؤالك هل يمكن تتبع برنامج توجد به هذه الدالة اقول لك يمكن تتبعه لكن ليس من المتوقع ان تحصلي على نتائج حقيقة ( بالأعداد ) لكن قد يطلب منك معرفة ( ما عمل هذا البرنامج ؟ ) فلا يتوقع منك ابدا معرفة النتائج الفعلية المطبوعة على الشاشة
اتذكر قبل عدة اترام عندما اخذت مادة الـ 151 عال طلب منا معرفة عمل برنامج يستخدم الـ Bitwise Operations و يحتوي على دالة Rand طبعا مستحيل معرفة ما هو الرقم الذي ستنتجه دالة Rand ... لذا اشكل هذا البرنامج على كثير من الطلاب ظنا منهم ان المطلوب معرفة الأرقام الفعلية التي ستطبع على الشاشة ؟؟؟
اخت ديما .. بالنسبة لسؤال الtrace...
اذا لم تكن المتغيرات معرفة جاهزة في البرنامج المراد عمل trace له فعندها تكون الشغلة منطقية .. بمعنى انه لا يمكن ان يكون ناتج قسمة عددين مغير صحيح .. وانما يجب ان يكون real.. وهكذا
الدالة rand كما يتفق الجميع هي لإعطائنا ارقاما عشوائية. لكن لكي مولّد هذه الارقام العشوائية نحتاج لدالة أخرى تستحثّ مولّد الارقام العشوائية لكي نحصل على أكبر عدد من الارقام المختلفة العشوائية بكل معنى الكلمة... هذه الدالة هي srand هذه الدالة نقوم باستدعائها مرة واحدة في البرنامج, لكي تستحثّ مولّد الارقام العشوائية على إخراج مجموعة جديدة من الارقام العشوائية.
نقطة مهمة بخصوص srand وهي أنه اذا أعطيناه دائما نفس الرقم لنفرض
(srand(10210 ستولّد لنا دائما نفس المجموعة من الارقام العشوائية... لكي نجعل srand تعطينا مجموعة جديدة كل مرة, علينا أن نعطيها في كل مرة رقم جديد, إحدى الطرق لضمان حصولها على رقم جديد ومختلف عند تشغيلها كل مرة هو أن نعطيها عدد الثوانِ منذ 1/1/1970 الى الان! هكذا نضمن انه مع مرور كل ثانية سيتغيّر الرقم الذي نعطيه لدلة srand ... الدالة (time(NULL تعطينا عدد الثوان منذ 1/1/1970 . لهذا قمنا بتمرير هذه الدالة الة دالة توليد الاقام العشوائية..
srand(time(NULL));
-------------------------------------------------------------------------------
لتصوّر أقرب من الواقع , تخيّل أن rand هو شخص, وsrand هو شخص آخر... عندما تذهب الى السيّد rand وتطلب منه رقم عشوائي يذهب هو الى الشخص srand ويقول له, هل لديك ارقام عشوائية, فيرد srand : نعم لدي مجموعة منها ويمدّ له سلّة مليئة بالارقام, فيمدّ rand يده الى السلة ويحصل على رقم وهو مغمض العينين... الاخ srand لا يغير هذه المجموعة التي في السلّة الا اذا أعطيته أنت رقم مختلف.. اذا أعطيت srand كل مرة نفس الرقم سيخرج لك نفس السلّة من الارقام العشوائية, اذا اعطيته رقم مختلف سيخرج لك سلّة مختلفة وما على rand الا الاختيار..
========================================
آسف على هذا الوصف الذي قد يبدو مضحكا لكن بالفعل هذا ما اسعفني به عقلي لشرح الموضوع بوضوح؟؟
يمنع توجيه سؤال الى شخص معين.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
السلام عليكم ورحمة الله وبركاته...
الدالة اسمها ()rand ووظيفتها باختصار هو ارجاع رقم عشوائى ولكن اذا اردنا ان نحصر هذا الرقم العشوائى فى فترة معينة فاننا نستخدم حيلة ما والحيل كثيرة فمثلا :
6%()x=rand نحن هنا نقوم بايجاد الباقى من خارج قسمة (الرقم المتولد) على الرقم (6) ونسند خارج القسمة الى المتغير x وبالتالى نضمن ان القيمة المسندة لن تزيد عن 6 او تقل عن 0 ( رياضيا ).
وايضا اذا اردنا ان يكون الرقم ما بين ال 10 وال 15 مثلا فاننا نقوم بالحيلة التالية:
10+(5%()x=(rand وهنا نحن نقوم بتوليد رقم من 0 الى 5 (حيث 5 هي الفرق بين 15 و 10 ) ثم نجمع عليه 10 (وهى الحد الادنى) وبهذا اذا كان الرقم المتولد اصلا هو 0 فانه يصبح 10 واذا كان 5 فانه يصبح 15 واذا كان مابين 0 و 5 فامه يكون ما بين 10 و15 وهو المطلوب حيث حده الاقصى 15 والادنى10
واسف اذا كنت قصرت او اذا كان شرحى عديم الفائدة ولكنى حاولت ان أفيد قر المستطاع..
هذا الموضوع مغلق.