Обобщенное программирование, шаблоны - онлайн-чтение

 

 


Страница 1 из 4

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

Тема: обобщенное программирование, шаблоны


Задание 1


Разработайте шаблонную функцию FindMax, выполняющую поиск максимального элемента в массиве. В случае, если такой элемент присутствует, то значение максимального элемента должно быть занесено в аргумент maxValue, передаваемый по ссылке, а сама функция вернуть значение истина. В противном случае функция должна вернуть значение ложь.

Текст программы

Program

{bool method<T>(T[] t,ref T a)

{(t.Length == 0)

{false;

}

{= t.Max();true;

}

}

static void Main(string[] args)

{control = "";(control != "ex")

{.WriteLine("1 - Create String Array *");.WriteLine("2 - Create Char Array *");.WriteLine("3 - Create Int Array *");.WriteLine("4 - Create Double Array *");.WriteLine("5 - Create Byte Array *");.WriteLine("**************************");= Console.ReadLine();.Clear();(control)

{"1":s_max_string = "";.Write("Enter array lenght : ");len_s = int.Parse(Console.ReadLine());[] stroki = new string[len_s];(int i = 0; i < len_s; i++)

{[i] = Console.ReadLine();

}prov_s = method(stroki, ref s_max_string);.Clear();.Write("Max element : " + s_max_string);.ReadKey();.Clear();;"2":s_max_char = ' ';.Write("Enter array lenght : ");len_c = int.Parse(Console.ReadLine());[] chars = new char[len_c];(int i = 0; i < len_c; i++)

{[i] = char.Parse(Console.ReadLine());

}prov_c = method(chars, ref s_max_char);.Clear();.Write("Max element : " + s_max_char);.ReadKey();.Clear();;"3":s_max_int = 0;.Write("Enter array lenght : ");len_i = int.Parse(Console.ReadLine());[] ints = new int[len_i];(int i = 0; i < len_i; i++)

{[i] = int.Parse(Console.ReadLine());

}prov_i = method(ints, ref s_max_int);.Clear();.Write("Max element : " + s_max_int);.ReadKey();.Clear();;"4":s_max_double = 0.0;.Write("Enter array lenght : ");len_d = int.Parse(Console.ReadLine());[] dbs = new double[len_d];(int i = 0; i < len_d; i++)

{[i] = double.Parse(Console.ReadLine());

}prov_d = method(dbs, ref s_max_double);.Clear();.Write("Max element : " + s_max_double);.ReadKey();.Clear();;"5":s_max_byte = 0;.Write("Enter array lenght : ");len_b = int.Parse(Console.ReadLine());[] bytes = new byte[len_b];(int i = 0; i < len_b; i++)

{[i] = byte.Parse(Console.ReadLine());

}prov_b = method(bytes, ref s_max_byte);.Clear();.Write("Max element : " + s_max_byte);.ReadKey();.Clear();;

}

}

}

}

Результат выполнения программы




шаблонный функция класс интерфейс

Задание 2


Разработайте шаблонный класс CMyArray, представляющий собой массив элементов некоторого типа T.

Массив должен предоставлять следующие возможности:

·Возможность добавления элемента

·Возможность получения количества элементов

·Возможность индексированного доступа к элементам

·Возможность изменения длины массива

·Возможность опустошения массива

·Конструктор копирования

Текст программы

class MyGenericClass<T>

{[] aa;index = 0;MyGenericClass(int q)

{= new T[q];

}MyGenericClass(MyGenericClass<T> q)

{= q.aa;

}void ArrayAdd(T value)

{[index++] = value;

}int GetLength()

{aa.Length;

}void ArrayResize(int newSize)

{(newSize < aa.Length)

{.WriteLine("Error!!!");

}

{.Resize(ref aa, newSize);

}

}void ArrayClear()

{(int i = 0; i < aa.Length; i++)

{[i] = default(T);

}

}void Show()

{(T item in aa)

{.WriteLine(" " + item + " ");

}

}T GetElement(int qwe)

Предметы

Все предметы »

 

 

Актуальные Практические задания по программному обеспечению, программированию