Другие языки программирования и технологии
Помогите решить задачу на Basic
Люди))) Помогите на Basic решить задачу)))....Плииииз...Нужно написать алгоритм поиска первого из двух последовательных элементов в целочисленном масиве из 20 элементов, сумма которых минимальна (если таких пар несколько,то выбрать любую из них...)
Доброго времени суток.
Здесь все достаточно просто.
Sub Tst()
Dim A(20) As Integer
Dim i As Integer, MaxSum As Integer, MaxIdx As Integer
' заполнение массива случайными числами от 1 до 6
For i = 0 To 19
A(i) = Int((6 * Rnd) + 1)
Next i
MaxIdx = 0 ' индекс начала пары с минимальной суммой
MaxSum = -32767 ' заведомо малое число
For i = 0 To 18
If A(i) + A(i + 1) > MaxSum Then ' сумма очередной пары больше
MaxSum = A(i) + A(i + 1) ' запоминаем ее
MaxIdx = i ' и индекс первого числа в паре
End If
Next i
MsgBox MinIdx ' вывод результата
End Sub
Удачи!
Здесь все достаточно просто.
Sub Tst()
Dim A(20) As Integer
Dim i As Integer, MaxSum As Integer, MaxIdx As Integer
' заполнение массива случайными числами от 1 до 6
For i = 0 To 19
A(i) = Int((6 * Rnd) + 1)
Next i
MaxIdx = 0 ' индекс начала пары с минимальной суммой
MaxSum = -32767 ' заведомо малое число
For i = 0 To 18
If A(i) + A(i + 1) > MaxSum Then ' сумма очередной пары больше
MaxSum = A(i) + A(i + 1) ' запоминаем ее
MaxIdx = i ' и индекс первого числа в паре
End If
Next i
MsgBox MinIdx ' вывод результата
End Sub
Удачи!
У Геннадия ошибки:
1)не выполнена проверка на (ДВУХ ПОСЛЕДОВАТЕЛЬНЫХ)
2) он ищет максимальную а по условиям надо МИНИМАЛЬНУЮ
Sub Tst()
Dim A(20) As Integer
Dim i As Integer, MaxSum As Integer, MaxIdx As Integer
' заполнение массива случайными числами от 1 до 6
MinSum = 1000
For i = 0 To 19
A(i) = Int((6 * Rnd) + 1)
Next i
MaxIdx = 0 ' индекс начала пары с минимальной суммой
MinSum = 10000 ' заведомо большая сумма
For i = 0 To 18
If (A(i) + A(i + 1))and(abs(A(i) - A(i + 1))=1) < MinSum Then ' сумма очередной пары МЕНьше и элементы последовательны
MinSum = A(i) + A(i + 1) ' запоминаем ее
MaxIdx = i ' и индекс первого числа в паре
End If
Next i
MsgBox MinIdx ' вывод результата
End Sub
1)не выполнена проверка на (ДВУХ ПОСЛЕДОВАТЕЛЬНЫХ)
2) он ищет максимальную а по условиям надо МИНИМАЛЬНУЮ
Sub Tst()
Dim A(20) As Integer
Dim i As Integer, MaxSum As Integer, MaxIdx As Integer
' заполнение массива случайными числами от 1 до 6
MinSum = 1000
For i = 0 To 19
A(i) = Int((6 * Rnd) + 1)
Next i
MaxIdx = 0 ' индекс начала пары с минимальной суммой
MinSum = 10000 ' заведомо большая сумма
For i = 0 To 18
If (A(i) + A(i + 1))and(abs(A(i) - A(i + 1))=1) < MinSum Then ' сумма очередной пары МЕНьше и элементы последовательны
MinSum = A(i) + A(i + 1) ' запоминаем ее
MaxIdx = i ' и индекс первого числа в паре
End If
Next i
MsgBox MinIdx ' вывод результата
End Sub
Похожие вопросы
- Помогите решить задачу в Basic
- Помогите решить задачи в Visual Basic 6.0
- Помогите решить задачу по программированию! Язык - Visual Basic.
- Помогите решить задачи в Visual Basic!!
- Помогите решить задачу на Паскале или basic.
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу.
- Помогите решить задачу на программирование!
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачи на Си! Пожалуйста!!!