
Вопрос задан 10.04.2021 в 21:33.
Предмет Информатика.
Спрашивает Кузьмин Константин.
В файле записано не более 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
// 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



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вот пример программы на Pascal, которая отсортирует числа из одного файла по возрастанию последней цифры и запишет их в другой файл:
pascalprogram SortByLastDigit; var input, output: Text; nums: array [1..100] of Integer; count, i, j, temp: Integer; function GetLastDigit(num: Integer): Integer; begin GetLastDigit := num mod 10; end; procedure BubbleSort; begin for i := 1 to count - 1 do for j := 1 to count - i do if GetLastDigit(nums[j]) > GetLastDigit(nums[j+1]) then begin temp := nums[j]; nums[j] := nums[j+1]; nums[j+1] := temp; end; end; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); count := 0; while not eof(input) do begin inc(count); readln(input, nums[count]); end; BubbleSort; for i := 1 to count do writeln(output, nums[i]); close(input); close(output); end.
Как использовать эту программу:
- Создайте файл "input.txt" и запишите в него не более 100 чисел, каждое число на новой строке.
- Запустите программу и она отсортирует числа и запишет результат в файл "output.txt".


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili