Отсортировать данные по алфавиту - PascalABC.NET
Формулировка задачи:
Суть программы она должна отсортировать данные по алфавиту. Можно ли сделать так что-бы при выводе программы из файла она каждую фамилию писала с новой строки?
Теперь вообще не работает
Она работает но не до конца правильно. Вот допустим если в файле записаны данные так "Серг 2224 Пере 3243 Купр 4223 " то она выдает " Купр 4223 Серг 2224 Пере 3243 " как и должно быть но если там просто имена или полные имена то она ни чего не делает
вот я написал программу которая делает тоже самое но не с данными из файла и она работает нормально
Как сделать чтобы тоже само работало с данными из файла?
Решение задачи: «Отсортировать данные по алфавиту»
textual
Листинг программы
{Дан файл f.txt, состоящий из записей . Каждая запись содержит поля:
-табельный номер(целое число от 0 до 9999).
- фамилия (Символьное поле длиной 30 ).
Упорядочить записи по полю фамилия (в алфавитном порядке
и записать в файл f1.txt)
с помощью алгоритма сортировки и вывести новый массив.}
type zap=record
nom:integer;
fam:string[30];
end;
var a:array[1..100] of zap;
n,i,j:integer;
f:text;
s:string;
x:zap;
begin
n:=0;
assign(f,'f.txt');
reset(f);
while not eof(f) do
begin
readln(f,s);
n:=n+1;
a[n].nom:=strtoint(copy(s,1,pos(' ',s)-1));
delete(s,1,pos(' ',s));
a[n].fam:=s;
end;
close(f);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i].fam>a[j].fam then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
assign(f,'f1.txt');
rewrite(f);
for i:=1 to N do
begin
write(f,a[i].nom);
writeln(f,' ',a[i].fam);
end;
close(f);
writeln('Файл f.txt прочитан, данные отсортированы по алфавиту и записаны в файл f1.txt');
end.
Объяснение кода листинга программы
- Объявление переменных:
n- счетчик количества записей в файле;i,j- переменные для сортировки;f- файл для чтения;s- строка для чтения записи из файла;x- временная переменная для обмена значениями;a- массив для хранения записей.
- Чтение данных из файла
f.txtи заполнение массиваa. - Сортировка массива
aпо полюfamв алфавитном порядке. - Переименование файла
f.txtвf1.txt. - Запись отсортированных данных из массива
aв файлf1.txt. - Вывод сообщения об успешном выполнении задачи.