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

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

Задать свой вопрос
1 ответ
// PascalABC.NET 3.0, сборка 1128
begin
  var k:=ReadInteger('Укажите номер записи k:');
  var a:=ReadLines('T1.txt').Select(x-gt;Length(x)).
         Where(x-gt;xlt;gt;0).ToArray;
  var n:=a.Length;
  if kgt;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; // 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 (lgt;0) and (llt;min) then min:=l
    end;
  Close(t); Reset(t);
  k:=m-k+1;
  if klt;1 then Writeln('В файле нет стольких строк')
  else begin
    m:=0;
    while mlt;gt;k do begin Readln(t,s); Inc(m) end;
    Writeln('Сумма равна ',min+Length(s))
    end;
  Close(t)
end.

Lidija Malitikova
Поправлю перенос строк, а то некрасиво
Виктор Пашнев
var a:=ReadLines('T1.txt').Select(x->Length(x)). Where(x->x<>0).ToArray;
Шереметинский Пашка
а что если будет пустая строчка в середине файла?
Igorjan
и почему пустая строка не считается минимальной?
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт