Qo’yidagi I_ARRAY.CPP dasturda array sinfidan int tipidagi massivlar bilan ishlash uchun foydalanilgan.
#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;
};
Dostları ilə paylaş: