Сортировка массивов в текстовом файле - 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.
Объяснение кода листинга программы
- Создается тип записи
zap
с полямиfio
иzrp
. - Создается переменная
a
типаarray[1..100] of zap
, которая представляет собой массив 100 записей типаzap
. - Создается переменная
f
типаtext
, которая представляет собой файл для чтения и записи. - Создаются переменные
i
,j
,k
иm
типаinteger
, которые будут использоваться для работы с массивом и файлом. - Создается переменная
z
типаzap
, которая будет использоваться для временного хранения данных при сортировке. - В цикле while читаются записи из файла
input.txt
. - Число
k
увеличивается на 1 после каждой прочитанной записи. - Читается значение
fio
иzrp
из текущей записи и сохраняется в соответствующих полях переменнойa[k]
. - После окончания цикла while закрывается файл
input.txt
. - Задается новый файл
output.txt
для записи отсортированных данных. - В цикле for отсортировывается массив
a
по возрастанию зарплаты. - Если текущая зарплата меньше следующей, то происходит обмен местами записей, хранящихся в переменных
a[i]
иa[j]
. - В цикле for записываются отсортированные данные в файл
output.txt
. - Закрывается файл
output.txt
. - Выводится сообщение
Отсортированные данные записаны в файл output.txt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д