Максимальная сумма двух элементов последовательности - 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.

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

  1. Объявлены переменные и типы данных: — Pb, Pe, P — указатели на записи типа tRs; — Ch — символ, считываемый из входных данных; — St — строка, в которую считываются символы из входных данных; — Pend — константа, обозначающая максимальную сумму двух элементов последовательности.
  2. Инициализируется переменная Pb значением nil.
  3. Выводится сообщение «Последовательность: » и начинается цикл чтения и обработки входных данных.
  4. В каждой итерации цикла считывается строка символов, разделённых пробелами.
  5. Если считанная строка не равна Pend, то создаётся новый указатель на запись типа tRs, в поле s записывается считанная строка, в поле n записывается значение nil, а в поле s следующего указателя на запись (если он не равен nil) записывается ссылка на только что созданный указатель. Значение указателя на запись (Pb) присваивается ссылке на следующий указатель на запись (Pe).
  6. Если считанная строка равна Pend, то выходим из цикла.
  7. Выводим сообщение «{}» и другую информацию, которую мы не видим в данном примере.
  8. Если в цикле была прочитана хотя бы одна строка, то выводим сообщение «...».

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


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

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

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