Вывести сначала все фамилии на А, а порядок остальных не важен - Turbo Pascal

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

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

Вывести сначала все фамилии на А, а порядок остальных не важен, программа правильная как её сделать через процедуру?

Решение задачи: «Вывести сначала все фамилии на А, а порядок остальных не важен»

textual
Листинг программы
type student = record
                Name :string;
                Surname :string;
               end;
     Tst=array[1..20] of student;
procedure Sort(var st:Tst);
var  x,y:integer;
     t:student;
begin
      x:=19;
      repeat
        if st[x].Surname[1]<>'A' then
         begin
           t.Surname:=st[x].Surname;
           for y:=x to 19 do
            st[y].Surname:=st[y+1].Surname;
           st[20].Surname:=t.Surname;
         end;
        Dec(x);
      until x<1;
end;
var  i,j: integer;
     students: Tst;
     f:text;
     t:student;
begin
     j:=0;
     assign(f,'fio.txt');
     reset(f);
     writeln('Ishodnie familii'); Writeln;
     for i:=1 to 20 do
      begin
        readln(f,students[i].Surname);
        if j=4
         then begin
                Writeln(students[i].Surname:15);
                j:=0;
              end
         else begin
                Write(students[i].Surname:15);
                Inc(j);
              end;
      end;
     Close(f);
     Sort(students);
     Writeln;
     Writeln('Konecniy spisok:'); Writeln;
     j:=0;
     for i:=1 to 20 do
      if j=4
       then begin
              Writeln(students[i].Surname:15);
              j:=0;
            end
       else begin
              Write(students[i].Surname:15);
              Inc(j);
            end;
      Readln;
end.

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

  1. Создается тип данных student, который представляет собой запись с полями Name и Surname.
  2. Создается массив типа student с именем Tst и длиной 20 элементов.
  3. Определяется процедура Sort, которая принимает в качестве параметра переменную st типа Tst. В этой процедуре происходит сортировка массива Tst по фамилии студента.
  4. В основной программе создается переменная students типа Tst и инициализируется значением по умолчанию.
  5. Задается файл fio.txt и считывается его содержимое в переменную students.
  6. Выводится список фамилий студентов, отсортированный по фамилии. Если в файле есть 4 фамилии одинакового типа, то эти фамилии выводятся вместе.
  7. После считывания всех фамилий происходит вызов процедуры Sort для сортировки массива students.
  8. Выводится окончательный список фамилий студентов, отсортированный по фамилии.
  9. Программа завершается вызовом функции Readln.

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

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