Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Вариант.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
227.84 Кб
Скачать

Лабораторная работа №11

1. Постановка задачи.

Задача 1.

  1. Создать последовательный контейнер – список.

  2. Заполнить его элементами типа float.

  3. Найти минимальный элемент и вставить его на заданную позицию.

  4. Удалить элементы списка, которые больше среднего арифметического его элементов.

  5. Домножить все элементы списка на максимальный элемент.

  6. Выполнение заданий оформить в виде глобальных функций.

Задача 2.

  1. Создать последовательный контейнер – список.

  2. Заполнить его элементами типа Time.

  3. Найти минимальный элемент и вставить его на заданную позицию.

  4. Удалить элементы списка, которые больше среднего арифметического его элементов.

  5. Домножить все элементы списка на максимальный элемент.

  6. Выполнение заданий оформить в виде глобальных функций.

Задача 3.

  1. Создать параметризованный класс, используя в качестве контейнера список.

  2. Заполнить его элементами типа Time.

  3. Найти минимальный элемент и вставить его на заданную позицию.

  4. Удалить элементы списка, которые больше среднего арифметического его элементов.

  5. Домножить все элементы списка на максимальный элемент.

  6. Выполнение заданий оформить в виде методов параметризованного класса.

Задача 4.

  1. Создать адаптер контейнера – стек.

  2. Заполнить его элементами типа Time, для которого перегрузить необходимые операции.

  3. Найти минимальный элемент и вставить его на заданную позицию.

  4. Удалить элементы списка, которые больше среднего арифметического его элементов.

  5. Домножить все элементы списка на максимальный элемент.

  6. Выполнение заданий оформить в виде глобальных функций.

Задача 5.

  1. Создать параметризованный класс, используя в качестве контейнера адаптер контейнера – стек.

  2. Заполнить его элементами типа Time, для которого перегрузить необходимые операции.

  3. Найти минимальный элемент и вставить его на заданную позицию.

  4. Удалить элементы списка, которые больше среднего арифметического его элементов.

  5. Домножить все элементы списка на максимальный элемент.

  6. Выполнение заданий оформить в виде методов параметризованного класса.

Задача 1.

2. Функции для выполнения заданий

typedef list<float> My_list;

My_list Create_list(int n)

//создание списка, заполенного случайными данными

{

My_list list1;

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

{

float a=(rand()%10000)/100.0-50.0;

list1.push_back(a);

}

return list1;

}

void print_list(My_list& list1)

//вывод элементов списка

{

My_list::iterator it1,itend;

itend=list1.end();

it1=list1.begin();

while (it1!=itend)

cout<<*(it1++)<<" ";

cout<<endl;

}

float min_el(My_list &list1)

//поиск минимального элемента

{

My_list::iterator it1,itmin,itend;

it1=itmin=list1.begin();

itend=list1.end();

while (it1!=itend)

{

if (*it1 <* itmin)

itmin=it1;

it1++;

}

return *itmin;

}

void ins(My_list& list1,float a,int n)

//добавление элемента a на позицию n

{

My_list::iterator it1;

if (n>list1.size()+1)

cout<<"No such position"<<endl;

else

{

it1=list1.begin();

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

it1++;

list1.insert(it1,a);

}

}

float Avg(My_list& list1)

//нахождение среднего арифметического

{

My_list::iterator it1,itend;

float a;

a=0;

it1=list1.begin();

itend=list1.end();

while (it1!=itend)

a+=*(it1++);

a/=list1.size();

return a;

}

void Del_m(My_list& list1,float a)

//удаление элементов, больших a из списка

{

My_list::iterator it1;

it1=list1.begin();

while (it1!=list1.end())

{

if (*it1>a)

it1=list1.erase(it1);

else

if (it1!=list1.end())

it1++;

}

}

float max_el(My_list &list1)

//поиск минимального элемента

{

My_list::iterator it1,itmax,itend;

it1=itmax=list1.begin();

itend=list1.end();

while (it1!=itend)

{

if (*it1 >* itmax)

itmax=it1;

it1++;

}

return *itmax;

}

void mult(My_list &list1,float a)

//домножение всех элементов списка на число a

{

My_list::iterator it1,itend;

it1=list1.begin();

itend=list1.end();

while (it1!=itend)

(*(it1++))*=a;

}