Скачиваний:
0
Добавлен:
05.11.2025
Размер:
285.67 Кб
Скачать

7-ámeliy. Tákirarlanıwshı processlerdi shólkemlestiriw. Parametrli tákirarlaw operatorı. Shárti aldın berilgen tákirarlaw operatorı.

Sabaqtıń maqseti: Studentlerge C++ tilinde tákirarlanıwshı (cikl) processlerdi shólkemlestiriwdi úyretiw. for, while operatorlarınıń wazıypaların, ayırmashılıqların hám qollanılıw orınların túsindiriw. Ishpe-ish cikllerdiń strukturasın analizlew hám ámeliy máselelerdi sheshiwde cikllerden erkin paydalanıw kónlikpelerin qáliplestiriw.

Kerekli úskeneler:

Kompyuter

C++ kompilyatorı ornatılǵan programma (mısalı: Code::Blocks, Visual

Studio, Dev-C++ yaki online GDB).

Sabaqtıń barısı:

1. Teoriyalıq maǵlıwmatlar (Qısqasha kirisiw)

Kúndelikli turmısta biz birdey háreketlerdi kóp márte tákirarlawımızǵa tuwrı keledi. Mısalı, 10 ret otırıp-turıw, kitaptaǵı 100 betti oqıw hám t.b. Programmalastırıwda da belgili bir kod bólegin bir neshe márte orınlaw zárúrligi jiyi ushırasadı. Usınday qaytalanatuǵın háreketlerdi ámelge asırıw ushın tákirarlaw operatorları yamasa cikller qollanıladı.

C++ tilinde cikllerdiń úsh túri bar:

1. for – parametrli (sanawshı) cikl. Tákirarlaw sanı aldınnan belgili bolǵanda qollanıladı.

2. while – shárti aldın berilgen cikl. Belgili bir shárt orınlanıp turǵan waqıtta tákirarlanıwshı processlerdi orınlaydı. Shárt dáslep tekseriledi.

3. do-while – shárti keyin berilgen cikl. Kod blogı keminde bir márte orınlanıp, keyin shártti tekseredi.

Endi hár birin bólek kórip shıǵamız.

2. for operatorı – Parametrli tákirarlaw

for cikl operatorı tákirarlanıwlar sanı aldınnan belgili bolǵan jaǵdaylar ushın júdá qolaylı. Onıń ulıwma kórinisi tómendegishe:

for (inicializaciya; shárt; inkrement/dekrement) { // cikldıń denesi - tákirarlanıwshı kod

}

Inicializaciya: Cikldıń basqarıwshı ózgeriwshisine (sanawshıǵa) baslanǵısh bahası beriledi. Bul háreket tek birinshi ret orınlanadı.

Shárt: Cikldıń hár bir baslanıwında usı shárt tekseriledi. Eger shárt true (ras) bolsa, cikldıń denesi orınlanadı. Eger false (jalǵan) bolsa, cikl jumısın toqtatadı.

Inkrement/Dekrement: Cikldıń denesi orınlanıp bolǵannan keyin basqarıwshı ózgeriwshi ózgertiriledi (ádette ++ arqalı birge arttırıladı yaki -- arqalı birge kemeytiriledi).

Mısal - 1: Ekranda 1 den 5 ke shekemgi sanlardı shıǵarıw.

#include <iostream> using namespace std; int main() {

//i sanawshısı 1 den baslanadı, 5 ten kishi yaki teń bolǵansha dawam etedi,

//hám hár bir adımda 1 ge artadı.

for (int i = 1; i <= 5; i++) { cout << i << " ";

}

cout << endl; // Jańa qatarǵa ótiw ushın return 0;

}

Nátiyje:

1 2 3 4 5

1-tapsırma:

Paydalanıwshı tárepinen kiritilgen N sanına shekem bolǵan sanlardıń qosındısın (summasın) for ciklınan paydalanıp esaplaytuǵın programma dúziń. Mısalı, N=5 bolsa, nátiyje 1+2+3+4+5=15 bolıwı kerek.

3. while operatorı – Shárti aldın berilgen tákirarlaw

while operatorı qanday da bir shárt orınlanıp turǵan waqıtta cikldıń denesin tákirarlaw ushın qollanıladı. Tákirarlawlar sanı aldınnan belgili bolmaǵan jaǵdaylarda júdá qolaylı.

Ulıwma kórinisi:

while (shárt) {

//cikldıń denesi

//(shárttiń ózgeriwine tásir etiwshi operaciya bolıwı zárúr)

}

Bul jerde cikl denesine kiriwden aldın shárt tekseriledi. Eger ol false bolsa, cikl denesi bir ret te orınlanbaydı. Cikl sheksiz bolıp qalmawı ushın cikldıń denesinde shártke tásir etiwshi ózgeris bolıwı kerek.

Mısal - 2: while ciklınan paydalanıp, 5 ten 1 ge shekemgi sanlardı keri sanaw.

#include <iostream> using namespace std;

int main() { int san = 5;

// "san" 0 den úlken bolǵansha cikl dawam etedi while (san > 0) {

cout << san << " ";

san=san-1; // sannıń mánisin birge kemeytemiz

}

cout << endl; return 0;

}

Nátiyje:

5 4 3 2 1

while ǵa baylanıslı mısallar:

1-Mısal: 1 den 5 ke shekem sanaw

Bul eń ápiwayı mısal. i ózgeriwshisin 1 den baslap, ol 5 ten kishi yaki teń bolǵansha onıń mánisin ekranda kórsetip, hár adımda 1 ge arttırıp baramız.

Túsindirmesi:

1.i ózgeriwshisi 1 ge teńlenedi.

2.while (i <= 5) shárti tekseriledi, yaǵnıy (1 <= 5 -> true).

3.Cikl denesi orınlanadı: i (yaǵnıy 1) ekranda shıǵadı hám i++ arqalı i diń

mánisi 2 boladı.

4.Shárt qayta tekseriledi (2 <= 5 -> true), cikl jáne orınlanadı.

5.Bul process i diń mánisi 6 bolǵansha dawam etedi. 6 <= 5 shárti false bolǵanda cikl toqtaydı.

Kod:

#include <iostream> using namespace std; int main() {

int i = 1; // 1. Baslanǵısh mánis

while (i <=

5) { // 2. Shárt

cout <<

i << " ";

i++; //

3. Ózgeriwshini ózgertiw (sheksiz cikldıń aldın alıw

ushın)

}

cout << endl; return 0;

}

Nátiyje:

1 2 3 4 5

2-Mısal: N ge shekemgi sanlardıń qosındısın esaplaw

Paydalanıwshı tárepinen kirgizilgen N sanına shekem bolǵan sanlardıń (1 den baslap) qosındısın tabamız.

Túsindirmesi:

1.n sanı paydalanıwshıdan alınadı.

2.qosındı 0 ge, i 1 ge teńlenedi.

3.while (i <= n) shárti tekseriledi.

4.Hár bir adımda i diń mánisi qosındıǵa qosılıp barıladı hám i 1 ge artadı.

5.i diń mánisi n nen úlken bolǵanda cikl toqtaydı.

Kod:

#include <iostream>

int main() { int n;

cout << "N sanın kiritiń: "; cin >> n;

int qosındı = 0; int i = 1;

while (i <= n) {

qosındı += i; // qosındı = qosındı + i; i++;

}

cout << "1 den " << n << " ge shekemgi sanlar qosındısı: " << qosındı << endl;

return 0;

}

Nátiyje (eger n=10 dep kiritsek):

N sanın kiritiń: 10

1 den 10 ge shekemgi sanlar qosındısı: 55

3-Mısal: Kirgizilgen sannıń cifrların keri tártipte shıǵarıw

Mısalı, 123 kirgizilse, 321 dep shıǵarıw kerek.

Túsindirmesi:

1.san 0 ge teń bolıp qalǵansha cikl dawam etedi.

2.san % 10 operaciyası sannıń aqırǵı cifrın beredi (mısalı, 123 % 10 = 3).

3.Bul cifr keri_san ózgeriwshisine qosıladı. Hár qádemde keri_san 10 ǵa

kóbeytilip, oǵan jańa cifr qosıladı.

4. san = san / 10 operaciyası sannıń aqırǵı cifrın óshiredi (mısalı, 123 /

10 = 12).

Kod:

#include <iostream> using namespace std; int main() {

int san, keri_san = 0, qaldıq; cout << "Pútin san kiritiń: "; cin >> san;

while (san != 0) { qaldıq = san % 10;

keri_san = keri_san * 10 + qaldıq; san /= 10;

}

cout << "Kerisinshe tártipte: " << keri_san << endl; return 0;

}

Nátiyje (eger 789 kirgizsek):

Pútin san kiritiń: 789

Kerisinshe tártipte: 987

4-Mısal: "Exit" sózi kirgizilgenshe tekst qabıl etiw

Paydalanıwshı "exit" (kishi háriplerde) dep jazǵansha, onnan tekst qabıl etip, ekranda kórsetip turatuǵın programma.

Túsindirmesi:

1.tekst ózgeriwshisi bos string penen inicializaciyalanadı.

2.while (tekst != "exit") shárti tekseriledi. Birinshi rette ol true.

3.Cikl ishinde paydalanıwshıdan tekst soraladı.

4.Kirgizilgen tekst "exit" sózine teń bolıp qalǵanda, keyingi aylanıwda shárt false boladı hám cikl toqtaydı.

Kod:

#include <iostream>

#include <string> using namespace std; int main() {

string tekst = "";

cout << "Tekst kiritiń (shıǵıw ushın 'exit' dep jazıń):" << endl;

while (tekst != "exit") { cout << ">> ";

cin >> tekst;

if (tekst != "exit") {

cout << "Siz kirittińiz: " << tekst << endl;

}

}

cout << "Programma tamamlandı." << endl; return 0;

}

Programma jumısı:

Tekst kiritiń (shıǵıw ushın 'exit' dep jazıń):

>> salem

Siz kirittińiz: salem >> dúnya

Siz kirittińiz: dúnya

>> exit

Programma tamamlandı.

5-Mısal: Oń san kiritilmegenge shekem qayta soraw

Paydalanıwshıdan oń san kiritiwin talap etiw. Eger teris san yaki nol kirgizilse, programma qaytadan soray beredi.

Túsindirmesi:

1. san ózgeriwshisi dáslepki mánis retinde 0 ge teńlenedi, bul cikldıń keminde bir ret islewini támiyinleydi.

2.while (san <= 0) shárti tekseriledi.

3.Paydalanıwshı 0 den úlken san kirgizgenshe cikl aylanıberedi. Oń san

kirgizilgende shárt false boladı.

Kod:

#include <iostream> using namespace std; int main() {

int san = 0;

cout << "Oń pútin san kiritiń: "; cin >> san;

while (san <= 0) {

cout << "Qáte! Tek oń san kerek. Qaytadan kiritiń: "; cin >> san;

}

cout << "Siz kirgizgen oń san: " << san << endl; return 0;

}

6-Mısal: Sanlardıń ortasha mánisi (paydalanıwshı 0 kirgizgenshe)

Paydalanıwshı 0 sanın kirgizgenshe onnan sanlar qabıl etip, sońında sol sanlardıń ortasha arifmetikalıq mánisin shıǵarıw.

Túsindirmesi:

1.san ózgeriwshisi 1 ge teńlenedi (ciklge kiriw ushın).

2.while (san != 0) shárti qoyıladı.

3.Hár bir kirgizilgen san qosındıǵa qosıladı hám sanawshı 1 ge artadı.

4.Paydalanıwshı 0 kirgizgende cikl toqtaydı.

5.Cikldan keyin ortasha baha (qosındı / sanawshı) esaplanadı.

Kod:

#include <iostream> using namespace std; int main() {

double san = 1.0; double qosındı = 0.0; int sanawshı = 0;

cout << "Sanlar kiritiń (toqtatıw ushın 0 kiritiń):" << endl;

while (san != 0) { cin >> san;

if (san != 0) { qosındı += san; sanawshı++;

}

}

if (sanawshı > 0) {

double ortasha = qosındı / sanawshı;

cout << "Ortasha baha: " << ortasha << endl; } else {

cout << "Hesh qanday san kirgizilmedi." << endl;

}

return 0;

}

7-Mısal: Kirgizilgen sannıń ápiwayı yaki quramalılıǵın anıqlaw

Ápiwayı san — tek 1 ge hám ózine bólinedituǵın san (mısalı: 2, 3, 5, 7, 11).

Túsindirmesi:

1.boliwshi ózgeriwshisi 2 den baslanadı.

2.isApiwayı bayraqshası dáslep true dep alınadı.

3.while (boliwshi <= san / 2) shárti qoyıladı. Sannıń yarımınan úlken

sanǵa bóliniwin tekseriw shárt emes.

4.Eger san qanday da bir boliwshige qaldıqsız bólins, ol quramalı san boladı (isApiwayı = false;) hám break arqalı cikl toqtatıladı.

5.Eger bólinbese, boliwshi 1 ge arttırılıp, cikl dawam etedi.

Kod:

#include <iostream> using namespace std; int main() {

int san;

cout << "2 den úlken pútin san kiritiń: "; cin >> san;

int boliwshi = 2; bool isApiwayı = true;

if (san <= 1) { isApiwayı = false;

} else {

while (boliwshi <= san / 2) { if (san % boliwshi == 0) {

isApiwayı = false;

break; // Bóliwshi tabılsa, cikldan shıǵamız

}

boliwshi++;

}

}

if (isApiwayı) {

cout << san << " - ápiwayı san." << endl; } else {

cout << san << " - quramalı san." << endl;

}

return 0;

}

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