Айнымалыларға мән беру операторы
Алгоритм және оның қасиеттері
Егер берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, алдымен есепті шешудің алгоритмін құру қажет. Алгоритм — математиканың ең іргелі ұғымдарының бірі.
Алгоритм — берілген есепті шешуге қажетті әрекеттерді дәл және қарапайым түрде сипаттайтын, орындалу ретін нақты көрсететін нұсқаулар (әрекеттер) тізбегі.
«Алгоритм» сөзі IX ғасырда өмір сүрген ұлы математик Әл-Хорезмидің атының латынша жазылуы algorithmi сөзінен шыққан. Алгоритм ұғымы ертеден қолданылғанымен, математикалық теорияның дербес объектісі ретінде XX ғасырдың 30-жылдарында жүйелі түрде зерттеле бастады.
Алгоритм белгілі бір ретпен бірінен соң бірі орындалатын бірнеше қадамнан тұрады. Әр қадам бір немесе бірнеше қарапайым операцияны қамтиды.
Алгоритмнің негізгі қасиеттері
-
1) Дискреттілік. Алгоритм дискретті ақпаратпен жасалатын әрекеттерді тағайындайды: әрекеттер қадам-қадаммен орындалады. Жұмыс материалы ретінде символдық мәтіндер мен сандар қолданылады.
-
2) Анықталғандық (нақтылық). Алгоритмде не істеу керектігі алдын ала бірмәнді беріледі және оны өз қалауымызға қарай «жорамалдап» өзгертуге болмайды. Берілген нұсқауларды көрсетілген ретімен орындасақ, есеп шешіледі.
Бұл қасиет компьютер сияқты ойлау қабілеті жоқ құрылғылардың есептерді шешуіне кепілдік береді: олар алгоритм жарлықтарын ойланбастан формальды орындайды. Сондықтан алгоритм атқарушыға түсінікті әрі нақты болуы тиіс.
-
3) Жалпылық (көпшілікке бірдейлік). Бір алгоритмді бастапқы деректердің әртүрлі мәндері үшін қолдануға болады, яғни бір ғана әдіс бір типтес көптеген есептерді шешеді.
-
4) Нәтижелілік. Әрбір алгоритм белгілі бір бастапқы деректерді талап етеді және санаулы қадамнан кейін ізделген нәтижеге жеткізуі керек. Мысалы, екі санды қосу алгоритмінде қосылғыштар — бастапқы деректер, ал қосынды — нәтиже.
Негізгі қорытындылар
- Алгоритмдер әртүрлі есептерді шешу үшін қолданылады.
- Алгоритм атқарушыдан аз білім талап етеді, сондықтан есеп шығаруды жеңілдетеді.
- Алгоритм толық аяқталған әрекеттерден (командалардан) тұрады.
- Атқарушы орындайтын командалар жиыны атқарушының командалар жүйесі деп аталады.
- Командалар тізбегін орындау — алгоритмдік процесс, ал әр команда — оның қадамы.
- Алгоритмді орындау есептің мазмұнын қайта талдауды талап етпейді: командалар формальды орындалады.
- Алгоритмді адам да, компьютер де орындай алады — бұл есептеу процесін автоматтандыруға мүмкіндік береді.
Алгоритмді жазу тәсілдері және алгоритмдік тіл
Алгоритм құрамы айқындалып, оның әрекеттері анықталғаннан кейін алгоритмді жазып көрсету тәсілін және тілін таңдау қажет. Алгоритмдік тілді пайдалану құрастырушының өзіне ғана түсінікті нұсқауларын көпшілікке түсінікті формада беруге мүмкіндік береді.
Алгоритмді жазудың бірнеше тәсілі бар. Олардың ішінде мектеп курсында жиі қолданылатыны — блок-схема және мектептік алгоритмдік тіл.
Блок-схема
Блок-схема — алгоритмді жазудың графикалық тәсілі. Ол алгоритмнің логикалық құрылымын геометриялық фигуралар (блоктар) арқылы бейнелейді. Есепті шығару процесі кезеңдерге бөлінеді, әр кезең белгілі бір блокпен белгіленеді, ал орындау бағыты стрелкалармен көрсетіледі.
Блок-схемада жиі кездесетін блоктар
Жұмыр (сопақ)
Алгоритмнің басы және соңы.
Параллелограмм
Деректерді енгізу немесе нәтижені шығару.
Тіктөртбұрыш
Есептеу, меншіктеу немесе кез келген әрекет.
Ромб
Шартты тексеру және тармақталу.
Түйін (қосылу нүктесі)
Бірнеше сызықты біріктіру.
Түсініктеме блогы
Ендіру немесе есептеу блоктарын қысқаша түсіндіру.
Негізгі блоктардың қызметі
- Енгізу блогы айнымалылардың сандық мәндерін компьютер жадына енгізу үшін қолданылады.
- Өңдеу (есептеу) блогы формула бойынша жаңа мәндерді есептеуді білдіреді; қажет болса айнымалының бұрынғы мәні жаңа мәнді табуға қатыса алады.
- Шартты тексеру блогы есептеу барысы шартқа тәуелді өзгеретін тармақталуды көрсетеді.
Алгоритмнің логикалық құрылымдары
Сызықтық алгоритм
Егер алгоритмнің N қадамы болса және олардың барлығы басынан аяғына дейін бірінен соң бірі тізбектеле орындалса, онда ол сызықтық алгоритм деп аталады.
Мысал
Табаны B, биіктігі H болатын үшбұрыштың ауданын табу: енгізу → есептеу → шығару.
Тармақталушы алгоритм
Егер қадамдардың орындалу реті қандай да бір шартқа тәуелді өзгерсе, онда ол тармақталушы алгоритм. Алгоритмде шарт ретінде «иә» немесе «жоқ» мәндерінің бірін қабылдайтын логикалық өрнек қолданылады.
Жалпы түрі (мектептік алгоритмдік тіл)
егер шарт онда
"иә" тармағы
әйтпесе
"жоқ" тармағы
бітті
Блок-схемада шартты тексеру блогы ромб түрінде белгіленеді: шарт орындалса «иә» тармағы, орындалмаса «жоқ» тармағы орындалады.
Мысал
ax² + bx + c = 0 квадрат теңдеуінің нақты түбірлерін табу: нақты түбірлері жоқ болса, соған сәйкес хабарды шығару тармақталу арқылы орындалады.
Қайталанушы (циклдік) алгоритм
Егер алгоритмнің белгілі бір қадамдары қандай да бір шаманың мәніне тәуелді түрде бірнеше рет орындалса, ол қайталанушы (циклдік) алгоритм деп аталады. Бұл шама цикл параметрі болады. Цикл аяқталуы үшін аяқталу шарты (параметрге қойылатын талап) міндетті түрде анықталуы тиіс.
Шарт циклдің басында тексерілетін түрі
әзір шарт ЦБ
командалар тізбегі
ЦС
Мұнда әзір, ЦБ (цикл басы), ЦС (цикл соңы) — қызметші сөздер.
Мысал
Белгілі бір қатардың қосындысын есептеп, нәтижесін баспаға шығару — қайталану арқылы тиімді орындалады.
Алгоритмдерді құрылымына сүйеніп құрастыру
Компьютерде есеп шығару үшін алгоритм құру — арнайы дағдыны талап ететін жұмыс. Әсіресе бөтен алгоритмдерді оқу кезінде алгоритм: түсінікті, жеңіл қабылданатын; оңай тексерілетін; құрылымын толық өзгертпей-ақ модификациялауға келетін болуы керек.
Бұл талаптарға жету үшін құрылымдық тәсіл қолданылады: кез келген күрделі алгоритм үш базалық құрылымнан құрастырылады — ілесу, тармақталу және қайталану.
Мысал: үш санның ішінен ең үлкенін табу
Бұл есеп екі тармақталудың ілесуі арқылы шешіледі. Алдымен a және b салыстырылып, үлкені y-ке меншіктеледі. Кейін y мәні үшінші сан c-мен салыстырылады: егер y < c болса, онда y := c, әйтпесе y өзгеріссіз қалады. Нәтижесінде y айнымалысы a, b, c сандарының ең үлкенін қабылдайды.
Программаларды жасақтау технологиясы
Программалауға кіріспе
Компьютер жұмыс істеуі үшін оған қажетті программаларды программалаушы жасайды. Программалаушы — әлемдегі сұранысы жоғары мамандықтардың бірі. Бұл кәсіпте адам өмір бойы үйренеді: бір ғана оқу құралын оқып шығып, бірден толыққанды программалаушы болып кету мүмкін емес. Дайындық негізгі ұғымдарды меңгеруден және қарапайым программалау тәсілдерін үйренуден басталады.
Компьютер командаларға бағынып жұмыс істейді. Командаларды пернетақта арқылы біртіндеп енгізуге болады, бірақ командалар саны көбейген сайын бұл тәсіл жалықтырады және қателікке әкеледі. Сондықтан жиі қайталанатын командаларды файлға жазып сақтап, компьютерге сол файлдан оқытқан тиімді.
Осылайша программа пайда болады: программа — командалардың реттелген тізбегі. Мұнда тек қандай командалар берілгені емес, олардың қандай ретпен берілгені де маңызды.
Программалау саймандары
Программалаушы қолданатын сайманның өзі де программа болуы мүмкін: жаңа программаны басқа программаның көмегімен жасайды. Бұл үрдісті трактор жасауға ұқсастыруға болады: трактор станок пен жабдықтар арқылы жасалады, ал станоктардың өзі де одан қарапайым құралдардың көмегімен жасалған. Ең түпкі деңгейде «балға мен төске» ұқсайтын негіз — процессор түсінетін машиналық кодтар.
Процессор орындайтын кодтардың жиыны оның командалар жүйесі деп аталады. Мысалы, Intel үйлесімді процессорларында жүздеген түрлі команда бар.
Ал программалау саймандары — программалаушыға ыңғайлы түрде жазылған мәтінді оқып, оны процессорға қажетті машиналық кодқа аударып беретін арнайы программалар.
Программалар кітапханасы
Зауытта жұмысшы болтты әр жолы қайта құйып жасамай, дайын стандартты бөлшектерді сөреден алады. Программалауда да дәл солай: үлкен программалардың едәуір бөлігі бұрын жасалып қойған стандартты бағыныңқы программалардан құрастырылады.
- Кітапханадағы дайын блоктарды өзгеріссіз алып қолдану уақытты үнемдейді.
- Кітапханалар кеңейген сайын программалаушылардың еңбек өнімділігі де артады.
- Стандартты, коммерциялық және фирмалық (ішкі) кітапханалар болады.
- Фирмалық кітапханалар көбіне таратылмайды және бәсекелестерден қорғалады.
Программаның көрінісі және трансляция
Хат әр түрлі тілде жазылатыны сияқты, программалар да арнайы тілдерде жазылады — олар программалау тілдері. Әр тілде жазылған бірдей программаның сыртқы көрінісі де әртүрлі болады. Бірақ барлық программалау тілдеріне ортақ бір нәрсе бар: олар программалаушыға түсінікті болғанымен, процессорға тікелей түсініксіз.
Процессор тек сандармен жұмыс істейді, сондықтан тек машиналық кодты түсінеді. Демек, кез келген программалау тілінде жазылған программа міндетті түрде машина тіліне аударылады. Бұл аудару трансляция (translation) деп аталады, ал оны орындайтын программалар трансляторлар деп аталады.
Жоғары деңгейлі тіл
Мысалы: Basic және т.б.
Төменірек деңгей
Мысалы: Assembler.
Машина тілі
Процессор тікелей орындайтын код.
Компьютерге орнатылған барлық программалар түпкі нәтижесінде машина кодына айналған түрде сақталады. Демек, программаның «көрінісі» туралы толық айту үшін оның қай программалау тілінде жазылғанын білу қажет.
Есепті компьютерде шығаруға даярлау технологиясы
Есепті компьютерде шығарудың негізгі кезеңдері
Есепті компьютерде шығару бірнеше кезеңнен тұратын процесс. Бұл бөлім келесі материалдармен толықтырылады.