Лабораторна робота №10
Тема: узагальнене програмування, шаблони
Завдання 1
Розробіть шаблонну функцію FindMax, що виконує пошук максимального елемента в масиві. У випадку, якщо такий елемент присутній, то значення максимального елемента має бути занесено в аргумент maxValue, переданий по посиланню, а сама функція повернути значення істина. Інакше функція повинна повернути значення брехня.
Текст програми
Program
{bool method lt; T gt; (T [] t, ref T a)
{(t.Length == 0)
{false;
}
{= t.Max (); true;
}
}
static void Main (string [] args)
{control= raquo ;; (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= raquo ;;. Write ( Enter array lenght: ); len_s=int.Parse (Console.ReadLine ()); [] stroki =new string [len_s]; (int i=0; i lt; len_s; i ++)
{[i]=Console.ReadLine ();
} prov_s=method (stroki, ref s_max_string) ;. Clear () ;. Write ( Max element: + s_max_string) ;. ReadKey () ;. Clear () ;; laquo ; 2 : s_max_char= raquo ;;. Write ( Enter array lenght: ); len_c=int.Parse (Console.ReadLine ()); [] chars=new char [len_c]; (int i=0; i lt; 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 () ;; laquo ; 3 : s_max_int=0; .Write ( Enter array lenght: ); len_i=int.Parse (Console.ReadLine ()); [] ints=new int [len_i]; (int i=0; i lt; 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 () ;; laquo ; 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 lt; 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 () ;; laquo ; 5 : s_max_byte=0; .Write ( Enter array lenght: ); len_b=int.Parse (Console.ReadLine ()); [] bytes=new byte [len_b]; (int i=0; i lt; 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 lt; T gt;
{[] aa; index=0; MyGenericClass (int q)
{= new T [q];
} MyGenericClass (MyGenericClass lt; T gt; q)
{= q.aa;
} void ArrayAdd (T value)
{[index ++]=value;
} int GetLength ()
{aa.Length;
} void ArrayResize (int newSize)
{(newSize lt; aa.Length)
{. WriteLine ( Error !!! );
}
{. Resize (ref aa, newSize);
}
} void ArrayClear ()
{(int i=0; i lt; aa.Length; i ++)