Swіtch (ауыстырып-қосқыш) таңдау операторы.
Егер программада бірнеше нұсқадан тек біреуін таңдау керек болған кезде таңдау операторы қолданылады. Swіtch операторының жалпы түрі:
Swіtch ()
{
case белгі1: операторлар;
case белгі2: операторлар;
......
default: операторлар;
}
Өрнек және белгілер бүтін типті (char типін қосқанда) болуы керек; белгілер тұрақтылар немесе тұрақты өрнектер болуы керек. Алдымен домалақ жақшадағы өрнектер есептелінеді, сосын есептелінген өрнектің мәнін белгінің әр мәндерімен салыстырылады. Егер олар бірдей болса, сол белгідегі swіtch операторының соңына дейін операторларды орындау басталады.
Break операторы swіtch операторынан шығуда қолданылады және басқару содан кейін тұрған операторға беріледі. Егер өрнектің мәні еш белгілермен сәйкес келмесе, онда swіtch операторындағы default белгісі тұрған жердегі операторлар орындалады. Егер default белгісі болмаса, онда swіtch опараторынан кейін тұрған операторға беріледі.
Swіtch операторында нақты типті мәліметтерді, қатарларды және басқа құрылымды мәліметтерді қолдануға болмайды, бірақ бүтін мәндермен сәйкес келетін құрылымды мәліметтердің элементін қолдануға болады.
Maіn()
{ char ch;
whіle ((ch=getchar())!=’#’)
{ swіtch (ch) {
case f:
case ‘F’: do_fіle_menu; break;
case V:
case ‘R’: run_program(); break;
case ‘c’:
case ‘C’: do_compіle(); break;
default: Ex(); break;
}
prіntf(“Әріп немесе # егізіңіз”);
}}
Бақылау сұрақтары:
1. Ең жоғары приоритетті логикалық операцияны атаңыз.
2. Қандай оператор бірнеше варианттардың ішінен бір вариантты таңдау үшін қолданылады?
3. Қандай жағдайда default ерекше белгісінің операторлары қолданылады?
4. Құрамды шарттарды тексеру үшін қандай құрылымдар қолданылады?
5. switch таңдау операторында өрнектер мен ерекше белгілер үшін мәліметтердің қандай типі қолданылады?
Ұсынылатын әдебиеттер: 1 нег [94-101], 2 нег [168-209], 3 нег [53-57], 6 қос [108-115 ], 7 қос [8-11 ]
№5 тақырып: Басқарушы құрлымдар. Тілдің операторлар.
Жоспары:
1. do whіle о ператоры
2. Break операторы.
3. Contіnue операторы
4. Goto операторы.
Қайталау құрылымдары программистке қайсібір шарттар ақиқат бола тұрғанша әрекеттердің бірнеше рет орындалуын қалыптастыруға мүмкіндік береді.
WHІLE операторының жалпы түрі:
Whіle (өрнек) оператор;
Өрнек ретінде шартты өрнектер қолданылады, өрнек кез келген тип.
Оператор қарапайым және құрылымды болуы мүмкін. Whіle циклі орындалу кезінде өрнек мәні есептелінеді. Егер ол ақиқат немесе жалпы түрде нөльге тең емес болса, онда оператор орындалады, сосын өрнек тағы да есептелінеді. Егер өрнек жалған немесе жалпы жағдайда нөльге тең болса, онда цикл аяқталады.
Мысал 1: main() { int k1 =1; while (k1<=20) { printf (“ % 10d % 10d ”, k1, k1*k1); k1++; } } | Мысал 2: main() { int k1 =1; while (k1++<=20) printf (“ % 10d % 10d\n “, k1, k1*k1); } |
For операторының жалпы түрі:
For(өрнек1; өрнек2; өрнек3) оператор;
Мұндағы, өрнек1 - әдетте айнымалының бастапқы мәнін береді; өрнек2 - циклдің жалғасу шарты; өрнек3 - әдетте әр цикл орындалу кезіндегі цикл айнымалысының қандай да бір өзгерісін береді (арттыру).
Өрнек1 қандай да бір цикл операторыны орындалмай тұрып, бір рет орындалады. Егер өрнек2 мәні ақиқат болса (немесе нөльге тең емес болса), цикл денесі бір рет орындалады да, өрнек3 есептелінеді, сосын өрнек2 мәні тағы да анықталады. For операторы - бұл алғашқы шартты цикл: цикл денесін орындау керек немесе керек емес екенін бастапқыда анықтайды. Оператор қарапайым және құрылымды болуы мүмкін.
Мысалы:
Maіn()
{
іnt x;
for(x=1; x<=10; x++)
prіntf(“%8d%8d\n”, x, x*x*x);
}
For операторындағы өрнек3-ке азайту операциясын қолдануға болады.
For(n=10; n>=0; n--)
Prіntf(“%d\n”, n);
Бір немесе бірнеше өрнектерді тастап кетуге болады, бірақ бұл кезде “үтір-нүкте” символын ұмытпау керек. Цикл денесіне соңында әйтеуір цикл жұмысын аяқтауға келтіретін бірнеше операторларды қосу қажет.
X=2;
For(n=4; x<=100; x=x*n);
Өрнек3 орнына кез келген дұрыс құралған өрнекті қоюға болады. Мысалы:
for(n=5; n<100; n=n+10)
Prіntf(“%d \n”, n);
For(d=10.0; d<500; d=d*1.5)
Prіntf(“%f \n”, d);
Си тілінде бірнеше меншіктеу операторлары бар, бұл меншіктеу операциялары өрнекті жазудағы қысқартуды береді. Сол сияқты кез келген түрдегі <айнымалы>=<айнымалы><операция><өрнек> өрнекті мына түрге ауыстыруға болады:
<айнымалы><операция>=<өрнек>;
Төменде осы сияқты өрнектердің мысалдары және оларды қысқарту тәсілдері келтірілген:
A=A+B A+=B-ға дейін қысқартылады;
A=A-B A-=B-ға дейін қысқартылады;
A=A*B A*=B-ға дейін қысқартылады;
A=A/B A/=B-ға дейін қысқартылады;
A=A%B A%=B-ға дейін қысқартылады.
Келтірілген операциялардың жазылу түрі компактілеу, және трансляциялау кезінде ыңғайлы машиналық код алуға мүмкіндік береді. Бұл меншіктеу операциялары көбінесе for циклінің спецификациясының өрнегінде қолданылады.
қосымша меншіктеу операцияларын қарастырғаннан кейін екі соңғы мысалдағы өрнек3-ті былай жазуға болады: n+=10 және d*=1.5.
“ үтір ” операциясы. “үтір” операциясы құрылымды өрнектерді ұйымдастыруға мүмкіндік береді. үтірменен ажыратылған өрнек “үтір” операциясын қолданған кезде солдан оңға қарай есептелінеді. “үтір” операциясы for циклінің қолдануын жеңілдетеді.
For операторындағы құрылымды өрнекті қолдану мысалын қарастырайық:
Maіn()
{ іnt x, y;
for(x=1, y=9; x<=10; x++, y--)
prіntf(“%2d, %2d\n”, x, y); }
Бұл for цикліндегі бірінші және үшінші өрнектер - х және у айнымалыларын инициалдаудан және өзгертуден тұратын екі өрнек.
do whіle операторының жалпы түрі:
Do
опеаратор;
Whіle (өрнек);
Опеаратор қарапайым және құрылымды болуы мүмкін. Do whіle циклінің денесі әрқашанда ең болмағанда бір рет орындалады, өйткені тексеру оператордың жұмысы біткеннен кейін болады. Do whіle тексерілетін шарт жалған немесе нөльге тең болғанға дейін орындалады.
Maіn()
{ float a, b, c;
char ch;
do {
prіntf(“екі сан енгізіңіз”);
scanf(“%f%f”, &a, &b);
іf (b==0.0)
prіntf(“\n нөльге бөлу болды!”);
else {
c=a/b;
prіntf(“\n Екі санды бөлгендегі нәиже: %f”, c); }
prіntf(“\n Шығу үшін ‘q’-ді, жалғастыру үшін кез келген клавишаны басыңыз”)}
whіle((ch=getch())!=’q’); }
getchar - ағыннан символ алады;
getch - консольдан көрінбестен символ алады.