Максимальная сумма двух элементов последовательности - 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, то выходим из цикла.
- Выводим сообщение «{}» и другую информацию, которую мы не видим в данном примере.
- Если в цикле была прочитана хотя бы одна строка, то выводим сообщение «...».
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д