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

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

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




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


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


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


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

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

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

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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

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