4.6 Құрамды шарттарды программалау

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

Жаңа білім

   Ойлан

  • Бір-біріне байланысты бірнеше шартты ортақ бір шартқа қалай біріктіруге болады? Мысалдар келтір.

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

Құрамды шарттарды пайдалануда төменде көрсетілгендей логикалық амалдар қолданылады.

Логикалық амалдар көмегімен тұтас бір шартқа біріктірілген бірнеше қарапайым шарттарды құрамды шарттар деп атайды.

Логикалық амалдар

Логикалық көбейту (конъюнкция – «and», 1-кесте). Екі немесе одан да көп пікірлерді «және» жалғаулық шылауының көмегімен біріктіру амалы логикалық көбейту немесе конъюнкция деп аталады. «Конъюнкция» сөзі «және» жалғаулық шылауына сәйкес келеді.

Логикалық қосу (дизъюнкция – ‘or’). Екі немесе одан да көп пікірлерді «немесе» жалғаулығы көмегімен біріктіру амалын логикалық қосу немесе дизъюнкция деп атайды. «Дизъюнкция» сөзі «немесе» жалғаулығына сәйкес келеді.

Логикалық теріске шығару (инверсия – ‘not’). «Емес» сөзінің көмегімен пікірді теріске шығару амалы логикалық теріске шығару немесе инверсия деп аталады. «Инверсия» сөзі «дұрыс емес», «теріске шығару» сөздеріне және «емес» сөзіне сәйкес келеді.

1-кесте. Логикалық амалдар

Құрамды шарттарды бағдарламалауға мысалдар

1-мысал: a, b, c бүтін сандар берілген. Бұл сандардың ішіндегі өзара кері сандарды анықта. Егер өзара кері сандар бар болса – «ia», жоқ болса – «joq» жауабы экранға шығуы керек.

Мысалы

Нәтиже

4 10 -4

ia

True – «ақиқат», false – «жалған» деген мағыналарды білдіреді. Берілген шарт орындалса, яғни ақиқат болса, іf-ке жазылған шарттан кейін жазылған оператор орындалады. Жалған болса, else-дегі оператор орындалады. Төменде берілген 2-кестеде логикалық амалдарды орындауға мысалдар берілген (2-кесте).

2-кесте. Логикалық амалдардың орындалуы

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

Өзара кері сандарды анықтау шарты: a + b = 0, a + c = b, b + c = a. Мысалы: а: = 5; b: = – 5 болса, онда a + b = 0 шарты орындалады. Демек, бұл жағдайда a, b сандары – өзара кері сандар. Бұл есепте туындайтын a + b = 0 немесе a + c = 0 немесе b + c = 0 үш шартының біреуі орындалса, онда олардың арасында өзара кері сандар бар болғаны. Берілген мысалдың программа коды 1-суретте берілген.

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

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

Тапсырма. Жазықтықтағы А нүктесі х, у координаталарымен берілген (2-сурет). Осы нүктенің координата жазықтығының қай ширегінде жатқанын анықта.

2-сурет. Жазықтықтағы координата ширектері

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

А нүктесінің қай ширекте жатуы х, у координаталарының таңбасына байланысты. Мысалы: А нүктесі ІІ ширекте жатса, онда х-тің таңбасы (–), ал у-тің таңбасы (+) болуы керек (2-сурет). Практикалық жұмысты компьютерде орындап, нәтижесін ал. Программа кодын (3-сурет) х пен у-тің әртүрлі жағдайларында тексеріп (тестілеп) көр. Тапсырманың блок-схемасы 4-суретте берілген.

Мысалы

Нәтиже

-4    5

ІІ shirek

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

   Талдау

Берілген программаның кодын талдап, төмендегі сұрақтарға жауап бер (5-сурет).

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

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

3. 5-суреттегі программа кодын үш қабырғасы берілген үшбұрыштың тең бүйірлі екенін (6-сурет) анықтайтын программаға ауыстыру үшін қандай өзгерістер жасау керек?

5-сурет. Программа коды
6-сурет. Тең бүйірлі ұшбұрыш

   Сұрақтар

1. Құрамды шарттар мен кірістірілген шарттардың қандай ұқсастығы мен айырмашылығы бар?

2. Программада құрамды шарттарды қандай жағдайларда қолданған дұрыс?

3. Мысалы, a, b сандарының екеуінің бірдей тақ сан екенін тексеру үшін құрамды шарт қалай жазылуы керек?

4. Логикалық амалдарды программалауды қолданудың маңызы неде?

   Тапсырма

а

b

Логикалық өрнек

 

Логикалық өрнек

 

10

56

a>5 or b>a

  

a%5==0 and b>a

  

0

1

a>b or b==1

  

a>b and b==1

  

8

-7

a<50 or b>a

  

a //2!=1 and b+15==a

  

–8

–9

a>–8 or b==a

  

a**2>0 and b==a-1

  

7

5

a==5 or b!=a

  

a+b==17 and b!=a

  

  • -5
  • 5
  • 10
  • -10
  • 8
  • 7
  • 15
  • -15

Мысалы

Нәтиже

5 -6 8

0

Input.txt

Output.txt

4224

3423

1

0

Input.txt 

Output.txt

343

486

0

  • 20
  • 1
  • 10
  • 16
  • 3
  • 6
Өтінемін күте тұрыңыз