Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-LEKCIYA.docx
Скачиваний:
3
Добавлен:
27.11.2023
Размер:
593.47 Кб
Скачать

Int main()

{

char juwap;

do

{

... // programma denesi

cout << ”Processti toqtatıw (N):_ ”;

cin >> juwap;

}

while(juwap != N)

return 0;

}

Programma tap “Processti toqtatıw (N):_ ” sorawına ‘N’ juwabı kiritilmegenshe dawam etedi.

Bul operator da sheksiz tákirarlanıwı múmkin:

do; while(1);

Másele. Hár qanday 7 den úlken pútin sandaǵı pul muǵdarın 3 hám 5 sumlıqlarda beriw múmkinligi dáliyllensin. Qoyılǵan másele p=3n+5m teńlemesin qanaatlandırıwshı m, n sanlar juplıqların tabıw máselesi esaplanadı (p-pul muǵdarı). Bul shárttiń orınlanıwın m hám n ózgeriwshileriniń múmkin bolǵan mánisleriniń barlıq kombinaciyalarında tekseriw zárúr boladı.

#include <iostream.h>

int main()

{

unsigned int Pul; //Pul- kiritiletuǵın pul muǵdarı

unsigned n3, m5; //n-3 swmlıqlar, m-5 swmlıqlar sanı

bool qate = false; //Pul mánisin kiritiwdegi qátelik

do

{

if(qate)

cout << "Pul mánisi 7 den kishi!";

qate = true; //keyingi tákirarlaw qáte esaplanadı

cout << "\nPul mánisin kiritiń (>7): ";

cin >> Pul;

}

while(Pul <= 7); //7 ge teń yamasa úlken san

kiritilgenshe

n3 = 0;

//hesh qanday 3 swmliq joq

//hesh qanday 5 swmliq joq

do

{

m5 = 0;

do

{

if(3 * n3 + 5 * m5 == Pul)

cout<<n3<<" dana 3 swmlıq + "<<m5<<" dana 5

swmliq\n";

m5++;

//5 swmlıqlar birewge asırıladı

}

while(3 * n3 + 5 * m5 <= Pul);

n3++;

//3 swmlıqlar birewge asırıladı

}while(3 * n3 <= Pul);

return 0;

}

Programma pul mánisin kiritiwdi soraydı (Pul ózgeriwshisine). Eger pul mánisi 7 sanınan kishi bolsa, bul haqqında хabar beriledi hám tákirar túrde mánis kiritiw talap etiledi. Pul mánisi 7 den úlken bolǵanda, 3 hám 5 swmlıqlardıń múmkin bolǵan tolıq kombinaciyasın ámelge asırıw ushın ishpe-ish tákirarlawlar ámelge asırıladı. Sırtqı tákirarlaw n3 (3 swmlıqlar muǵdarı) boyınsha, ishki tákirarlaw bolsa m5 (5 swmlıqlar muǵdarı) boyınsha, bul muǵdardaǵı pullar mánisi Pul mánisinen artıp ketpegenshe dawam etedi. Ishki tákirarlawda m5 ózgeriwshisiniń hár bir mánisinde «3*n3+5*m5==Pul» shárti tekseriledi, eger ol orınlı bolsa, sheshim variantı sıpatında n3 hám m5 ózgeriwshiler mánisleri shıǵarıladı.

Pul mánisi 30 swm kiritilgende (Pul=30), ekranǵa

0 dana 3 swmlıq + 6 dana 5 swmlıq

5 dana 3 swmlıq + 6 dana 5 swmlıq

10 dana 3 swmlıq + 0 dana 5 swmlıq

sheshim variantları shıǵarıladı.

Break operatorı

Tákirarlaw operatorlarınıń orınlanıwında sonday jaǵdaylar júzege keliwi múmkin, onda qaysıdur qádemde, tákirarlawdı aqırına jetkermesten tákirarlawdan shıǵıw zárúrligi bolıwı múmkin. Basqasha aytqanda, tákirarlawdı «úziw» kerek bolıwı múmkin. Bunda break operatorınan paydalanadı. break operatorın tákirarlaw operatorı denesiniń qálegen (zárúr) orınlarına qoyıw arqalı sol orınlardan tákirarlawdan shıǵıwdı ámelge asırıw múmkin. Itibar beretuǵın bolsaq, switch-case operatorınıń túp mánisine de break operatorın qollanıw arqalı erisilgen.

Ishpe - ish jaylasqan tákirarlaw hám switch operatorlarında break operatorı tek ǵana ózi jaylasqan bloktan shıǵıw imkaniyatın beredi.

Tómendegi programmada eki ishpe-ish jaylasqan tákirarlaw operatorınan paydalanǵan jaǵdayda paydalanıwshı tárepinen kiritilgen qandayda bir sandı 3 hám 7 sanlarına salıstırmalı qanday aralıqqa túsiwi anıqlanadı. Sırtqı tákirarlawda “San kiritin (0- toqtaw):_” sorawı beriledi hám juwap juwap_san ózgeriwshisine oqıladı. Eger san nolden parıqlı bolsa, ishki tákirarlaw operatorında bul sannıń qandayda bir aralıqqa túsiwi anıqlanıp, sol haqqında хabar beriledi hám ishki tákirarlaw operatorınan shıǵıladı. Sırtqı tákirarlawdaǵı sorawǵa juwap sıpatında 0 kiritilse, programma óz jumısın juwmaqlaydı.

#include <iosteam >

using namespace std;

int main()

{

int juwap_san=0;

do

{

while(juwap_san)

{

if(juwap_san < 3)

cout << ”3 kishi !”; break;}

if(3 <= juwap_san && juwap_san <= 7)

cout << ”3 hám 7 aralıqta !”; break;}

if(juwap_san > 7)

cout << ”7 den úlken !”; break;}

{

{

{

}

cout << ”\nSan kiritiń (0-toqtaw):_”;

cin >> juwap_san;

}while(juwap_san != 0)

return 0;

}

Ámeliyatta break operatorınan sheksiz tákirarlawdan shıǵıwda paydalanıladı.

for (;;)

{

// 1- shárt

if(...)

{

...

break;

}

/

/ 2- shárt

if(...)

{

...

break;

}

.

..

}

Bul mısalda sheksiz for tákirarlawınan 1 yamasa 2-shárt orınlanǵanda shıǵıladı.

Másele. Belgisiz pútin sanlar izbe-izligi 0 mánisi menen juwmaqlanadı, 0 izbe-izlik aǵzası esaplanbaydı. Izbe-izlikti kemeymeytuǵın jaǵdayda tártiplengen yamasa tártiplenbegenligi anıqlansın.

#include <iostream>

int main()

{

unsigned int Ai_1 = 0, Ai;

cout << "Sanlar izbe-izligin kiritiń";

cout << " (0-juwmaqlanıw belgisi):\n ";

cin >> Ai;

while(Ai)

{

// izbe-izliktin birinshi aǵzası

Ai_1 = Ai;

cin >> Ai;

// náwbettegi aǵza

if(Ai_1 > Ai)

break;

}

if(Ai_1)

{

cout << "Izbe-izlik tártiplengen";

if(!Ai)

cout << " emes!";

else

cout << ”!”;

}

else

cout << "Izbe-izlik bos!";

return 0;

}

Programma iske túskende, dáslep izbe-izliktiń birinshi aǵzası óz aldına oqıp alınadı (Ai ózgeriwshisine). Keyin Ai mánisi nolge teń bolmaǵansha tákirarlaw operatorı ámel qıladı. Tákirarlaw denesinde Ai mánisi aldınǵı mánis sıpatında Ai_1 ózgeriwshisine eslep qalınadı hám náwbettegi aǵza Ai ózgeriwshisine oqıladı. Eger aldınǵı aǵza náwbettegi aǵzadan úlken bolsa, break operatorı járdeminde tákirarlaw processi úziledi hám basqarıw tákirarlawdan keyingi shárt operatorına ótedi. Bul jerdegi shárt operatorları mazmunı tómendegishe: eger Ai_1 nolden parıqlı bolsa, izbe-izliktiń keminde bir aǵzası kiritilgen boladı (izbe-izlik bar) hám aqırǵı kiritilgen aǵza tekseriledi. Óz náwbetinde eger Ai nolden parıqlı bolsa, bul jaǵday aǵzalar ortasında kemeymew shárti orınlanbaǵanlıǵı sebepli aǵzalardı kiritiw processi úzilgenin bildiredi hám bul haqqında хabar shıǵarıladı. Keri jaǵdayda izbe-izliktiń kemeymeytuǵın jaǵdayda tártiplengen boladı.

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