Өткен тақырыптарда for параметрлі циклінің жұмысымен таныстық. Енді циклдің екінші бір түрі шарт циклі while-дың жұмысымен танысайық. Шарт циклі, while-дың жұмыс істеу реті 1-сызбада берілген. Шарт циклі whіle (әзірше)– резервтік сөзден және цикл шарты <шарт> логикалық типтегі өрнектен тұрады. Цикл шарты логикалық өрнек түрінде жазылады. Логикалық өрнектің нәтижесі бульдік типтегі нәтиже болады. Шарт циклінің логикалық өрнегі true (ақиқат) немесе false (жалған) мәнін ғана қабылдайды.
Цикл ішіндегі операторлар орындалуды бастамас бұрын цикл шартының мәні тексерiледі. Шарт ақиқат мәнін қабылдаса, цикл өз жұмысын жалғастырады. Егер өрнектің мәні жалған болса, онда цикл жұмысын аяқтайды. Басқа оператор немесе өрнекті цикл ішінде орналастыру үшін while және цикл шарты жазылғаннан кейінгі жолдарда 4 бос орын тастап жазу қажет. Цикл ішіне орналасқан операторлар мен өрнектер цикл шарты жалған мәнін қабылдағанша ретімен орындала береді. Егер цикл шарты жалған болса, онда цикл денесі орындауды бастамай-ақ өз жұмысын тоқтатады.
While операторының жұмыс істеу негіздерін түсіну үшін мысалдар қарастырайық. Ол үшін параметрлі циклдер тақырыбында алынған 1-мысалды тағы да қайтадан қарастырамыз. Бұл мысалды таңдау себебіміз, екі цикл операторының жұмысымен бірдей мысал арқылы танысу олардың жұмыс істеу ерекшеліктерін түсінуді оңайлатады.
Мысалы: 1 мен 100 аралығындағы сандардың қосындысын табатын программа жаз.
Мысалдың шарты бойынша 1-ден 100-ге дейінгі сандарды қосуды шартты цикл көмегімен орындауға болады (1-сурет). Шарт тексеру циклі «і шамасының мәні 100-ден кіші ме?» деген сұрағын әр жолы қайталап отырады. Циклдік алгоритмдердің блок-сызбасы 1-суретте берілген.
Бұл цикл жұмысы і шамасының мәні 100-ден үлкен болғанда барып тоқтайды. Цикл шарты жалған болғанға дейін s қосқышына і-дің мәнін қосып отырады (2-сурет).
1-сурет. Программа коды
2-сурет. Блок-сызба
While циклінің ерекшелігі:
• циклдің қайталану шарты цикл денесі жұмыс істемей тұрып тексеріледі;
• шарт циклі цикл саны белгісіз болған жағдайларды қарастырғанда қолданылады.
Практикалық есеп. Берілген N натурал саны цифрларының қосындысының жұп немесе тақ екенін анықта. Егер қосынды тақ болса, «1» немесе «2» санын экранға шығар.
Есептің программа кодын құру үшін, бір ғана мәселе туындайды. Санның цифрларын қалай жеке-жеке қарастыруға болады? Математикада N санының цифрларын жеке-жеке қарастыру үшін заңдылықтарға жүгінеміз.
Сондай заңдылықтардың бірі: «Кез келген санды 10-ға бөлгенде қалатын қалдық санның соңғы цифрына тең».
Егер N = 148 болса, 148 : 10 =14 және қалдық 8-ге тең. Санның соңғы цифры да 8-ге тең. Есептің алгоритмдік шешімі ретінде осы заңдылықты программа құруда пайдаланамыз (3-сурет).
3-cурет. Бағдарлама коды
Есепті шешу алгоритмі. Есепті орындау үшін кіріктірілген циклдерді пайдалану қажет. Санның жай сан екенін тексеру үшін санның квадрат түбірін бүтін мәнге жуықтаймыз. Тексеру керек сандарды сыртқы циклді оқуға пайдаланамыз. Ішкі циклды берілген сандарды жай сан шартына тексеру үшін пайдаланамыз. Ішкі цикл параметрі 2-ден басталып, бүтін мәнге жуықталған санның түбіріне дейін 1 қадаммен өзгереді. Осы сандар аралығында тексерілетін санның бөлгіші болмаса, ол жай санға жатады. Есептің программа коды 2-суретте, ал программаның орындалу нәтижесі 3-суретте берілген.
Талдау
Практикалық жұмыста орындалған есептің программа кодын (3-сурет) талдаңдар. Программаның әрбір қатарының атқаратын қызметіне түсініктеме жазыңдар.
Жинақтау
Практикалық жұмыста берілген есептің шартын өзгертіп, берілген санның құрамындағы нөлдерді анықтау керек болса (3-сурет), онда программа кодына қандай өзгеріс жасауға болады? Программа кодын өзгертуге ұсыныс жасаңдар. Ұсыныстарыңды дәлелдеңдер.
Бағалау
Пікірталас. While шарт циклі мен for параметрлі циклінің қызметіндегі негізгі ұқсастық пен айырмашылықтарды салыстырып, бағала. Екі оператордың орнына біреуін қалдырып, екіншісін алып тастауға бола ма? Егер цикл операторларының санын қысқартсақ, қайсысын алып тастаған болар едің?
Шарт циклі дегеніміз не?
While операторының жұмыс негіздері қандай?
Шарт циклі қандай жағдайда тоқтайды?
Шарт цикліне қандай есептерді мысал ретінде келтіре аласың?
Тапсырма 1
Тапсырма 2
Тапсырма 3
Тапсырма 4
Тапсырма 5
Тапсырма 6
While циклінің ерекшеліктерін көрсетіңіз.