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

4-ameliy_paradigma_qq

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

4-ámeliy jumıs. Obyektke baǵdarlanǵan programmalastırıw. Klasslar hám obyektler

Jumıstıń maqseti: Obyektke Baǵdarlanǵan Programmalastırıw (OBP) paradigmasınıń tiykarǵı túsinikleri bolǵan "Klass" hám "Obyekt" penen islesiwdi úyreniw. C++ tilinde klasslardı járiyalaw, atributlar (maydanlar) hám metodlardı (funkciyalardı) jaratıw, konstruktorlardan paydalanıw hám obyektlerdi (nusqalardı) jaratıw kónlikpelerin qáliplestiriw. Real dúnya obyektlerin (mısalı, student, kitap, avtomobil) programmalıq kodta modellestiriwdi úyreniw.

Teoriyalıq bólim: OBP – bul programmanı bir-biri menen baylanısqan obyektler jıynaǵı retinde qaraytuǵın paradigma.

Tiykarǵı túsinikler:

1.Klass (Class): Obyektlerdiń ulıwma sıpatlaması, proekti yamasa qálibi. Ol maǵlıwmatlar (atributlar) hám olar ústinde orınlanatuǵın ámellerdi (metodlar) biriktiredi.

2.Obyekt (Object): Klastıń anıq bir nusqası (instance). Ol yadta orın iyeleydi hám óziniń jeke mánislerine iye boladı.

3.Atributlar (Data Members): Klastıń ishki ózgeriwshileri (mısalı, atı, jası,

reńi).

4.Metodlar (Member Functions): Klastıń ishki funkciyaları. Olar obyekttiń minez-qulqın belgileydi.

5.Konstruktor: Obyekt jaratılǵanda avtomat túrde shaqırılatuǵın hám baslanǵısh mánislerdi beriwshi arnawlı metod.

ÁMELIY BÓLIM:

C++ tilinde klasslar hám obyektler menen islesiwdiń basqıshların kórip shıǵamız.

1-mısal: Eń ápiwayı klass hám obyekt

Másele: "Student" klasın jaratıw hám onıń maǵlıwmatların shıǵarıw.

Kod:

#include <iostream> #include <string> using namespace std;

// Klastı járiyalaw class Student {

public: // Ruqsat modifikatorı (sırtqı dúnya ushın ashıq)

//Atributlar string ati; int jasi;

double ortasha_bahasi;

//Metod (Obyekt haqqında maǵlıwmat shıǵarıw) void magliwmat_korsetiw() {

cout << "Atı: " << ati << endl; cout << "Jası: " << jasi << endl;

cout << "Ortasha bahası: " << ortasha_bahasi << endl; cout << "-----------------------" << endl;

}

};

int main() {

//1-obyektti jaratıw

Student s1;

s1.ati = "Azamat"; s1.jasi = 20; s1.ortasha_bahasi = 4.5;

//2-obyektti jaratıw

Student s2;

s2.ati = "Gúlparshın"; s2.jasi = 19; s2.ortasha_bahasi = 4.8;

//Metodlardı shaqırıw s1.magliwmat_korsetiw(); s2.magliwmat_korsetiw();

return 0;

}

Túsindirme: Bul jerde Student klassı – ulıwma úlgi. s1 hám s2 – eki hár túrli obyekt. Olar birdey atributlarǵa iye bolsa da, mánisleri hár túrli.

2-mısal: Kapsulyaciya hám Getter/Setter

Másele: Atributlardı jasırıw (private) hám olarǵa tek metodlar arqalı ruqsat beriw.

Kod:

#include <iostream> using namespace std;

class BankEsabi {

private: // Jasırın maǵlıwmat (Sırttan tikkeley ózgerte almaymız)

double balans;

public:

//Konstruktor (Baslanǵısh balans 0 boladı)

BankEsabi() { balans = 0.0;

}

//Setter: Pul salıw (Tekseriw menen)

void depozit(double summa) { if (summa > 0) {

balans = balans + summa;

cout << summa << " som qosıldı." << endl;

} else {

cout << "Qáte: Summa oń bolıwı kerek!" << endl;

}

}

// Setter: Aqsha sheshiw

void pul_sheshiw(double summa) {

if (summa > 0 && summa <= balans) { balans = balans - summa;

cout << summa << " som sheshildi." << endl; } else {

cout << "Qáte: Balans jetkiliksiz yamasa summa nadurıs." << endl;

}

}

// Getter: Balanstı kóriw double getBalans() {

return balans;

}

};

int main() {

BankEsabi mening_esabim;

// mening_esabim.balans = 1000; // QÁTE! private aǵzaǵa tiye almaymız

mening_esabim.depozit(500); mening_esabim.pul_sheshiw(200); mening_esabim.pul_sheshiw(1000); // Jetkiliksiz qarji

cout << "Juwmaqlawshı balans: " << mening_esabim.getBalans() << endl;

return 0;

}

Túsindirme: Kapsulyaciya qáwipsizlikti támiyinleydi. Paydalanıwshı balanstı tikkeley ózgerte almaydı, tek depozit() hám pul_sheshiw() metodları arqalı ǵana tásir ete aladı.

3-mısal: Konstruktorlar (Parametrli)

Másele: Obyektti jaratqan waqıtta birden mánislerin beriw.

Kod:

#include <iostream> #include <string> using namespace std;

class Avtomobil { public:

string marka; string model; int jil;

// Parametrli konstruktor Avtomobil(string m, string mod, int j) {

marka = m; model = mod; jil = j;

}

void start() {

cout << marka << " " << model << " (" << jil << ") qotlandı." <<

endl;

}

};

int main() {

// Konstruktor arqalı bir qatarda jaratıw

Avtomobil avto1("Toyota", "Camry", 2022); Avtomobil avto2("Chevrolet", "Malibu", 2023);

avto1.start();

avto2.start();

return 0;

}

Túsindirme: Konstruktor klass atı menen birdey bolǵan metod. Ol obyekt jaratılǵanda avtomat iske túsedi.

ÁMELIY TAPSÍRMALAR

1-tapsırma: Kitap klassı.

Kitap (Book) klasın jaratıń. Atributları: ataması (title), avtorı (author), betler_sanı

(pages).

Wazıypalar:

1.Parametrli konstruktor jaratıń.

2.Kitap haqqında tolıq maǵlıwmat shıǵarıwshı display() metodın jazıń.

3.Main funkciyasında 2 hár túrli kitap jaratıp, maǵlıwmatların ekranda kórsetiń.

2-tapsırma: Tórtmúyeshlik klassı hám esaplawlar.

Rectangle klasın jaratıń. Atributları: uzınlıq (length) hám eni (width).

Wazıypalar:

1.setDimensions(l, w) metodı arqalı ólshemlerdi ornatıń (eger l yamasa w 0 den kishi bolsa, qáte shıǵarsın).

2.area() metodı maydandı, perimeter() metodı perimetrdi qaytarsın.

3.Bir tórtmúyeshlik jaratıp, onıń maydanı hám perimetrin esaplań.

3-tapsırma: Oylap tabıwshı (GuessGame) klassı.

GuessGame klasın jaratıń. Atributı: jasırın_san (secretNumber).

Wazıypalar:

1.Konstruktorda jasırın sanǵa qanday da bir mánis beriń (mısalı 7).

2.guess(number) metodın jazıń. Eger number jasırın sanǵa teń bolsa "Taptıńız!", úlken bolsa "Kishirek san jazıń", kishi bolsa "Úlkenirek san jazıń" degen xabar shıǵarsın.

4-tapsırma: Telefon kontaktleri.

Contact klasın jaratıń (atı, nomeri).

Main funkciyasında 3 elementten turatuǵın Contact massivin (Contact contacts[3]) jaratıń.

Massivtiń hárbir elementine (obyektine) maǵlıwmat kirgizip (konstruktor arqalı), keyin cikl járdeminde barlıq kontaktlerdi ekranda dizim etip shıǵarıń.

5-tapsırma: Waqıt (Time) klassı.

Time klasın jaratıń. Atributları: saat (hour), minut (minute), sekund (second).

Wazıypalar:

1.addSecond() metodın jazıń. Bul metod waqıtqa 1 sekund qosıwı kerek.

2.Eger sekund 60 bolsa, onı 0 ge aylandırıp, minuttı 1 ge asırıń. Eger minut 60 bolsa, saatqa ótiń. Eger saat 24 bolsa, 0 ge aylandırıń (00:00:00).

3.Main-de 23:59:59 waqtın ornatıp, 1 sekund qosıp, nátiyjeni tekseriń.

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