4-amaliyot ishi mavzu: Dinamik ma’lumotlar tuzilmasi( Bir bog ‘lamli ro‘yhatlar) Eslatma!



Yüklə 52,07 Kb.
tarix24.12.2023
ölçüsü52,07 Kb.
#160139
Algaritm 4-amaliy ish


4-AMALIYOT ISHI
MAVZU: Dinamik ma’lumotlar tuzilmasi( Bir bog ‘lamli ro‘yhatlar)
Eslatma! kutubxonasini ishlatmasdan nostandart toifa yaratiladi.(class,structure)

Variant 23
Ro‘yhat yarating, Ro‘yhatga N ta haqiqiy son kiriting. Ro‘yhatning barcha musbat elementlarini yig’indisini ro‘yhat oxiriga qo’shish dasturini tuzing.
Structure yordamida
#include
#include
using namespace std;
// Ro'yhat yaratish uchun struct
struct Royhat
{
vector sonlar; // Ro'yhatda saqlanadigan sonlar
};

// Ro'yhatga N ta haqiqiy sonni qo'shish funksiyasi


void SonQoshish(Royhat &royhat, int son)
{
royhat.sonlar.push_back(son);
}

// Ro'yhatdagi barcha musbat sonlarni yig'indisini hisoblash funksiyasi


int Yigindi(Royhat &royhat)
{
int yigindi = 0;
for (int son : royhat.sonlar)
{
if (son > 0)
{
yigindi += son;
}
}
return yigindi;
}

int main() {


Royhat royhat;

// N ta haqiqiy sonni ro'yhatga qo'shish


int N;
cout << " N ni kiriting: ";
cin >> N;

for (int i = 0; i < N; ++i)


{
int son;
cout << " Haqiqiy son kiriting: ";
cin >> son;
SonQoshish(royhat, son);
}

// Barcha musbat sonlarni yig'indisini chiqarish


int yigindi = Yigindi(royhat);
cout << " Ro'yhatdagi barcha musbat sonlar yig'indisi: " << yigindi << endl;

return 0;


}
Natijasi:

Class yordamida
#include
using namespace std;
// Royhat elementini ifodalayuvchi klass
class RoyhatElement
{
public:
int qiymat; // Haqiqiy son
RoyhatElement* keyingisi; // Keyingi element
// Konstruktor
RoyhatElement(int qiymat) : qiymat(qiymat), keyingisi(nullptr) {}
};
// Royhat klassi
class Royhat
{
public:
RoyhatElement* bosh; // Ro‘yhat bosh elementi
// Konstruktor
Royhat() : bosh(nullptr) {}
// Ro‘yhatga yangi element qo‘shish metod
void qoshish(int qiymat)
{
RoyhatElement* yangiElement = new RoyhatElement(qiymat);
yangiElement->keyingisi = bosh;
bosh = yangiElement;
}
// Musbat elementlarni hisoblash va yig‘indisini qaytaruvchi metod
int musbatYigindisi() const
{
int yigindi = 0;
RoyhatElement* temp = bosh;

while (temp != nullptr)


{
if (temp->qiymat > 0)
{
yigindi += temp->qiymat;
}
temp = temp->keyingisi;
}

return yigindi;


}
};
int main()
{
Royhat royhat;

// N ta haqiqiy sonni ro‘yhatga qo‘shish


int N;
cout << " N ni kiriting: ";
cin >> N;

for (int i = 0; i < N; ++i)


{
int son;
cout << " Haqiqiy son kiriting: ";
cin >> son;
royhat.qoshish(son);
}
// Musbat elementlar yig‘indisini hisoblash va chiqarish
int musbatYigindi = royhat.musbatYigindisi();
cout << " Ro‘yhatdagi musbat elementlar yig‘indisi: " << musbatYigindi << endl;
return 0;
}
Natija:

Yüklə 52,07 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə