4.3. – 4.4. Тармақталған алгоритмдерді программалау

Python программалау тілінде тармақталған алгоритмдерді қалай құрастыруға болады?

Жаңа білім

   Ойлан

  • Қалай ойлайсың, программа құру және жазу процесін жеңілдетуге бола ма?
  • Сызықтық алгоритмдерге мысалдар келтір.
  • Қалай ойлайсың, сызықтық алгоритмдер көмегімен барлық есептерді программалау мүмкін бе? Себебін түсіндір.
  • Күнделікті тұрмыста орындайтын іс-әрекетімізге кедергі келтіретін шарттарға мысалдар келтір. Мысалы, егер таңертең күн жаңбырлы болмаса, таңғы жаттығуды аулада орындаймын.

-1-

Сызықтық алгоритмнің тармақталу және қайталану әрекеттері жоқ, әрекеттердің тізбектеліп орындалатын алгоритм екендігін 6-сыныпта білдік. Күнделікті тұрмыста орындайтын іс-әрекетіміз әрқашан сызықтық болып ретімен орындала бермейтіні анық. Көп жағдайда түрлі іс-әрекеттерді орындау барысында туындайтын кедергілер бойынша шешім қабылдай білуіміз керек. Мысалы, баланың мектепке баруын сызықтық алгоритм ретінде қарастырайық. Бала таңертең тұрады, мектепке барады, сабақ оқиды, үйге қайтады. Ал осы алгоритмді орындауда таңертең бала ауырып қалса, кейінгі әрекет қандай болады? Бұл кезде екі жағдай туындайды. Бала денсулығы мүмкіндік берсе, ол мектепке барады, әйтпесе бармайды. Міне, осы әрекет барысында сызықтық ісәрекетіміз туындаған жағдайға байланысты екіге ажырайды, яғни тармақталды. Мұндай алгоритмдерді тармақталу алгоритмдері деп атайды.

-2-

Тармақталу алгоритмінде «егер», «онда», «әйтпесе» түйінді сөздері қолданылады. Тармақталу алгоритмінде міндетті түрде шарт қолданылады. Шарт – тексеру нәтижесінде «иә» (ақиқат) немесе «жоқ» (жалған) логикалық мәндерін қабылдайтын логикалық өрнек немесе пікір.

Тармақталу алгоритмі – орындалуы керек қадам белгілі бір шарттың орындалу немесе орындалмауына байланысты жүзеге асырылатын алгоритм.

Компьютерде программалау барысында берілген есептердің алгоритмдерін құрастыру кезінде, оның мазмұнына қарай түрлі шарттар туындайды. «Тармақталу» ұғымы есептердің алгоритмін құрастыру барысында туындайтын шарттар нәтижеге жеткенше бірнеше тармақтарға ажырап кетуімен байланысты. Кез келген программалау тілінде міндетті түрде шартпен жұмыс жасайтын операторлар болады. Сол сияқты Python программалау тілінде де шарт тексеруге арналған арнайы if -else операторы қолданылады. If сөзі ағылшын тілінен аударғанда егер, ал else сөзі әйтпесе мағынасын береді. Іf-тен кейін шарт жазылады. Егер шарт орындалса, яғни ақиқат болса, онда көрсетілген команданы орындауға көшеді. Шарт тексеру үшін төмендегі салыстыру операторлары қолданылады (1-кесте).

Шарт тексеру операторы туындайтын шарттардың күрделілігіне қарай үш түрлі құрылымы бар. Біз әзірге екі құрылыммен ғана танысамыз.

1-кесте. Салыстыру операторлары

Шарт тексеру операторының жазылу құрылымдары

1. Шарт тексеру операторының қысқа жазылу түрі

If операторынан кейін шарт міндетті түрде жазылады. Шарттан кейін «:» қоснүкте қойылады. 1-командалар блогы тек шарт ақиқат «иә» болғанда орындалады. Ал 2-командалар блогы кез келген жағдайда орындалады (1-сызба). Шарт тексеру операторын алгоритм түрінде өрнектеген кезде блок-сызбада ромб фигурасы қолданылады (2-сызба).

1-сызба. Қысқа жазылу құрылымы

2. Шарт тексеру операторының толық жазылу түрі

Шарт тексеру операторының қысқа жазылу түрі тек туындаған шарттың ақиқаттығын тексереді. Ал шарт жалған болған кездегі орындалуы керек қадамды көрсетпейді. Ол үшін шарт тексеру операторының if - else толық құрылымы қолданылады (3-сызба).

3-сызба. Толық жазылу құрылымы

Шарт тексеру операторының толық жазылу түрін өзімізге түсінікті, қарапайым тілде төмендегіше оқуға болады: «егер қойылған шарт орындалса, онда 1-команда немесе командалар блогын орында, әйтпесе 2-команда немесе командалар блогын орында».

Шарт тексеру операторының қысқа және толық жазылу құрылымдарын практикада қолданудың жолдарымен танысайық. Берілген практикалық тапсырмаларды Python программасына жазып, нәтижесін ал.

4-сызба. Блок-сызба

Практикалық жұмыс

1-тапсырма

а және b бүтін сандар берілген. Егер а саны жұп болса, онда оны квадраттап, b санына қос. Ал сан тақ болса, онда санның өзін b санына қосып, нәтижені экранға шығар.

Мысалы

Нәтиже

Түсніктеме

6

5

42

25+18 = 43; 43/9 = 4 (7)

45-12 = 33; 33/9 = 3 (6)

 Тапсырманы орындау үшін шарт тексеру операторының қысқа жазылу түрін қолдануға болады. а санының жұп немесе тақ сан екенін тексеру үшін қалдықты анықтау «%» амалын қолданамыз. Тапсырманың программалық коды 1-суретте, ал блок-сызбасы 5-сызбада берілген.

1-сурет. Тапсырманың программа коды

5-сызба. Блок сызба

2-тапсырма

Нақты А саны берілген. А сан оң сан болса, оның квадратын, теріс сан болса, оның кубын есептеп, нәтижені экранға шығар.

Мысалы

Нәтиже

9

-5

64

-125

Алгоритмдік шешу жолы

Тапсырманы орындауда шарт тексерудің толық құрылымын пайдаланамыз. Тапсырма бойынша A>0, A<0 шарттары туындайды. Осы екі шарттың біреуін тексеру жеткілікті. A>0 шарты орындалмауы, A<0 ал орындалуына алып келеді, өйткені сан не оң, не теріс болады (2-сурет). Тапсырманы орындауда А=0 жағдайы қарастырылған жоқ.

2-сурет. Тапсырманың программа коды

Талдау

Берілген a, b және c сандарының үлкенін табуға арналған программа кодына (3-сурет) төмендегі сұрақтар бойынша талдау жүргіз:

1. Программада үш санның үлкенін табу үшін қандай алгоритмге сүйенеді?

2. Программада қолданылған шарт тексеру операторының құрылымы қандай?

3. Программа кодын талдап, блоксхема құрастыр.

3-сурет. Программа коды

Жинақтау

Шарт тексеру операторының қысқа және толық жазылу құрылымдарының біріне пайдалануға арналған тапсырма мәтінін құрыңдар. Құрған тапсырмаларыңның шешу жолын көрсетіңдер.

Бағалау

Шарт тексеру операторының программалаудағы маңызын бағала.

Сұрақтар

1. Тармақталу алгоритмі қандай алгоритм?

2. Тармақталу алгоритміне күнделікті өзің орындайтын іс-әрекеттердің қайсысын мысал ретінде келтіре аласың?

3. Шарт тексеру операторының құрылымдары жайлы не білдің?

4. Шарт тексеру операторының қысқа және толық жазылу құрылымдарының қандай айырмашылықтары бар? Себебін түсіндір.

Берілген

Өрнек

Нәтижесі

x = 74; y = 14

x == y

  

x = 0; y = 0

x ! = y

x = 590; y = 590

x > y

x = 243; y = 243

x < y

x = 740; y = 740

x > = y

x = 29; y = 30

x < = y

1-тапсырма

К саны берілген. Осы санның жұп немесе тақ екенін анықтайтын программа құр. Егер сан тақ болса, экранға 1, әйтпесе 0 шықсын.

Мысалы

Нәтиже

17

62

1

0

2-тапсырма

Велосипедші V м/с жылдамдықпен қозғалса, S м жолды t секундта жүріп өте ала ма? Анықта. Егер жүріп өтсе «ia», әйтпесе «joq» жауаптарының бірі экранға шықсын. Деректердің енгізілу реті: V – жылдамдық, S – жол, t – уақыт.

Мысалы

Нәтиже

5 100 15

10 800 90

joq

ia

3-тапсырма

Қыста күн жылы болса, мұз үстінде хоккей ойнай алмайсың. 7-сынып оқушылары бүгін сабақтан соң хоккей ойнауды жоспарлап отыр. Мұғалім оқушыларға соңғы үш күнгі тіркелген ауа температурасы t температурадан төмен болған жағдайда ғана хоккей ойнауға болатынын ескертті. Берілген деректерді пайдаланып, оқушылар бүгін хоккей ойнай ала ма, әлде ойнай алмай ма, соны анықта. Деректерді енгізу реті: Соңғы үш күндегі ауа райының мәндері: a, b, с және t температура.

Мысалы

Нәтиже

5 100 15

10 800 90

joq

ia

  • ==
  • =
  • >
  • <
  • >=
  • <=
  • Тең
  • Тең емес
  • Үлкен
  • Кіші
  • Үлкен немесе тең
  • Кіші немесе тең
Өтінемін күте тұрыңыз