Другие языки программирования и технологии
Ничего не понимаю, а надо. Спасайте.) задачи по 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
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
Next i
End
Похожие вопросы
- Помогите плиз с этими задачами по Qbasic. Только в старом а не в Visual
- напишите код на qbasic Код к задаче: «Определить вид треугольника по трем его сторонам - QBasic»
- qBasic
- помогите написать простые программы на Qbasic
- QBASIC сформировать мосив состоящая С М-строк,и М-столбцов
- Косинус в qbasic
- Интересные примеры для QBasic
- Что пришло на смену Qbasic?
- Помогите написать в QBasic программу-фильтр! У МЕНЯ ЗАЧЕТ!!!
- Простейшая программа/игра по qbasic