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

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

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; просмотров: 270. Нарушение авторских прав; Мы поможем в написании вашей работы!




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

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

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

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

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