Студопедия — class matriza
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

class matriza






{

float *b, max;

int n,m;

public:

matriza();

void ww_matriza();

void f_max();

void ww_max();

//Прототип дружественной функции

friend void max_m_m(massiv, matriza);

~matriza ()

{

...

}

};

//Объявление конструктора

matriza::matriza ()

{

...

}

//Объявление функции печати матрицы

void matriza::ww_matriza()

{

....

}

//Объявление функции обработки

void matriza::f_max()

{

max=*b;

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

for(int j=0;j<m;j++)

if(*(b+i*m+i)) max=*(b+i*m+i);

}

void matriza::ww_max()

{

cout<<"\nmax massiva= "<<max;

}

//Объявление дружественной функции

void max_m_m(massiv ob1, matriza ob2)

{

float max_rez;

if (ob1.max > ob2.max) max_rez= ob1.max;

else max_rez= ob2.max;

printf("\n rez=%8.2f", max_rez);

}

//Основная функции

void main()

{

massiv y;

y.ww_massiv();

y.f_max();

y.ww_max();

getch();

matriza x;

x.ww_matriza();

x.f_max();

x.ww_max();

getch();

max_m_m(y, x);

}

 

Пример использования функции члена одного класса, дружественной другому классу.

//Неполное описание второго класса

class matriza;

//Описание структуры первого класса

class massiv

{ float *a,max;

int n;

public:

massiv();

void ww_massiv();

void f_max();

void ww_max();

void max_m_m(matriza);

~ massiv (){

delete[]a;

puts("\n rabotal destruktor massiva");}

};

//Объявление конструктора

massiv:: massiv ()

{

....

}

//Объявление фукции печати

void massiv::ww_massiv()

{

....

}

//Объявление функции обработки

void massiv::f_max()

{

max=*a;

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

if(*(a+i)>max) max= *(a+i); }

//Объявление функции печати результата

void massiv::ww_max()

{

cout<<"\nmax massiva= "<<max;

}

//Описание структуры второго класса

class matriza

{

float *b,max;

int n,m;

public:

matriza();

void ww_matriza();

void f_max();

void ww_max();

//Прототип дружественной функции

friend void massiv::max_m_m(matriza);

~matriza ()

{

...

};

//Объявление конструктора

void matriza::matriza ()

{

...

}

//Объявление функции печати

void matriza::ww_matriza()

{

....

}

//Объявление функции обработки

void matriza::f_max()

{

max=*b;

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

for(int j=0;j<m;j++)

if(*(b+i*m+i)) max=*(b+i*m+i);

}

//Объявление функции печати результата

void matriza::ww_max()

{

cout<<"\nmax massiva= "<<max;

 

}

//Объявление дружественной функции

void massiv::max_m_m(matriza ob2)

{

float max_rez;

if (max > ob2.max) max_rez= max;

else max_rez= ob2.max;

printf("\n rez=%8.2f", max_rez);

}

//-------------------------------------------

void main()

{

int k;

massiv y;

y.ww_massiv();

y.f_max();

y.ww_max();

matriza x;

x.ww_matriza();

x.f_max();

x.ww_max();

getch();

y.max_m_m(x);

}

Таблица 4.1 Варианты индивидуальных заданий

№ пп Тема задания Вариант печати Вариант друж. ф-ции
  Заданы матрица и массив. Подразумевается, что в них может быть несколько элементов, значение которых равно минимальному. Определить, где и на сколько таких элементов больше.    
  Заданы матрица и массив. Определить среднее арифметическое между суммой элементов матрицы и суммой элементов массива.    
  Заданы матрица и массив. Определить сумму всех элементов матрицы и элементов массива.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, где и на сколько больше отрицательных элементов.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, в каком объекте больше сумма всех элементов.    
  Заданы матрица и массив. Определить среднее арифметическое между максимальным значением элементов матрицы и максимальным значением элементов массива.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, сколько всего положительных элементов в обоих объектах.    
  Заданы матрица и массив. Определить в каком объекте больше элементов, значение которых меньше чем среднее арифметическое всех его элементов    
  Заданы матрица и массив. Определить в каком объекте больше элементов, значение которых больше чем (max+min)/2.    
  Заданы матрица и массив. Подразумевается, что в них может быть несколько элементов, значение которых равно минимальному. Определить, где и на сколько таких элементов больше.    
  Заданы матрица и массив. Определить среднее арифметическое между суммой элементов матрицы и суммой элементов массива.    
  Заданы матрица и массив. Определить сумму всех элементов матрицы и элементов массива.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, где и на сколько больше отрицательных элементов.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, в каком объекте больше сумма всех элементов.    
  Заданы матрица и массив. Определить среднее арифметическое между максимальным значением элементов матрицы и максимальным значением элементов массива.    
  Заданы матрица и массив. Подразумевается, что в них могут быть и положительные и отрицательные элементы. Определить, сколько всего положительных элементов в обоих объектах.    
  Заданы матрица и массив. Определить в каком объекте больше элементов, значение которых меньше чем среднее арифметическое всех его элементов    
  Заданы матрица и массив. Определить в каком объекте больше элементов, значение которых больше чем (max+min)/2.    
  Заданы матрица и массив. Определить, где больше процент отрицательных элементов, в матрице или в массиве.    
  Заданы матрица и массив. Найти сумму произведений элементов матрицы и элементов массива.    
  Заданы матрица и массив. Определить, где больше процент отрицательных элементов, в матрице или в массиве.    
  Заданы матрица и массив. Найти сумму произведений элементов матрицы и элементов массива.    
  Заданы матрица и массив. Заменить максимальный элемент матрицы максимальным элементом массива.    
  Заданы матрица и массив. Заменить максимальный элемент матрицы максимальным элементом массива.    
  Заданы матрица и массив. Определить, где больше произведение элементов в матрице или в массиве.    

4.3 Контрольные вопросы и практические задания:

1. Как объявить функцию дружественной классу?

2. являются ли дружественные функции членами класса?

3. имеют ли дружественные функции доступ к закрытым членам класса?

4. Где выполняется описание дружественной функции?

5. Что должна иметь в качестве передаваемого параметра дружественная функция?

6. Может ли быть функция дружественной сразу нескольким классам, как она при этом объявляется, какие имеет аргументы.?

7. Может ли метод класса быть дружественной функцией другому классу, как она при этом объявляется, какие имеет аргументы.?







Дата добавления: 2015-10-01; просмотров: 255. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия