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ı.