Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Находится наибольший элемент вмассиве из N элементов (пусть он имеет номер р) и меняется местами с элементом, стоящим на N-м месте, при условии, что N<>p. Из оставшихся (N-1) элементов снова выделяется наибольший и меняется местами с элементом, стоящим на (N-1)-м месте и т. д. Алгоритм заканчивает свою работу, когда элементы, стоящие на 1-м и 2-м местах в массиве, будут упорядочены (для этого понадобится N-1 "проход" алгоритма). Аналогично данный алгоритм можно применять и к наименьшим элементам.
Пример: отсортировать массив А(1..N) по возрастанию.
program sort);
var a: array[1..n] of Real;
var i, j, min, vsp: integer;
begin
for i:= 1 to n - 1 do
begin
min:=i;
for j:= i+1 to n do
if a[j]<a[min] then min:= j;
vsp:=a[i]; a[i]:=a[min]; a[min]:=vsp;
end;
end;
Записи
Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления типа записи такова:
<имя типа> = RECORD <сп.полей> END
Здесь <имя типа> - правильный идентификатор;
RECORD, END - зарезервированные слова (запись,конец); <сп.полей> - список полей; представляет собой последовательность разделов записи, между которыми ставится точка с запятой.
Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором (идентификаторами) ставится двоеточие и описание типа поля (полей), например:
type
BirthDay = record
day,month: Byte;
year: Word
end;
var
a,b: Birthday;
В этом примере тип BIRTHDAY (день рождения) есть запись с полями DAY, MONTH и YEAR (день, месяц и год); переменные А и В содержат записи типа BIRTHDAY.
Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например
а:= b;
К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля:
а.day:= 27;
b.year:= 1939;
Для вложенных полей приходится продолжать уточнения:
type
BirthDay = record
day,month: Byte;
year: Word
end;
var
с: record
name: String;
bd: BirthDay
end;
begin
if c.bd.year = 1939 then...
end.
Чтобы упростить доступ к полям записи, используется оператор присоединения WITH:
WITH <переменная> DO <оператор>
Здесь WITH, DO - ключевые слова (с, делать);
<переменная> - имя переменной типа запись, за которым, возможно, следует список вложенных полей; <оператор> - любой оператор Турбо Паскаля.
Например:
with c.bd do month:= 9; Это эквивалентно with с do with bd do month:= 9;
или
with c,bd do month:= 9;
или
c.bd.month:= 9;
Дата публикования: 2014-12-08; Прочитано: 209 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!