Заголовки в разделе int/imp не совпадают т.к. паскаль TMT, не расчитываю сюда код кидать.
Частичка первого модуля с описанным типом:
Код
Unit Students;
Interface
Uses
CRT;
Type
TStudent = record
Name: String[20];
AverMark: Single;
Address: String[20];
Group: String[5];
end;
TStudents = Array [1..10] OF TStudent;
TRecords = object
private
Records: TStudents;
Size: Byte;
end;
Implementation
// zdes xo4u ispolzovat' proceduru sortirovki, naprimer
Begin
SearchByName(Records);
End.
Частичка модуля с процедурой:
Код
Unit SortSear;
Interface
Uses
CRT, Students;
Type
TSortSear = object
Procedure SearchByName(var RecordsToSort: TStudents);
end;
Implementation
Procedure TSortSear.SearchByName;
var
Name: String[20];
i: Byte;
SearchResult: Boolean;
SearchCounter: Byte;
begin
SearchResult := False;
SearchCounter := 0;
TextColor(Black);
For i := 4 To 6 Do
begin
GotoXy(1, i);
ClrEOL;
end;
GotoXy(1, 4);
WriteLn('þ Search by Name/Surname:');
Name := ReadName(WhereX+1, WhereY+1, 20);
TextColor(Black);
Write('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
For i := 1 To Size Do
if Pos(UpperCase(Name), UpperCase(Records[i].Name)) > 0 Then
begin
inc(SearchCounter);
SearchResult := True;
{#} Write(SearchCounter:3, ')'); {#}
{#} Write(Records[i].Name:21); {#}
{#} Write(Records[i].Group:11); {#}
{#} Write(Records[i].AverMark:11:1); {#}
{#} WriteLn(Records[i].Address:25);
end;
if NOT SearchResult Then
begin
TextColor(Red);
WriteLn('þ No results found!');
TextColor(Black);
Write('þ Press any key to continue...');
end;
ReadKey;
end;
End.