PROGRAM Proba; Uses CRT; Const FacultyMax=10; Type SNP = Record Surname,Name,Patronymic:String; end; Faculty = Record Name:String; YearOfCreation:Integer; Dean:SNP; WorkersCount,StudentsCount:Integer; End; FacultyS = Record Faculty:array[1..FacultyMax] of Faculty; Count:Integer; End; var VUZ:FacultyS; procedure LAB(i:integer); begin ClrScr; WriteLn('Лабораторна робота TP-',i); WriteLn('Студента групи ПЗ-08-1'); WriteLn('Слащова Антона Iгоровича'); WriteLn; end; Procedure InputFile(var ob:FacultyS;FaleName:string); Var F:text; begin Assign(F, FaleName); Reset(F); ob.Count:=0; While Not EOF(F) Do Begin ob.Count:=ob.Count+1; ReadLn(F,ob.Faculty[ob.Count].Name); ReadLn(F,ob.Faculty[ob.Count].YearOfCreation); ReadLn(F,ob.Faculty[ob.Count].Dean.Surname); ReadLn(F,ob.Faculty[ob.Count].Dean.Name); ReadLn(F,ob.Faculty[ob.Count].Dean.Patronymic); ReadLn(F,ob.Faculty[ob.Count].WorkersCount); ReadLn(F,ob.Faculty[ob.Count].StudentsCount); End; close(F); end; Procedure Output(var ob:FacultyS); Var i:integer; begin WriteLn('-------------------|------|-----------------------|----------------|-----------'); WriteLn('Название факультета| Год | ФИО декана | Преподавателей | Студентов'); WriteLn('-------------------|------|-----------------------|----------------|-----------'); for i:=1 to ob.Count do Begin WriteLn( ob.Faculty[i].Name,' | ', ob.Faculty[i].YearOfCreation,' | ', ob.Faculty[i].Dean.Surname,' ', ob.Faculty[i].Dean.Name,' ', ob.Faculty[i].Dean.Patronymic,'| ', ob.Faculty[i].WorkersCount,' | ', ob.Faculty[i].StudentsCount); End; WriteLn('-------------------|------|-----------------------|----------------|-----------'); end; Procedure Sort(var ob:FacultyS); Var i,j:integer; p:Faculty; begin for i:=1 to ob.Count-1 do for j:=i+1 to ob.Count do if ob.Faculty[i].StudentsCount<ob.Faculty[j].StudentsCount then Begin p:=ob.Faculty[i]; ob.Faculty[i]:=ob.Faculty[j]; ob.Faculty[j]:=p; End; end; Begin clrscr; LAB(11); InputFile(VUZ,'TP12.txt'); Sort(VUZ); Output(VUZ); ReadKey; End.
TP12.txt
Code
факультет номер 1 1990 Иванов Иван Иванович 3 20 факультет номер 2 1980 Петров Петя Печаткин 4 60 факультет номер 3 1991 Пупкин Вася Озбестович 5 40