В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и записать в другой файл. Pascal.

Вопрос школьника по предмету Информатика

В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и записать в другой файл. Pascal.

Ответ учителя по предмету Информатика

В PascalABC.NET эта задача решается легко и быстро. В других версиях будет монстрик.

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017

// Внимание! Если программа не работает, обновите версию!

procedure MakeFile(path:string);

// не относится к заданию, создает файл Text со 100 числами

begin

  WriteLines(path,SeqRandom(100,-99,99).Select(x->x.ToString))

end;

begin

  MakeFile(‘MyFile1.txt’);

  // теперь у нас есть текстовый файл из 100 случайных чисел

  // собственно, решение

  var n:=ReadInteger(‘Укажите количество чисел:’);

  var a:=ReadLines(‘MyFile1.txt’).Take(n).ToArray;

  Writeln(‘Исходная последовательность’); a.Println;

  Writeln(‘Результирующая последовательность’);

  a:=a.OrderBy(x->x.Last).ToArray; a.Println;

  WriteAllLines(‘MyFile2.txt’,a);

end.

Пример

Укажите количество чисел: 15

Исходная последовательность

51 -9 17 -12 7 -15 -20 50 98 19 56 67 -57 -42 64

Результирующая последовательность

-20 50 51 -12 -42 64 -15 56 17 7 67 -57 98 -9 19

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей