powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите пожалуйста
5 сообщений из 55, страница 3 из 3
помогите пожалуйста
    #36406849
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё такой вариант может пригодится, без жесткого размера массива:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Base  1 
Sub swapel()
Dim a() As Integer ' инициализируем массив
SourceNumberStr = InputBox("Введите размер массива, целое (желательно небольшое) число ", "Введите число", "10")
SourceNumber = Val(SourceNumberStr)
ReDim Preserve a(SourceNumber)
firstmin =  0  'детектор отрицательных чисел
Randomize Timer ' инициализирует датчик случайных чисел.
For i = LBound(a) To UBound(a)
    a(i) = Rnd * ( 40  - (- 20 )) + (- 20 ) ' тут чуть подправил
    If firstmin =  0  Then If a(i) <  0  Then firstmin = i 'ловим первое отрицательное, запоминаем адрес
    If a(i) > temp Then temp = a(i): maks = i 'собираем максимальные, запоминаем адрес (изначально temp = Empty)
    'максимальных может быть не одно значение, запоминаем первое
    MsgBox "Исходный массив: a(" & i & ") = " & a(i)
Next i
If firstmin =  0  Then MsgBox "Нет отрицательных чисел!": Exit Sub 'если так и не появилось отрицательное
d = a(firstmin)
a(firstmin) = a(maks)
a(maks) = d
For i = LBound(a) To UBound(a)
    MsgBox "Массив после перестановки: a(" & i & ") = " & a(i)
Next i
...
Рейтинг: 0 / 0
помогите пожалуйста
    #36406903
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121 , Shocker.Pro

Пять баллов!

Hugo121У меня VB нет, так что синтаксис Экселевский:
Я немного критикну структуру процедуры:
я тоже бы сложил все в один цикл, так проще, быстрее и оптимальнее с моей точки зрения и не только , но ТС
начинающий программист и ей может быть сложно выделить что для какого этапа важно. Поэтому я взял на себя смелость и
немного по другому расположил код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub swapel()
Dim a( 1  To  10 ) As Integer ' инициализируем массив в 10 элементов
firstmin =  0  'детектор отрицательных чисел
Randomize Timer ' инициализирует датчик случайных чисел.
'Цикл просто заполняет случайными числами массив
For i =  1  To  10 
    a(i) = Rnd * ( 20  - (- 15 )) + (- 15 ) ' тут чуть подправил
    MsgBox "Исходный массив: a(" & i & ") = " & a(i)
Next i
' Это цикл находит индекс первого отрицательно значения в массиве
For i =  1  To  10 
    If a(i) <  0  Then
        firstmin = i 'ловим первое отрицательное, запоминаем адрес
        Exit For ' Дальше проверять массив не имеет смысла, нашли нужный элемент
    End If
Next i
' Это цикл находит максимальное значение в массиве
' Здесь просматривать нужно весь массив, в отличие от предыдущего цикла
For i =  1  To  10 
    If a(i) > temp Then
    'максимальных может быть не одно значение, запоминаем первое
    ' из-за строгого больше в условии проверки.
        temp = a(i)
        maks = i 'собираем максимальные, запоминаем адрес (изначально temp = Empty)
    End If
Next i
If firstmin =  0  Then
    MsgBox "Нет отрицательных чисел!" 'если так и не появилось отрицательное
Else
    d = a(firstmin)
    a(firstmin) = a(maks)
    a(maks) = d
    For i =  1  To  10 
        MsgBox "Массив после перестановки: a(" & i & ") = " & a(i)
    Next i
End If
End Sub


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
помогите пожалуйста
    #36406989
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносПять баллов!
Осмелюсь спросить - за что? :)

Игорь ГорбоносТС начинающий программист и ей может быть сложно выделить что для какого этапа важно.

У нее отсутствует желание понять хоть что либо, кроме того, как мелким шрифтом распечатать шпаргалку. Так что что Хуговский код, что твой - для нее просто набор непонятных буковок.
...
Рейтинг: 0 / 0
помогите пожалуйста
    #36407033
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я надеюсь, что не только она эти коды смотрела - 168 просмотров на сейчас, так что кому-нибудь да пригодится. Я тоже долго в массивы врубиться не мог, мало доступных и понятных материалов в сети, вот только на форуме и объяснили (правда, тогда на другом :) )
...
Рейтинг: 0 / 0
помогите пожалуйста
    #36407085
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИгорь ГорбоносПять баллов!Осмелюсь спросить - за что? :)

За терпение

Shocker.Pro

Может ты и прав, НО!!! Я в школе не понимал химию и поэтому её не любил. Мне казалось что химия сравни шаманству, что-то
налил, помешал, долил ещё что-то и пролучил Х. его З. что. не то что физика. При этом из компьютерного класса не вылазил
и не понимал других, которые приходили и боялись дотронутся до клавиатуры, я думал - как можно боятся и не понимать,
ведь все так просто. Потом в институте, неорганическая химия, стала моим любимым предметом. Оказывается там все так
просто и логично, как в физике. Просто в школе у меня не было логически связанных данных по химии. Были неупорядоченные
обрывки, которые и давали мое не знание.

Поэтому, каждый раз помогая новичку наподобии ТС, я стараюсь "разжевать" свою помощь. А списывать, ТС, сейчас! будет в
любом случае. Потому что на все нужно время, особенно на качественное преобразование количества информации в качество.

З.Ы. Поищи и почитай на фокспрошном форуме ответы ВладимирМ .

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
5 сообщений из 55, страница 3 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите пожалуйста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]