Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Basic


Ответ
 
Опции темы Опции просмотра
Старый 01.11.2013, 22:28   #1 (permalink)
Zyklone
Новичок
 
Регистрация: 01.11.2013
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить задачку

Помогите, пожалуйста, с решением задачи:
Дан одномерный массив arrX(100) As Integer. Необходимо определить длину максимальной последовательности элементов, отсортированных по возрастанию. (Если весь массив отсортирован, то результат будет 101).
Zyklone вне форума   Ответить с цитированием

Старый 01.11.2013, 22:28
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Возможно вы не обращали внимания, но на нашем форуме так же есть аналогичные темы

Помогите решить задачку по C++
Помогите решить задачку в маткаде
Помогите решить задачку!
Помогите решить задачку по физике
Помогите решить задачку в Visual Basic на массивы
Помогите решить задачку

Старый 25.03.2014, 23:50   #2 (permalink)
interacia
Member
 
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
По умолчанию

Цитата:
(Если весь массив отсортирован, то результат будет 101).
Этв строчка немного настораживает почему именно 101 а не 100. В массиве же 100 чисел.
Добавил проверку на случай если выпадет 100 чисел и все по возрастанию стоят, тогда выведет 101.

Код:
IF N = PRED THEN PRED = PRED + 1
Если что тогда строчку эту можно просто удалить.


Код:
CLS
RANDOMIZE TIMER
DIM N
N = 100
DIM ARRX(N)
FOR I = 1 TO N
ARRX(I) = INT(RND(I) * 100)
PRINT ARRX(I);
NEXT I

DIM PRED
DIM POSL
PRED = 0
POSL = 0

FOR I = 2 TO N
IF ARRX(I) >= ARRX(I - 1) THEN POSL = POSL + 1
IF ARRX(I) < ARRX(I - 1) AND POSL > PRED THEN PRED = POSL
IF ARRX(I) < ARRX(I - 1) THEN POSL = 0
NEXT I
IF PRED = 0 THEN PRED = POSL
PRED = PRED + 1
IF N = PRED THEN PRED = PRED + 1
PRINT "OTVET";
PRINT PRED
interacia вне форума   Ответить с цитированием
Старый 26.03.2014, 00:39   #3 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
По умолчанию

CLS
RANDOMIZE TIMER
DIM N
N = 100
DIM ARRX(N)
FOR I = 1 TO N
ARRX(I) = INT(RND(I) * 100)
PRINT ARRX(I);
NEXT I

FOR I = 1 TO N - тут возьми цикл от 0, а не от 1
Gruvi вне форума   Ответить с цитированием
Старый 26.03.2014, 10:55   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Все верно, по правилам синтаксиса элементы массива нумеруются с 0 по N, так что в массиве arrX[100] ровно 101 элемент
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 14:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.