Әр адамның күнделікті өмірі жұмыста немесе оқу кезінде әртүрлі күрделіліктегі көптеген тапсырмаларды шешу болып табылады. Кейбір тапсырмалардың қарапайымдылығы соншалық, біз оларды орындаған кезде белгілі бір әрекеттерді тіпті ойланбастан автоматты түрде орындаймыз. Кез келген мәселені, тіпті ең қарапайымын шешу, әдетте, бірнеше қадамдармен дәйекті түрде жүзеге асырылады. Есептерді шешудегі мұндай реттілік алгоритм деп аталады. Бүгін біз сызықтық алгоритмдердің не екенін, олардың құрылымы қалай бейнеленгенін, олар қалай шешілетінін және бағдарламаланғанын қарастырамыз.
Алгоритмдік тіл
Бұл тұжырымдама орындаушыға тапсырманы шешуге бағытталған белгілі бір әрекеттер тізбегін орындаудың дәл нұсқауы болып табылады.
Бұл тіл алгоритмдерді сипаттайтын құрал болып табыладыәдетте пайдаланушыға бағытталған.
Компьютер тілінде бұл есептеу процесін анықтайтын дәл рецепт. Ол, өз кезегінде, өзгеретін бастапқы деректерден бастапқы нәтижеге әкеледі.
Алгоритмді жасау – өте күрделі және көп уақытты қажет ететін процесс. Бұл компьютер көмегімен есептерді шешуге арналған әрекеттер тізбегін құрастыру (дамыту) әдістемесі.
Алгоритмнің қасиеттері
Қасиеттердің арасында ерекшеленеді:
- шектілік - кезеңдердің (қадамдардың) белгілі бір шекті санында бүкіл алгоритмнің аяқталуынан тұрады;
- анықтылық (бірегейлік) - әрекеттерді орындау ережелерін түсіндірудің бірегейлігін, сондай-ақ олардың орындалу ретін білдіреді;
- өнімділік - қадамдардың кез келген шектеулі санымен қажетті нәтижеге қол жеткізу;
- түсініктілік - нұсқаулар орындаушыға түсінікті болуы керек;
- массалық таңба - алгоритмдер жалпы есеп мәлімдемесі бар нақты есептердің бүкіл класын шеше алуы керек.
Сызықтық алгоритмдер. Информатика 9-сынып
Бұл ұғымның анықтамалары мен қасиеттерін қарастырдық. Енді оның түрлеріне тоқталайық:
- сызықты;
- тармақталу;
- циклмен.
Бізді сызықтық алгоритмдер қызықтырады. Олар не? Олар бірінен соң бірі анық дәйектілікпен орындалуы тиіс пәрмендерді қамтиды.
Алгоритмнің сызықтық құрылымын ауызша жазуға боладыжәне графикалық пішін.
Ауызша түрде жазылған мысал келтірейік. Сонымен, тапсырма: мектепке дайындал. Шешім:
- Бастау.
- Тұр.
- Жаттығу.
- Жуу.
- Киініңіз.
- Таңғы ас.
- Портфель жинаңыз.
- Соңы.
Жоғарыдағы процестің графикалық пішіні келесідей болады:
Блок-схема түріндегі сызықтық алгоритм
Блок-схема алгоритмнің иллюстрациялық көрінісі болып табылады, онда әрбір жеке кезең әртүрлі геометриялық фигуралар түрінде берілген блоктар арқылы бейнеленген. Сонымен қатар, қадамдар арасындағы байланыс (басқаша айтқанда, қадамдық орындау реттілігі) пішіндерді (блоктарды) байланыстыратын көрсеткілер арқылы көрсетіледі. Әрбір блок жазумен бірге жүреді. Сызықтық алгоритмдегі әдеттегі әрекеттер үшін келесі геометриялық фигуралар пайдаланылады:
- Алгоритмнің басы-соңы блогы. Блокта "басы" немесе "соңы" деген жазу бар.
- "Деректерді енгізу-шығару" блоктау. Бұл блок параллелограмм түрінде көрсетілген. Оған мынадай жазулар қойылады: «енгізу», «шығару», «басып шығару». Олар сонымен қатар тиісінше кіріс немесе шығыс айнымалылар тізімімен бірге жүреді.
- Арифметикалық блок немесе шешім блогы. Ол тіктөртбұрышқа сәйкес келеді. Блокта «операция», «операциялар тобы» деген жазу болуы керек.
Сызықтық алгоритмдердің шешімі осындай блок-схемалардың көмегімен бейнеленген. Әрі қарай, мүмкіндіктер туралы сөйлесейікмән тағайындаулары.
Сызықтық есептеу алгоритмдері
Есептеу алгоритміндегі негізгі элементар әрекет айнымалыға белгілі бір мән беру болып табылады. Тұрақтының мәні оның жазылу түрімен анықталған жағдайда, айнымалы мән тек тағайындау нәтижесінде белгілі бір мән алады. Мұны екі жолмен жасауға болады: тапсырма командасын қолдану; енгізу пәрменін пайдалану.
Сызықтық алгоритм шешімі мысалы
Сызықтық алгоритм арқылы жай бөлшектерді бөлу ережелерін сипаттауға мысал келтірейік, оның мектеп оқулықтарында мынадай мазмұн бар:
- 1-бөлшектің алымы 2-бөлшектің бөліміне көбейтілуі керек;
- 1-бөлшектің бөлімін 2-бөлшектің алымымен көбейту керек;
- бөлшекті жазу үшін қажет, онда алымы 1 ұпай, ал бөлгіш 2 ұпай нәтижесі болады. Бұл ереженің алгебралық түрі келесідей:
a/b: c/d=(ad)/(bd)=m/n.
Олай болса, компьютер үшін бөлшектерді бөлу алгоритмін құрастырайық. Шатасып кетпеу үшін біз жоғарыда көрсетілген формуладағыдай айнымалылар үшін бірдей белгілерді қолданамыз. a, b, c, d – бүтін айнымалылар түріндегі бастапқы деректер. Нәтиже де бүтін мәндер болады. Алгоритмдік тілдегі шешім:
alg Бөлшектерді бөлу
бастау
мақсат a, b, c, d, m, n
a, b, c, d
енгізу
м:=ad
n:=b c
шығыс м, n
con
Шешімнің графикалық түрі
Жоғарыда сипатталған сызықтық алгоритм схемасы келесідей:
Мән тағайындау пәрменінің келесі пішімі бар:
Айнымалы:=өрнек.
":=" белгісі тағайындау ретінде оқылады.
Тағайындау – компьютерге келесі әрекеттерді орындау үшін қажет пәрмен:
- өрнекті бағалау;
- алынған мәнді айнымалыға тағайындау.
Жоғарыдағы алгоритмде тапсырма ретінде екі пәрмен бар. Блок-схемада тағайындау нұсқауы есептеу блогы деп аталатын тіктөртбұрышта жазылуы керек.
Сызықтық алгоритмдер сипатталғанда өрнектерді жазу кезінде қатаң ережелерді міндетті түрде сақтаудың ерекше қажеттілігі жоқ. Оларды кәдімгі математикалық форманы пайдаланып жазуға болады. Өйткені, бұл қатаң бағдарламалау тілінің синтаксисі емес.
Алгоритмнің берілген мысалында енгізу пәрмені де бар:
a, b, c, d енгізіңіз.
Блок-схемадағы енгізу пәрмені параллелограммда, яғни енгізу/шығару блогында жазылған. Бұл команданы орындау арқылы процессор пайдаланушы белгілі бір әрекеттерді орындамайынша жұмысты тоқтатады. Атап айтқанда: пайдаланушы енгізу құрылғысында (пернетақта) енгізу айнымалыларын (олардың мәндерін) теріп, енгізу пернесі ретінде әрекет ететін Enter пернесін басу керек. Мәндердің енгізу тізіміндегі сәйкес айнымалы мәндермен бірдей ретпен енгізілгені маңызды.
Сызықтық алгоритм. Оныңбағдарламалау
Мақаланың басында айтылғандай, сызықтық бағдарламалар келесі операторларды қамтуы мүмкін:
- тапсырма;
- енгізу;
- шығыс.
Яғни аталған операторлардың көмегімен сызықтық алгоритмдерді программалау жүзеге асырылады.
Сонымен, программалау тіліндегі тағайындау операторы былай жазылады:
LET A=B, мұндағы A - айнымалы, B - өрнек. Мысалы, A=Y + 20.
Енгізу мәлімдемесі келесідей:
INPUT, мысалы: INPUT С
Деректерді, мәндерді шығару операторы келесідей жазылады:
БАСЫП АЛУ. Мысалы, БАСЫП ШЫҒАРУ С.
Қарапайым мысалды алайық. Пернетақтадан енгізілген А және В сандарының қосындысын табатын бағдарлама жазуымыз керек.
Бағдарламалау тілінде біз мәтіні төменде көрсетілген бағдарламаны аламыз.
Паскаль программалау тіліндегі енгізу және шығару операторлары
Паскаль тілінде сызықтық алгоритмдерді пайдаланатын енгізу немесе шығару операциялары үшін арнайы операторлар қамтамасыз етілмейді. Бағдарламаларда ақпарат алмасу кірістірілген процедуралар арқылы жүзеге асырылады. Стандартты процедураның алдын ала сипаттамасын қажет етпейтіндіктен, ол оған шақыру бар әрбір бағдарлама үшін қол жетімді. Сондай-ақ, аталған процедураның атауы ешбір резервтелген сөз емес.
Деректерді енгізген кезде, бұрыннан орнатылған стандартты деректерді енгізу процедурасына сілтеме жасау үшін осындай мәлімдемелерді пайдаланыңыз.бағдарлама.
Оқыңыз (A, B, C), мұнда A, B, C - есте сақтау үшін жедел жадқа енгізу қажет айнымалылар.
Readlnn (x1, y, x2) – енгізуді аяқтағаннан кейін курсор жаңа жолдың басына жылжиды.
Readlnn; - «Enter» пернесін басу күтілетінін көрсетеді. Әдетте бұл мәлімдеме бағдарламаның нәтижелерін мазмұн экранында сақтау үшін мәтінге соңғы "Аяқтау" алдында енгізіледі.
Дерек мониторын көрсету келесі операторлар арқылы жүзеге асырылады:
Write (А, В, С) – бір жолда А, В, С мәндерін көрсету, курсор ағымдағы жолдан шықпайды.
Writeln (z, y, z2) – мәндерді шығаруды аяқтағаннан кейін осы орындағы курсор жаңа жолға жылжиды.
Жазылған; - бір жолды өткізіп жіберуді және жаңа жолдың басына өтуді көрсетеді.
Дәл осындай қарапайым операторлардың көмегімен Паскаль тілінде мәліметтерді енгізу және шығару жүзеге асырылады.