Распечатать наиболее длинные последовательности символов, у которых ascii коды последовательно возрастают и убывают - QBasic

Узнай цену своей работы

Формулировка задачи:

Задача:

Из исходной строки символов a$ выбрать и распечатать наиболее длинные последовательности символов, у которых ASCII-коды последовательно возрастают и убывают(исходные данные вводятся с клавиатуры)

Помогите самую суть написать(цикл) , вот у меня начало:
И концовка:

Решение задачи: «Распечатать наиболее длинные последовательности символов, у которых ascii коды последовательно возрастают и убывают»

textual
Листинг программы
INPUT a$
n = 1
v$ = MID$(a$, 1, 1)
maxv = 1
m = 1
u$ = MID$(a$, 1, 1)
maxu = 1
FOR i = 2 TO LEN(a$)
IF MID$(a$, i, 1) > MID$(a$, i - 1, 1) THEN
n = n + 1
v$ = v$ + MID$(a$, i, 1)
IF n > maxv THEN
maxv = n
voz$ = v$
END IF
ELSE
v$ = MID$(a$, i, 1)
n = 1
END IF
IF MID$(a$, i, 1) < MID$(a$, i - 1, 1) THEN
m = m + 1
u$ = u$ + MID$(a$, i, 1)
IF m > maxu THEN
maxu = n
ubyv$ = u$
END IF
ELSE
u$ = MID$(a$, i, 1)
m = 1
END IF
NEXT
PRINT "maxim vozr="; voz$
PRINT "maxim ubyv="; ubyv$

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Вводится строка a$.
  2. Переменная n инициализируется значением 1.
  3. В переменную v$ записывается первый символ строки a$.
  4. Переменная maxv инициализируется значением 1.
  5. Переменная m инициализируется значением 1.
  6. В переменную u$ записывается первый символ строки a$.
  7. Переменная maxu инициализируется значением 1.
  8. Запускается цикл, который выполняется от второго до последнего символа строки a$.
  9. Если текущий символ больше предыдущего, то к переменной n прибавляется 1, в переменную v$ добавляется текущий символ, и если n больше maxv, то maxv заменяется на n, а voz$ на v$.
  10. Если текущий символ меньше предыдущего, то переменная n сбрасывается в 1, а цикл продолжается.
  11. Если текущий символ больше предыдущего, то к переменной m прибавляется 1, в переменную u$ добавляется текущий символ, и если m больше maxu, то maxu заменяется на m, а ubyv$ на u$.
  12. Если текущий символ меньше предыдущего, то переменная m сбрасывается в 1, а цикл продолжается.
  13. Цикл завершается.
  14. Выводятся сообщения с наибольшими последовательностями символов: maxim vozr= и maxim ubyv=.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.8 из 5
Похожие ответы