Другие языки программирования и технологии

Ничего не понимаю, а надо. Спасайте.) задачи по QBasic.))

так уж получилось что программирование - явно не мое, но информатику в универе никто не отменял../ 1. тема: числовые ряды. Вычислить: arctg x = x - (x^3)/3 + (x^5)/5... |x|<=1, k членов 2. тема: обработка одномерных массивов. Проверить, что точки A (a1,...an), B (b1,...bn), C (c1,...cn) и D (d1,...dn) являются вершинами параллелограмма, трапеции или ромба. 3. тема: матрицы. Даны матрица 6*6 и число k (1<=k<=6). Столбец с максимальным по модулю элементом в k-ой строке переставить с k-ым столбцом.
1) Циклом делается
Input "k = ", k
Input "x = ", x
For i = 1 To 2 * k - 1 Step 2
ATANX = (-1) ^ ((i - 1) / 2) * x ^ i / i
Next i
Print "Arctg (" & x & ") = " & ATANX
End

2) Здесь нужно построить уравнения прямых AB, BC, CD, DA и проверить, что хотя бы 2 прямых из 4 параллельны.
Проверить параллельность векторов можно по такому свойству:
X(k) = m*Y(k), k = 1,...n; где X(k), Y(k) - k-ые координаты векторов X и Y, m - коэф. пропорциональности.
То есть все координаты одного вектора должны быть в m раз больше, чем все координаты другого вектора.
Пусть n не больше 100.
Dim A(100) As Double, B(100) As Double, C(100) As Double, D(100) As Double
Dim AB(100) As Double, BC(100) As Double, CD(100) As Double, DA(100) As Double
Dim Flag1 As Boolean, Flag2 As Boolean, Flag3 As Boolean, n As Integer, i As iInteger,
Dim Coef As Double, LengthAB As Double, LengthBC As Double
Input "n = ", n
For i = 1 To n
Input "A(" & i & ") = ", A(i) : Input "B(" & i & ") = ", B(i)
Input "C(" & i & ") = ", C(i) : Input "D(" & i & ") = ", D(i)
AB(i) = B(i) - A(i) : BC(i) = C(i) - B(i) : CD(i) = D(i) - C(i) : DA(i) = A(i) - D(i)
Next i
Flag3 = True
' Сравниваем вектора AB и CD
Flag1 = True
Coef = AB(1) / CD(1)
For i = 2 To n
If AB(i) / CD(i) <> Coef Then Flag1 = False
Next i
' Сравниваем вектора BC и DA
Flag2 = True
Coef = BC(1) / DA(1)
For i = 2 To n
If BC(i) / DA(i) <> Coef Then Flag2 = False
Next i
If Flag1 = True AND Flag2 = True Then
' ABCD - параллелограмм или ромб
' Если это ромб, то длина АВ = длине ВС. Находим длины отрезков
LengthAB = 0
For i = 1 To n
LengthAB = LengthAB + (B(i) - A(i))*(B(i) - A(i))
Next i
LengthAB = Sqrt (LengthAB)
LengthBC = 0
For i = 1 To n
LengthBC = LengthBC + (C(i) - B(i))*(C(i) - B(i))
Next i
LengthBC = Sqrt (LengthBC)
' Сравниваем длины
If LengthAB = LengthBC Then
Print "ABCD - ромб"
Else
Print "ABCD - параллелограмм"
End If
ElseIf Flag1 = True OR Flag2 = True Then
Print "ABCD - трапеция"
Else
Print "ABCD - обычный четырехугольник"
End If
End

3) Переставляем столбцы
Dim A(6, 6) As Double, k As Integer, i As Integer, j As Integer, Max As Double, Maxj As Integer, Q As Double
Input "k = ", k
For i = 1 To 6
For j = 1 To 6
Input "A ("& i & ", " & j & ") = " A(i, j)
Next j
Next i
' Ищем в k-ой строке максимальный элемент.
Max = A(k, 1) : Maxj = 1
For j = 2 To 6
If A(k, j) > Max Then
Max = A(k, j) ' Максимальный элемент
Maxj = j ' Номер столбца, в котором он стоит
End If
Next j
' Переставляем числа из k - столбца и из Maxj - столбца
For i = 1 To 6
Q = A(i, k)
A(i, k) = A(i, Maxj)
A(i, Maxj) = Q
Next i
' Выводим матрицу
For i = 1 To 6
For j = 1 To 6
Print A(i, j) & " ";
Next j
Print
Next i
End
Антон Ульяхин
Антон Ульяхин
96 174
Лучший ответ