942 – 19 guruhi talabasi Zaripboyev Anvar 12 – tajriba ishi (mta)


Download 53.91 Kb.
bet1/9
Sana01.12.2021
Hajmi53.91 Kb.
#178642
  1   2   3   4   5   6   7   8   9
Bog'liq
12 - tajriba ishi


942 – 19 guruhi talabasi

Zaripboyev Anvar

12 – tajriba ishi (MTA)

4. “Nuqta” sinfini yarating. Bu sinf asosida uchburchak sinfini yarating va dasturda qo‘llang. Bu sinfda perimetr, yuzani hisoblash va uchburchakni chizish usullari mavjud bo‘lsin.

#include

#include

#include

#include

#include

using namespace std;

class Nuqta

{

public:



list x, y;

Nuqta(){
}

Nuqta(list a)

{

list :: iterator i;



int j = 0;

for (i = a.begin(); i != a.end(); i ++){

if (j % 2 == 0){

x.push_back(*i);

} else {

y.push_back(*i);

}

j ++;


}

}

};



class Uchburchak : public Nuqta

{

private:



bool bor = true;

double X[3], Y[3];

double Peremetr(int a, int b, int d){

if (a + b > d && a + d > b && b + d > a) {


} else {

bor = false;

}

return a + b + d;



}
void Yuza(int p, int a, int b, int d){

if (bor){

double y = p * 1./2;

cout << "Peremetri: " << p << "\n";

cout << "Yuzasi: "<< sqrt(y * (y - a) * (y - b) * (y - d)) << "\n";

}

}



public:

Uchburchak(list a)

{

list :: iterator i;



list :: iterator j;

int f = 0;

for (i = a.begin(); i != a.end(); i ++){

if (f % 2 == 0){

x.push_back(*i);

} else {


y.push_back(*i);

}

f ++;



}
if (x.size() == 3) {

f = 0;


for (i = x.begin(), j = y.begin(); i != x.end(), j != y.end(); i ++, j ++){

X[f] = *i;

Y[f] = *j;

f ++;


}
double b = sqrt((X[0] - X[1])*(X[0] - X[1]) + (Y[0] - Y[1])*(Y[0] - Y[1])),

n = sqrt((X[1] - X[2])*(X[1] - X[2]) + (Y[1] - Y[2])*(Y[1] - Y[2])),

m = sqrt((X[2] - X[0])*(X[2] - X[0]) + (Y[2] - Y[0])*(Y[2] - Y[0]));
Yuza(Peremetr(b, n, m), b, n, m);
if (bor){

for (i = x.begin(), j = y.begin(); i != x.end(), j != y.end(); i ++, j ++){

cout << "(" << *i << ", " << *j <<"); ";

}

cout << "\nShu nuqtalar orqali SFML kutbxonasidan foydalanib, uchburchakni yasab olishimiz mumkin.";



} else {

cout << "Uchburchak bo`la olmaydi";

}

}

}



};
int main() {

int n;


cout << "Nuqtalar soni: "; cin >> n;

cout << 2*n << " butun son kiriting (x va y tartibida):\n";

int a[n];

list b;

list :: iterator j;

for (int i = 0; i < 2*n; i ++){

cin >> a[i];

b.push_back(a[i]);



}
Uchburchak uch(b);

}


12 – tajriba ishi.

Sinflarni qo‘llash. Do‘stona va virtual funksiyalar
Statik elementlar va funksiyalar

Ma’lumotlar elementidan birgalikila foydalanish. Odatda, ma’lum sinf obyektlari yaratilayotganda, har bir obyekt o‘z-o‘zining ma’lumot1ar elementlari to‘plamini oladi. Biroq shunday hollar ham yuzaga keladiki, unda bir xil sinflar obyektlariga bir yoki bir nechta ma’lumotlar elementlaridan (statik ma’lumotlar elementlaridan) birgalikda foydalanish kerak bo‘lib qoladi. Bunday hollarda ma’lumotlar elementlari umumiy yoki juz’iy deb e’lon qilinadi, keyin esa tur oldidan, quyida ko‘rsatilganidek, statik kalit so‘z keladi:

Download 53.91 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling