Кіріктірілген шарттарды программалау

   Визуалды ортада екіден көп шарттардан тұратын алгоритмдерді қалай программалауға және жобалауға болады?

   Жаңа білім

   Ойлан

• Күнделікті өмірден қарапайым және күрделі шарттарға қандай мысалдар келтіре аласыңдар?

   Шарттармен жұмыс жасау барысында екі ғана тармақтан тұратын қарапайым шарттардан бөлек күрделі, екіден көп тармақтардан тұратын шарттармен жұмыс жасауға тура келеді. Мұндай шарттарды орындау үшін бірнеше шарт тексеру операторлары қажет. Кіріктірілген шартта бір IF операторының құрамына екінші IF операторы енеді. Егер THEN және ELSE қызметші сөздерінен кейін IF операторы қолданылса, онда мұндай шарт кіріктірілген шарт деп аталады.

№1 нұсқа

   IF шарт 1 THEN IF шарт 2 THEN оператор1 ELSE оператор 2 ELSE оператор 3;

№2 нұсқа

   IF шарт 1 THEN оператор 1 ELSE IF шарт 2 THEN оператор 2 ELSE оператор 3;

№3 нұсқа

   IF шарт 1 THEN IF шарт 2 THEN оператор1 ELSE оператор 2;

   Ескерту:

   • Операторларды бір-біріне кіріктіріп пайдалану кезінде әрбір еlsе өзінен алдынғы then-ге тиісті болады.
   • ​Бір мезгілде 2-3 тен артық IF операторын бір-біріне кіріктіріп қолданбау керек. Себебі, бұл күрделі құрылымға алып келеді. Күрделі құрылым нәтижені талдауға, анықтауға қиындық келтіреді. Енді кіріктірілген шарттарды пайдалану жолдарын қарастыратын мысалдармен танысайық. Модульдік программалау ортасында есепті шығару.


​   1-мысал: А бүтін саны берілген. А санының оң немесе теріс екенін анықтаңдар. Егер берілген сан оң болса «1», теріс болса «–1», сан нөлге тең болса «0» деген жауап шығуы керек.
   ​Алгоритмдік шешу жолы:
   ​Есепте A>0, A<0 шарттары пайдаланылады. Бұл есептің нөлге тең болатын жағдайын қарастырсақ, онда шарттардың саны екеу емес, үшеу болады. Екі шарттан артық туындаған жағдайда кіріктірілген шарттарды қолданамыз.

var а: integer;
​begіn
​readln (a);
​іf a=0 then write(0) else if a>0 then write(1) else write(–1)
​end.

   Бұл есептің шешімі жоғарыдағы 3-нұсқа құрылымына сәйкес келеді. 


​   2-мысал. Функцияның мәнін есептеңдер.

        Х–12 , егер x > 0
​ у = 5, егер x = 0
        ​х2, егер x < 0

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

   егер х>0 онда
   ​у-ті у=х–12 формула бойынша есепте әйтпесе егер х=0 онда у-ті у=5 формула бойынша есепте әйтпесе у-ті у=sqr(x) ф бойынша есепте; 

var k,а: real;
​begіn
​readln (x);
​іf x=0 then write (5) if х>0 then write (Х–12) else write (sqr(x));
​end.

   Lazarus программалау ортасында кіріктірілген шарттар бойынша мысалдарды қарастырайық

   3-мысал: А бүтін саны берілген. А саны нөлге тең болса – «нөл», бірге тең болса – «бір», екіге тең болса – «екі», әйтпесе «Бұл санды білмеймін» сөздері экранға шығуы керек. Төмендегі 5.36, 5.37-суреттерде жобаның коды мен оның орындалу кезеңдері берілген.
   procedure TForm1.Button1Click(Sender: TObject);​
   ​var a:integer;
   ​begin
   ​a:=StrToInt(edit1.text);
   ​if a = 0 then
   ​ShowMessage(‘Нөл’)
   ​else
   ​if a = 1 then
   ​ShowMessage(‘Бір’)
   ​else
   ​if a = 2 then
   ​ShowMessage(‘Екі’)
   ​else
   ​ShowMessage(‘Бұл санды білмеймін’);
   ​end;

5.36-сурет

5.37-сурет

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

   Төменде көрсетілген тапсырманы компьютерде қайталап орындау арқылы Lazarus программалау ортасында жоба құру жолдарын меңгересіңдер.

Үшбұрыш

   a, b, c қабырғалар берілген. Осы қабырғалардан үшбұрыш құруға бола ма? Егер болса, бағдарлама «Үшбұрыш құрайды», әйтпесе «Үшбұрыш болмайды» деген жауап беру керек.

   ​Алгоритмі: a, b, c қабырғаларынан үшбұрыш құру үшін бұл қабырғалар мына шарттарды қанағаттандырулары қажет: a + b > c, a + c > b, b + c > a, a + b > c, a + c > b, b + c > a (a > 0, b > 0, c > 0).

Lazarus программалау ортасында жобаның пішіні

   5.38-суретте жобада бастапқы қойылатын компоненттер берілген. 5.39-суретте жобаның іске қосылғандағы пішіні берілген.

5.38-сурет

5.39-сурет

   Lazarus программалау ортасында «Анықтау» батырмасындағы программа коды

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c:integer;

begin

a:= StrToInt(edit1.text);

b:= StrToInt(edit2.text);

c:= StrToInt(edit3.text);

if a+b>c then if a + c > b then if b + c > a then edit4.text: =’ Үшбұрыш құрайды’

else edit4.text: =’Үшбұрыш болмайды’ else edit4.text: =’Үшбұрыш болмайды’

else edit4.text: =’Үшбұрыш болмайды’

end;

   Сұрақтар

1. Кіріктірілген шарт деген не?

2. Кіріктірілген шартты қандай жағдайларда қолданады?

3. Кіріктірілген шарттардың қандай нұсқалары бар? Оларды талдаңдар.

4. Модульдік программа мен визуалды ортадағы жазылған программа кодтарының айырмашылықтарын атаңдар.

   Тапсырма

   Кіріктірілген шартты программалау
   ​1. Р саны берілген. Р саны нөлден үлкен болса, онда сол санды t санына еселе, нөлден кіші болса, онда оған к санын қос, нөлге тең болса, онда z санына азайтыңдар.
   ​2. Үшбұрыштың a, b, c болатын үш қабырғасының ұзындығы берілген. Бұл үшбұрыш теңбүйірлі ме? Анықтаңдар.
   ​3. Үшбұрыштың a, b, c болатын үш қабырғасының ұзындығы берілген. Бұл үшбұрыш теңқабырғалы ма? Анықтаңдар.

Өтінемін күте тұрыңыз