• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите решить задачку

  • Автор темы Автор темы Zyklone
  • Дата начала Дата начала

Zyklone

Ученик
Регистрация
1 Ноя 2013
Сообщения
1
Реакции
0
Баллы
0
Помогите решить задачку

Помогите, пожалуйста, с решением задачи:
Дан одномерный массив arrX(100) As Integer. Необходимо определить длину максимальной последовательности элементов, отсортированных по возрастанию. (Если весь массив отсортирован, то результат будет 101).
 
(Если весь массив отсортирован, то результат будет 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
 
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
 
Все верно, по правилам синтаксиса элементы массива нумеруются с 0 по N, так что в массиве arrX[100] ровно 101 элемент :)
 
Назад
Сверху