Ок. Тебе нужно сделать так:
| Код | type TPupil = record surname : string[32]; score : byte; number : integer; end;
TArray = array [1..8] of TPupil;
var arr : TArray; |
Теперь чтобы прочитать фамилию ученика из 3-го элемента надо написать
Далее идем сюда http://forum.vingrad.ru/faq/Vingrad-help-center.html и подбираем метод сортировки на свой вкус. Например, самое простое - методом пузырька. Везде в тех примерах полагается, что у нас array of integer, а у нас - запись. Все что надо - обращения типа arr[i] заменить на arr[i].score. Т.е. ключевые процедуры изменяться примерно так:
| Код | procedure PrintArray(iArray : TArray); var i : integer; begin for i := 1 to MAX do WriteLn(iArray[i].surname:33, iArray[i].score:4, iArray[i].number); end;
procedure Swap(var iArray : TArray; iPos1, iPos2 : integer); var tmp : TPupil; begin tmp := iArray[iPos1]; iArray[iPos1] := iArray[iPos2]; iArray[iPos2] := tmp; end;
procedure BubbleSort(var iArray : TArray); var i, j : integer; begin for i := 1 to MAX - 1 do for j := 1 to MAX - i do if iArray[j].score > iArray[j+1].score then swap(iArray, j, j + 1); end; |
|