Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






дәріс. Циклдік алгоритмдер құру



Математикада, экономикада көптеген есептерді шығару кезеңінде бір теңдеуді пайда- ланып, ондағы айнымалының өзгеруіне байланысты оны бірнеше рет қайталап есептеуге ту- ра келетін сәттер де жиі кездеседі. Осындай қайталап орындалатын есептеу процесінің белгілі бір бөліктерін цикл деп атайды. Осы бірнеше рет қайталанатын бөлігі бар алгоритмдер тобы циклдік алгоритмдерге жатады. Циклдік алгоритмдерді пайдалану оларды кейіннен программаларда цикл операторы түрінде қысқартып жазу мүмкіндігін береді. Циклдер қайталану санының алдын ала белгілі және белгісіз болуына байланысты екі топқа бөлінеді. Қайталану сандары алдын ала белгілі болып келген циклдер тобы арифметикалық цикл болып есептеледі, ал орындалу саны белгісіз циклдер – қадамдық (итерация) цикл болып аталады.

Практикада белгілі бір айнымалының сандық мәніне байланысты орындалатын арифметикалық циклдер жиі кездеседі. Мұнда арифметикалық прогрессияға ұқсас болып келетін циклдер ең қарапайым арифметикалық цикл болып табылады.

Оны басқару қайталану кезеңінде прогрессияның заңына сәйкес тұрақты шамаға өзгеріп отыра- тын цикл параметрінің сандық мәнімен байланысты болуы тиіс.

Цикл орындалуы алдында оның айнымалы аргументі – параметрі алғашқы мәнге ие болуы керек, сонан кейін қайталану кезеңінде цикл параметрі белгілі бір шамаға (қадамға) өзгере отырып, ол алдын ала берілген ең соңғы мәнге дейін жетуі қажет.

Алгоритмнің орындалу барысында цикл параметрі, мысалы, х өзінің ең алғашқы х0 мәнінен ең соңғы хk мәніне дейін тұрақты шамаға (dx) өзгеріп отырады. Осының нәтижесінде х мынадай мәндерді қабылдайды: x0, x0+dx, x0+2dx, ..., x0+(n-1)dx, xk, мұндағы n – циклдің қайталану саны, ол былай анықталады:

1 - 0 = +      dx xk x n , мұнда [...] – өрнектің бүтін бөлігі алынатынын көрсетеді, n – циклдің қайталану саны әрқашанда бүтін натурал сан болуы тиіс, егер ол аралас сан болса, онда оның бөлшегі алынып тасталады. Арифметикалық цикл үшін y=f(x) функциясының есептелу жолы алгоритм ретінде 2.1- суретте көрсетілген. Мұндағы 3-ші, 4-ші, 7-блоктар циклді ұйымдастыру үшін қажет. Олар цикл параметрінің алғашқы мәнін, өзгеру қадамын белгілеп және оның ең соңғы мәніне жеткен-жетпегенін тексереді. Ал 5- және 6- блоктар бірнеше рет қайталанып циклдің өзін құрайды. 4- блок шартты тексеріп қайталану процесін ұйымдастырады. Алгоритм схемасын салуды және программаны жазуды жеңілдету үшін цикл алгоритмдері ықшамдалған түрде "модификатор" немесе "цикл басы" блогын пайдалану арқылы жазылады. Онда 1.6-суретте көрсетілген 3-ші, 4-ші, 7-блоктардың орнына "цикл басы" блогы орналасады. 2.1-сурет. Қарапайым циклдік алгоритм x; соңы y:=f(x ) басы x0,xк,dx енг. x := x0 х≤ xk жоқ иә 8 2 3 5 x := x + d 6 7 1 4 27 Ол алтыбұрыш тәрізді геометриялық фигу- радан тұрады және оның міндетті түрде екі кіру және екі шығу сызығы болуға тиіс. Осы блокты пайдалану арқылы жоғарыда келтірілген алго- ритм 2.2-суретте көрсетілген түрде кескінделеді. Параметрдің алғашқы х мәні оның соңғы х мәні- нен кем болса, онда оның қадамы dx оң сан болады. Керісінше, параметрдің алғашқы мәні оның соңғы мәнінен артық болса, онда қадам теріс сан болады. 4. Қадамдық циклдер. Циклді орындаудың алдында, оның қайталану саны белгісіз болған жағдайда қадамдық циклдер пайдаланылады. Мұнда циклді жазу үшін тек қана "шартты тексеру" блогын қолдану қажет, ол циклді аяқтау үшін белгілі бір шартты тексереді. Қадамдық циклдердің схемасын сызғанда модификаторды (алтыбұ- рышты) қолдана алмаймыз, себебі алдын ала циклдің неше рет қайталанатыны бізге белгісіз. Енді осындай циклдер жұмысына мысал келтірейік. 3-мысал. 2k kx Z = функциясының мәндерін k = 1, 2, 3, ... және Z 0.0001-ден артық болған жағдайда есептейік, мұндағы 0 ≤ х ≤ 1. Бұл мысалда алдын ала цикл неше рет қайталанатынын айта алмаймыз, өйткені бізде тек k параметрінің алғашқы мәні мен қадамы ғана белгілі. Сонымен қатар Z функциясының 0.0001-ден артық болуы циклді қайталау шарты болып есептеледі (Z > 0.001). 2.3-суретте осы есептің алгоритм схемасы көрсетілген.




Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!