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

3-ameliy_paradigma_qq

.pdf
Скачиваний:
0
Добавлен:
18.01.2026
Размер:
200.36 Кб
Скачать

3-ámeliy jumıs. Modulli programmalardı dúziw hám testlew

Jumıstıń maqseti: Strukturalı programmalastırıwdan keyingi basqısh bolǵan proceduralıq hám modulli programmalastırıw kónlikpelerin rawajlandırıw. C++ tilinde funkciyalar (moduller) jaratıwdı, olardıń parametrlerin hám qaytaratuǵın mánislerin durıs qollanıwdı úyreniw. Úlken máseleni kishi, ǵárezsiz bóleklerge (dekompoziciya) bóliw, "kodtı qayta qollanıw" (reusability) principin ámelge asırıw hám modullerdi bólek testlewdi (Unit testing) úyreniw.

Teoriyalıq bólim: Modulli programmalastırıw – bul programmanı logikalıq jaqtan tamamlanǵan hám atamaǵa iye bolǵan bóleklerge – funkciyalarǵa (modullerge) bóliw usılı.

Tiykarǵı túsinikler:

1.Funkciya (Procedura): Belgili bir wazıypanı orınlawshı kod blogı. Ol parametrlerdi qabıllawı (Input), esaplawlar júrgiziwi (Process) hám nátiyje qaytarıwı (Output) múmkin.

2.Parametrler (Argumentler): Funkciyaǵa sırttan maǵlıwmat beriw kanalı.

3.Qaytarıw mánisi (Return value): Funkciyanıń jumıs nátiyjesin shaqırǵan jerge qaytarıw.

4.Lokal hám Global ózgeriwshiler: Ózgeriwshilerdiń kórinis tarawı (Scope). Modulli programmalastırıwda lokal ózgeriwshilerdi qollanıw usınıs etiledi.

5.Prototip (Declaration) hám Anıqlama (Definition): Funkciyanıń bas beti menen denesin ajıratıw.

ÁMELIY BÓLIM:

C++ tilinde funkciyalar menen islesiwdiń túrli aspektlerin kórip shıǵamız.

1-mısal: Ápiwayı funkciya hám onı shaqırıw

Másele: Sálemnama shıǵarıwshı funkciya jaratıw.

Kod:

#include <iostream> using namespace std;

// Funkciyanıń anıqlaması void salemlesiw() {

cout << "Assalawma áleykum!" << endl;

cout << "Modulli programmalastırıwǵa xosh keldińiz." << endl;

}

int main() {

cout << "Baslı programma baslandı." << endl;

//Funkciyanı shaqırıw (Call) salemlesiw();

//Funkciyanı ekinshi márte shaqırıw (Reusability) salemlesiw();

cout << "Baslı programma juwmaqlandı." << endl; return 0;

}

Túsindirme: void gilt sózi funkciyanıń heshqanday nátiyje qaytarmaytuǵının (tek háreket orınlaytuǵının) bildiredi.

2-mısal: Parametrli funkciyalar hám nátiyje qaytarıw

Másele: Eki sannıń eń úlkenin (maksimumın) tabıwshı funkciya.

Kod:

#include <iostream> using namespace std;

//int - funkciyanıń qaytaratuǵın mánisiniń tipi

//(int a, int b) - funkciyanıń parametrleri int maksimum(int a, int b) {

if (a > b) {

return a; // a nı qaytaradı hám funkciyanı toqtatadı

} else {

return b; // b nı qaytaradı

}

}

int main() {

int x = 10, y = 25;

// Funkciyanı shaqırıp, nátiyjesin 'n' ózgeriwshisine saqlaymız int n = maksimum(x, y);

cout << "Eń úlken san: " << n << endl;

// Funkciyanı tikkeley shıǵarıw operatorında qollanıw

cout << "100 hám 50 diń maksimumı: " << maksimum(100, 50) << endl;

return 0;

}

Túsindirme: return operatorı funkciyanıń jumısın juwmaqlap, esaplanǵan mánisti shaqırılǵan jerge alıp baradı.

3-mısal: "Sırtqı tásir" (Side effect) hám Silteme arqalı uzatıw (Pass by Reference)

Másele: Eki ózgeriwshiniń mánisin almastıratuǵın (swap) funkciya jazıw.

Kod:

#include <iostream> using namespace std;

//'&' belgisi parametrlerdiń silteme (adres) ekenin bildiredi

//Bul funkciya túpnusqa ózgeriwshilerdiń mánisin ózgerte aladı void almastir(int &a, int &b) {

int temp = a; a = b;

b = temp;

}

int main() {

int san1 = 5, san2 = 10;

cout << "Aldın: " << san1 << " " << san2 << endl; almastir(san1, san2); // Ózgeriwshilerdiń ózin beremiz cout << "Keyin: " << san1 << " " << san2 << endl;

return 0;

}

Túsindirme: Eger & belgisiz (int a, int b) jazılǵanda, funkciya tek ózgeriwshilerdiń nusqasın (copy) alar edi hám main-degi san1, san2 ózgermey qalar edi. Silteme qollanıw moduldıń sırtqı ortalıqqa tásir etiwin támiyinleydi.

4-mısal: Modullik (Fayllarǵa bóliw)

Úlken proektlerde kod bir faylǵa sıymaydı. Biz onı Header (.h) hám Source (.cpp) fayllarǵa bólemiz.

(Bul jerde koncepciya kórsetiledi, ámeliyatta IDE-da bólek fayllar ashıw kerek).

1-fayl: math_utils.h (Bas bet - Prototip)

#ifndef MATH_UTILS_H #define MATH_UTILS_H

int qosiw(int a, int b); int aliw(int a, int b); #endif

2-fayl: math_utils.cpp (Realizaciya)

#include "math_utils.h"

int qosiw(int a, int b) { return a + b;

}

int aliw(int a, int b) { return a - b;

}

3-fayl: main.cpp (Baslı programma)

#include <iostream>

#include "math_utils.h" // Ózimizdiń kitapxanamızdı qosamız

using namespace std;

int main() {

cout << "Qosıw: " << qosiw(10, 20) << endl; return 0;

}

ÁMELIY TAPSÍRMALAR

1-tapsırma: Dárejege kóteriw funkciyası.

power(base, exponent) atlı funkciya jazıń. Ol eki pútin san qabıllap, base sanın exponent dárejesine kóterip, nátiyjeni qaytarıwı kerek. (pow standart funkciyasın qollanbań, cikl arqalı esaplań).

2-tapsırma: Massivti qayta islew.

find_average(arr, size) atlı funkciya jazıń. Ol pútin sanlar massivin hám onıń ólshemin qabıllap, massiv elementleriniń arifmetikalıq ortasha mánisin (double) qaytarıwı kerek.

Соседние файлы в предмете Programmalastiriw paradigmalari