. Обработка одномерных массивов и матриц. - VB
Формулировка задачи:
1. Обработка одномерных массивов.
Дан массив из N чисел. Переместить элементы массива так, чтобы сначала шли все
отрицательные по убыванию, а затем все остальные в порядке их ввода.
2. Обработка двумерных массивов (матриц).
Даны средние баллы 7 студентов за каждый год обучения. Для каждого студента определить наиболее успешный год
нужна программа(((
половину 2го я сделала(
Private Sub Command1_Click()
Dim i%, j%, Max, A(), B(1 To 7) As Long
ReDim A(1 To 7, 1 To 5)
For i = 1 To 7
For j = 1 To 5
A(i, j) = Int(Rnd * 4 + 1)
List1(j - 1).List(i - 1) = A(i, j)
Next j, i
Sum = 0
For i = 1 To 7
B(i) = Sum
For j = 1 To 5
B(i) = B(i) + A(i, j)
List2.List(i - 1) = B(i)
Next j, i
For i = 1 To 7
For j = 1 To 5
MSFlexGrid1.TextMatrix(i, j) = A(i, j)
Next j, i
End Sub
насколько я понимаю, если здесь правильно, то мне осталось сделать заголовки в гибкой сетке, и собственно определить наиболее успешный год для каждого студента(
ах да и еще проблема в заполнении этого массива(
я его заполнила от 1 до 5, а на сколько я понимаю там должны быть средние баллы, т.е. как десятичные числа от 1 до 5 =(
помогите плиз(
Решение задачи: «. Обработка одномерных массивов и матриц.»
textual
Листинг программы
Dim arrA() As Single, N As Integer 'объявляем исходный массив, его размерность Dim arrB() As Single, arrC() As Single 'вспомогательный массив Dim CountB As Integer, CountC As Integer, c As Integer, txt As String 'размерность вспомогательных массивов, счётчик, тектовая переменная для вывода N = InputBox("N") 'вводим размерность массива ReDim arrA(1 To N) CountB = 0: CountC = 0 For i = 1 To N arrA(i) = InputBox("A(" & i & ")") 'последовательно вводим элементы txt = txt & arrA(i) & " " 'Заполняем текстовую переменную для вывода на экран If arrA(i) < 0 Then 'если введённый элемент меньше 0 тогда CountB = CountB + 1 'увеличиваем значения счётчика и ReDim Preserve arrB(1 To CountB) 'расширяем массив arrB(CountB) = arrA(i) 'вводим это значение в массив Else CountC = CountC + 1 'иначе вводим в другой массив ReDim Preserve arrC(1 To CountC) arrC(CountC) = arrA(i) End If Next i 'После этой процедуры получится 2 массив, в одном из которых будут все отрицательные, в другом - остальные 'К примеру, мы ввели 0 -1 2 3 -5 8 -2 -1 3 5 . Это будет исходный массив 'первый вспомогательный будет : -1 -5 -2 -1 'второй 0 2 3 8 3 5 txt = txt & Chr(13) 'Добавляем в текст символ пробела 'сортировка методом пузырька For i = 1 To CountB For j = 1 To CountB - i If arrB(j) < arrB(j + 1) Then temp = arrB(j) arrB(j) = arrB(j + 1) arrB(j + 1) = temp End If Next j Next i 'Теперь у нас есть отсортированный массив отрицательных чисел и остальные числа во втором массиве в порядке их ввода 'Осталось только запихнуть их обратно в исходный массив For i = 1 To CountB arrA(i) = arrB(i) 'Заполняем исходный массив сначала отсортированными отрицательными txt = txt & arrA(i) & " " Next i c = 0 For i = CountB + 1 To N 'Теперь заполняем остальными в порядке ввода c = c + 1 arrA(i) = arrC(c) txt = txt & arrA(i) & " " 'Добавляем в тектовую переменную Next i MsgBox txt 'выводим результат
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д