Тема: Перетворити масив
Як так зробити?
Перетворити масив таким чином, щоб спочатку розміщувались всі елементи, ціла частина яких знаходиться в інтервалі [a,b], після чого – всі решта.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Інші мови програмування → *Basic → Перетворити масив
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Як так зробити?
Перетворити масив таким чином, щоб спочатку розміщувались всі елементи, ціла частина яких знаходиться в інтервалі [a,b], після чого – всі решта.
Фактично, це задача на сортування масиву, тільки критерій впорядкування елементів булевий — входить чи ні елемент у заданий діапазон. Алгоритм сортування може бути будь-яким (бульбашковим, прямої вибірки і т.п.), але з заміною порівняння елементів на порівняння умови входження в діапазон.
Тобто, замість m[ i ] > m[ j ]
треба зробити (a<=m[ i ] && m[ i ]<=b) > (a<=m[ j ] && m[ j ]<=b),
де m — масив, i та j — індекси порівнюваних елементів.
Фактично, це задача на сортування масиву, тільки критерій впорядкування елементів булевий — входить чи ні елемент у заданий діапазон. Алгоритм сортування може бути будь-яким (бульбашковим, прямої вибірки і т.п.), але з заміною порівняння елементів на порівняння умови входження в діапазон.
Тобто, замість m[ i ] > m[ j ]
треба зробити (a<=m[ i ] && m[ i ]<=b) > (a<=m[ j ] && m[ j ]<=b),
де m — масив, i та j — індекси порівнюваних елементів.
У мене виходить так, що завдання звучить наступним чином:
В одномірному масиві, який складається з N дійсних елементів, обчислити:
1) номер максимального за модулем елемента масиву;
2) суму елементів масиву, що розташовані після першого додатного елементу.
Перетворити масив таким чином, щоб спочатку розміщувались всі елементи, ціла частина яких знаходиться в інтервалі [a,b], після чого – всі решта.
На екран вивести: вихідний масив; обчислені значення та перетворений масив.
Перші два завдання я зробила і мій код виглядає так:
а як перетворити тепер масив я не знаю( інтервал потрібно вказувати самостійно на формі)
Dim A(1 To 10) As Integer
Dim B(1 To 10) As Integer
Dim i As Integer, k As Integer, max As Integer, n As Integer, P As Variant
Dim S As String
Private Sub Command1_Click()
Command1.Caption = "Розрахунок"
Label1.Caption = "Програма знаходження номеру max за модулем елемента масиву та суму елементів масиву, що розташовані після першого додатного елементу."
Label2.Caption = "Номер максимального за модулем елемента масиву :"
Label3.Caption = "Сума елементів масиву, що розташовані після першого додатного елементу :"
n1 = InputBox("Введіть кількість елементів <=10:")
n = Val(n1)
For i = 1 To n
A(i) = InputBox("Введіть число:", "Масив")
Next i
max = Abs(A(1)): kmax = 1
For i = 2 To n
If Abs(A(i)) > max Then max = Abs(A(i)): kmax = i Else
Next i
Label4.Caption = "max = " & Str(max) & " № - " & Str(kmax)
k = 0
For i = 1 To n
If A(i) > 0 Then k = k + A(i)
Next i
Label5.Caption = "Сума: " & k
S = ""
For i = 1 To n
S = S + Str(A(i)) & ", "
Next i
Label6.Caption = "Вихідний масив: " & S
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися