Министерство образования Республики Беларусь Учреждение образования «БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ» Институт информационных технологий
Специальность ИТ и УТС КОНТРОЛЬНАЯ РАБОТА№1
По курсу «Технология разработки программного обеспечения систем управления» Вариант №19
Минск, 2010
1. Заданы два массива – А(5) и В(5). Подсчитать в них количество элементов, кратных трем, и первым на печать вывести массив, имеющий наибольшее их количество.
Кодпрограммы:
#include #include #include int main(intargc, char* argv[]) { int n,i,num1=0,num2=0; cout<<"Vvedite N: "; cin>>n; int *a=new int[n]; int *b=new int[n]; for(i=0;i>a[i];}; for(i=0;i>b[i];}; for(i=0;i if (b[i]%3==0) num2++;}; if (num1 { for(i=0;i printf("\n"); for(i=0;i } else { for(i=0;i printf("\n"); for(i=0;i }; delete[] a; delete[] b; getch(); return 0; }
Результат выполнения:
2.Пользовательский класс Х должен содержать необходимые элементы - данные, которые создаются в динамической области памяти, конструктор для их создания (операция new) и установки их начальных значений: Х(), деструктор: ~Х (),friend – функция печати: friendvoidprint(), функция, решающая поставленную задачу: friendVoidRun(). Код методов и функций – вне пространства определения класса.
3. Ввести с клавиатуры строку символов S1. Признак окончания ввода строки – нажатие клавиши «Ввод». Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 .Исходную и преобразованную строки вывести в файл.Если длина L нечетная, то выделяется подстрока после первого пробела.
4. Создать в производном классе метод Run, определяющий произведение квадратов переменных класса.
Кодпрограммы:
#include #include class X{protected: int x1, x2; public: X(int,int); ~X(); virtual void view(); virtual void set(int,int);}; X::X(int iTemp1, int iTemp2) { x1 = iTemp1; x2 = iTemp2; cout<< "Bazovijklasssozdan" < X::~X() { cout<< "Bazovijklassunichtozhen" < void X::view() { cout<< "x1 = " << x1 << ", x2 = " << x2 < void X::set(int iTemp1, int iTemp2) { x1 = iTemp1; x2 = iTemp2;} class Y : public X {protected: int y; public: Y(int iTemp1, int iTemp2, int iTemp3); ~Y(); void view(); void set(int iTemp1, int iTemp2, int iTemp3); int run();}; Y::Y(int iTemp1, int iTemp2, int iTemp3):X(iTemp2,iTemp3) { y = iTemp1; cout<< "=Dochernijklasssozdan=\n" < Y::~Y() { cout<< "\n=Dochernijklassunichtozhen=" < void Y::view() { cout<< "y = " << y << ", "; X::view();} void Y::set(int iTemp1, int iTemp2, int iTemp3) { y = iTemp1; X::set(iTemp2,iTemp3);} int Y::run() { return x1*x1*x2*x2*y*y;} void main() { Y *a = new Y(1,3,5); a->view(); a->set(5,3,1); a->view(); cout<< "\nx1*x1*x2*x2*y*y = " << a->run() < deletea; getch();} Результат выполнения:
5. Даны: число N и последовательность a1, a2, … aN. Создать шаблон класса, порождающий динамические одномерные массивы с элементами различных типов (вещественные, целочисленные, символьные). Тип данных и результат являются параметрами по отношению к классу, программа должна иметь методы инициализации, конструктор, деструктор, метод просмотра значений созданного массива согласно заданному алгоритму. a1/1, a2/2, a3/3, … ,aN/N;
Кодпрограммы:
#include #include #include template class Shablon { Type* ad; int size; public: Shablon(int); ~Shablon(); Type* Run(); void Set(Type a,int in); Type Get(int in); }; templateShablon::Shablon(int n){ size=n; ad=new Type[n]; }; templateShablon::~Shablon() { delete[] ad; }; template Type* Shablon::Run(){ Type *res=new Type[size]; for (int i=0;i res[i]=ad[i]/(i+1); return res; }; template void Shablon::Set(Type a,int in){ ad[in]=a; }; template Type Shablon::Get(int in){ return ad[in]; }; int main(){ inti,n; cout<<"Vvedite N"< cin>>n; Shablonaray(n); ShablonarayD(n); ShablonarayC(n); cout< for (int i=0;i int t; cin>>t; aray.Set(t,i); } cout< for (i=0;i cout<<" "< cout< int *INT=aray.Run(); cout< for (i=0;i cout<<" "< cout< cout< for (i=0;i double t; cin>>t; arayD.Set(t,i); } cout< for (i=0;i cout<<" "< cout< double *DOUBLE=arayD.Run(); cout< for (i=0;i cout<<" "< cout< cout< for (i=0;i char t; cin>>t; arayC.Set(t,i); } cout< for (i=0;i cout<<" "< cout< char *CHAR=arayC.Run(); cout< for (i=0;i cout<<" "< cout< getch(); return 0; }
Результат выполнения:
ЛИТЕРАТУРА
1. Лабораторный практикум для студентов специальности «ИТиУТС»всех форм обучения / Д. А.Ганьшин, С.В.Снисаренко, Мн. 2007