Сортировка массивов в текстовом файле - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В файле 'input.txt' содержится Ivanov 650000 Petrov 780000 Sidarov 590000 Livanova 760000 Мне надо эти данные перенести в другой файл 'output.txt' но только числа в порядке возрастания Я сейчас сделал чтобы только хотя бы числа выводились в порядке возрастания,но они не выводятся ,объясните в чём проблема пожалуйста.

Решение задачи: «Сортировка массивов в текстовом файле»

textual
Листинг программы
program sortmass;
type zap=record //тип запись с полями
         fio:string[20];//фио
         zrp:longint; //зарплата
         end;
var a:array[1..100] of zap;//массив записей
    f:text;
    i,j,k,m:integer;
    z:zap;
    s:string;
begin
assign(f,'input.txt');//файл в папке с программой(у меня)
reset (f);
k:=0;
while not EOF (f) do //читаем записи из файла
 begin
  k:=k+1;//номер записи
  readln(f,a[k].fio);//читаем фамилию
  read(f,a[k].zrp);//читаем зарплату
  readln(f,s);//пропускаем эту строку
 end;
close(f);
for i:=1 to k-1 do//сортируем массив по возрастанию зарплаты
for j:=i+1 to k do
if a[i].zrp>a[j].zrp then
 begin
  z:=a[i];
  a[i]:=a[j];
  a[j]:=z;
 end;
assign(f,'output.txt');
rewrite (f);
for i:=1 to k do //пишем массив в новый файл
 begin
  writeln (f,a[i].fio);
  writeln(f,a[i].zrp)
 end;
close (f);
write('Отсортированные данные записаны в файл output.txt')
End.

Объяснение кода листинга программы

  1. Создается тип записи zap с полями fio и zrp.
  2. Создается переменная a типа array[1..100] of zap, которая представляет собой массив 100 записей типа zap.
  3. Создается переменная f типа text, которая представляет собой файл для чтения и записи.
  4. Создаются переменные i, j, k и m типа integer, которые будут использоваться для работы с массивом и файлом.
  5. Создается переменная z типа zap, которая будет использоваться для временного хранения данных при сортировке.
  6. В цикле while читаются записи из файла input.txt.
  7. Число k увеличивается на 1 после каждой прочитанной записи.
  8. Читается значение fio и zrp из текущей записи и сохраняется в соответствующих полях переменной a[k].
  9. После окончания цикла while закрывается файл input.txt.
  10. Задается новый файл output.txt для записи отсортированных данных.
  11. В цикле for отсортировывается массив a по возрастанию зарплаты.
  12. Если текущая зарплата меньше следующей, то происходит обмен местами записей, хранящихся в переменных a[i] и a[j].
  13. В цикле for записываются отсортированные данные в файл output.txt.
  14. Закрывается файл output.txt.
  15. Выводится сообщение Отсортированные данные записаны в файл output.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы