Шартты цикл операторлары C++



Жоспар.

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3

1 бөлім. Шартты цикл операторлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
1.1. Қайталану командалары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
1.2. Параметрлі For циклдік операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
1.3. While циклдік операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...7
1.4. Do.while операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9
1.5. Күрделі циклдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .10

2 бөлім. Шартты цикл операторларын есептерде қолдану ... ... ... ... ... ...16
2.1. For параметрлі цикл операторын есепте қолдану ... ... ... ... ... ... ... ...16
2.2. While параметрлі цикл операторын Фибоначчи еселігіне қолдану..20

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 24

Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..25
Кіріспе
C++ программалау тілінде басқа программалау тіліндегідей шартты цикл операторларымен жұмыс жасауға болады. Цикл немесе қайталану командалары деп, берілген тапсырмалардағы, логикалық өрнектің мәні, ақиқаттылығын сақтағанша, іс-әрекеттің қайталануын айтады. Шартты цикл операторлары программалау тілінің аса қуатты құралы болып табылады. Цикл мәліметтер жиынтығына итерациялық операцияларды жасауға мүмкіндік береді. Цикл операторы, цикл денесіндегі іс-әрекеттерді, берілген есептегі шарт орындалғанша қайталай береді. Сол іс-әрекеттерді орындау үшін, қайталану командаларын қолданамыз. С++ тілінде басқа тілдердегідей сияқты, циклдің үш түрі бар: For, While және Do-while параметрлі цикл операторлары және операторлар ішінде қолданылатын break және continue операторлары бар.
Бұл курстық жұмыстың басты мақсаты «С++» тіліндегі шартты цикл операторларын зерттеу, яғни оларды анықтау және есептерде қолдану болып табылады.
Курстық жұмыстың басты міндеттері:
- Шартты цикл операторларын есептерде немесе тапсырмаларда қолдану.
- Шартты цикл операторларын бағдарламаларда қолданғандағы маңыздылығын анықтау.
- Шартты цикл операторларын қолданып есеп шығару жолдарын жеңілдету.
Қолданылған әдебиеттер

1) Культин Н.Б. «C/C++» М:2001ж.
2) Зелковиц М. Шоу А. Гэннон Дж. «Принципы разработки программного обеспечения» М. Мир, 1982.
3) Уинер Р. «Язык Turbo Си» М. Мир, 1999.
4) Павловская Т.А. «С\С++ Структурное программирование» М. 2005.
5) Курочкина В. М. «Язык компьютера» М. Мир, 1989.
6) Вирт И. «Алгоритмы и структуры данных» М. Мир, 1989.
7) Уиннер Р. «Язык Turbo C» М.1991ж.
8) Уэйт М. Прата С. Мартин Д. «Язык Си Руководство для начинающих» М.Мир, 1988.
9) Керниган Б. Ритчи Д. Фьюэр А. «Язык программирования Си» М. Финансы и статистика, 1985.
10) Мик Б. и др. «Практическое руководство по программированию» М. Радио и связь, 1986.
11) Уэит, Мартин Д. «Язык Си» М.:1988ж.
12) Фокс Дж. «Программное обеспечение и его разработка» М.: Мир, 1985.
13) Стефан Р. Дэвис “C++ для "чайников”, 4-е издание
14) Бьярн Страуструп –Язык программирования С++.
15) Джефф Элджер – С++ библиотека программиста.
16) Стенли Липпман, Жози Лажойе – Язык программирования С++.
17) Пауло Франко – Учебный курс С++.
18) Семакин – Основы програмирования.

Кіріспе
C++ программалау тілінде басқа программалау тіліндегідей шартты цикл
операторларымен жұмыс жасауға болады. Цикл немесе қайталану командалары
деп, берілген тапсырмалардағы, логикалық өрнектің мәні, ақиқаттылығын
сақтағанша, іс-әрекеттің қайталануын айтады. Шартты цикл операторлары
программалау тілінің аса қуатты құралы болып табылады. Цикл мәліметтер
жиынтығына итерациялық операцияларды жасауға мүмкіндік береді. Цикл
операторы, цикл денесіндегі іс-әрекеттерді, берілген есептегі шарт
орындалғанша қайталай береді. Сол іс-әрекеттерді орындау үшін, қайталану
командаларын қолданамыз. С++ тілінде басқа тілдердегідей сияқты, циклдің үш
түрі бар: For, While және Do-while параметрлі цикл операторлары және
операторлар ішінде қолданылатын break және continue операторлары бар.
Бұл курстық жұмыстың басты мақсаты С++ тіліндегі шартты цикл
операторларын зерттеу, яғни оларды анықтау және есептерде қолдану болып
табылады.
Курстық жұмыстың басты міндеттері:
- Шартты цикл операторларын есептерде немесе тапсырмаларда қолдану.
- Шартты цикл операторларын бағдарламаларда қолданғандағы маңыздылығын
анықтау.
- Шартты цикл операторларын қолданып есеп шығару жолдарын жеңілдету.

1-бөлім. Шартты цикл операторлары

1.1. Қайталану командалары
Программаның белгілі бір бөлігінің орындалуын бірнеше рет қайталау
үшін қолданылатын командалар, қайталану командалары деп аталады. Көптеген
есептеулерде айнымалылардың әртүрлі мәндері үшін кейбір операторлар бірнеше
рет қайталанып орындалуын қажет етеді. Бұл операторларды, қайталап орындау
үшін, қайта – қайта жаза берсек, онда программа құру үшін көп уақыт кетеді,
әрі программалық мәтін өте ұзақ және оқуға ыңғайсыз болып жазылады.
Программалық мәтіндер қысқа, әрі оқуға жеңіл болу үшін, қайталану процесін,
яғни параметрлік цикл операторларын қолданады. Циклдік процессті
ұйымдастыру үшін келесі операторлар қолданылады:
1. FOR параметрлі циклдік операторы;
2. WHILE алдын - ала циклдің орындау шартын тексеретін оператор;
3. DO-While циклдің тоқтау шартын тексеретін оператор.
Циклдік операторлар - құрылымдық операторлар тобына жатады, өйткені
құрамына бірнеше операторлар кіреді. Программада алдымен циклдің тақырыбы
жазылады, содан кейін қайталанатын операторлар бөлімі, яғни цикл денесі
жазылады. Цикл денесі бір немесе бірнеше операторлардан тұруы мүмкін.
Барлық циклдық операторлардың келесі ерекшеліктері бар:
1) Қайталанатын операторлар ( циклдің денесі ) бір-ақ рет жазылады;
2) Циклге тек басынан ( тақырыбынан ) ғана кіруге болады;
3) Циклдің айнымалылары алдын-ала циклге дейін анықталуы тиіс;
4) Цикл денесіне көшу операторын қолданып, программаның басқа бөліктеріне
шығуға болады.
5) Циклді ұйымдастырғанда, міндетті түрде циклден шығу шарты орындалатынын
қарастыру керек, әйтпесе программа орындалуы, циклге келгенде тоқтап қалады
немесе программа циклден шықпай қалады.
Цикл денесінің әр қайталануында цикл айнымалыларының мәндері де
өзгеріп, жаңа мән қабылдап отырады. Қайталану саны циклдің тақырыбында және
цикл денесінде берілетін айнымалылардың мәндеріне байланысты болады.

1.2. Параметрлі For операторы
Көптеген программалау тілдерімен қоса С++ тілінде параметрлі For
операторы циклдің негізгі бір түрі болып табылады. Параметрлі циклдік
оператор, цикл денесінің қайталануы арқылы алдын – ала белгілі болғанда
қолданылады. Параметрлі For циклдік операторының жазылу форматы:
For (инициализация; орындалу шарты; өзгеруі;) цикл денесі;
for (1-ші өрнек; орындалу шарты; 2-ші өрнек) цикл денесі
{ циклді ашушы фигуралық жақша
операторлар блогы, цикл денесі тұра алады
цикл денесінің құрамынан бірнеше операторлардан
} циклді жабушы фигуралық жақша
For параметрлі циклдік операторында, цикл денесі бір мән қабылдаса,
фигуралық жақшаны алып тастауға болады.
for (1-ші өрнек; орындалу шарты; 2-ші өрнек) цикл денесі;
бір оператор, цикл денесі цикл денесі – бір оператор
Кей жағдай 1- ші өрнектің мәні болмауы мүмкін, бұл жағдайда орындалу шарты
және өзгеруі жазылады және үтірлі-нүкте міндетті түрде қойылады.
for ( ; орындалу шарты; 2-ші өрнек) 1-ші өрнектің болмауы
{ циклді ашушы фигуралық жақша
операторлар блогы, цикл денесі тұра алады
цикл денесінің құрамынан бірнеше операторлардан
} циклді жабушы фигуралық жақша

For циклдік операторында орындалу шарты кей кезде болмауы мүмкін, сол
кезде for операторы келесі түрде жазылады:
for (1-ші өрнек; ; 2-ші өрнек ) орындалу шартының болмауы
{ циклді ашушы фигуралық жақша
операторлар блогы, цикл денесі тұра алады,
цикл денесінің құрамынан бірнеше операторлардан
} циклді жабушы фигуралық жақша

Кей жағдайда For циклдік операторында өрнектер мен орындалу шарттары есепте
берілмеуі мүмкін, онда бұл өрнек төмендегідей жазылады:
for ( ; ; ) өрнектермен орындалу шарттарының болмауы
{ циклді ашушы фигуралық жақша
операторлар блогы, цикл денесі тұра алады,
цикл денесінің құрамынан бірнеше операторлардан
} циклді жабушы фигуралық жақша

Жақша ішіндегі параметрлі циклдік for операторының арасын үтірлі нүктемен
бөліп жазу, өз алдына жақша ішіндегі берілген мәндерді үш бөлімге бөледі.
For операторында шамадардың мөлшерлерін басқа түрге айналдыру үшін
инициализация ұғымы инициализация ұғымы және цикл цикл ұғымы
қолданылады.
For операторынын 1-қадамы инициализацияның ұғымын есептеп шығару.
1. Егер орындалу шарты ақиқат мәнін қабылдаса, цикл денесі орындалады.
Ал содан соң цикл өрнегі орындалады (егерде ол болған жағдайда).
Үдеріс барысы, орындалу өрнегінің есептеуімен қайталанады.
2. Егерде шартты оператордын мәні түсіп қалған жағдайда, шарты өрнек
ақиқат мәнін қабылдап, жоғарыда айтылғандай есеп әрі қарай
жалғасады. For оператор денесінде break, goto, return операторлары
қолданса, сол оператор жолында for операторы аяқталады.
3. Орындалу шарты жалған мәнін қабылдаған кезде, for операторы өз
есептеуін тоқтатады және басқару циклдан кейінгі операторға көшеді.
For циклдік операторында қосымша ұғымдар енгізу үшін үтір операторын
қолдана аламыз.
Мысалы: 1-ден 100-ге дейінгі сандардың қосындысын табу.
for (s=0,i=1;i=100;i++)
s = s + i;
Инициализация ұғымы s айнымалы қосындысын нөлге айналдырады және I
айнымалысын 1-ге арттырады. Үтір арқылы бөлінген оператор реті бойынша
орындала береді. Цикл денесінде s және I айнымалысының қосындысы кезінде,
цикл ұғымы I мәнін 1-ге арттырып отырады. I мәні 101 мәнін қабылдаған кезде
цикл өз жұмысын тоқтады. S айнымалысына қосылатын ақырғы мән 100 болады.
Қайталанушы циклдарды, есептерде немесе мысалдарда орындаған кезде,
цикл орындалмай қалуы мүмкін. Бұл жағдай төмендегі мысалда көрсетілген:
for (s=0,i=1;i1;i++)
s = s + i;
Жоғарыдағы программадағы орындалу шартын i1 деп алынған, мұндай цикл
денесі ешқашанда орындалмайды. S=0, i=1
инициализациясын алсақ, i1 орындалу шарты тексеріледі. Бұл жалған мәнін
қабылдайтын болғандықтан програманы басқару циклдан кейінгі операторға
көшеді.
Мысалы: Берілген n жай санының қасындысын есептеу.
S = 1 +2 + ... +n;
Қосындыны double типті S айнымалысымен есептеп шығарамыз. Әрбір қосынды
мынадай түрде берілген: мұндағы 1 i n.
С++ тілінде бұл ұғымды 1.0 (i * (i + 1)) немесе 1.0 i (i + 1) түрде
жазуға болады. Есептік сан ретінде 1.0 алу болады, себебі жауабында нақты
сан болуы тиіс. Цикл реті бойынша нөльге барлық қосындыларды қосамыз 1.0
i (i + 1), i орнына 1-ден n-ға дейінгі сандарды аламыз.

#include stdio.h
int i,n;
double s;
void main(void)
{
scanf("%d",&n);
s = 0;
for(i=1;i=n;i++)
s += 1.0 i (i+1);
printf("%lf\n",s);
}

1.3. While операторы
C++ тілінде аса қуатты әдістердің бірі, циклдерді ұйымдастыру болып
табылады. Көптеген есептерде немесе программаларда шартты қайталану
операторлары жиі-жиі пайдаланылады. Бұлар программалық жолдар деп аталады.
Есеп немесе программа түсінікті және ыңғайлы болу үшін, шартты цикл
операторларын қолдануға болады. С++ тілінде шартты цикл операторларын іске
асырушы үш құрылым бар. Олар: For, While және Do-while.
Қазір біз шартты цикл оперторларын іске асырушы үш құрылымның While
параметрлі цикл операторымен танысамыз.
Әдетте, WHILE операторында қайталану саны алдын – ала белгісіз болған
жағдайларда қолданылады. Цикл денесінің әрбір орындалуының алдында, WHILE
опероторында циклдің орындалу шарты тексеріледі, шарттағы айнымалылар
мәндерінің өзгеруіне әсер ететін операторлар цикл денесінде беріледі. Егер
цикл денесі бірнеше операторлардан тұрса, онда ол операторлық жақшаларға
алынады.
WHILE операторында жазылған шарт орындалып тұрса, цикл денесінің
орындалуы қайталанады. Егер шарт орындалмай қалса, онда қайталану процесі
тоқтайды, содан кейін басқару цикл денесінен кейін тұрған операторға
беріледі. Шарттағы салыстырылатын айнымалылар мәндері циклге дейін беріліп,
олардың жаңа мәндерінің өсімі цикл денесінде беріледі. Егер WHILE
операторындағы шарт бірде – бір рет орындалмаса, онда программа орындалуы
циклді аттап өтеді. Егер шарттағы айнымалы мәндері ешқашан өзгермесе, онда
программа мәңгі циклденіп қалады.
Толық форматты while циклдік операторы орындалу шартынан және цикл
денесінен тұрады:
while (орындалу шарты) цикл денесі;
While циклдік операторын тағы да бір жазылу форматы төмендегідей болады.
while ( орындалу шарты ) цикл денесі
{ циклді ашушы фигуралық жақша
операторлар блогі, цикл денесі тұра алады
цикл денесінің құрамынан бірнеше оперторлардан
} циклді жабушы фигуралық жақша
Егерде while циклдік операторының циклдік денесінде бір ғана оператор
болса, фигуралық жақшаны жазбауымызға болады.
while (орындалу шарты) цикл денесі
бір оператор, цикл ленесі цикл денесі-бір оператор
Мысалы 1-ден 100-ге дейінгі сандардың қосындысын есептеп шығару.

#include stdio.h
int s,i;
void main(void)
{
s = 0; i = 100;
while(i 0)
{
s = s + i;
i--;
}
printf("%d\n",s);
}

Бұл есепте S мәнінің алғашқы мәнін 0 деп алынған. Есептің барысында S
мәніне I айнымалысы қосылып отырады. Алғашқы I айнымалысының қосындысын
I=100 деп аламыз. Жақша ішіндегі өрнек ақиқат болғанға дейін, цикл денесі
орындала береді. Цикл денесінде S мәніне I айнымалысы қосылып отырады және
I мәні 1-ге кеми береді. I айнымалысы 0-ге тең болған жағдайда цикл денесі
өз есептеуін тоқтатады және i 0 орындалу шарты орындалмайды.
Операторлар арасын үтірмен бөлуге болады, бұл кезде операторлар
өздерінің реті бойынша орындалады. Цикл денесінде екі операторларды
біріктіріп фигуралық жақшаға алмай жазуға болады.

#include stdio.h
int s,i;
void main(void)
{
s = 0; i = 100;
while(i 0)
s += i,i--;
printf("%d\n",s);
}

Тағы бір шартты цикл операторларының кереметтілігі For және While
параметрлі цикл операторларының эквиваленттілігі болып табылады.
For параметрлі цикл операторының бағдарламалық коды, While параметрлі
цикл операторларының кодымен толық сәйкес келеді. For параметрлі цикл
операторының алғашқы өрнегі while цикл операторының алдында орындалады, ал
соңғы өрнегі while циклдік операторынан кейін жазылады.
Мысалы:
For (1-ші өрнек); (2-ші өрнек); (3-ші өрнек);
While параметрлі цикл операторында бұл өрнек былай жазылады:
(1-ші өрнек);
While (2-ші өрнек)
{
цикл денесі
3-ші өрнек;
}

1.4. Do-while операторы
Do-while циклдік операторы While операторының өзгертілген түрі. While
операторында орындалу шарты есептің басында тексеріледі. Есептің басында
орындалу шарты жалған мәнін қабылдаған болса, цикл ешқашан орындалмайды.
1.1-суретте көретілгендей do-while циклдік операторында логикалық өрнекті
цикл соңында тексеріледі. Do-while циклдік операторында шамалардың
салыстыруына қарамастан цикл кемінде бір рет орындалады. Цикл бір рет
орындалған соң, циклдің орындалуының шарттары тексеріледі.
Do-while циклдік операторының жазылу синтаксисі:
do цикл денесі while (орындалу шарты);
Do-while циклдік операторындағы do кілттік сөзі, циклдің басталғанын
білдіреді, ал while кілттік сөзі орындалу шартын тексереді және while-дан
кейін үтірлі нүкте қойылады. Мысалы, дене шынықтыру сабағында гимнаст әр
жаттығуларды бірнеше рет қайталайды. Сэл атты гимнастқа жаттықтырушысы бір
орыннан тұрып секіру жаттығуын он бес рет орындауға бұйрық берді. Сэл бұл
жаттығуды келесі түрде шығара алады:
Count=0
Do
{
JmpJack(Sal);
Count++;
}
While (count15);

1.1- Сурет. Do-While циклдік операторының блок-схемасы.

Бұл жерде цикл фигуралық жақша ішінде орналасқан, ал while операторы
фигуралық жақшадан кейін орналасқан.
Do - while циклдік операторы өрнек мәні жалған мәнін қабылдағанша
бір немесе бірнеше рет орындалады. Ең алдымен цикл денесі орындалады, содан
кейін өрнек мәні есептеледі. Өрнек мәні жалған болған жағдайда do циклдік
денесі өз есептеуін тоқтатады. Өрнек мәні ақиқат мәнін қабылдаса, цикл
денесі есептеуін қайталап жалғастырады. Do-while циклдік операторы өз
есептеуін өрнек жалған мәнін қабылдаған кезде тоқтатады.
Мысалы 1-ден 100-ге дейінгі сандардын қосындысын табу.

#include stdio.h
int s,i;
void main(void)
{
s = 0; i = 100;
do {
s = s + i;
i--;
} while(i 0);
printf("%d\n",s);
}

S айнымалысында қосындылар жинақталады, i мәні 100-ден 1-ге дейінгі барлық
мәндерді қабылдайды. Цикл денесінде s қосындысына i мәні қосылады және i
мәні 1-ге кемиді. Цикл денесі (i 0) мына өрнек ақиқат мәнін
қабылдағанша қайталана береді. I айнымалысы нөл мәнін қабылдағанда, цикл өз
есептеуін тоқтатады.

1.5. Күрделі циклдар
Егер бір цикл, басқа циклдың ішіне орналастырылса, ол күрделі цикл
деп аталады. Күрделі цикл - өз денесінде орналасқан келесі циклге қатысты
ішкі цикл болып есептеледі, және керісінше өзінің денесінде күрделі циклы
бар, цикл ішінде орналасқан циклға қатысты сыртқы цикл болып есептеледі.
Күрделі циклдың ішінде тағы бір цикл орналастырылып, қабаттасудың келесі
дәрежесін құрау мүмкін. Әдетте, қабаттасу дәрежесінің саны шектелмейді.
Ішкі циклдың дене орындалымының жалпы саны, ішкі цикл итерация
сандары мен барлық сыртқы циклдар сандарының көбейтіндісінен аспайды.
Мысалы, әрбіреуінде 10 итерация бар, бір-біріне қабаттастырылған үш циклді
алсақ, сыртқы цикл үшін 10 дене орындалымдарын, екінші дәрежелі цикл үшін
100 дене орындалымын және ең ішкі цикл үшін 1000 дене орындалымын аламыз.
Күрделі циклдармен байланысты проблемалардың бірі – олардан уақытынан
ерте шығуды ұйымдастыру. Көптеген бағдарламалау тілдерінде циклды уақытынан
ерте аяқтау операторлары бар ( Си тілінде break, Паскаль тілінде exit, Perl
тілінде last т.б), бірақ ол әдетте, қай цикл дәрежесінде шақырылса содан
ғана шығуды қамтамасыз етеді. Күрделі циклдың ішінде осы операторды
қолдансақ, ол тек сол күрделі циклдан шығуды ғана қамтамасыз етеді, ал
жалпы сыртқы көлемді цикл орындала береді. Бұл проблема ойдан шығарылған
сияқты болып көрінуі мүмкін, бірақ мұндай жағдай күрделі мәліметтерді
өңдеуді, бағдарламалау кезінде туындау мүмкін. Өйткені, өте тереңде күрделі
кейбір шарттар кезінде, барлық алгоритмдерді тоқтату қажет болуы мүмкін.
Күрделі циклдан шығу проблемасының бірнеше шешімі бар:
- Қарапайым – күрделі циклдан кейін орналасқан бағдарлама нүктесіне goto
шартсыз ауысу операторын қолдану арқылы шығу. Бұл нұсқаны және goto
операторы қолданылатын барлық нұсқаларды құрылымдық бағдарламаны
жақтаушылар көп сынға алады. Modula-2 секілді кейбір бағдарламалау
тілдерінде мұндай шартсыз ауысу операторлары мүлдем жоқ, сондықтан
оларда осындай конструкция мүмкін емес.
- Альтернативті – циклды аяқтаудың шартты құралдарын қолдану, қажет
болған жағдайда, өңдеуді тез арада аяқтауды талап ететін арнайы
жалаушаларды қолдану. Кемшілігі – кодтың күрделенуі, goto операторынан
құтылудың теориялық дұрыстығынан басқа ешқандай да артықшылықсыз
өнімділіліктің төмендеуі.
- Күрделі циклды процедурада орналастыру. Бұл әдістің идеясы – барлық
уақытынан ерте аяқталуды қажет ететін қимылдарды жеке процедура
ретінде рәсімдеу. Және уақытынан ерте аяқтау үшін процедурадан шығу
операторын қолдану (егер бағдарламалау тілінде ондай оператор болса).
Мысалы, Си тілінде күрделі циклы бар функция құрастыруға болады, ал
одан шығуды return операторының көмегімен ұйымдастыруға болады.
Кемшілігі – процедурадағы код фрагментін белгілеу логикалық тұрғыдан
әрқашанда негізгі бола бермейді, және процедураны уақытынан ерте
аяқтаудың шартты құралдары кейбір тілдерде жоқ.
- Генерациялау және шығаруларды өңдеу механизмін қолдану. Қалыпсыз
жағдайдың бұл түрінде күрделі циклдағы код шығаруды қоздырады, ал
барлық күрделі циклдың ішіне орналастырылған, шығаруларды өңдеу блогы
оны аулап, өңдеп отырады. Кемшілігі – шығаруларды өңдеу механизмінің
орындалуы кезінде бағдарламаның жұмыс істеу жылдамдығы төмендейді.
Бірақ қазіргі заман жағдайында бұл өте маңызды емес, өйткені
өнімділіктің жоғалтылуы өте аз мөлшерде болғандықтан, ол тек кейбір
бағдарламаларға өз әсерін тигізе алады.
- Күрделі циклдардан шығуға арналған арнайы тілдік құралдар бар. Мысалы,
Ада тілінде бағдарламалаушы күрделі циклдың жоғарғы дәрежесін арнайы
белгімен белгілеп, циклды уақытынан ерте аяқтау командасында сол
белгіге нұсқау жасауына болады. Шығу ағымдағы циклдан емес,
белгіленген циклға дейінгі барлық күрделі циклдардан орындалады.
Күрделі циклға қарапайым мысал қарастырайық: бізге он күн ішінде
дәріні екі таблеткадан ішу керек. Біз қайталанатын әрекетті, он күн бойы
қайталаймыз. Сөйтіп келесі алгоритмді аламыз:
-Келесі нұсқаулықты он рет қайталау:
-Келесі нұсқаулықты екі рет қайталау:
-Дәріні қабылдау
-Келесі күнді күту
Ақырында біз барлық жиырма таблетканы ішіп бітіреміз.
Жоғарыда көрсетілгендей бір қайталану командалар ішіне басқа
қайталану командалары жазылған. Сыртқы қайталану командасын орындау үшін,
ең алдымен ішкі қайталану командасын орындауымыз тиіс. 1.2-суретте күн
сайын қайталанатын ішкі және сыртқы циклдардын блок-схемасы көрсетілген, ал
1.3-суретте ішкі және сыртқы циклдардың толық барысы көрсетілген.

1.2-сурет. Күн сайын қайталанатын ішкі цикл денесі.

1.3-сурет. Барлық он күндік циклдің блок-схемасы.

Енді дене шынықтыру сыныбындағы гимнаст шеберінің қайталану циклына
арналған жаттығуларын көрейік. Нұсқаушы, Сэл есімді гимнаст шеберіне келесі
командаларды орындауға бұйрық береді.
-Келесі нұсқаулықтарды бес рет орындауды:
-Келесі нұсқаулықтарды он рет орындауды:
-бір орыннан секіру
-Келесі нұсқауды бес рет:
-Оңға және солға
-Келесі нұсқаудықтарлы үш рет:
-бір орыннан секіру
Бір орыннан тұрып секіруді он рет, содан кейін бес рет оңға және солға
бұрылып, тағыда барлық жаттығуларды ретімен бес рет орындап ( ақырында елу
рет бір орыннан секіріп және жиырма бес рет орнымыз да тұрып бұрыламыз)
және қосымша үш рет бір орыннан секіруіміз керек.
Бірінші бір орыннан тұрып секіру жаттығуы, екіншісіне қарағанда цикл
ішіне салынған. Соған сәйкес С++ программасында бұл өрнек келесі түрде
жазылады:

#include”franca.h”
Void main ()
{
Athletesal;
Int bigcount,smallcount; Санауыш айнымалысы
For (bigcount=1; bigcount=5; bigcount++) Ішкі цикл
{
For (smallcount=1; smallcount=10; smallcount++)
{
JmpJack(Sal);
}
For (smallcount=1; smallcount=5; smallcount++)
{
Leftright(Sal);
}
} Ішкі цикл аяғы
For (smallcount=1; smallcount=3; smallcount++)
{
JmpJack(Sal);
}
}

Күрделі циклдарды басқа мысалдар да үшін қолдануға болады. Он ішкі
және он сыртқы циклдарды көбейтулер кестесін тұрғызу үшін қолдануға болады.
Ол үшін, экран бетіне жай жұлдызшалар қатарын шығарудың орнына, row
айнымалыларының мәндері мен column айнымалыларының мәндерін көбейту
нәтижелерін шығару керек. Көбейтулер кестесін жасау бағдарламасы:

*timestab.c*
main()
{
int row, column;
puts("\t\tПифагор кестесі\n\n");
for(row = 1; ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Программалау тілі командаларының ортасы
Turbo Pascal тілінің операторлары
Паскаль – бағдарламалау тілі
Си тіліндегі циклдік алгоритм және циклдік алгоритмді бағдарламау
Бос оператор
UNIX бағдарламалау ортасында жарамды
Алгоритм, программа ұғымдары
Программа жұмысын басқару операторлары
ТИПТІҢ АТЫ ТИП
С++ программалау ортасының негізгі операторлары
Пәндер