Отсортировать данные по алфавиту - 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.

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

  1. Объявление переменных:
    • n - счетчик количества записей в файле;
    • i, j - переменные для сортировки;
    • f - файл для чтения;
    • s - строка для чтения записи из файла;
    • x - временная переменная для обмена значениями;
    • a - массив для хранения записей.
  2. Чтение данных из файла f.txt и заполнение массива a.
  3. Сортировка массива a по полю fam в алфавитном порядке.
  4. Переименование файла f.txt в f1.txt.
  5. Запись отсортированных данных из массива a в файл f1.txt.
  6. Вывод сообщения об успешном выполнении задачи.

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

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