Максимальная сумма двух элементов последовательности - Free Pascal
Формулировка задачи:
На вход программе подаётся последовательность целых чисел, каждое из которых не превосходит по модулю 2*10^9 . Числа записаны в одной строке через пробел. Признак конца ввода
(в последовательность не входит) – число 2,1*10^9. Требуется найти максимальную сумму двух элементов этой последовательности, которые располагаются друг от друга на расстоянии не менее 3 (между ними должно быть как минимум два других элемента последовательности). Гарантируется, что в последовательности будет не менее четырёх элементов. Разрешено использовать условные операторы, операторы ввода-вывода, все циклы.
Решение задачи: «Максимальная сумма двух элементов последовательности»
textual
Листинг программы
Uses Crt; Const Pend = '2100000000'; Type tR = ^tRs; tRs = Record s : String; n : tR; end; Var Pb,Pe,P : tR; Ch : Char; St : String; Begin Pb:=nil; Writeln('Последовательность: '); Repeat St:=''; Repeat Repeat Ch:=ReadKey Until Ch in ['0'..'9',' ','-']; Write(Ch); If Ch<>' ' then St:=St+Ch; Until Ch=' '; If St<>Pend then Begin New(P); P^.s:=St; P^.n:=nil; If Pb=nil then Pb:=P else Pb^.n:=P; Pe:=P; end; Until St=Pend; {} {...} {} end.
Объяснение кода листинга программы
- Объявлены переменные и типы данных: — Pb, Pe, P — указатели на записи типа tRs; — Ch — символ, считываемый из входных данных; — St — строка, в которую считываются символы из входных данных; — Pend — константа, обозначающая максимальную сумму двух элементов последовательности.
- Инициализируется переменная Pb значением nil.
- Выводится сообщение «Последовательность: » и начинается цикл чтения и обработки входных данных.
- В каждой итерации цикла считывается строка символов, разделённых пробелами.
- Если считанная строка не равна Pend, то создаётся новый указатель на запись типа tRs, в поле s записывается считанная строка, в поле n записывается значение nil, а в поле s следующего указателя на запись (если он не равен nil) записывается ссылка на только что созданный указатель. Значение указателя на запись (Pb) присваивается ссылке на следующий указатель на запись (Pe).
- Если считанная строка равна Pend, то выходим из цикла.
- Выводим сообщение «{}» и другую информацию, которую мы не видим в данном примере.
- Если в цикле была прочитана хотя бы одна строка, то выводим сообщение «...».
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д