Найти сумму длин самой короткой и k-й от конца файла строк.

// PascalABC.NET 3.0, сборка 1128
begin
  var k:=ReadInteger(Укажите номер записи k:);
  var a:=ReadLines(T1.txt).Select(x->Length(x)).
         Where(x->x<>0).ToArray;
  var n:=a.Length;
  if k>n then Writeln(В файле записей меньше, чем ,k)
  else Writeln(Сумма равна ,a.Min+a[n-k+1])
end.

А теперь "школьный вариант"
// PascalABC.NET 3.0, сборка 1128
var
  t:text;
  min,l,m,n,k:integer;
  s:string;
begin
  k:=2; // вторая от конца запись
  Assign(t,T1.txt); Reset(t);
  min:=1000; m:=0;
  while not Eof(t) do begin
    ReadLn(t,s); Inc(m);
    l:=Length(s);
    if (l>0) and (l    end;
  Close(t); Reset(t);
  k:=m-k+1;
  if k<1 then Writeln(В файле нет стольких строк)
  else begin
    m:=0;
    while m<>k do begin Readln(t,s); Inc(m) end;
    Writeln(Сумма равна ,min+Length(s))
    end;
  Close(t)
end.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку