
Информатика 10 класс, на Паскале без сложных функций (решение для 10 класса)в файле записано не
более 100 чисел отсортировать их по возрастанию суммы цифр и записать в другой файлв интернете все программы не работают, проверял, поэтому если скопируете - бан!

Ответы на вопрос

Ответ:
Исходный код программы, а также результат выполнения (ввод через input.txt, вывод через output.txt) прикреплены во вложении.
Пояснение:
Как я понял, традиционными способами в паскале вряд ли получится просто прочитать все числа до конца файла. Если в файле добавить хоть один перенос строки, данная программа уже работать не будет.




Конечно, я могу помочь вам написать программу на языке Pascal для сортировки чисел по возрастанию суммы их цифр и записи результатов в другой файл. Пример программы:
pascalprogram SortByDigitSum; const MaxNumbers = 100; type NumberArray = array[1..MaxNumbers] of Integer; var InputFileName, OutputFileName: string; Numbers: NumberArray; TotalNumbers: Integer; procedure ReadNumbersFromFile(const FileName: string; var Numbers: NumberArray; var TotalNumbers: Integer); var InputFile: TextFile; i: Integer; begin AssignFile(InputFile, FileName); Reset(InputFile); TotalNumbers := 0; while not Eof(InputFile) do begin Inc(TotalNumbers); ReadLn(InputFile, Numbers[TotalNumbers]); end; CloseFile(InputFile); end; procedure WriteNumbersToFile(const FileName: string; const Numbers: NumberArray; TotalNumbers: Integer); var OutputFile: TextFile; i: Integer; begin AssignFile(OutputFile, FileName); Rewrite(OutputFile); for i := 1 to TotalNumbers do WriteLn(OutputFile, Numbers[i]); CloseFile(OutputFile); end; function GetDigitSum(Number: Integer): Integer; var Sum, Digit: Integer; begin Sum := 0; while Number > 0 do begin Digit := Number mod 10; Sum := Sum + Digit; Number := Number div 10; end; Result := Sum; end; procedure Swap(var a, b: Integer); var temp: Integer; begin temp := a; a := b; b := temp; end; procedure BubbleSortByDigitSum(var Numbers: NumberArray; TotalNumbers: Integer); var i, j: Integer; begin for i := 1 to TotalNumbers - 1 do for j := 1 to TotalNumbers - i do if GetDigitSum(Numbers[j]) > GetDigitSum(Numbers[j + 1]) then Swap(Numbers[j], Numbers[j + 1]); end; begin Write('Введите имя файла с числами: '); ReadLn(InputFileName); Write('Введите имя файла для записи результатов: '); ReadLn(OutputFileName); ReadNumbersFromFile(InputFileName, Numbers, TotalNumbers); BubbleSortByDigitSum(Numbers, TotalNumbers); WriteNumbersToFile(OutputFileName, Numbers, TotalNumbers); WriteLn('Числа были отсортированы и записаны в файл ', OutputFileName); end.
Скопируйте этот код в среду программирования для Pascal, сохраните файл с расширением .pas
и выполните программу. Убедитесь, что у вас есть файл с числами, которые вы хотите отсортировать, и введите его имя при выполнении программы. После завершения выполнения будет создан новый файл с отсортированными числами по сумме их цифр.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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