Информатика Никитин
.pdf8
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 |
= 3− n × cos |
π |
n . |
||||||||
|
|
|
|||||||||||
|
|
n |
|
|
|
17 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||
, |
если |
a |
= ln (2n + 2−n ) . |
||||||||||
|
|
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,29− n ) . |
||||||||||
|
|
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 может оказаться не просчитанным.
Результаты счета по всем программам табулирования рассматриваемой функции одинаковые. Поэтому распечатка результатов работы программы приводится только для одной из рассмотренных.
В качестве контрольных вопросов студенту предлагается разобрать :