Распечатать наиболее длинные последовательности символов, у которых 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$
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Вводится строка
a$
. - Переменная
n
инициализируется значением 1. - В переменную
v$
записывается первый символ строкиa$
. - Переменная
maxv
инициализируется значением 1. - Переменная
m
инициализируется значением 1. - В переменную
u$
записывается первый символ строкиa$
. - Переменная
maxu
инициализируется значением 1. - Запускается цикл, который выполняется от второго до последнего символа строки
a$
. - Если текущий символ больше предыдущего, то к переменной
n
прибавляется 1, в переменнуюv$
добавляется текущий символ, и еслиn
большеmaxv
, тоmaxv
заменяется наn
, аvoz$
наv$
. - Если текущий символ меньше предыдущего, то переменная
n
сбрасывается в 1, а цикл продолжается. - Если текущий символ больше предыдущего, то к переменной
m
прибавляется 1, в переменнуюu$
добавляется текущий символ, и еслиm
большеmaxu
, тоmaxu
заменяется наm
, аubyv$
наu$
. - Если текущий символ меньше предыдущего, то переменная
m
сбрасывается в 1, а цикл продолжается. - Цикл завершается.
- Выводятся сообщения с наибольшими последовательностями символов:
maxim vozr=
иmaxim ubyv=
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д