Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру



Дата21.11.2023
өлшемі0,56 Mb.
#192550
түріПрограмма
Байланысты:
stud.kz-17322

Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру.

Орындаған: ВТ-405 тобының студенті Егизеков Диас

Тексерген: Жаксыгулова Д.Д.

Бағдарламалау тілдерінде белгілі бір аралықта кездейсоқ сандарды алу үшін орындалатын функциялар қарастырылады. Дегенмен шындыққа келгенде бұл кезде кездейсоқ сандар емес, псевдо кездейсоқ сандар орындалады және олар нақты формуламен есептеледі.

  • Бағдарламалау тілдерінде белгілі бір аралықта кездейсоқ сандарды алу үшін орындалатын функциялар қарастырылады. Дегенмен шындыққа келгенде бұл кезде кездейсоқ сандар емес, псевдо кездейсоқ сандар орындалады және олар нақты формуламен есептеледі.

С++ тілінде кездейсоқ айнымалыларды алу

  • С++ тілінде кездейсоқ айнымаларды rand() функциясы арқылы алуға болады және ол тілдің стандартты функциялар қатарына жатады. Бұл функция ешқандай параметрлерді қабылдамайды. Rand() функциясы 0-ден rand_max аралығындағы кездейсоқ сандарды береді.
  • rand_max - кітапханасында анықталған тұрақты.


Кездейсоқ 50 санды шығаратын код

Көп жағдайда бi3 0-ден rand_max аралықтағы сандарды қажет етпейміз. Мысалы, тиынды лақтырған кезде, екі жағдай ғана орындалуы мүмкін, яғни керекті интервал – 1-ден 2-ге дейін. Бұл жағдайда кездейсоқ сандар аралығын өзгерту қажеттілігі туындайды. Аралықты өзгерту үшін бөліндіден қалдық табу «%» операциясын қолдану қажет.

  • Көп жағдайда бi3 0-ден rand_max аралықтағы сандарды қажет етпейміз. Мысалы, тиынды лақтырған кезде, екі жағдай ғана орындалуы мүмкін, яғни керекті интервал – 1-ден 2-ге дейін. Бұл жағдайда кездейсоқ сандар аралығын өзгерту қажеттілігі туындайды. Аралықты өзгерту үшін бөліндіден қалдық табу «%» операциясын қолдану қажет.
  • Сонымен [a,b] аралығындағы кездейсоқ санды шығару үшін мына формула жазылады:
  • Rand () % аралық_ұзындығы + жылжу
  • аралық ұзындығы b-a+1 формуласымен анықталады, ал жылжу а

Программаны әр ретте орындаған кезде, кездейсоқ сандарды алу үшін C++ стандартты кітапханасындағы srand() функциясын қолдану қажет. srand() функциясы unsigned немесе unsigned int типіндегі бүтін типті аргументті қабылдағаннан кейін кездейсоқ сандарды шығаруды орындайды.

  • Программаны әр ретте орындаған кезде, кездейсоқ сандарды алу үшін C++ стандартты кітапханасындағы srand() функциясын қолдану қажет. srand() функциясы unsigned немесе unsigned int типіндегі бүтін типті аргументті қабылдағаннан кейін кездейсоқ сандарды шығаруды орындайды.
  • Кездейсоқ сандардың шығарылуы (рандомизация) автоматты түрде болу үшін, яғни srand() функциясында әр ретте аргументті ауыстырмау үшін, 0 аргументпен time() функциясын қолдану кажет. time() функциясын қолдану үшін атау файлын енгізу қажет.

Нақты сандардан кездейсоқ айнымалыларды алу

  • Егер rand_max тұрақтысы негізінде нақты типте шығарған кездейсоқ санды бөлсек, онда 0-ден 1-ге дейін аралықтағы нақты кездейсоқ сан шығады. Енді бұл санды аралықтың ұзындығына көбейтсе, онда 0 мен сол аралық ұзындығының арасында жататын сан шығады. Осыдан кейін минималды шекараға жылжуды қосса, онда сол сан керекті аралықтың арасына оңай кіре алады.
  • Нақты сандардан кездейсоқ айнымалы алу формуласы:

Тармақталу алгоритмін кұру

  • Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір шартқа тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм дейміз.
  • Алгоритм орындалғанда "иә" немесе "жоқ" деген мәндердің бірі қабылдай алатын логикалық өрнекті шарт деп атаймыз.
  • Кез келген шарт мынадай үш бөлімнен тұрады:
  • - сол жақ бөлігі;
  • - салыстыру таңбасы;
  • - оң жақ бөлігі
  • Мына төменде алгоритмнің тармақталушының бөлігінің жалпы түрі келтірілген. Мысалдар келтірейік: А > О, X < А+С, К = 6
  • команданы аяқта

    егер <шарт>

    онда "иә" тармағы әйтпесе " жоқ" тармағы

    бітті

  • Мұнда егер, онда, әйтпесе, бітті - қызметші сөздер, егер команданың басын, ал бітті аяқталуын білдіреді

Назарларыңызға рахмет! Слайдтың соңы.



Достарыңызбен бөлісу:




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет