Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5-ameliy

.docx
Скачиваний:
1
Добавлен:
22.12.2023
Размер:
25.74 Кб
Скачать

5-ÁMELIY SABAQ: TARMAQLANÍWSHÍ OPERATORLAR. TAŃLAW OPERATORÍ. TAŃLAW OPERATORLARÍ BOYÍNSHA ÁMELLER ORÍNLAW

Jumıstıń maqseti: Tarmaqlanıwshı proceslerge baylanıslı ámellerdi orınlaw, shárt operatorların úyreniw. Tańlaw switch operatorlarınan qollanıwdı úyreniw.

Teoriyalıq bólim: Tarmaqlanıwshı esaplaw proceslerin algoritmlestiriw hám programmalastırıwda kóplegen máselelerdi sheshiwde ayırım procesler belgili shárt yaki shártlerdiń qoyılıwına qarata orınlanadı. Bunday procesler tarmaqlanıwshı procesler dep ataladı. Tarmaqlanıwshı esaplaw procesleri ápiwayı hám quramalı boladı. Bul procestegi tarmaqlardıń sanına baylanıslı. Belgili bir tarmaqlanıwshı process quramına da tarmaqlanıwlar bolıwı múmkin. Bunday tarmaqlanıwları bar esaplaw procesleri quramalı tarmaqlanıwshı procesler dep ataladı. C++ tilinde tarmaqlanıwshı proceslerdi programmalastırı ushın shártsiz, shártli ótiw hám tańlaw operatorlarınan paydalanıladı.

Ámeliy bólim:

Switch operatorı

switch orınlanatuǵın kóplegen kod bloklarınıń birin tańlaw ushın qollanıladı.

Sintaksisi

switch(expression) {   case x:     // kod blogı     break;   case y:     // kod blogı     break;   default:     // kod blogı }

Bul qalay jumıs isleydi:

  • Ańlatpa switch bir ret bahalanadı

  • Ańlatpanıń case mánisi hárqaysısınıń mánisleri menen salıstırıladı

  • Sáykeslik bar bolsa, kodtıń baylanıslı blogı orınlanadı

  • break hám default gilt sózleri minnetli emes hám usı bapta keyinirek sáwlelendiriledi.

Tómendegi mısalda jumıs kúni atın esaplaw ushın jumıs kúni nomerleri qollanılǵan:

#include <iostream>

using namespace std;

int main() {

int day = 4; switch (day) {   case 1:     cout << "Dúyshembi";     break;   case 2:     cout << "Siyshembi";     break;   case 3:     cout << "Sárshembi";     break;   case 4:     cout << "Piyshembi";     break;   case 5:     cout << "Juma";     break;   case 6:     cout << "Shembi";     break;   case 7:     cout << "Ekshembi";     break; } // Shıǵarıladı "Piyshembi" (4-kún)

return 0;

}

break úzilis gilt sózi

C++ break gilt sózge jetkende, ol kommutator blogınan shıǵadı.

Bul blok ishinde kóbirek kod penen jaǵdaydı tekseriwdi orınlawdı toqtatadı.

Sáykeslik tabılıp, jumıs juwmaqlanǵanda, úzilis waqtı keldi. Qosımsha testlewdiń zárúrligi joq.

Úzilis (break) orınlawdıń kóp waqıtın únemley aladı, sebebi ol kommutator blogındaǵı kodtıń barlıq qalǵan bóleginiń orınlanıwın “itibarǵa almaydı”.

Default (ádepki) gilt sóz

Gilt sóz default registrge sáykes kelmese, iske qosılatuǵın ayırım kodtı kórsetedi:

Mısal.

#include <iostream>

using namespace std;

int main() {

int day = 4; switch (day) {   case 6:     cout << "Búgin Shembi";     break;   case 7:     cout << "Búgin Ekshembi";     break;   default:     cout << "Demalıs kúnlerin kútiw"; } // Shıǵarıladı " Demalıs kúnlerin kútiw "

return 0;

}

Tańlaw operatorı

Switch operatorı.

Shárt operatorınıń jáne bir kórinisi switch tańlaw operatorı bolıp, onıń sintaksisi tómendegishe:

switch (<ańlatpa>)

{

case <turaqlı ańlatpa > : <operatorlar toparı >; break;

case <turaqlı ańlatpa > : <operatorlar toparı >; break;

case <turaqlı ańlatpa > : <operatorlar toparı >; break;

default : <operatorlar toparın+1>;

}

Bul operator tómendegishe ámel qıladı: birinshi náwbette <ańlatpa> mánisi esaplanadı, keyin bul mánis case gilt sózi menen ajıratılǵan <turaqlı ańlatpai> menen salıstırıladı. Eger olar birdey bolsa, sol qatardagi ‘:’ belgisinen baslap, break gilt sózine shekem bolǵan <operatorlar toparıi> orınlanadı hám basqarıw tarmaqlanıwshı operatordan keyin jaylasqan operatorǵa ótedi. Eger <ańlatpa> hesh bir <turaqlı ańlatpai> menen sáykes kelmese, qurılmanıń default bólegindegi <operatorlar toparın+1> orınlanadı. Sonı belgilep ótiw kerek, qurılmada default gilt sózi tek ǵana bir márte ushırawı múmkin.

Mısal ushın, kiriw aǵımınan “Process dawam etilsin be?” sorawına paydalanıwshı tárepinen juwap alınadı. Eger bolımlı juwap alınsa, ekranǵa “Process dawam etedi!” xabarı shıǵarıladı hám programma óz jumısın tarmaqlanıwshı operatordan keyingi operatorlardı orınlaw menen dawam ettiredi, keri jaǵdayda “Process juwmaqlandı!” juwabı beriledi hám programma óz jumısın juwmaqlaydı. Bunda, paydalanıwshınıń ‘y’ yamasa ‘Y’ juwapları processti dawam ettiriwdi bildiredi, basqa belgiler bolsa processti juwmaqlawdı ańlatadı.

#include <iostream.h>

using namespace std;

int main()

{

char Juwap = ’ ’;

cout << ”Process dawam etsin be? (‘y’,’Y’): ”

cin >> Juwap;

switch(Juwap)

{

case ‘Y’:

case ‘y’:

cout<<”Process dawam etedi!\n”;

break;

default:

cout<<”Process juwmaqlanadı!\n”;

return 0;

}

... // process

return 0;

}

Ulıwma alǵanda, tańlaw operatorında break hám default gilt sózlerin isletiw májbúriy emes. Biraq bul jaǵdayda operator mazmunı buzılıwı múmkin. Máselen, default bólegi bolmaǵan jaǵdayda, eger <ańlatpa> hesh bir <turaqlı ańlatpai> menen birdey bolmasa, operator hesh qanday ámel orınlamastan basqarıw tańlaw operatorınan keyingi operatorǵa ótedi. Eger break bolmasa, <ańlatpa> qandayda bir <turaqlı ańlatpai> menen birdey bolǵan jaǵdayda, oǵan sáykes keliwshi operatorlar toparın orınlaydı hám «toqtatpastan» keyingi qatardaǵı operatorlar toparın da orınlawdı dawam etedi. Máselen, joqarıdaǵı mısalda break operatorı bolmasa hám processti dawam ettiriwdi tastıyqlawshı (‘Y’) juwap bolǵan jaǵdayda ekranǵa

Process dawam etedi!

Process juwmaqlanadı!

хabarları shıǵadı hám programma óz jumısın juwmaqlaydı (return operatorınıń orınlanıwı nátiyjesinde).

Tańlaw operatorı sanap ótiliwshi tiptegi turaqlılar menen birgelikte isletilgende nátiyje beredi. Tómendegi programmada reńler gammasın klassifikaciyalaw máselesi sheshilgen.

#include <iostream.h>

using namespace std;

int main()

{

enum Reńler{Qızıl, Toq_sarı, Sarı, Jasıl, kók, Kúlreń, Fiolet};

Reńler Reń;

//...

switch(Reń)

{

case Qızıl:

case Toq_sarı:

case Sarı:

cout << ”Íssı gamma saylandı.\n”; break;

case Jasıl:

case Kуk:

case Kúlreń:

case Fiolet:

cout << ”Suwıq gamma saylandı.\n”; break;

default:

cout << ”Raduga bunday reńge iye emes.\n”;

}

return 0;

}

Programma orınlanıwında basqarıw tańlaw operatorına kelgende, Reń mánisi Qızıl, Toq_sarı yamasa Sarı bolsa, “Íssı gamma saylandı” xabarı, eger Reń mánisi Jasıl, Kók, Kúlreń yamasa Fiolet bolsa, ekranǵa “Suwıq gamma saylandı” xabarı, eger Reń mánisi sanap ótilgen mánislerden parıqlı bolsa, ekranǵa “Raduga bunday reńge iye emes” xabarı shıǵarıladı hám programma óz jumısın juwmaqlaydı. switch operatorında járiyalaw operatorları da ushırawı múmkin. Biraq switch operatorı orınlanıwında «sekirip ótiw» jaǵdayları bolıwı esabına blok ishindegi ayrım járiyalawlar orınlanbawı hám bunıń aqıbetinde programma ishinde qátelik júzege keliwi múmkin:

//...

int k = 0, n = 0;

cin >> n;

switch(n)

{

int i = 10; //qáte, bul operator orınlanbaydı

case 1:

int j = 20; //eger n = 2 bolsa, bul járiyalaw

orınlanbaydı

case 2:

k += i + j; //qáte, sebebi i, j ózgeriwshiler belgisiz

}

cout << k;

//... Másele. Tómende sanap ótiliwshi tipler hám sol tiptegi ózgeriwshiler járiyalanǵan:

enum Birlik {decimetr, kilometr, metr, millimetr, santimetr};

float x; Birlik r;

r birlikte berilgen x уzgeriwshisiniń mбnisi metrlerde shıǵarılsın.

#include <iostream.h>

using namespace std;

int main()

{

enum

Birlik{decimetr, kilometr, metr, millimetr, santimetr};

float x, y;

Birlik r;

cout << "Uzınlıqtı kiritiń: x = ";

cin >> x;

cout << "Uzınlıq birlikleri\n";

cout << "0 - decimetr\n";

cout << "1 - kilometr\n";

cout << "2 - metr\n";

cout << "3 - millimetr\n";

cout << "4 - santimetr\n";

cout << "Uzınlıqtıń birligin saylań: r = ";

cin >> r;

switch(r)

{

case decimetr: y = x / 10; break;

case kilometr: y = x * 1000; break;

case metr: y = x; break;

case millimetr: y = x / 1000; break;

case santimetr: y = x / 100; break;

default:

cout << "Uzınlıq birligi nadurıs kiritildi!";

return 0;

}

cout << y << " metr";

return 0;

}

Соседние файлы в предмете Программирование на C++