Автор: Пользователь скрыл имя, 09 Марта 2013 в 22:13, курсовая работа
Тиімді алгоритмді белгілі бір дәрежеде жасампаздық, ойлап – тапқыштық процесс болып табылады. Сонымен бірге өнертапқыштық стандартты емес және дәстүрлі емес ыңғаймен есептерді шешуді талап етеді.Көптеген жағдайларда қанағаттанатын нәтижені тез ала алмаймыз, сондықтан, тиімді алгоритмді құруда жасау және қатені түзету әдісіне келтіріледі және нәтиженің соңғы вариантын алу үшін талдау және нақтылау бағытында бірнеше қадамдар жасау талап етіледі.
КІРІСПЕ.........................................................................................................3
І.АЛГОРИТМНІҢ ҚҰРЫЛЫМДЫҚ НЕГІЗДЕРІ МЕН ҚОЛДАНУ ТӘСІЛДЕРІ.
1.1 Алгоритмнің жазылу түрлері мен құрылымдық негіздері..............................4
1.2 Алгоритмде қолданылатын тәсілдер......................................................7
1.3 Алгоритмді практикада колдану тәсілі..............................................................13
II. ТИІМДІ АЛГОРИТМДЕРДІ ҚҰРУ, ӨҢДЕУ ТӘСІЛДЕРІНІҢ ЕРЕКШЕЛІКЕРІ.
2.1Тиімді алгоритмдердің жазылу тәсілінің ерекшіліктері мен ұғымдары.......16
2.2Тиімді алгоритмдерді құру тәсілінің ерекшеліктері............................18
2.3Тиімді алгоритмдерді өңдеу тәсілінің ерекшеліктері.............................23
ҚОРЫТЫНДЫ..................................................................................................27
ӘДЕБИЕТТЕР ТІЗІМІ..................................................................................29
Циклдық алгоритмнің екі түрі болады:
1 қайталану саны алдын ала белгілі;
2 қайталану саны алдын ала белгісіз.
Мұндай циклдық алгоритмдерде арифметикалық және итерациялық деп те атайды. Итерациялық алгоритмдерде циклдың қайталану саны шешімнің көрсетілген дәлдігіне жетуге байланысты болады, сондықтан мұнда циклдың неше рет қайталанатындығын алдына ала айта алмаймыз.
Арифметикалық циклда цикл қайталанған сайын мәні өзгеріп отыратын айнымалылардың бірі цикл параметрі ретінде алынатын болады. Бұл жағдайда циклды ұйымдастыру мына ретпен жүргізіледі:
цикл параметрінің бастапқы мәні беріледі;
цикл параметрінің мәнін өзгертіп отыру ережесі көрсетіледі;
циклдың
аяқталу шарты беріледі (көрсетіледі).
Әдістемелік тұрғыда циклды
құрылымды алгоритмді қалай түземіз
және қалайша жазғанымыз дұрыс болады, соны көрсетсек
алгоритмін жазу керек болсын.
Компьютер көмегімен есеп шығару технологиясына сәйкес осы есепті шешуге дайындау кезеңдерін былайша келтіруімізге болады:
1-кезең. Есептің қойылуы:
бастапқы берілгендер ретінде алынатындар: п- жиым элементтері саны, х.(і=1, 2,..., п) – жиым элементтерінің өзі (мәндері);
аралық шама ретінде цикл параметрі алынады;
нәтиже ретінде
S қосындысының мәні алынады.
2-кезең. Есептің математикалық
моделі.
жиым элементтері нақты типті, олай болса нәтиже S нақты тип; п - бүтін тип.
3-кезең. Есептеудің тиімді әдісі былайша ұйымдастырылады:
1 -қадам: S-тің бастапқы мәнін 0 деп аламыз;
2-қадам: S-тің мәніне х-лерді біртіндей қоса отырып, нәтижеге жетуге болады.
4-кезең. Есепті шығарудың алгоритмін жазамыз. Бірінші әдіс-алгоритмді блок схема түрінде жазу. Екінші әдіс - мектептік алгоритмдік тілде жазу. Мектеп курсында осы әдіс алгоритм жазудың негізгі әдісіне айналуы тиіс.
Оқып-үйренудің әдістемелік тұрғысында келтірілген мысалдардың коректілігі түрде (түсінікті, қадап айтылған, программалау технологияларына сәйкес, дұрыс лайықты) болуына жете көңіл аударған дұрыс болады деп есептейміз.
Информатика курсы бойынша мектептерде басқа да оқу орындарында пайдаланылып жүрген кейбір оқулықтарда және оқу құралдарында осы келтіріп отырған кемшіліктер орын алған. Оларды дөрекі қате деп айтуға болмайды, дегенмен, әдістемелік және программалау технологиялары талаптары тұрғысында дұрыс емес сияқты.
Мына біз көрсетіп отырған үлгілерден, оқып үйрену әдістемесі тұрғысында корректілі жазу түріне мейлінше жақыңдайтындары 1), 3) және 5) варианттары болады.
Енді осы жазылған алгоритмдер негізінде ұсынылып отырған есепті шешудің программасын оңай құруға болады.
1.3 Алгоритмді практикада қолдану тәсілі.
Есепті шешу алгоритмі деп жазбаша жарлықтардың тізімі аталады, яғни оны орындау барысында есептің шешімін, не берілген мәндерде есептің шешімі жоқ екендігі туралы жауап алуға болады. Жалпы жағдайда есептер әр түрде бола алады. Мысалы, мектепке бару және үйге кайту, жолайрығындағы бағдаршамнан өту, шәй қайнату, тамақ пісіру және т.с. есептер өмірде көптеген түрде кездеседі. Мұндай есептерді шешу алгоритмдерін тұрмыстың алгоритмдер дел атауға болады. Адамзат кызметінде көптеген өмірлік тәжірибеден туындайтын әрекеттер, қоғам заңдары әртүрлі алгоритмдер жиынтығынан тұрады.
Алгоритм түсінігі есепті шешу әдісі түсінігімен тығыз байланысты. Әдіс деп катаң негізделген есепті шешу тәсілі мен оны қолдануға болатын берілген мәліметтер бойынша есептер тобын анықтау мақсатында құрылған тәсілді зерттеуді айтады.
Ал, алгоритм есепті шешу және практикада қолдану әдісін сипаттау болып табылады. Ол әдісті зерттеу нәтижесі бойынша құрылады. Алгоритм есепті шешу үшін орындалатын әрекеттердің қатаң жазбаларының реттелген тізбегі болып табылады. Бұл әрекеттер шешу әдісінен туындайды.
Алгоритмнің қасиетті сапаларының бірі - орындаушыдан шешу әдісін, яғни жазылған әрекеттерді не үшін орындау қажеттігін түсінуді талап етпейді. Орындаушыдан жазылған әрекеттерді орындай алуды және қағидаларды түсінуді талап етеді.
Орындаушы алгоритмді қағида-жарлықтардың ізімен "механикалық" түрде орындайды. ЭЕМ-ді, алгоритмді орындау құралы ретінде пайдалану мүмкіндігі осыған негізделген.
Алгоритм әрқашанда орындаушы үшін жазылады. Ол адам, ЭЕМ және т.б. құрылғы болуы мүмкін. Алгоритмді сипаттау, орындаушыға жазылған әрекеттер түсінікті болуы үшін соның тілінде жүзеге асырылады.
Қосымша толықтырушы түсінік енгізейік. Жеке жазбаларды (сөйлемдерді) - алгоритм жарлығын жарлық деп атайық. Алгоритм жарлықтар тізбегі болып табылады. Орындаушы түсінетін және орындай алатын барлық жарлықтар жиынын орындаушының ж а р л ы қ т а р жүйесі деп атайық. Сонымен, орындаушының барлық іс-әрекетін сипаттайтын жарлықтар жүйесі орындаушының тілі болып табылады.
Мысалы, ЭЕМ үшін жарлықтар жүйесі - қосу, азайту. көбейту, бөлу және сандарды салыстыру (дәрежелеу).
Сондықтан, алгоритм әр кезде де орындаушының жарлықтар жүйесінің мүмкіндігіне байланысты жазылады.
Алгоритмнің мынадай түрлері белгілі - есептеу алгоритмдері, диалогтық алгоритмдер, графикалық алгоритмдер, мәліметтерді өндеу алгоритмдері, роботтарды басқару алгоритмдері, және т.б.
Алгоритмді жазудың бірнеше тәсілдері қалыптасқан: формула, кесте, сөз, графикалық, алгоритмдік программалау тілінде сызықты түрде және т.б. Біз жоғарыда алгоритмді сөз түрінде, блок-схема түрінде сипаттауға тоқталғанбыз. Сол графикалык сипаттауды алгоритмнің блок-схемасы деп атайды. Алгоритмді программалау тілінде жазуды программа деп атаймыз.
Программапау тілі деп, орындаушы ЭЕМ үшін жазылған алгоритмді сипаттайтын тілді айтамыз. Ал бағдарламалау деп алгоритмді бағдарламалау тілінде жазу процесін айтады.
Программалардың мынадай түрлері бар: ЭЕМ-ге арналған программалар, станокты, роботтарды және басқа құрылғыларды басқаруға арналған программалар.
Келесі параграфтарда бірнеше есептерді шешу алгоритмдерін сөз жүзінде және блок-схема тілінде жазып көрсетуге тоқталамыз.
Алгоритмді сөз жүзінде сипаттағанда, жазғанда, әрбір жарлықты нөмірлеп отырамыз, себебі, ол алгоритмді орындау барысында қайда көшу, өту керектігін көрсетіп отыру үшін ыңғайлы болады. Сонымен қатар қосымша: "басы", "соңы", ("үзу"), кызметті жарлықтарды пайдаланатын боламыз. Бұл жарлықтар алгоритмнің басын, соңын және одан әрі орындау мүмкін болмаған жағдайда алгоритмнің орындалуын үзуді білдіреді. "Соңы" жарлығынан бұл жарлықтың ерекшелігі алгоритмнің орындалуын кенеттен үзу арқылы аяқтауды білдіреді.
II.Тиімді алгоритмдерді құру, өңдеу тәсілдері ерекшеліктері.
2.1 Тиімді алгоритмдердің жазылу тәсілінің ерекшіліктері мен ұғымдары.
Алгоритмдегі жарлықтардың, құраулардың белгілеу түріне қарай алгоритмді жазу әдістерін ажыратуға болады. Орындаушының өзіне тән біліміне байланысты арнайы таңбалар, сөздер, іс-қимылдар, схемалар арқылы алгоритмдерді жазудың тәсілдерін ұйымдастыруға болады.
Мысалы, цирктегі құстар мен жануарларға алгоритмдер арнайы дауыстар, іс-қимылдар арқылы, автокөлікті жүргізу алгоритмі, телевизор, магнитофонды жұмыс істету алгоритмі арнайы пернелді басу, бұрау арқылы жүзеге асырылады, тек әртүрлі таңбалармен, белгілермен берілген алгоритмдер көп кездеседі.
Орындаушы - адам болатын жағдайда алгоритм көбінесе сөзбен жазылады. Сөзбен жазылған алгоритмдер, ретпен орналасқан сөйлемдерден (нұсқаулардан) тұрады. Сонымен бірге алгоритмдер арнайы таңбалар, блок-схемалар, формулалар, кесте түрінде, ноталар (сазгерлер үшін) арқылы жазылады.
Енді сөзбен жазылған алгоритмге мысалдар қарастырайық.
1-есеп. Екі бүтін санның ең үлкен ортақ бөлгішті (ЕҮОБ) табу керек. Бұл есепті шешу, үлкен санды кішісінен бөлу арқылы, сонан соң кіші санды қалдыққа бөлу, бірінші қалдықты екінші қалдыққа бөлу және Т.С.С. қалдық нөл болғанша тізбектей бөлу арқылы жүзеге асырылады. Саны бойынша ең соңғы бөлгіш нәтиже болып табылады.
Бастапқы берілген екі бүтін санды М және N деп белгілейік.Бөлуді қайталанып отыратын азайту амалымен алмастырайық. Онда алгоритмді келесі түрде ұйымдастыруға болады:
Басы
(M, N) енгіземіз
Егер M≠N болса, онда 4 пунктке, әйтпесе 7 пунктке өтеміз.
Егер M>N болса, онда 5 пунктке, әйтпесе 6 пунктке өтеміз.
M:=M-N; 3 пунктке өтеміз.
N:=N-M; 3 пунктке өтеміз.
ЕҮОБ:=M
ЕҮОБ:=M жауапқа шығару.
Соңы.
Ол үшін бізге кез келген п нақты саннан тұратын шекті тізбек а1, а2,а3,а4 берілсін. Сандардың саны аз болған жағдайда максимум мен минимумды оңай көрсетуге болады. Ал егер п үлкен болса, онда есеп қиындайды. Бірнеше жүздеген көп разрядты сандардың ішінен максимум мен минимумын табудың қиындығы жоғары болады. Сондықтан, бір анықталған (тәртіпке) жүйеге сүйену қажет. Мысалы, алғашқы мән ретінде максимум үшін де, минимум үшін де алғашқы тұрған санды алайық. Ары қарай ретімен әрбір санды максимумның мәнімен салыстырамыз. Егер келесі сан максимумнан үлкен болса, онда оны максимумның жаңа мәні ретінде қабылдаймыз (алғашқы мән "ұмытылып" отырады), онан соң келесі тұрған санға өтеміз. Егер қарастырылып отырған сан максимумнан үлкен болмаса, онда оны минимум ретінде алынған санмен салыстырамыз. Егер осы сан минимумнан кіші болса, оны минимумның жаңа мәні ретінде кабылдаймыз. Егер бұл сан минимумнан кіші болмаса, келесі санды таңдауға өтеміз. Осындай әдіспен сандардың бәрін салыстыру арқылы максимум мен минимумның соңғы мәнін табамыз. Осы айтылған ережені сөзбен жазу тәсілімен былай жазуға болады: 1.Басы
2.(а, i=1,2,...,) енгіземіз
3.min:=a; max:=a.
4.i:=2
5.егер a>max , онда 6 пунктке өтіңдер, әйтпесе 7 пунктке өтіңдер
6.max:=a; 9 пунктке өтіңдер.
7. егер a<max, онда 8 пунктке өтіңдер, әйтпесе 9 пунктке өтіңдер
8.min:=a
9.i:=i+1
10.егер i<n, онда 5 пунктке өтіңдер әйтпесе 9пунктке өтіңдер
11.(min,max) жауапқа
шығарыңдар.
2.2 Тиімді алгоритмдерді құру тәсілінің ерекшеліктері.
Аталған кезеңде есептеу процесін бірімен – бірі байланыстағы бөліктерге бөлу, олардың рет тәртібін орнату, осындай бөліктердің әрқайсысын қандай да бір формада сипаттау және соңынан тексеру, яғни таңдалған әдісті жүзеге асыруға бола ма соны көрсету жүзеге асырылады.
Көптеген жағдайда қанағаттанатын нәтижені тез ала алмаймыз, сондықтан, тиімді алгоритмді құру "жасау және қатені түзету" әдісіне келтіріледі және нәтиженің соңғы вариантын алу үшін талдау және нақтылау бағытында бірнеше қадамдар жасау талап етіледі.
Тиімді алгоритмді құру белгілі бір дәрежеде жасампаздық, ойлап – тапқыштық процесс болып таблады. Сонымен бірге өнертапқыштық стандартты емес және дәстүрлі емес ыңғаймен есептерді шешуді талап етеді. Алғашқыда "Информатика және есептеуіш техника негіздері" пәні мазмұның электрондық есептеуіш машиналарының жұмыс принципі мен алгоритмдеу негіздерін оқыту құраса, кейінірек дербес компьютерлердің (ДК) өмірге келуіне байланысты және түрлі қолданбалы программалардың жарық көруіне орай пәнді оқытуда ДК-ні пайдаланушылыққа, яғни компьютерде іс жүргізуші, референт дайындауға көбірек көңіл бөліне бастады. Алайда болашақ маман иесін тек дайын программамен жұмыс істеп қана қоймай, сол программаларды жетілдіруші, жаңадан программалар дайындаушы ретінде қалыптастырудың қажеттігі артуда. Сондай-ақ информатика пәнінен өтілетін олимпиадаларда да программа құру талап етіледі.
Практикада көрсеткендей, программалау курсын окып-үйренбес бұрын алдымен окушы алгоритмдеу негіздерін игеруі тиіс. Тек сонда ғана оқушының кез келген жоғары деңгейлі программалау тілдерінде программа құруға мүмкіндігі бар. Мұнда тек сәйкес программалау тілінің алфавиті мен синтаксисін білу ғана жеткілікті.
Тиімді алгоритм құруда окушылар келесі ережелерді басшылықка алуы тиіс:
І.Әрбір окушы алдымен кішігірім алгоритм құрып үйренуі тиіс. Соңынан толық алгоритм дайындау үшін бастапқы алгоритм біртіндеп күрделендіріледі.
2.Әр іс-әрекетте жаңадан 5-10 нұсқау (команда) ғана енгізіліп, алгоритм тексеріліп отырылуы тиіс.
З.Дайындалған алгоритмді мұғалімге көрсетуге асықпау керек. Алдымен алгоритм мәтініндегі әрбір нұсқаудың қызметін саралап шыққан жөн, Мұнда, негізінен, қайталану командасының (циклдің) басы мен соңына, жиым элементтерінің индекстеріне назар аударылуы тиіс.
Информация о работе Алгоритмнің құрылым негіздері мен қолдану тәсілдері