Ар бир адамдын күнүмдүк жашоосу жумушта же окуу учурунда ар кандай татаалдыктагы көп сандагы маселелерди чечүү. Кээ бир тапшырмалар ушунчалык жөнөкөй болгондуктан, аларды аткарганда биз ойлонбой туруп эле белгилүү бир аракеттерди автоматтык түрдө жасайбыз. Кандайдыр бир маселени чечүү, ал тургай эң жөнөкөй, эреже катары, бир нече этап менен ырааттуу түрдө ишке ашырылат. Маселелерди чечүүдөгү мындай ырааттуулук алгоритм деп аталат. Бүгүн биз сызыктуу алгоритмдер деген эмне экенин, алардын структурасы кантип сүрөттөлгөндүгүн, алар кантип чечилип, программаланганын карап чыгабыз.
Алгоритмдик тил
Бул түшүнүк аткаруучуга тапшырманы чечүүгө багытталган иш-аракеттердин белгилүү ырааттуулугун аткаруунун так көрсөтмөсү.
Бул тил алгоритмдерди сыпаттоо каражаты болуп саналатадатта колдонуучуга багытталган.
Компьютер тилинде бул эсептөө процессин аныктаган так рецепт. Ал өз кезегинде өзгөрүп турган баштапкы маалыматтардан баштапкы натыйжага алып барат.
Алгоритмди иштеп чыгуу өтө татаал жана көп убакытты талап кылган процесс. Бул компьютердин жардамы менен маселелерди чечүү үчүн арналган аракеттердин ырааттуулугун түзүү (иштеп чыгуу) ыкмасы.
Алгоритмдин касиеттери
Касиеттердин арасында айырмаланат:
- чектүүлүк - бүт алгоритмди белгилүү бир чектүү сандагы этаптарда (кадамдар) бүтүрүүдөн турат;
- аныктуулук (уникалдуулук) - аракеттерди аткаруу эрежелерин чечмелөөнүн уникалдуулугун, ошондой эле алардын аткарылуу тартибин билдирет;
- аткаруу - каалаган чектүү кадамдар менен каалаган натыйжаны алуу;
- түшүнүктүүлүк - көрсөтмөлөр аткаруучуга түшүнүктүү болушу керек;
- массалык белги - алгоритмдер жалпы көйгөй билдирүүсү менен конкреттүү маселелердин бүтүндөй классын чече алышы керек.
Сызыктуу алгоритмдер. Информатика 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
m:=ad
n:=b c
чыгаруу м, n
con
Чечимдин графикалык формасы
Жогоруда сүрөттөлгөн сызыктуу алгоритмдин схемасы мындай көрүнөт:
Маани дайындоо буйругу төмөнкү форматка ээ:
Variable:=испрессия.
":=" белгиси дайындоо катары окулат.
Дайындоо бул компьютерге төмөндөгүлөрдү аткаруу үчүн талап кылынган буйрук:
- экспрессияны баалоо;
- алынган маани өзгөрмөгө дайындалууда.
Жогорудагы алгоритм тапшырма катары эки буйрукту камтыйт. Блок-схемада дайындоо инструкциясы эсептөө блогу деп аталган тик бурчтукка жазылышы керек.
Сызыктуу алгоритмдер сүрөттөлгөндө, туюнтмаларды жазууда катуу эрежелерди милдеттүү түрдө сактоонун өзгөчө зарылчылыгы жок. Аларды кадимки математикалык форманы колдонуп жазсаңыз болот. Анткени, бул катуу программалоо тилинин синтаксиси эмес.
Алгоритмдин берилген мисалында дагы киргизүү буйругу бар:
A, b, c, d киргизүү.
Блок-схемадагы киргизүү буйругу параллелограммда, башкача айтканда киргизүү/чыгаруу блогунда жазылган. Бул команданы аткаруу менен процессор колдонуучу белгилүү бир аракеттерди жасаганга чейин ишти үзгүлтүккө учуратат. Тактап айтканда: колдонуучу киргизүү өзгөрмөлөрүн (алардын маанилерин) киргизүү түзүлүшүндө (клавиатурада) териши керек жана киргизүү баскычынын милдетин аткаруучу Enter баскычын басышы керек. Маанилердин киргизүү тизмесиндеги тиешелүү өзгөрмөлөр менен бирдей тартипте киргизилиши маанилүү.
Сызыктуу алгоритм. Анынпрограммалоо
Макаланын башында айтылгандай, сызыктуу программалар төмөнкү операторлорду камтышы мүмкүн:
- дайын;
- киргизүү;
- чыгуу.
Башкача айтканда, саналып өткөн операторлордун жардамы менен сызыктуу алгоритмдерди программалоо ишке ашырылат.
Ошентип, программалоо тилинде дайындоо оператору мындайча жазылган:
LET A=B, мында A өзгөрмө, B - туюнтма. Мисалы, A=Y + 20.
Киргизүү билдирүүсү мындай көрүнөт:
INPUT, мисалы: INPUT С
Маалыматтарды, маанилерди чыгаруу оператору төмөнкүчө жазылган:
БАСМА. Мисалы PRINT С.
Жөнөкөй мисалды алалы. Клавиатурадан киргизилген А жана В сандарынын суммасын таба турган программа жазышыбыз керек.
Программалоо тилинде биз программаны алабыз, анын тексти төмөндө көрсөтүлгөн.
Паскаль программалоо тилиндеги киргизүү жана чыгаруу операторлору
Паскаль сызыктуу алгоритмдерди колдонгон киргизүү же чыгаруу операциялары үчүн атайын операторлорду камсыз кылбайт. Программаларда маалымат алмашуу орнотулган процедураларды колдонуу менен ишке ашырылат. Стандарттык процедуранын алдын ала сыпаттамасынын кереги жок болгондуктан, ал ага чакыруу камтыган ар бир программа үчүн жеткиликтүү. Ошондой эле, аталган процедуранын аталышы эч кандай сакталган сөз эмес.
Маалыматтарды киргизүүдө, буга чейин камтылган стандарттуу маалыматтарды киргизүү жол-жобосуна кайрылуу үчүн мындай билдирүүлөрдү колдонуңузпрограмма.
Оку (A, B, C), мында A, B, C - жаттоо үчүн RAMга киргизилиши керек болгон өзгөрмөлөр.
Readlnn (x1, y, x2) – киргизүү аяктагандан кийин курсор жаңы саптын башына жылат.
Readlnn; - "Enter" баскычын басууну күтүүнү билдирет. Адатта, бул билдирүү программанын натыйжаларын мазмун экранында сактоо үчүн текстке акыркы "Аягы" чейин киргизилет.
Маалымат мониторунун дисплейи төмөнкү операторлор аркылуу ишке ашырылат:
Write (А, В, С) – бир сапта А, В, С маанилерин көрсөтүү менен курсор учурдагы саптан чыкпайт.
Writeln (z, y, z2) – маанилердин чыгарылышын аяктагандан кийин, бул позициядагы курсор жаңы сапка жылат.
Жазылган; - бир сапты өткөрүп жиберүүнү жана жаңы саптын башына өтүүнү билдирет.
Мына ушундай жөнөкөй операторлордун жардамы менен Паскаль тилинде маалыматтарды киргизүү жана чыгаруу ишке ашырылат.