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

Информатика Никитин

.pdf
Скачиваний:
8
Добавлен:
29.03.2016
Размер:
398.65 Кб
Скачать

8

2.an

n =1

10

3.an

n =2

5

4.an

n= −5

12

5.an

n=3

10

6.an

n =1

9

7.an

n= −1

12

8.an

n=3

9

9.an

n= −8

15

10. an

n =1

21

8

и an

n =1

10

и an

n =2

5

и an

n= −5

12

и an

n=3

10

и an

n =1

9

и an

n= −1

12

и an

n=3

9

и an

n= −8

15

и an

n =1

,

если

a

= 3n × cos

π

n .

 

 

 

 

 

n

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

если

a

= ln (2n + 2n ) .

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

1,12n + 0,23

,

если

an

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

arctg (5,67 + π n)

 

 

 

=

 

1 +1,34n

,

если

an

 

 

 

 

 

 

.

sin (π -

 

 

 

 

 

 

 

 

 

0,013n)

,

если

a

= cos (1,55n -1,55 n ) .

 

 

n

 

 

 

 

 

 

 

 

 

 

 

,

если

a

= arctg 2,1n .

 

 

n

 

 

 

 

 

 

 

 

 

 

 

,

если

an

=

 

1,27n

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2n + 2,36

,

если

a

= ln (1,26n +1,29n ) .

 

 

n

 

 

 

 

 

 

 

 

 

 

 

,

если

a

= 1,11n × cos

π

n .

 

 

 

n

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

Задача № 4

Составить программы табулирования функции y = f (x) (см. задачу 2)

на отрезке [ a; b ] в точках x = a + i × h , где h = (b - a) / m , используя в

качестве переменной цикла x и операторы цикла :

1.For – Next ,

2.Do While – Loop ,

3.Do – Loop While ,

4.Do Until – Loop ,

5.Do – Loop Until .

22

Значения параметров a , b и m в зависимости от номера варианта

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

1.

a=-1; b=2; m=15

6.

a=-2; b=2; m=20

2.

a= 0; b=3; m=10

7.

a= 0; b=4; m=14

3.

a=-3; b=1; m=20

8.

a=-3; b=1; m=20

4.

a=-1; b=3; m=12

9.

a=-4; b=4; m=16

5.

a= 0; b=4; m=15

10.a= 0; b=4; m=20

ОБРАЗЕЦ ВЫПОЛНЕНИЯ КОНТРОЛЬНОЙ РАБОТЫ № 1

Задача № 1

Составить программу вычисления площади и периметра треугольника со сторонами a , b и острым углом между ними α ° градусов.

Для определения площади треугольника воспользуемся формулой:

S = 1 × ab ×sinα . Сторону треугольника c определим по теореме косинусов:

2

 

 

 

 

 

 

c =

 

.

 

 

 

 

a2 + b2 - ab cosα

Тогда

периметр

треугольника

можно будет

определить по формуле:

P = a + b + c .

 

 

 

Так как тригонометрические функции на VBA определены для

аргументов,

выраженных в радианах, то от угла в градусах (обозначим α ° )

перейдем к

радианам

(обозначим

αr ) по

формуле: αr

= α° ×π /180 .

обозначим в программе α ° через alfagrad,

αr – через alfarad .

Будем считать, что исходная информация в Excel - таблицах расположена в следующем виде:

23

 

A

B

 

C

 

 

 

 

 

 

 

1

a=

 

7,8

 

 

 

 

 

 

 

 

2

b=

 

16,1

 

 

 

 

 

 

3

alfa град=

 

25,7

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

Запись S= поместим в ячейку А5 , а расчетное значение площади в ячейку В5. Аналогично Р= – в ячейку А6 , а значение периметра – в

ячейку В6 . Тогда программу можно представить в виде:

Private Sub Workbook_Open() Const pi = 3.1415926

Dim a, b, c, s, p As Single Dim alfagrad, alfarad As Single a = Range("B1").Value

b = Range("B2").Value alfagrad = Range("B3").Value alfarad = alfagrad * pi / 180 s = a * b * Sin(alfarad) / 2

c = Sqr(a ^ 2 + b ^ 2 - a * b * Cos(alfarad)) p = a + b + c

Range("A5").Value = "S=" Range("B5").Value = s Range("A6").Value = "P=" Range("B6").Value = p End Sub

Результаты счета в таблицах Excel имеют вид:

24

Задача № 2

Составить программу вычисления функции y = f (x) и вычислить значения функции в указанных точках. В точках, обозначенных полужирным шрифтом привести распечатку результата счета и исходных данных. Для остальных – результаты счета.

 

3

+ x -1

2x

 

y = ln (1 + x2 )

 

 

 

2

sin x

 

x £ 0

0 < x < π x ³ π

x = −0,32; 1,23; 1,88; 0; 3,1415926

Предположим, что в ячейке А1 будет расположена запись x = , а в ячейке В1 значение аргумента х . Запись y = будем выдавать в ячейку А3, а значение функции y будем выдавать в ячейку В3. Тогда программу можно представить в виде

Private Sub Workbook_Open() Const pi = 3.1415926

Dim x, y As Single

x = Range("B1").Value If x <= 0 Then

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Range("A3").Value = "y =" Range("B3").Value = y End Sub

Результаты счета по предложенной программе имеют вид:

25

При других значениях аргумента получаем:

y(-0,32)=-1,38554 y(1,88)=1,511693

y(0)=-1

 

 

 

y(3,141593)=-0,4303

Задача № 3

 

 

 

 

 

 

 

 

 

 

 

 

15

15

 

 

 

 

1,33n

 

Вычислить

an

и an

, если

 

an =

 

 

 

 

.

 

n

2

+ 1

 

n= −3

n= −3

 

 

 

 

 

Обозначим через p

сумму, а через s

произведение. Результаты P = ,

будем выдавать в ячейку

A1 ,

а значение

p

в ячейку

B1 , запись S = в

ячейку A3 ,

а значение

s

в ячейку

B3

. Предложим программу

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

Private Sub Workbook_Open() Dim n As Integer

Dim s, p, an As Single s = 0

p = 1

For n = -3 To 15

an = 1.33 ^ n / (n ^ 2 + 1) s = s + an

p = p * an Next n

Range("A1").Value = "S =" Range("B1").Value = s Range("A3").Value = "P =" Range("B3").Value = p End Sub

Результаты счета имеют вид:

26

Задача № 4

 

 

Составить программы табулирования функции y = f (x)

(см. задачу 2)

на отрезке

[1;

5] в точках x = a; x = a + h; x = a + 2h; . . . ; b ,

где

h = (b a) / m

,

используя в качестве переменной цикла x

и операторы

цикла :

 

 

 

 

1.For – Next ,

2.Do While – Loop ,

3.Do – Loop While ,

4.Do Until – Loop ,

5.Do – Loop Until ,

приняв

m = 20 .

 

 

 

Предполагаем, что заголовки таблицы x и

y

записываем в ячейки

A1

и

B1 соответственно, а значения переменных

x

и y записываем в

соответствующих колонках, начиная с третьей строчки.

 

1.

Программу с оператором цикла For - Next можно представить в виде

Private Sub Workbook_Open() Const a = -1, b = 5, m = 20 Const pi = 3.1415926

Dim i As Integer

Dim x, y, h As Single Range("A1").Value = "x" Range("C1").Value = "y" h = (b - a) / m

i = 3

For x = a To b + h / 2 Step h

27

If x <= 0 Then

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Cells(i, 1).Value = x Cells(i, 3).Value = y i = i + 1

Next x

End Sub

Результат счета по предложенной программе имеет вид:

28

2. Программу с циклом Do While – Loop можно представить в виде

Private Sub Workbook_Open() Const a = -1, b = 5, m = 20 Const pi = 3.1415926

Dim i As Integer

Dim x, y, h As Single Range("A1").Value = "x" Range("C1").Value = "y" h = (b - a) / m

i = 3 x = a

Do While x < b + h / 2 If x <= 0 Then

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Cells(i, 1).Value = x Cells(i, 3).Value = y i = i + 1

x = x + h Loop

End Sub

3. Программу с циклом Do – Loop While можно представить в виде

Private Sub Workbook_Open() Const a = -1, b = 5, m = 20 Const pi = 3.1415926

Dim i As Integer

Dim x, y, h As Single Range("A1").Value = "x" Range("C1").Value = "y" h = (b - a) / m

i = 3 x = a Do

If x <= 0 Then

29

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Cells(i, 1).Value = x Cells(i, 3).Value = y i = i + 1

x = x + h

Loop While x < b + h / 2 End Sub

4. Программу с циклом Do Until – Loop можно представить в виде

Private Sub Workbook_Open() Const a = -1, b = 5, m = 20 Const pi = 3.1415926

Dim i As Integer

Dim x, y, h As Single Range("A1").Value = "x" Range("C1").Value = "y" h = (b - a) / m

i = 3 x = a

Do Until x > b + h / 2 If x <= 0 Then

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Cells(i, 1).Value = x Cells(i, 3).Value = y i = i + 1

x = x + h Loop

End Sub

30

5. Программу с циклом Do – Loop Until можно представить в виде

Private Sub Workbook_Open() Const a = -1, b = 5, m = 20 Const pi = 3.1415926

Dim i As Integer

Dim x, y, h As Single Range("A1").Value = "x" Range("C1").Value = "y" h = (b - a) / m

i = 3 x = a Do

If x <= 0 Then

y = 2 * x ^ 3 + x - 1 Else

If x < pi Then

y = Log(1 + x ^ 2) Else

y = Sin(x ^ 2) End If

End If

Cells(i, 1).Value = x Cells(i, 3).Value = y i = i + 1

x = x + h

Loop Until x > b + h / 2 End Sub

Следует отметить, что логические неравенства в условиях окончания

циклов берутся не

x<=b ( x>=b ), а с запасом в h/2 . Это связано с

тем, что величина

h может быть переведена в двоичный код с избытком ,

а проверка логического оператора проводится точно. При этой ситуации последнее значение x=b может оказаться не просчитанным.

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

В качестве контрольных вопросов студенту предлагается разобрать :