الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

توليد ارقام اقل من عشرة في الدلة العشوائية random

بدأه mocha في 20 فبراير 2011 · 3 رد · 1,131 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني وخواتي المبرمجين

انا مبتدئة في لغة ال C هذا اول برنامج اسوية عن طريق ال C

الهدف من البرنامج الحصول على ارقام اقل من 10 عن طريق random

انا احس انه بسيط جدا بس ماني عارفه شلون ابد

الدكتوره ساعدتني بس احس مو فاهمه ولا شيء من البرنامج

وطلبت مننا نخلي البرنامج يطبع بهذا الشكل وكتبت على السبورة one \newline (I mean '\n')

ياليت احد يفهمني الكود ويعدلي عليه لو سمحتوا

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int
main (int argc, char *argv[])
{
  /* Simple "srand()" seed: just use "time()" */
  unsigned int iseed = (unsigned int)time(NULL);
  srand (iseed);

  /* Now generate 5 pseudo-random numbers */
  int i;
  for (i=1; i<10; i++)
  {
    printf ("rand[%d]= %u\n",
      i, rand ());
  }
  return 0;
}

ايش معنى seed ? :excl:

uعموما شاشة المخرجات طلعت لي هذا الشيء مادري هل هو صح ولا لا

rand[1] =98877622

rand[2]=86642121

..

..

..

..

rand[9]=8765521120

ياليت احد يقولي ليش ممكن تكون المخرجات :wacko:

#2

seed تجعل البرنامج يولد تسلسل مختلف من الارقام فى كل مرة يتم تشغيل البرنامج فيها ولهذا نرسل اليه رقم لا يتكرر بقدر الامكان وأظن لن نجد افضل من القيمة الحالية للوقت فالوقت فى تغيير مستمر أليس كذلك ؟ اما بالنسبة لتوليد الارقام بين 0 و 9 فهى سهلة باستخدام باقى القسمة %

 

#include <STDIO.H>#include <STDLIB.H>#include <TIME.H>int main (int argc, char* argv[]) { /* Simple "srand()" seed: just use "time()" */ unsigned int iseed = (unsigned int)time(NULL); srand(iseed ); /* Now generate 5 pseudo-random numbers */ int i; for (i = 1; i < 10; ++i) { printf ("rand[%d]= %u\n", i, (rand() % 10)); } return 0; }

تحياتى

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 20 فبراير 2011 في 21:41


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#3

يعني هذا البرنامج صح

اللي فهمته منك ان البرنامج يولد ارقام عشوائية ياخذها من قيمة الوقت الموجوده بجهازي

طيب لو انا مش حابه استخدم الوقت كيف اقدر اولد الارقام 1-9

وايش معنى الكلام اللي كتبت الدكتوره

one \newline (I mean '\n')

#4
mocha كتب:

يعني هذا البرنامج صح

اللي فهمته منك ان البرنامج يولد ارقام عشوائية ياخذها من قيمة الوقت الموجوده بجهازي

طيب لو انا مش حابه استخدم الوقت كيف اقدر اولد الارقام 1-9

وايش معنى الكلام اللي كتبت الدكتوره

one \newline (I mean '\n')

الوقت فائدته كما ذكرته فى المشاركة السابقة

تجعل البرنامج يقوم بتوليد ارقام مختلفة فى كل مرة يشغل فبها البرنامج

اذا كنتى تريدى عدم استخدام الوقت فقط استخدمى الدالة rand()

من 1 الى 9 سهلة

لو عندك اى رقم وليكن 1000 مثلا وتريدين حصره بين 0 الى 9

اكتبى 1000 % 10 اى باقى قسمة ال 1000 / 10 هيكون الناتج 0

واقصى باقى قسمة هبكون 9 ولا بمكن ان يكون 10 ابدا

لان مثلا 1009 /10 = 100 والباقى 9 ثم 1010 / 10 = 101 والباقى 0

اما عن قصد الدكتورة هى تقصد طباعة الرقم ثم النزول الى سطر جديد باستخدام \n

وساقوم بتعديل الكود

#include <STDIO.H>
#include <STDLIB.H>
#include <TIME.H>

int main (int argc, char* argv[]) { 

/* Now generate 5 pseudo-random numbers */ 
int i; 

for (i = 1; i < 6 ; ++i) { 

printf ("%d\n", (rand() % 10));

}

return 0;

}

تحياتى

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 21 فبراير 2011 في 11:25


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…