Вы находитесь на странице: 1из 4

Лабораторная 2

Тип данных как структура с функциями

Задан тип данных и операции над этим типом. Реализовать указанный тип
и написать программу для применения этих операций.
Вариант задания A-D1-D2
1. Тип комплексное число. Предусмотреть операции
1. сложения,
2. вычитания,
3. умножения,
4. деления двух комплексных чисел,
5. возведения комплексного числа в целую степень.

2. Тип вектор, задаваемый координатами концов в двумерном


пространстве. Предусмотреть операции
1. сложения
2. вычитания векторов,
3. вычисления скалярного произведения двух векторов,
4. длины вектора,
5. векторного произведения двух векторов.

3. Тип прямоугольник со сторонами, параллельными осям


координат. Предусмотреть операции
1. перемещения прямоугольников на плоскости,
2. изменения размеров,
3. построения прямоугольника, являющегося пересечением двух
прямоугольников.

4. Тип многочлен от одной переменной, задаваемый степенью


многочлена и массивом коэффициентов. Предусмотреть операции
1. вычисления значения многочлена для заданного аргумента,
2. сложения,
3. вычитания
4. умножения многочленов,
5. дифференцирования
6. интегрирования многочлена.

5. Тип строка, задаваемый длиной и массивом символов. Предусмотреть


операции
1. обращения к отдельным элементам строки по индексам,
2. контроля выхода строки за пределы индексов,
3. поэлементного сцепления двух строк,
4. слияния двух строк с исключением повторяющихся символов.
6. Тип правильная дробь, задаваемый числителем и знаменателем.
Предусмотреть операции
1. сложения,
2. умножения,
3. деления двух дробей
4. сокращения дроби,
5. сравнения двух дробей..

7. Тип прямоугольная матрица. Предусмотреть операции


1. умножения матрицы на число,
2. суммирования двух матриц,
3. умножения матрицы на число,
4. нахождения суммы элементов заданной строки.

8. Тип время с полями часы, минуты, секунды.. Предусмотреть операции


1. сложения времени с определенным количеством секунд,
2. вычитание из одного момента времени другого,
3. сложения двух моментов времени.

9. Тип множество целых чисел с операциями


1. объединение двух множеств,
2. пересечение двух множеств,
3. разность двух множеств,
4. добавление элемента к множеству,
5. удаление элемента из множества.
6. проверка принадлежности элемента множеству

Методические указания
Можно с помощью структур описать любые типы данных.
Так, вектор описывается как абсциссы и ординаты двух концов;
комплексное число – как два числа – действительная и мнимая части;
многочлен как степень и массив коэффициентов размера на 1 больше чем
степень;
дробь – это два целых числа – числитель и знаменатель;
множество как количество элементов максимальное, количество членов
фактическое, массив различных элементов;
строка - это количество символов строки и массив составляющих ее
символов.
В качестве примера рассмотрим структуру целого числа с функциями 4
арифметических действий
Опишем структуру
struct nm
{
public int ch;
public nm sum(nm a)
{ nm rez; rez.ch = a.ch + ch; return rez; ; }
public nm sub(nm a)
{ nm rez; rez.ch = ch - a.ch;return rez; }
public nm mult(nm a)
{ nm rez; rez.ch = ch * a.ch; return rez; }
public nm divv(nm a)
{ nm rez; rez.ch = ch / a.ch; return rez; }
};
Создадим класс для размещения общедоступных переменных
class Global
{
public static nm a, b, s, r, p, d;
};
На форме разместим элементы управления для ввода двух чисел, кнопку для
выполнения вычислений и поля для вывода суммы, разности, произведения и
частного

Код для обработки события Click кнопки Принять:


Global.b.ch=0;
Global.a.ch = Convert.ToInt32(maskedTextBox1.Text);
Global.b.ch = Convert.ToInt32(maskedTextBox3.Text);
if (Global.b.ch == 0)
MessageBox.Show("Второе число равно 0");
else
{
Global.s = Global.a.sum(Global.b);
label5.Text = Convert.ToString(Global.s.ch);
Global.r = Global.a.sub(Global.b);
label6.Text = Convert.ToString(Global.r.ch);
Global.p = Global.a.mult(Global.b);
label8.Text = Convert.ToString(Global.p.ch);
Global.d = Global.a.divv(Global.b);
label10.Text = Convert.ToString(Global.d.ch);
}

Вам также может понравиться