- •Лабораторная работа №6
- •1. Постановка задачи:
- •5. Функция main()
- •Лабораторная работа №11
- •1. Постановка задачи.
- •Задача 1.
- •3. Функция main().
- •Задача 2.
- •5. Описание класса
- •Int getmin() {return min;} //получение количества минут
- •Int getsec() {return sec;} //получение количества секунд
- •8. Функция main()
- •Задача 3.
- •12. Функция main()
- •Задача 4.
- •15. Функция main()
- •Задача 5.
- •19. Функция main()
- •Лабораторная работа №13
- •1. Постановка задачи. Задача 1.
- •Задача 2.
- •Задача 3.
- •2. Описание класса
- •Int getmin() {return min;} //получение количества минут
- •Int getsec() {return sec;} //получение количества секунд
- •Задача 1.
- •5. Функция main()
- •Задача 2.
- •8. Функция main()
- •Задача 3.
- •11. Функция main()
8. Функция main()
void main()
{
char ch;
try
{
list<Time> list1;
int n;
cout<<"Input the size of the list"<<endl;
cin>>n;
list1=Create_list(n);
print_list(list1);
cout<<"Input position to insert min element"<<endl;
cin>>n;
ins(list1,min_el(list1),n);
print_list(list1);
Del_m(list1,Avg(list1));
cout<<"After deleting elements greater than average"<<endl;
print_list(list1);
mult(list1,max_el(list1));
cout<<"Multiplicated by max"<<endl;
print_list(list1);
}
catch(int)
{
cout<<"Error";
}
cin>>ch;
}
9. Результаты работы программы
Input the size of the list
10
0:41 7:47 5:34 8:20 2:49 12:4 7:58 5:58 16:2 7:44
Input position to insert min element
6
0:41 7:47 5:34 8:20 2:49 0:41 12:4 7:58 5:58 16:2 7:44
After deleting elements greater than average
0:41 5:34 2:49 0:41 5:58
Multiplicated by max
244:38 1992:52 1008:22 244:38 2136:4
Задача 3.
10. Описание параметризованного класса.
template <class T>
class Vect
{
vector<T> c_vect; //последовательный контейнер для хранения элементов
int len; //длина контейнера
public:
Vect();
Vect(int s);
//конструктор с параметром типа int - длиной создаваемого контейнера
~Vect(); //деструктор
void prn(); //печать элементов контейнера
T min_el(); //величина минимального элемента
T max_el(); //величина максимального элемента
T Avg(); //среднее арифметическое элементов контейнера
void Del_m(T a); //удаление элементов, больших a
void ins(T a,int n); //вставка элемента a на позицию n
void mult(T a); //умножение всех элементов контейнера на величину a
};
template <class T>
Vect<T>::Vect() {len=0;}
template <class T>
Vect<T>::Vect(int s)
{
T a;
len=s;
for(int i=0;i<s;i++)
{
cin>>a;
c_vect.push_back(a);
}
}
template <class T>
Vect<T>::~Vect() //деструктор
{
c_vect.clear();
}
template <class T>
void Vect<T>::prn()
{
for(int i=0;i<len;i++)
cout<<c_vect[i]<<" ";
cout<<endl;
}
template <class T>
T Vect<T>::min_el()
//поиск минимального элемента
{
T min=c_vect[0];
for (int i=1;i<len;i++)
{
if (c_vect[i]<min)
min=c_vect[i];
}
return min;
}
template <class T>
T Vect<T>::max_el()
//поиск максимального элемента
{
T max=c_vect[0];
for (int i=1;i<len;i++)
{
if (c_vect[i]<max)
max=c_vect[i];
}
return max;
}
template <class T>
T Vect<T>::Avg()
//нахождение среднего арифметического
{
Time a;
for (int i=0;i<len;i++)
a+=c_vect[i];
a/=len;
return a;
}
template <class T>
void Vect<T>::Del_m(T a)
//удаление элементов, больших a из контейнера
{
vector<T>::iterator it1;
it1=c_vect.begin();
while (it1!=c_vect.end())
{
if (*it1>a)
{
it1=c_vect.erase(it1);
len--;
}
else
if (it1!=c_vect.end())
it1++;
}
}
template <class T>
void Vect<T>::ins(T a,int n)
//добавление элемента a на позицию n
{
vector<T>::iterator it1;
if (n>len+1||n<1)
cout<<"No such position"<<endl;
else
{
it1=c_vect.begin();
for (int i=0;i<n-1;i++)
it1++;
c_vect.insert(it1,a);
len++;
}
}
template <class T>
void Vect<T>::mult(T a)
{
for (int i=0;i<len;i++)
c_vect[i]*=a;
}
11. Глобальные функции для выполнения заданий отсутствуют.