Вывести сначала все фамилии на А, а порядок остальных не важен - Turbo Pascal
Формулировка задачи:
Вывести сначала все фамилии на А, а порядок остальных не важен, программа правильная
как её сделать через процедуру?
Листинг программы
- type student = record
- Name :string;
- Surname :string;
- end;
- var
- i: integer;
- students: array[1..20] of student;
- f:text;
- begin
- assign(f,'fio.txt');
- reset(f);
- writeln('Исходные Фамилии');
- for i:=1 to 20 do
- begin
- readln(f,students[i].Surname);
- write(students[i].Surname:4);
- end;
- for i:=1 to 20 do
- if students[i].Surname[1] = 'А' then
- writeln('Фамилия: ',students[i]);
- for i:=1 to 20 do if students[i].Surname[1] <> 'А' then writeln('Фамилия: ',students[i]);
- close(f);
- end.
Решение задачи: «Вывести сначала все фамилии на А, а порядок остальных не важен»
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.
Объяснение кода листинга программы
- Создается тип данных
student
, который представляет собой запись с полямиName
иSurname
. - Создается массив типа
student
с именемTst
и длиной 20 элементов. - Определяется процедура
Sort
, которая принимает в качестве параметра переменнуюst
типаTst
. В этой процедуре происходит сортировка массиваTst
по фамилии студента. - В основной программе создается переменная
students
типаTst
и инициализируется значением по умолчанию. - Задается файл
fio.txt
и считывается его содержимое в переменнуюstudents
. - Выводится список фамилий студентов, отсортированный по фамилии. Если в файле есть 4 фамилии одинакового типа, то эти фамилии выводятся вместе.
- После считывания всех фамилий происходит вызов процедуры
Sort
для сортировки массиваstudents
. - Выводится окончательный список фамилий студентов, отсортированный по фамилии.
- Программа завершается вызовом функции
Readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д