Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование. Модуль GRAPH. Модульное и объектное программирование. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
841 Кб
Скачать

61

FillEllipse(xa,ya,10,10);

Line(xa-10,ya,xa-30,ya);

Line(xa+10,ya,xa+30,ya);

Line(xa-30,ya,xa-50,ya-20);

Line(xa+30,ya,xa+50,ya-20); Size:=ImageSize(xa-50,ya-20,xa+50,ya+20); GetMem(vver,size); GetImage(xa-50,ya-20,xa+50,ya+20,vver^); ClearDevice

FillEllipse(xa,ya,10,10);

Line(xa-10,ya,xa-30,ya);

Line(xa-10,ya,xa+30,ya); Line(xa-30,ya,xa-50,ya+20); Line(xa+30,ya,xa+50,ya+20); Lize:=ImageSize(xa-50,ya-20,xa+50,ya+20); GetMem(vniz,lize); GetImage(xa-50,ya-20,xa+50,ya+20,vniz^); ClearDevice:

End;

Procedure Mother.Mahi(bx,by:Integer); Begin

Mize:=ImageSize(bx,by,bx+100,by+40);

GetMem(pole,mize);

GetImage(bx,by,bx+100,by+40,pole^);

PutImage(bx,by,vver^,1);

delay(70);

PutImage(bx,by,pole^,0);

End;

Procedure Mother.Polet(ax,ay:Integer); Begin

ax:=ax1;

ay:=ay1; Repeat

If KeyPressed Then Begin

ch:=ReadKey; Case ch Of

#77:ax:=ax+10; #75:ax:=ax-10; #80:ay:=ay+10; #72:ay:=ay-10;

End;

Mother.Init;

62

Mahi;

End

Else

Begin

Mother.Init;

Mahi;

End;

Until ch=#32; Mother.Init; ax1:=ax; ay1:=ay;

End;

Procedure Doter.DrawMin; Begin

SetColor(14);

SetFillStyle(1,14);

FillEllipse(xa,ya,Round(10/k),Round(10/k));

Line(xaRound(10/k),ya,xaRound(30/k),ya);

Line(xa+ Round(10/k),ya,xa+ Round(30/k),ya);

Line(xaRound(30/k),ya,xaRound(50/k),yaRound(20/k)); Line(xa+Round(30/k),ya,xa+Round(50/k),yaRound(20/k)); Size:=ImageSize(xa-Round(50/k),ya-Round(20/k),xa+Round

(50/k),ya+Round(20/k));

GetMem(vver,size); GetImage(xa-Round(50/k),ya-Round(20/k),xa+Round(50/k), ya+

Round(20/k),vver^);

ClearDevice;

FillEllipse(xa,ya, Round(10/k), Round(10/k));

Line(xaRound(10/k),ya,xaRound(30/k),ya);

Line(xaRound(10/k),ya,xa+ Round(30/k),ya); Line(xa-Round(30/k),ya,xa-Round(50/k),ya+Round(20/k)); Line(xa+Round(30/k),ya,xa+Round(50/k),ya+Round(20/k)); Lize:=ImageSize(xa-Round(50/k),ya-Round(20/k),xa+ Round

(50/k),ya+ Round(20/k)); GetMem(vniz,lize);

GetImage(xa-Round(50/k),ya-Round(20/k),xa+Round(50/k), ya+ Round(20/k),vniz^);

ClearDevice:

End;

Var

GrDriver, GrMode,alx,aly:Integer; gol:Mother;vorob:Doter;

Begin

63

GrDriver:=Detect;

InitGraph(GrDriver, GrMode, 'C: \Bp\BGI'); Readln;

Gol.Init;

Gol.Draw;

Gol.Polet;

Gol.Done;

Vorob.InitD;

vorob.Drawmin;

Vorob.InitD;

vorob.Polet;

vorob.Done;

CloseGraph;

End.

64

Расчетно-графическое задание

Задание №1. Разработать алгоритм и программу вывода на экран графика функции.

Варианты заданий

Вариант

 

Функция

 

 

 

 

 

 

 

 

 

 

1

 

y(x)

arctgx

 

 

 

 

 

 

 

 

2

 

y(x) ln x

 

 

 

 

 

 

 

 

 

 

3

 

y(x)

ln(1

x)

 

 

4

 

y(x)

ex (1

x)

 

 

5

 

y(x)

sin x

 

 

 

 

 

 

 

 

 

6

 

y(x)

cos x

 

 

 

 

 

 

 

 

 

 

7

y(x)

shx ,

shx

ex

e x

 

2

 

 

 

 

 

 

 

 

8

y(x)

chx ,

chx

 

ex

e x

 

 

2

 

 

 

 

 

 

 

 

9

 

y(x)

sin 2 x

 

 

10

 

y(x)

cos2 x

 

 

11

 

y(x)

sin 3 x

 

 

12

 

y(x)

cos3 x

 

 

Задание №2. Дано:

x0 - начальное значение аргумента функции; xn - конечное значение аргумента функции;

h - шаг изменения аргумента функции;

- точность (допустимая погрешность вычислений); заданная формула для вычисления значений функций в виде бесконечной суммы и разложения функции в ряд.

Необходимо разработать:

1)программу, которая вычисляет значения данной функции для

заданных значений x - аргумента с заданной точностью и выводит значения аргумента и функции в табличной форме;

2)сформировать модуль со всеми разработанными функциями и программу для его использования.

При программировании вычисления значений функции использовать рекуррентную формулу и рекурсивные функции. Вычисление значений заданной функции произвести следующими способами:

1)с помощью встроенной функции, если она есть:

2)с использованием реккурентной формулы для вычисления

очередного члена ряда; при формировании значений суммы для

65

вычисления значения разработать 2 разные функции, использующие операторы WHILE и REPAT – UNTIL;

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

оператор WHILE;

оператор REPEAT – UNTIL;

рекурсивное суммирование.

Из функции для вычисления очередного члена ряда вызывать другие, в том числе рекурсивные функции, например, для вычисления степени x , факториала и пр.

Для каждого способа вычисления значений функции должна быть сформирована функция с параметрами.

Варианты заданий

Вариант

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

arctgx

 

 

(

1)

n x2n 1

 

 

 

x

 

x3

 

 

 

 

x5

 

x7

 

 

 

... Для

 

x

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2n

1

 

 

 

3

 

 

5

 

 

7

 

 

n 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln x

( 1)

n 1 (x 1)n

 

 

 

 

 

(x 1)1

 

 

 

(x 1)2

 

 

 

(x 1)3

 

 

... Для

2

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

3

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

x 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

ln(1

x)

 

 

(

 

1)

n 1 xn

 

 

 

x

 

 

 

 

x2

 

x3

 

 

 

 

 

x4

 

... Для

1

 

 

x 1

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

2

 

 

 

 

 

 

3

 

 

 

 

 

 

4

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex (1

 

 

 

 

 

xn (n 1)

 

 

 

 

 

 

 

 

2x 3x2

 

 

 

 

 

4x3

 

 

 

 

 

 

4

x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

... Для

 

x

 

2.4

n

 

0

 

 

 

 

 

n!

 

 

 

1!

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

3!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2n 1

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

x5

 

 

x

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

sin x

(

 

1)n 1

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

... Для

 

 

x

 

 

 

(2n

1)!

3!

 

 

 

 

 

 

5!

 

7!

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

cos x

 

 

(

 

1)

n x2n

 

 

 

1

 

 

 

 

x2

 

x4

 

 

 

 

 

x6

 

... Для

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n)!

 

 

 

 

2!

 

 

 

 

 

4!

 

 

 

 

 

 

6!

 

 

 

 

 

 

n

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2n 1

 

 

 

 

 

 

x3

 

 

 

 

x5

 

 

x7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

shx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

... Для

x

 

 

 

 

 

 

,

 

 

 

(2n

 

1)!

 

 

 

 

3!

5!

 

 

 

 

7!

 

 

 

 

 

 

 

7

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex

e x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

shx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2n

 

 

 

 

 

x2

 

x4

 

 

 

 

x6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

chx

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

... Для

x

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

n

0 (2n)!

 

 

 

2!

 

 

 

4!

 

 

6!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex

e x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

chx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66

Вариант

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

n 1 22n 1 x2n

 

 

 

21 x2

 

 

23 x4

 

 

 

25 x

6

 

 

 

27 x8

9

sin

 

 

x

(

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

(2n)!

 

 

2!

 

 

 

 

 

 

 

4!

 

6!

 

 

 

 

 

 

8!

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos

2

x

1

(

1)

n 1 22n 1 x2n

 

1

(

21 x2

 

 

23 x4

 

 

 

 

25 x6

 

 

27 x8

10

 

 

 

 

 

(2n)!

 

 

 

2!

 

 

 

4!

 

 

 

 

 

 

 

 

6!

 

8!

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin

3

x

1

(

1)

n 1 (32n 1

3)x2n 1

 

 

 

1

(

(33

 

 

3)x3

(35

3)x5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

4 n 1

 

 

 

 

 

 

 

(2n

1)!

 

 

 

 

4

 

 

 

 

3!

 

 

 

 

 

 

 

 

 

5!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(37

3)x

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...)Для x

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos

3

x

 

1

 

(

 

1)

n (32n

3)x2n

1

(

(30

 

3)x0

(32

3)x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

4 n 0

 

 

 

 

 

(2n)!

 

 

 

 

 

 

4

 

 

0!

 

 

 

 

 

 

 

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(34

3)x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...) Для x

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание №3. Объект.

Во всех заданиях, помимо указанных в задании операций, обязательно должны быть реализованы следующие методы:

1)метод инициализации Init;

2)ввод с клавиатуры Scanf;

3)вывод на экран Printf.

Вариант №1.

Создать объект Vector3D, задаваемый тройкой координат.

Обязательно должны быть реализованы операции: сложение и вычитание векторов, скалярное произведение векторов, умножение на скаляр. Сравнение векторов, вычисление длины вектора, сравнение длины векторов.

Вариант №2.

Создать объект Triangle для представления треугольника. Поля данных должны включать углы и стороны. Требуется реализовать операции получения и изменения полей данных, вычисления площади, вычисление периметра, вычисления высот, а также определения вида треугольника (равносторонний, равнобедренный или прямоугольный).

Вариант №3.

Создать объект Angle для работы с углами на плоскости, задаваемыми величиной в градусах и минутах. Обязательно должны быть реализованы операции: перевод в радианы, приведение к диапазону 0 - 360 , увеличение и уменьшение угла на заданную величину, получение синуса, сравнение углов.

(a, b)

67

Вариант №4.

Создать объект Point для работы с точками на плоскости. Координаты точки – декартовы. Обязательно должны быть реализованы: перемещение точки по оси x , перемещение по оси y , определение расстояния до начала координат, расстояние между двумя точками, преобразование в полярные координаты, проверка на совпадение и несовпадение.

Вариант №5.

Рациональная (несократимая) дробь представляется парой целых чисел , где a - числитель, b - знаменатель. Создать объект Rational для работы с рациональными дробями. Обязательно должны быть реализованы операции:

1)

сложение add: (a,b) (c, d )

(ad

bc,bd) ;

2)

вычитание sub: (a,b)

(c, d)

(ad

bc,bd) ;

3)

умножение mul: (a,b)

(c, d )

(ac,bd) ;

4)деление div: (a,b) /(c, d) (ad,bc) ;

5)сравнения equal.

Вариант №6.

Комплексное число представляется парой действительных чисел (a, b) , где a - действительная часть, b - мнимая часть. Реализовать объект Complex для работы с комплексными числами. Обязательно должны присутствовать операции:

1)

сложения add: (a,b)

(c, d)

(a

b, с

d) ;

 

2)

вычитания sub: (a,b)

(c, d )

(a

b, с

d ) ;

3)

умножения mul: (a,b)

(c, d )

(ac bd, ad bc) ;

4)

деления div: (a, b) /(c, d )

(ac

bd, bc

ad ) /(c 2 d 2 ) ;

5)

сравнения equal: (a, b)

(c, d ) , если (a

c) и (b d ) ;

6)

сопряженное число conj: conj(a,b)

(a,

b) .

Вариант №7.

Реализовать объект FazzyNumber для работы с нечеткими числами,

которые

представляются

тройками

чисел (x

e1 , x, x e2 ) .Для чисел

A ( A al , A, A ar )

и

B

(B bl , B, B

br ) арифметические операции

определяются по следующим формулам:

 

 

 

 

1)

сложение

A

B

( A

B

al

bl , A

B, A

B

ar

br ) ;

2)

вычитание A

B

( A

B

al

bl , A

B, A

B

ar

br ) ;

3)умножение

A B ( A B B al A bl al bl , A B, A B B ar A br ar br ) ;

 

4)

деление A / B (( A

al ) /(B

br ), A / B,( A

ar ) /(B

bl )), B 0 ;

5)

обратное число A

(1/( A

ar ),1/ A,1/( A

al )), A

0 .

68

Вариант №8.

Реализовать объект Account, представляющий собой банковский счет В объекте должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется инициализацией. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро.

Вариант №9.

Создать объект Fraction для работы с дробными числами. Число должно быть представлено двумя полями: целая часть – длинное целое со знаком, дробная часть – беззнаковое короткое целое. Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения.

Вариант №10.

Создать объект Goods (товар). В объекте должны быть представлены поля: наименование товара, дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать методы изменения цены товара, изменения количества товара (увеличение и уменьшение), вычисление стоимости товара.

Вариант №11.

Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500, 1000, 5000. Копейки представить как 0.01 (1 копейка), 0.05 (5

копеек), 0.1 (10 копеек), 0.5 (50 копеек). Создать объект Money для работы с денежными суммами. Сумма должна быть представлена поляминоминалами, значениями которых должно быть количество купюр данного достоинства. Реализовать сложение сумм, вычитание сумм, деление сумм, деление сумм на дробное число, умножение на дробное число и операции сравнения. Дробная часть (копейки) при выводе на экран должны быть отделена от целой части запятой.

Вариант №12.

Создать объект Payment (зарплата). В объекте должны быть представлены поля: фамилия-имя-отчество, оклад, год поступления на работу, процент надбавки, подоходный налог, количество отработанных дней в месяце, количество рабочих дней в месяце, начисленная и удержанная суммы. Реализовать методы: вычисления начисленной суммы, вычисления удержанной суммы, вычисления суммы выдаваемой на руки, вычисления стажа. Стаж вычисляется как полное количество лет, прошедших от года поступления на работу до текущего года. Начисления представляют собой сумму, начисленную за отработанные дни, и надбавки, то есть доли от первой суммы. Удержания представляют собой отчисления в пенсионный фонд (1% от начисленной суммы) и подоходный

69

налог. Подоходный налог составляет 13% от начисленной суммы без отчислений в пенсионный фонд.

Задание №4. Наследование.

Вариант №1.

Создать базовый объект Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения и изменения мощности. Создать производный объект Lorry (грузовик), характеризуемый также грузоподъемностью кузова. Определить функции переназначения марки и изменения грузоподъемности.

Вариант №2.

Создать объект Liquid (жидкости), имеющий поля названия и плотности. Определить методы переназначения и изменения плотности. Создать производный объект Alcohol (спирт), имеющий крепость. Определить методы переназначения и изменения крепости.

Вариант №3.

Создать объект Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. Определить производный объект

Rectangle (прямоугольник) с полями-сторонами. Определить методы вычисления

периметра и площади прямоугольника.

Вариант №4.

Создать объект Man (человек) с полями: имя, возраст, пол и вес. Определить методы переназначения имени, изменения возраста и изменения веса. Создать производный объект Student, имеющий поле года обучения. Определить методы переназначения и увеличения года обучения.

Вариант №5.

Создать объект Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный объект Triangle с полями-сторонами. Определить методы вычисления углов и площади треугольника.

Вариант №6.

Создать объект Triangle с полями-сторонами. Определить методы изменения сторон, вычисления углов, вычисления периметра. Создать производный объект Equilateral (равносторонний), имеющий поле площади. Определить метод вычисления площади.

Вариант №7.

Создать объект Triangle с полями-сторонами. Определить методы изменения сторон, вычисления углов, вычисления периметра. Создать производный объект RightAngled (прямоугольный), имеющий поле площади. Определить метод вычисления площади.

Вариант №8.

70

Создать объект Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. Определить производный объект RightAngled с полями-катетами. Определить методы вычисления гипотенузы и площади треугольника.

Вариант №9.

Создать объект Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный объект Date с полями: год, месяц и день. Переопределить методы увеличения полей на 1 и определить метод увеличения даты на n дней.

Вариант №10.

Создать объект Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный объект Time с полями: час, минута и секунда. Переопределить методы увеличения полей на 1 и определить метод увеличения даты на n секунд и минут.

Вариант №11.

Создать объект Pair (пара целых числе) с операциями проверки на равенство и перемножения полей. Реализовать операцию вычитания пар по

формуле (a,b) (c, d ) (a

b, с d ) . Создать производный

объект Rational;

определить новые операции сложения (a,b)

(c, d ) (ad

bc,bd) и деления

(a,b) /(c, d )

(ad,bc) ;

переопределить

операцию

вычитания

(a,b) (c, d)

(ad bc,bd) .

 

 

 

Вариант №12.

Создать базовый объект Triad (тройка чисел) с операциями сложения с числом, умножения на число, проверки на равенство. Создать производный объект Vector3D, задаваемый тройкой координат. Должны быть реализованы: операция сложения векторов, скалярное произведение векторов.

Задание №5. Виртуальные методы.

Вариант №1.

Создать абстрактный базовый объект Figure с виртуальными методами вычисления площади и периметра. Создать производные объекты: Rectangle (прямоугольник), Circle (круг), Trapezium (трапеция) со своими функциями площади и периметра. Самостоятельно определить, какие поля необходимы, какие из них можно задать в базовом объекте, а какие в производных.

Вариант №2.

Создать абстрактный базовый объект Number с виртуальными методами – арифметическими операциями. Создать производные объекты Integer (целое) и Real (действительное).

Вариант №3.

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