Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2010, 19:06   #1
lizka_dro
Новичок
Джуниор
 
Регистрация: 19.07.2010
Сообщений: 1
По умолчанию Работа с массивами (Basic)

Пытаюсь понять логику решения подобных заданий:
"Дан целочисленный массив из 30 элементов. Изменить массив таким образом, чтобы все элементы массива стоящие до максимального элемента этого массива были бы отсортированы по возрастанию, а элементы, стоящие после него - по убыванию"
Это пример вступительного испытания в ИТМО.

Объясните дурочке, что с этим делать и куда идти читать.
Если я все правильно поняла, то это задание на сортировку, так?

PS
если в создании темы есть ошибки, укажите мне на них, пожалуйста. Я исправлю.
lizka_dro вне форума Ответить с цитированием
Старый 19.07.2010, 21:12   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

привет, пиши, помогу )))
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 20.07.2010, 08:59   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот пример сортировки на бейсике
http://hosting.ulstu.ru/ip/sort_b.html
В твоем случае его нужно применить дважды
1)
FOR j= 1 TO k/2
FOR i = 1 TO k/2

2)
FOR j= к/2 TO k
FOR i = к/2 TO k
... и в условии обратное: IF M(i) < M(i + 1)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2010, 16:29   #4
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Код:
Sub main()

Const Length = 29
Dim Massiv(Length) As Integer
Dim Max As Integer
Dim iMax As Byte
Dim i, j As Byte

'Заполняем массив
For i = 0 To Length 'Заполняем массив
    Massiv(i) = Rnd() * 30000
Next i

'Определяем максимальный элемент массива
Max = Massiv(0)
iMax = 0
For i = 1 To Length
    If Max < Massiv(i) Then
        Max = Massiv(i)
        iMax = i
    End If
Next i
'в переменной iMax находится индекс максимального элемента

'Сортируем левую часть массива по возрастанию
For j = 0 To iMax - 1
    For i = 0 To iMax - 1
    If Massiv(i) > Massiv(i + 1) Then
        Max = Massiv(i)
        Massiv(i) = Massiv(i + 1)
        Massiv(i + 1) = Max
    End If
    Next i
Next j

'Сортируем правую часть массива по убыванию
For j = iMax + 1 To Length - 1
    For i = iMax + 1 To Length - 1
    If Massiv(i) < Massiv(i + 1) Then
        Max = Massiv(i)
        Massiv(i) = Massiv(i + 1)
        Massiv(i + 1) = Max
    End If
    Next i
Next j

End Sub
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 22.07.2010, 12:09   #5
kogemrka
Форумчанин
 
Аватар для kogemrka
 
Регистрация: 08.01.2010
Сообщений: 165
По умолчанию

Ого! Это такие вступительные испытания в ИТМО? Тот самый вуз, готовящий чемпионов по ACM? Занятно.
Оффтоп: В этом году поступаешь или в следующем?
kogemrka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерными массивами (visual basic) Mikle1990 Помощь студентам 15 09.03.2015 23:05
работа с массивами Pitbull_03 Помощь студентам 1 25.03.2010 15:52
работа с массивами Lena-eg Помощь студентам 1 14.01.2010 14:24
Работа с массивами на VB =Apple= Помощь студентам 11 16.06.2009 14:29
задача Visual Basic. Работа с массивами ProgramBad Помощь студентам 3 14.02.2009 02:10