Апсырмаларды шешу стратегиялары.
Алгоритм– математикадағы ең бір іргелі ұғымдардың бірі. Информатика ғылымында «алгоритм» түсінігі ақпарат түсінігі сияқты негізгі ұғымдардың бірі болып табылады.
«Алгоритм» сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы араб математигі Әбу Жафар Мухаммед ибн Мұса әл-Хорезми (763—850 жж.) есімінің латындық algorithmi сөзінің транскрипциясы болып табылады. Ол санаудың ондық санау жүйесінде көп орынды сандар мен арифметикалық амалдардың орындалу ережесін ұсынған. Бұл ережелер қосынды мен көбейтіндіні табуға арналған амалдарды орындауға қажетті тізбектен құрылған. Сол ереже осы күнге дейін қолданылып келеді.
Бірақ әл-Хорезмиге дейін де арифметикалық операцияларды орындау ережелері көп болатын. Бірақ ол кезде сандардың ерекшеліктеріне көп мән берілген, ал әл-Хорезми болса, көпорынды сандардың бәріне ортақ және барлық сандарға жарамды ереже ұсынды. Әл-Хорезмидің тәсілін қолдаушыларды алгоритмдіктер деп атады. Алгоритм ұғымы бірнеше қасиеттері бар ережелер жүйесі деген мағынаны білдіреді. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорияның объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.
Қазіргі таңда алгоритм ұғымы тек математикалық есептерге ғана емес, сонымен қатар басқада мағыналарда қолданылады. Әрбір компьютер алдын-ала құрылған алгоритм бойынша, яғни программа бойынша жұмыс істейді.
Алгоритм ұғымының анықтамасы өте көп. Берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек.
Алгоритмдеп берілген есептің шығару жолын реттелген амалдар тізбегі түріне келтіруді айтамыз. Кез келген есептің шешу кезеңін қарапайым амалдар тізбегіне бөлектеуге болады. Алгоритмді компьютерде орындау үшін оны программа түрінде жазып шығу керек.
Программа деп машина тілі түсінетіндей, инструкциялар тізбегі түрінде жазылған алгоритмді айтамыз. Программа командалар тізбегінен тұрады. Командалар тізбегі орындалған кезде есептің нәтижесі шығады. Әрбір компьютер алдын-ала құрылған программа бойынша жұмыс жасайды. Яғни, программа деп белгілі бір нәтиже алу үшін түсінікті операциялар тізбегін айтамыз. Процессор программа құрамындағы командаларды реті бойынша орындайды. Команда бір қарапайым операцияны орындауға бұйыратын бұйрық түрінде болады. Командалар арифметикалық, логикалық, басқаруды беру, сандарды салыстыру, экранға шығару, принтерге шығару және т.б. болып бөлінеді.
Алгоритм құрылымына қарай оны келесі типтерге бөлуге болады:
1. Сызықтық алгоритмдер. Сызықтық алгоритм қарапайым командалар тізбегінен тұрады. Әрекеттердің тізбектей орындалуын сипаттайтын алгоритм – сызықтық алгоритм деп аталады. Мысалға, алдыңғы практикалық жұмыстағы екі санның қосындысын табу алгоритмі сызықтық алгоритмге жатады.
2. Тармақталу алгоритмі. Күнделікті өмірде алгоритмдер негізінен тармақтарға бөлінеді. Бұл тармақтардың орындалуы шарттың орындалуына байланысты болады. Тармақталу алгоритмінде біріншіден, арифметикалық теңсіздік түрінде берілген логикалық шарт тексеріледі. Егер шарт орындалса, алгоритм бір тармақ бойынша (1-ші серия) , ал егер орындалмаса, екінші тармақ бойынша (2-ші серия) орындалады.
3. Циклдік алгоритмдер. Көптеген алгоритмдерде белгілі бір әрекеттер бірнеше рет орындалады. Математикада, есеп шығару барысында айнымалы мәні өзгеруіне байланысты бір теңдеудің көмегімен бірнеше рет есептеледі. Алгоритмнің белгілі бір бөлігі бірнеше қайталанатын болса, ондай процессті цикл деп атайды. Қайталанатын бөлігі бар алгоритмдер циклдік алгоритм деп аталады. Циклдік алгоритмдер қолдану арқылы программаны қысқа да нұсқа жазуға болады. Қайталану бөлігіне қайталану (циклдік) командалары қолданады. Қайталану саны белгілі немесе белгісіздігіне байланысты циклдар екі түрге бөлінеді. Қайталану саны белгілі болса, ондай цикл арифметикалық, ал егер белгісіз болса, итерациялық деп аталады.
Арифметикалық цикл Итерациялық цикл
Алгоритм ұғымның мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритмнің дискреттілігі (үзілісті) –ақпаратпен жасалатын әрекеттерді тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде символдық мәтіндер және сандар пайдаланылады.
2.Алгоритмннің анықтылығы –біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау алгоритмде не істеу керектігі алдын-ала айқын береді. Мысалы, бір есепті шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай нұсқаулар берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты болуы тиіс.
3.Алгоритмннің жалпылығы –Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу мүмкіндігі бар.Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда,жалпылық қасиеті деп атайды.
4.Алгоритмннің нәтижелілігі -Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша, алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қлрытынды жасруға болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік процесс, ал әрбір әрекет оның қадамы, әрбір нұсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде айтылғандай оның орындалу нәтижесінің атқарушыға тәуелсіздігі.
4 – Тақырып бойынша тест сұрақтары
- Алгоритмдік тілдегі қызметші сөздер деп нені айтады:
- Басқа алгоритмдер құрамында қолданылмайтын көмекші алгоритмдер;
- Тұрақты мәні бар константалар;
- Басқа алгоритмдер құрамында қолданылатын көмекші алгоритмдер;
- Ақпаратты кодтау жүйесіне енетін командаларды жазу үшін қолданылатын сөздер;
- Бір рет және мәңгіге белгіленген сөздер, мағыналар және қолдану тәсілдері;
- Орындаушы дегеніміз не:
A. Берілген алгоритмді орындай алатын субъект немесе объект;
B. Берілген алгоритмді орындай алатын объект;
C. Нұсқауларды орындаушы;
D. Машина;
E. Берілген алгоритмді орындай алатын адам;
- Суретте бейнеленген блок-схема конструкциясы қалай аталады:
A. Алгоритмнің басы-соңы;
B. Цикл;
C. Деректерді енгізу/шығару;
D. Көмекші алгоритмді шақыру;
E. Амалды орындау;
- Суретте бейнеленген блок-схема конструкциясы қалай аталады:
A. Цикл;
B. Көмекші алгоритмді шақыру;
C. Алгоритмнің басы-соңы;
D. Деректерді енгізу/шығару;
E. Амалды орындау;
- Суретте бейнеленген блок-схема конструкциясы қалай аталады:
A. Амалды орындау;
B. Алгоритмнің басы-соңы;
C. Цикл;
D. Деректерді енгізу/шығару;
E. Көмекші алгоритмді шақыру;
- Алгоритмнің анықтылығына қойылатын талап:
A. Алгоритм әрекеті бірмәнсіз орындалған;
B. Алгоритм әрекеті нақты анықталған және бірмәнді болу керек;
C. Нәтиже берілген сандар қадамынан алыну керек;
D. Алгоритм әрқашан анықталған мәнмен қамтамасыз етеді;
E. Алгоритм анықталған класқа жататын есептерді шешу үшін қолданылады;
- Алгоритмнің блок-схемасын құрғанда параллелограмм нені бейнелейді:
A. Көмекші алгоритмді шақыру;
B. Деректерді енгізу және шығару;
C. Параметрлерді есептеу;
D. Принтер;
E. Шартты талдау;
- Сызықтық алгоритм сипаттамасы:
A. Барлық жауабы дұрыс;
B. Бір немесе бірнеше циклдан тұрады;
C. Есептеуден тұрмайды;
D. Бір немесе бірнеше логикалық шарттан тұрады;
E. Логикалық шрттан тұрмайды және есептеудің бір тармағынан тұрады;
- Айнымалы – дегеніміз не:
A. Әртурлі мәндер қабылдауға қабілетті объект;
B. Динамикалық объект;
C. Қандай да бір символ;
D. Қосымша процедура
E. Басқа программалармен өзара әрекеттесетін жеке программа;
- Берілген элемент блок-схемада қандай әрекетті білдіретінін көрсетіңіз:
A. Алгоритмнің басы-соңы;
B. Шарт- есепті шешу жүрісіне әсер ететін қандайда бір шартты тексеру;
C. Ішкі бағдарламаны шақыру;
D. Деректерді енгізу-шығару;
E. Процесс- операцияны немесе операциялар тобын орындау;
1 – Аралық бақылауға арналған сұрақтар тізімі
- Информатика ғылымы нені зерттейді?
- Ақпарат және оның түрлері
- Ақпарат қасиеттері
- Тек қана 0 мен 1 цифрларының бірімен тұратын информацияның өлшем бірлігі қалай аталады?
- Әр таңбаны, әріпті, цифрды кодтау үшін қанша екілік цифр керек?
- Дербес компьютер қандай негізгі құрылғылардан тұрады?
- Дербес компьютердің қандай қосымша құрылғылары бар?
- Пернелерді неше блокқа бөлуге болады?
- Функционалдық пернелер қызметі
- Қосымша пернетақта қызметі
- Санау жүйесі дегеніміз не?
- Санау жүйесінің түрлері
- Логикалық операциялар
- Бульдік алгебра негізлері
- Графтар мен ағаштар
- Есте сақтау құрылғылары
- Операциялық жүйе дегеніміз не?
- Файл дегеніміз не?
- Файлға қандай атау беріледі?
- Бума дегеніміз не?
- Бумалардың бұтақ тәріздес құрылымына түсүнік
- Сілтеуші бағдарламасы не үшін қолданылады?
- Файл адресі деген не ?
- Cілтеуші және Менің компьютерім терезесінің айырмашылығы неде?
- Файлдың толық атауының құрылымы туралы түсінік.
26. Сілтеуші терезесінде файл атауларын сұрыптау (реттеу) қалай жүзеге асырылады?
- Аралас файлдарды аралас емес файлдарды қалай ерекшелеуге болады?
- Файлдарды көшіру командасын сипаттау
- Файлды өшіру және қайта қалпына келтіру жолдары қандай?
- Файлдардың және бумалардың көлемін қалай анықтауға болады?
- Алгоритм ұғымы
- Алгоритмдерді жазудың қандай түрлері бар?
- Алгоритм қасиеттері
- Алгоритм құрылымына қарай қандай типтерге бөлінеді?