Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Пример программы обработки массива записей




 

Program MasZap;

{Создание и сортировка картотеки стран}

Const KMAX=10; {Максимальное количество стран}

Type Tzap=Record

name:String[15]; {Название}

area:Real; {Площадь}

popul:Real; {Население}

End;

Tmas=Array[1..KMAX] of Tzap;

{$R+}

Procedure SozdMZ(Var kz:Byte; Var MZ:Tmas);

{Процедура создания массива записей.

Выходные данные: kz - количество записей,

MZ - массив записей.}

Var i:Byte;

Begin Write('Задайте число стран не более ', KMAX,': ');

ReadLn(kz);

For i:=1 To kz Do

Begin Write('Название страны? ');

ReadLn(MZ[i].name);

Write('Площадь и население? ');

ReadLn(MZ[i].area, MZ[i].popul);

End;

End; { SozdMZ }

 

Procedure SortMZ(kz:Byte;Var MZ:Tmas);

{Процедура сортировки массива записей методом обмена.

Входные данные: kz - количество записей,

MZ - массив записей.

Выходные данные: MZ – отсортированный массив записей.}

Var i:Byte; z:Tzap; flag:Boolean;

Begin

If kz=0

Then Begin WriteLn('Массив пуст!');

WriteLn(‘Нажмите Enter ->’);

ReadLn; Exit; {Выход из процедуры}

End;

Repeat

flag:=FALSE;

For i:=1 To kz-1

Do If MZ[i].popul/MZ[i].area<MZ[i+1].popul/MZ[i+1].area

Then Begin z:=MZ[i];

MZ[i]:=MZ[i+1];

MZ[i+1]:=z;

flag:=TRUE;

End;

Until Not flag;

End; {SortMZ}

 

Procedure OutMZ(comStr:String;kz:Byte;Const MZ:Tmas);

{Процедура вывода массива записей.

Входные данные: comStr - комментирующая строка,

kz - количество записей,

MZ - массив записей}

Var i:Byte;

Begin

If kz=0

Then Begin

WriteLn('Массив пуст!');

Write(‘Нажмите Enter ->’);

ReadLn; Exit; { Выход из процедуры }

End;

WriteLn(ComStr:40); WriteLn;

WriteLn('Название страны','Площадь':20,'Население':20);

WriteLn;

For i:=1 To kz

Do With MZ[i]

Do WriteLn(name:16,area:20:7,popul:20:7);

WriteLn;

End; {OutMZ}

 

Var {Описание переменных программы}

ks:Byte; {Количество стран}

MS:Tmas; {Массив стран}

Begin

SozdMZ(KS,MS);

OutMZ('Исходный массив',ks,MS);

SortMZ(KS,MS);

OutMZ('Результат сортировки',ks,MS);

Write('После просмотра нажмите Enter ->');

ReadLn;

End.

 

 


 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных