1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot



Yüklə 0,69 Mb.
səhifə106/121
tarix02.01.2022
ölçüsü0,69 Mb.
#37187
1   ...   102   103   104   105   106   107   108   109   ...   121
aaaaKitob majmuasiiii

77 - DARS. SHABLON YARATISH.
Misol uchun massiv sinfi yaratilib bu sinfda massivning summasini va o’rta qiymatini hisoblash usullari mavjud bo’lsin. Agar siz int tipida gi massiv bilan ishlayotgan bo’lsangiz sinf ta'rifi qo’yidagicha bo’lishi mumkin:

class array

{

public:


array(int size);

long sum(void);

int average_value(void);

void show_array(void);

int add_value(int);

private:


int *data;

int size;

int index;

};

Qo’yidagi I_ARRAY.CPP dasturda array sinfidan int tipidagi massivlar bilan ishlash uchun foydalanilgan.



#include

#include

class array

{

public:



array(int size);

long sum(void);

int average_value(void);

void show_array(void);

int add_value(int) ;

private:


int *data;

int size;

int index;

};

array::array(int size)



{

data = new int [size];

if (data == NULL)

{

cerr << "Nedostatochno pamyati - programma zavershaetsya " << endl;



exit(l);

}

array:: size = size;



array::index = 0;

}

long array::sum(void)



{

long sum = 0;

for (int i = 0; i < index; i++) sum += data[i];

return(sum);

}

int array::average_value(void)



{

long sum = 0;

for (int i = 0; i < index; i++) sum += data[i];

return (sum / index);

}

void array::show_array(void)



{

for (int i = 0; i < index; i++) cout << data[i] << ' ';

cout << endl;

}

int array::add_value(int value)



{

if (index == size) return(-1); // massiv polon

else

{

data[index] = value;



index++;

return(0); // uspeshno

}

}

void main(void)



{

array numbers (100); // massiv iz 100 el-tov

int i;

for (i = 0; i < 50; i++) numbers.add_value(i);



numbers.show_array();

cout << "Summa chisel ravna " << numbers.sum () << endl;

cout << "Srednee znachenie ravno " << numbers.average_value() << endl;

}

Dasturda avval massiv 100 elementi taqsimlanadi. So’ngra massivga 50 qiymat add_value. Usuli yordamida yoziladi. Qo’yidagi array sinfida index o’zgaruvchisida massivda saqlanuvchi elementlar soni yoziladi. Agar massiv sig’dirishi mumkin bo’lgan elementlar sonidan ortiq elemetlar yozishga urinilsa add_value funktsiyasi hato haqida ma'lumot qaytaradi. Ko’rinib turibdiki average_value funktsiyasi index o’zgaruvchisidan massiv elementlari soni o’rta qiymatini aniqlashda foydalaniladi. Dastur new operatoridan foydalanilgan.



Agar dasturda haqiqiy qiymatli massivlar binoan ishlash zarur bulsa Yangi sinf yaratishga to’g’ri keladi. Sinflarni kupaytirmaslik uchun sinflar shablonlaridan foydalanish mumkin. Qo’yida umumiy array sinfi shabloni keltirilgagn:

template class array

{

public:


array(int size);

T1 sum (void);

T average_value(void);

void show_array(void);

int add_value(T);

private:


T *data;

int size;

int index;

};


Yüklə 0,69 Mb.

Dostları ilə paylaş:
1   ...   102   103   104   105   106   107   108   109   ...   121




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin