Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_k_KR.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
344.06 Кб
Скачать

Implementation

// Конструктор с числовыми параметрами.

Constructor cDate.Init(d : byte; m : byte;

y : word);

Begin day:=d; mon:=m; yea:=y; End;

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

Constructor cDate.Init(date : cDate);

Begin

day:=date.day; mon:=date.mon; yea:=date.yea; End;

// Конструктор со строковым параметром. Формат

// строки даты «дд.мм.гггг».

Constructor cDate.Init(sdate : string);

Begin

day:=StrToInt(copy(sdate,1,2));

mon:=StrToInt(copy(sdate,4,2));

yea:=StrToInt(copy(sdate,7,4));

End;

// Конструктор по умолчанию создает объект с

// текущей датой.

Constructor cDate.Init();

Begin Init(DateToStr(Date)); End;

// Метод вывода даты на естественном языке.

Function cDate.DateToStrRus : string;

Const NameMon : array[1..12] of string[20] =

('января', 'февраля','марта', 'апреля',

'мая', 'июня', 'июля', 'августа', 'сентября','октября','ноября','декабря');

Begin

Result:=IntToStr(day)+' '+

NameMon[mon]+' '+

IntToStr(yea)+' года';

End;

end. // Конец модуля UDate.

Следует еще раз напомнить, что определения класса должно находиться в отдельном модуле. Модуль формы, примерный вид которой представлен на рис.2.1, также желательно переименовать, придав ему более осмысленное имя.

Рис. 2.1. Примерный вид формы для задачи 2.1.

Листинг 2.2. Обработчики кнопок модуля формы.

// Создание объекта с помощью конструктора с

// числовыми параметрами.

procedure TForm1.BFromNumClick(Sender: TObject);

begin

dat:=cDate.Init(StrToInt(Eday.text),

StrToInt(Emon.Text),

StrToInt(Eyea.Text));

LRes.Caption :=dat.DateToStrRus;

end;

// Создание объекта с помощью конструктора со

// параметром.

procedure TForm1.BFromStrClick(Sender: TObject);

begin

dat:=cDate.Init(Estr.Text);

LRes.Caption :=dat.DateToStrRus;

end;

// Создание объекта конструктором по умолчанию.

procedure TForm1.BTodayClick(Sender: TObject);

begin

dat:=cDate.Init;

LRes.Caption :=dat.DateToStrRus;

end;

// Создание объекта конструктором копирования.

procedure TForm1.BCopyClick(Sender: TObject);

Var bufdat : cDate;

begin

case RGSrc.ItemIndex of

0: bufdat:=cDate.Init;

1: bufdat:=cDate.Init(StrToInt(Eday.text),

StrToInt(Emon.Text),

StrToInt(Eyea.Text));

2: bufdat:=cDate.Init(Estr.Text);

end; LRes.Caption :=bufdat.DateToStrRus;

end;

Задания.

1. Создать класс cDVector – радиус-вектор точки (x, y) на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из декартовых координат;

  • Из полярных координат;

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

Предусмотреть методы:

  • Вычисления длины вектора;

  • Вычисления полярных координат;

  • Вычисления суммы, разности и скалярного произведения с другим вектором;

  • Рисования вектора.

2. Создать класс cPVector – радиус-вектор точки на плоскости в полярных координатах (r,alpha) с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из полярных координат;

  • Из декартовых координат;

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

Предусмотреть методы:

  • Вычисления длины вектора;

  • Вычисления декартовых координат;

  • Вычисления суммы, разности и скалярного произведения с другим вектором;

  • Рисования вектора.

3. Создать класс cDTriangle – треугольник с вершинами в точках (x, y) на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из декартовых координат;

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

Предусмотреть методы:

  • Вычисления длин сторон и площади;

  • Вычисления координат точки пересечения медиан;

  • Принадлежности данной точки треугольнику;

  • Рисования треугольника.

4. Создать класс cLTriangle – треугольник, заданный длинами сторон AB, BC, CA с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для длин сторон;

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

Предусмотреть методы:

  • Вычисления площади;

  • Вычисления внутренних углов;

  • Рисования треугольника.

5. Создать класс cBTriangle – прямоугольный треугольник, заданный длинами катетов AB, AC с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для катетов;

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

Предусмотреть методы:

  • Вычисления площади;

  • Вычисления площади вписанного прямоугольники, диагональ которого является отрезком AK, где точка K принадлежит гипотенузе;

  • Вычисления внутренних углов;

  • Рисования треугольника.

6. Создать класс cRCircle – окружность заданного радиуса R с центром в точке (x, y) на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из декартовых координат центра и радиуса;

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

Предусмотреть методы:

  • Вычисления площади;

  • Вычисления точки пересечения с заданным вектором из центра;

  • Принадлежности данной точки окружности.

  • Рисования окружности.

7. Создать класс cPolygon – правильного n-угольника, вписанного в окружность заданного радиуса R с центром в точке (x, y) на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из количества сторон, декартовых координат центра и радиуса;

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

Предусмотреть методы:

  • Вычисления отношения суммы длин сторон многоугольника к длине окружности;

  • Построения графика этого отношения в зависимости от n.

  • Рисования многоугольника.

8. Создать класс cLine – прямая, заданная уравнением A*x+B*y+C=0 на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из декартовых координат двух точек на прямой;

  • Из декартовых координат точки на прямой и угла между осью абсцисс и вектором, принадлежащим прямой;

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

Предусмотреть методы:

  • Вычисления точек пересечения с осями координат;

  • Вычисления точки пересечения с другой прямой;

  • Рисования прямой.

9. Создать класс cParabolic– парабола y=A*x2+B*x+C на плоскости в декартовых координатах с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из параметров функции;

  • Из корней уравнения A*x2+B*x+C=0;

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

Предусмотреть методы:

  • Вычисления корней уравнения A*x2+B*x+C=0;

  • Вычисления координат вершины параболы;

  • Вычисления точек пересечения с другой параболой;

  • Рисования параболы.

10. Создать класс cARational– обыкновенных дробей n/d с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров со значениями по умолчанию n=0, d=1;

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

Предусмотреть методы:

  • Вычисления суммы и разности двух дробей;

  • Вычисления наибольшего общего делителя для двух дробей;

  • Рисования дробей в виде круговых диаграмм.

11. Создать класс cBRational– обыкновенных дробей n/d с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из рациональной десятичной дроби по умолчанию равной 0;

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

Предусмотреть методы:

  • Вычисления произведения и частного двух дробей;

  • Логических операций – больше, меньше, равно для двух дробей;

  • Рисования дробей в виде столбчатых диаграмм.

12. Создать класс cTFuncl– табличной функции y(x) с закрытыми данными класса -массивами y и x, текущей размерностью n<=100. Предусмотреть конструкторы класса:

  • Из формальных параметров;

  • Из значений, заданных по какому-либо закону;

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

Предусмотреть методы:

  • Интерполяции – определения значения функции от произвольного аргумента xt, состоящего из:

    • закрытого метода интерполяции по двум соседним точкам;

    • открытого метода бинарного поиска пары точек xi<=xt<=xi+1;

  • Рисования функции.

13. Создать класс cVector– вектора с закрытыми данными класса -массивом x, текущей размерностью n<=100. Предусмотреть конструкторы класса:

  • Из формальных параметров;

  • Из значений, заданных по какому-либо закону;

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

Предусмотреть методы:

  • Вычисления длины вектора, среднего значения и среднеквадратического отклонения;

  • Сортировки;

  • Рисования столбчатых диаграмм компонентов вектора.

14. Создать класс cDet– квадратной матрицы 3х3 с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров;

  • Из значений, заданных по случайному закону;

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

Предусмотреть методы:

  • Решения системы линейных уравнений с оценкой точности решения, включая:

    • Замены заданного столбца на вектор;

    • Вычисления определителя матрицы (закрытый метод);

  • Рисования столбчатых диаграмм компонентов вектора.

15. Создать класс cFPens– пенсионного фонда пенсионера FIO, имеющего ежемесячный размер пенсии Pens с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата FIO Pens ;

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

Предусмотреть методы:

  • Изменения поля Pens;

  • Вычисления размера пенсии за заданное количество месяцев;

  • Вычисления дохода по вкладу (капитализации) за заданный период;

  • Рисования дохода.

16. Создать класс с закрытыми данными класса cResurs часового ресурса авиадвигателя Resurs, изготовленного YYYY года, месяца MM, дня DD. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Resurs;

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

Предусмотреть методы:

  • Вычисления оставшегося ресурса на заданную дату, при заданной суточной эксплуатации;

  • Вычисления оставшегося ресурса за заданное количество дней при заданной суточной эксплуатации;

  • Рисования ресурса.

17. Создать класс с закрытыми данными класса cAccount – ежемесячного состояния рублевого банковского счета Account, открытого YYYY года, месяца MM, дня DD, пополняемого только в результате ежемесячной капитализации на p%. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Account p;

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

Предусмотреть методы:

  • Вычисления остатка на заданную дату;

  • Вычисления времени до достижения требуемой суммы;

  • Рисования остатка по времени.

18. Создать класс с закрытыми данными класса cAccount – ежемесячного состояния рублевого банковского счета Account, открытого YYYY года, месяца MM, дня DD, пополняемого только в результате ежемесячных фиксированных взносов 5 числа каждого месяца в размере Z рублей. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Account Z;

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

Предусмотреть методы:

  • Вычисления остатка на заданную дату;

  • Вычисления времени до достижения требуемой суммы;

  • Рисования остатка по времени.

19. Создать класс с закрытыми данными класса cCredit – ежемесячного состояния рублевого кредитного счета на сумму Credit, открытого YYYY года, месяца MM, дня DD, погашаемого только в результате ежемесячных фиксированных взносов 5 числа каждого месяца в размере Z рублей. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Credit Z;

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

Предусмотреть методы:

  • Вычисления остатка кредита на заданную дату;

  • Вычисления времени до выплаты кредита;

  • Рисования остатка по времени.

20. Создать класс с закрытыми данными класса cCredit – ежемесячного состояния рублевого кредитного счета на сумму Credit, открытого YYYY года, месяца MM, дня DD, погашаемого только в результате ежемесячных выплат 5 числа каждого месяца в размере p% к остатку задолженности. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Credit p;

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

Предусмотреть методы:

  • Вычисления остатка кредита на заданную дату;

  • Вычисления времени до выплаты кредита;

  • Рисования остатка по времени.

21. Создать класс с закрытыми данными класса cInvest – ежемесячного состояния рублевого инвестиционного счета на сумму Invest, открытого YYYY года, месяца MM, дня DD, изменяющегося 5 числа каждого месяца в результате фиксированной ежемесячной прибыли в размере p% к начальной величине инвестиций. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из строки формата DD.MM.YYYY Invest p;

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

Предусмотреть методы:

  • Вычисления счета на заданную дату;

  • Вычисления времени до накопления требуемой суммы;

  • Рисования состояния счета по времени.

22. Создать класс cSphere – пустотелого шара радиусом r и толщиной стенки h с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из внутреннего объема шара и отношения h/r;

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

Предусмотреть методы:

  • Вычисления внутреннего объема шара и внешней поверхности;

  • Вычисления зависимости толщины стенки от радиуса при условии, что объем материала стенки является константой;

  • Рисования зависимости толщины стенки от радиуса.

23. Создать класс cTrace – баллистической траектории движения тела, брошенного с начальной скоростью V0 под углом к горизонту alpha при отсутствии сопротивления воздуха с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из максимальной дальности и высоты траектории.

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

Предусмотреть методы:

  • Вычисления координат траектории по времени;

  • Вычисления скорости движении по времени;

  • Рисования траектории и скорости движения.

24. Создать класс cTank – плавающей цистерны массой M объемом V0, которая заполняется водой со скоростью G с закрытыми данными класса. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из водоизмещения и времени затопления.

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

Предусмотреть методы:

  • Вычисления силы Архимеда по времени;

  • Вычисления времени затопления от скорости поступления воды;

  • Рисования указанных выше зависимостей.

25. Создать класс cShip –корабля в игре «морской бой» с закрытыми данными класса количеством клеточек n и их расположением - массивом строк вида rc, где r=a..j – индекс строки, c=1..10 – индекс столбца. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса;

  • Из случайных значений.

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

Предусмотреть методы:

  • Вычисления результата (мимо, попал, потопил) при случайном задании rc;

  • Подсчет количества попыток до победы;

  • Рисования корабля на игровом поле с результатами попыток.

26. Создать класс cKettle – электрического чайника с закрытыми данными класса: мощностью W и массой воды в нем M с начальной температурой 20о. Предусмотреть конструкторы класса:

  • Из формальных параметров для данных класса со значениями по умолчанию W=1000, M=1;

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

Предусмотреть методы:

  • Вычисления времени достижения заданной температуры воды;

  • Вычисления массы воды нагреваемой до 100 о за заданное время;

  • Рисования графиков указанных зависимостей.

1 Правильнее говорить о теореме Крамера (В.И. Смирнов. Курс высшей математики, том III, часть I, М., изд. «Наука», 1974 г., 324 стр.). Термины «правило Крамера» или «метод Крамера» отражают лишь практическую направленность этой теоремы. Раз уж речь зашла о терминологии, следует сделать еще одну оговорку. Строго говоря, под термином «минор» понимается определитель матрицы, полученной путем вычеркивания строки и столбца, но за неимением краткого термина для обозначения самой матрицы будем также называть ее минором, и да простят мне математики такую вольность.

2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]