Сделай Сам Свою Работу на 5

Решение СЛАУ методом Крамера





 

Private Sub Command1_Click()

Dim a() As Double

Dim b() As Double

Dim x() As Double

Dim triangularMatrix() As Double

Dim N As Integer

N = InputBox("BBeduTe Pa3MepHocTb")

ReDim a(N, N)

ReDim b(N)

ReDim x(N)

Print "Na4al'na9 matrica"

For i = 1 To N

Print

For j = 1 To N

a(i, j) = InputBox("BBoD 3na4enuu' koficeHTa a(" & i & ";" & j & ")")

Print a(i, j);

Next

b(i) = InputBox("BBoD 3na4enuu' svobodnogo 4lena " & i)

Print b(i)

Next

Print

Print "Treygolnaya matrica"

Print

triangularMatrix = getNewMatrix(N, a, b)

For i = 1 To N

Print

For j = 1 To N

Print triangularMatrix(i, j);

Next

Print b(i)

Next

Print

Dim retmatrix() As Double

retmatrix = triangularMatrix

For i = N To 1 Step -1

For j = 1 To N

If i = N Then

If j = N Then

b(i) = b(i) / retmatrix(i, j)

retmatrix(i, j) = 1

End If

Else

If j = i Then

For k = j + 1 To N

retmatrix(i, k) = retmatrix(i, k) * b(k)

b(i) = b(i) - retmatrix(i, k)

retmatrix(i, k) = 0

Next

b(i) = b(i) / retmatrix(i, j)

End If

End If

Next

Next

x = b

Print "Bektor peIIIenuu'"

For i = 1 To N

Print x(i)

Next

Dim checkArr() As Double

Print

Print "Proverka"

Print

checkArr = check(a, x)

 

For i = 1 To N

Print checkArr(i)

Next

End Sub

Function getNewMatrix(ByVal N As Integer, ByRef a() As Double, ByRef b() As Double) As Double()

Dim newMatrix() As Double

newMatrix() = a

Dim temp() As Double

ReDim temp(N, N)

Dim newVector() As Double

newVector = b

Dim tempb() As Double

ReDim tempb(N)

Index = 1

Dim u As Integer

For h = Index To N - 1

For i = h To N

Dim k

For j = 1 To N

If i = h Then

temp(i, j) = newMatrix(i, j)

Else

ij0 = newMatrix(i - h + u, h)

ij1 = newMatrix(i, h)

k = -1 * (ij1 / ij0)

 

If ij1 <> 0 Then

temp(i, j) = newMatrix(i, j) + k * newMatrix(i - h + u, j)



Else

temp(i, j) = 0

End If

End If

Next j

If i = h Then

tempb(i) = newVector(i)

Else

tempb(i) = newVector(i) + k * newVector(i - h + u)

End If

Next i

newMatrix = temp

newVector = tempb

u = u + 1

Next h

b = newVector

getNewMatrix = temp

End Function

Function check(ByRef a() As Double, ByRef x() As Double) As Double()

Dim ch() As Double

ReDim ch(UBound(a))

For i = 1 To UBound(a)

Dim summ As Double

summ = 0

For j = 1 To UBound(a)

summ = summ + a(i, j) * x(j)

Next

ch(i) = sum

Next

check = ch

End Function

 

 

Работа с массивами

Dim A(3, 3) As Single

Private Sub Command1_Click()

For I = 0 To 3

For J = 0 To 3

A(I, J) = InputBox("Введите элемент ")

Next

Next

For I = 0 To 3

For J = 0 To 3

Print A(I, J);

Next

Print

Next

S = 0

For I = 0 To 3

For J = 0 To 3

S = S + A(I, J)

Next

Next

Print "Сумма элементов", S

V = S / 16

Print "Среднее арифметическое", V

P = 1

For I = 0 To 3

For J = 0 To 3

P = P * A(I, J)

Next

Next

Print "Произведение элементов массива"; P

M = A(1, 1)

k = 1

l = 1

For I = 0 To 3

For J = 0 To 3

If M <= A(I, J) Then GoTo 10 Else

M = A(I, J)

k = I

l = J

10 Next

Next

M = A(1, 1)

k = 1

l = 1

For I = 0 To 3

For J = 0 To 3

If M >= A(I, J) Then GoTo 20 Else

M = A(I, J)

k = I

l = J

20 Next

Next

Print "Минимальный элемент ("; k; ","; l; ")="; M

F = 0

For I = 0 To 3

F = F + A(I, I)

Next

Print "Максимальный элемент"; F

N = 0

For I = 0 To 3

For J = 0 To 3

If A(I, J) >= -1 And A(I, J) <= 1 Then N = N + 1



Next

Next

Print " Сумма элементов "; N

End Sub

 

 

 


ЗАДАНИЯ по компьютерной арифметике

Примеры решений:

623900 перевести в 11-ричную

62390 |11

-623898 |56718 |11

2 -56716 |5156 |11

2 -5148 |468|11

8 -462| 42 | 11

6 -33 |3

39682211 = 62390010

Б)1567:224 +112714 =112721

Переведем в 9-ную систему:

112721 |9

-112716 |12524|9

5 -12519|9

5|1391|9

-1386 |9

5|154|9

153|9

1|17|9

-9|1

11272110=815559

В) 6748*12316 -111011010012

 

Ход решения:
Выписываем все цифры заданного числа в обратном порядке и домножаем каждую на 8 в степени 0, 1, 2 и т.д. Затем все суммируем.
6748 = 4·80 + 7·81 + 6·82 = 44410

Выписываем все цифры заданного числа в обратном порядке и домножаем каждую на 16 в степени 0, 1, 2 и т.д. Затем все суммируем.
12316 = 3·160 + 2·161 + 1·162 = 29110

Выписываем все цифры заданного числа в обратном порядке и домножаем каждую на 2 в степени 0, 1, 2 и т.д. Затем все суммируем.
111011010012 = 1·20 + 0·21 + 0·22 + 1·23 + 0·24 + 1·25 + 1·26 + 0·27 + 1·28 + 1·29 + 1·210 = 189710

 

444*291-1897=127307

Переведем в 2-ичную систему:

Ход решения:
Делим число на 2 и выписываем остатки
127307 = 63653·2 + 1
63653 = 31826·2 + 1
31826 = 15913·2 + 0
15913 = 7956·2 + 1
7956 = 3978·2 + 0
3978 = 1989·2 + 0
1989 = 994·2 + 1
994 = 497·2 + 0
497 = 248·2 + 1
248 = 124·2 + 0
124 = 62·2 + 0
62 = 31·2 + 0
31 = 15·2 + 1
15 = 7·2 + 1
7 = 3·2 + 1
3 = 1·2 + 1
Последний множитель перед 2 равный 1 записываем первым.
Затем записываем найденные остатки в обратном порядке.
Получаем: 11111000101001011

Задания:

4.1. Используя Правило Счета, запишите первые 20 целых чисел в, троичной и пятеричной системах счисления.

в) троичная: 0, 1, 2, 10, 11, 12, 20, 21, 22, 100, 101, 102, 110, 111, 112, 120, 121, 122, 200, 201; г) пятеричная: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 30, 31, 32, 33, 34.

4.2. а) 102; б) 1102; в) 10002; г) 100002; д) 1011002; е) 28; ж) 108; з)408; и) 2008; к) 100008; л) 1016; м) 2016; н) 10016; о) 9AFA16; п)CDF016.

4.3. а) 12; б) 10012; в) 1112; г) 11112; д) 100112; е) 78; ж) 178; з) 778; и) 1078; к) 7778; л) F16; м) 1F16; н) FF16; о) A0F16; п) FFF16.



4.4. Четное двоичное число оканчивается цифрой 0, нечетное двоичное - цифрой 1, четное троичное - цифрами 0, 1 или 2.

4.5. а) 7; б) 511; в) 4091.

4.7. а) ни в какой; б) в шестеричной.

4.8. Основание 5.

4.9. а) 91; б) 183; в) 225; г) 35/64; д) 52,75; е) 335; ж) 520; з) 668; и) 7/16; к)8333/64; л) 31; м) 2748; н) 4112; о) 41/64; п) 47825/32.

4.10. а) 11111012; 1758; 7D16; б) 111001012; 3458; E516; в) 10110002; 1308; 5816; г) 100101,012; 45,28; 25,416; д) 11001110,0012; 316,18; CE,216.

4.11. а) 11767,348; 13F7,716; б) 1653,5648; 3AB,BA16; в) 271,5478; B9,B3816;г) 13634,68; 179C,C16; д) 27,76748; 17,FBC16; е) 1425,628; 315,C816.

4.12. а) 10110011102; 13168; б) 10011111010000002; 1175008; в)101010111100110111102; 25363368; г) 1000000010000,0001000000012; 10020,04018; д) 1101010111100,100111012; 15274,4728.

4.13. а) 1011012, 1011102, 1011112, 1100002; б) 2023, 2103, 2113, 2123, 2203, 2213, 2223, 10003; в) 148, 158, 168, 178, 208; г) 2816, 2916, 2A16, 2B16, 2C16, 2D16, 2E16, 2F16, 3016;

4.14. а) 4710 - 1011112 - 578 - 4710 - 578 - 1011112 - 2F16 - 4710 - 2F16 - 1011112 - 4710; б) 7910 - 10011112 - 1178 - 7910 - 1178 - 10011112 - 4F16 - 7910 - 4F16 - 10011112 - 7910.

4.15.

  +
 
+  
 
 
 

 

4.16.

  x
 
x  
 
 
 

 

4.17. а) 110101002; б) 10001,02; в) 10101,12; г) 11001,12; д) 1348; е) 2248;ж) 24,38; з) 348; и) 1916; к) 2516; л) 19,A16; м) 2616.

4.18. а) в 16-й; б) в 10-й; в) в 3-й; г) в 8-й; д) в 16-й.

4.19. в) А=9, B=4, C=5, D=3, F=1, L=0, M=7, N=8; г) A=3, B=6, C=2, D=5, E=9, F=7, G=1, H=0, I=4, J=8; д) A=9, B=3, C=4, D=2, E=1, F=8, G=0, H=7, I=6.

4.20. а) 11012; б) 1,112; в) 1010,12; г) -10,012; д) 38; е) 338; ж) 22,18; з)11,258; и) 1716; к) 1A9216; л) -1,7E16; м) 4BBC16.

4.21. а) 111000012; б) 11000110,012; в) 1000000,1012; г) 1001011,1012; д)1748; е) 1428; ж) 15.268; з) 55.22228.

4.22. 11112.

4.23. 11001112; 10310; 1478.

4.24. а) 149310; б) 54210; в) 142010; г) 1110.

4.25. а) 1100102, 3816, 748, 7010; б) 1428, 10010, 11010012, 6E16; в)1011111112, 50010, 7778, 2FF16; г) 11000002, 6016, 1418, 10010.

4.26. а) 00000011, 00000010, 00000001, 00000000, 10000001, 10000010, 10000011; б) 00000011, 00000010, 00000001, 00000000, 11111110, 11111101, 11111100; в) 00000011, 00000010, 00000001, 00000000, 11111111, 11111110, 11111101.

4.27. а) 00001111; б) 10111111; в) 01000001; г) невозможно.

4.28. Обратный: а) 11110110, б) 11110000, в) 10000000, г) невозможнo. Дополнительный: а) 11110111; б) 11110001; в) 10000001; г) 10000000.

4.29. а) -8; б) -101; в) -23; г) -128.

4.30. а) -23; б) -96; в) -84; г) -127.

4.31. Обратный: а) 00000111; б) 11111000; в) 11110011; г) 11100001; д)00011001; е) 01111110; ж) переполнение; з) 10000000; и) невозможно. Дополнительный: а) 00000111; б) 11111001; в) 11110100; г) 11100010; д)00011001; е) 01111110; ж) переполнение; з) 10000001; и) 10000000.


Поставленная задача:

Заданы координаты двух точек. Определить, лежат ли они на одной окружности с центром в начале координат.

Private Sub Form_Click()

Me.Cls

Me.AutoRedraw = True

Me.DrawWidth = 1

x0 = InputBox("x=", "Координаты точки", 0)

y0 = InputBox("y=", "Координаты точки", 0)

x = InputBox("x=", "Координаты точки окружности", 0)

y = InputBox("y=", "Координаты точки окружности", 0)

r = InputBox("r=", "Радиус окружнсоти", 1)

If r ^ 2 >= (x0 - x) ^ 2 + (y0 - y) ^ 2 Then MsgBox "Точка принадлежит" Else MsgBox "Точка не принадлежит"

X1 = Me.Width / 2

Y1 = Me.Height / 2

Me.Print "A(" & x0 & "; " & y0 & ")"

Me.Print "O(" & x & "; " & y & ")"

Me.Print "R=" & r

Me.Line (X1, 100)-(X1, Me.Height - 100)

Me.Line (100, Y1)-(Me.Width - 100, Y1)

Me.DrawWidth = 2

Me.Circle (X1 + x, Me.Height - Y1 - y), r, vbRed

Me.DrawWidth = 5

Me.PSet (X1 + x0, Me.Height - Y1 - y0), vbBlue

End Sub

 

 

Поставленная задача:

Определить площадь треугольника

1способ: По формуле Герона

Dim a As Single

Dim b As Single

Dim c As Single

Dim p As Single

Dim s As Single

Private Sub Command1_Click()

Dim a As Single

Dim b As Single

Dim c As Single

Dim p As Single

Dim s As Single

a = InputBox("BBeDuTe a=")

Print "a="; a

b = InputBox("BBeDuTe b=")

Print "b="; b

c = InputBox("BBeDuTe c=")

Print "c="; c

p = (a + b + c) / 2

Print "p="; p

If ((a + b) >= c And (a + c) >= b And (b + c) >= a) Then

Print "PloIIIaDb="; Sqr((p - a) * (p - b) * (p - c))

Else: Print " He BblIIo/lHeHo Yc/loBue"

End If

End Sub

Private Sub Command2_Click()

Form1.Cls

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Command4_Click()

Dim a As Single

Dim b As Single

Dim y As Single

Dim p As Single

Dim s As Single

a = InputBox("BBeDuTe a=")

Print "a="; a

b = InputBox("BBeDuTe b=")

Print "b="; b

y = InputBox("BBeDuTe y=")

Print "y="; y

If y > 1 And y < 1 Then MsgBox "FALSE"

Print "PloIIIaDb="; s = 1 / 2 * a * b * sin(y)

End Sub

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.