Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть2.doc
Скачиваний:
7
Добавлен:
26.11.2019
Размер:
383 Кб
Скачать
☆

3.3. Спецификация подпрограмм:

Еnt_Num :

3.3.1. Имя

Ent_Num

3.3.2. Назначение

Начальное заполнение массива элементами.

3.3.3. Входные данные

Отсутствуют

3.3.4. Выходные данные

mass :t_massive - исходный массив заданной размерности

3.3.5. Вид подпрограммы:

Процедура

3.3.6. Заголовок подпрограммы.

Procedure Ent_num(var mass :t_massive);

Show_Num_First :

3.3.1. Имя

Show_Num_First

3.3.2. Назначение

Вывод элементов массива в начальном расположении

3.3.3. Входные данные

mass :t_massive - исходный заполненный элементами массив

3.3.4. Выходные данные

Отсутствуют

3.3.5. Вид подпрограммы

Процедура

3.3.6. Заголовок подпрограммы.

Procedure Show_num_first (var mass :t_massive) ;

Working :

3.3.1. Имя

Working

3.3.2. Назначение

Перестановка элементов массива по заданному правилу.

3.3.3. Входные данные

mass_A:t_massive - массив заполненный элементами до перестановки

3.3.4. Выходные данные

mass_B: t_massive - массив заполненный элементами после перестановки

3.3.5. Вид подпрограммы:

Процедура

3.3.6. Заголовок подпрограммы.

Procedure Working(var mass_A, mass_B :t_massive);

Show_Num_Done :

3.3.1. Имя

Show_Num_Done

3.3.2. Назначение

Вывод на экран элементов массива после перестановки

3.3.3. Входные данные

mass :t_massive - массив заполненный элементами после перестановки

3.3.4. Выходные данные

Отсутствуют

3.3.5. Вид подпрограммы

Процедура

3.3.6. Заголовок подпрограммы.

Procedure Show_num_done (var mass :t_massive);

  1. Текст программы:

Program Sort_Array_per_Index;

Const n = 10;

Type t_massive = array [1..n] of Real;

Procedure Ent_num(var mass :t_massive);

{Процедура получения значений элементов mass1 и его начальное заполнение }

var i :integer;

begin

writeln('Bведите элементы массива. ');

for i:=1 to n do read(mass[i]);

end;

Procedure Show_num_first (var mass :t_massive) ;

{ Процедура вывода на экран элементов mass1 (в начальном расположении) }

var i :integer;

begin

writeln;

writeln('Начальное заполнение массива : ');

writeln('Вида а1 а2 а3 а4 а5 а6 а7 а8 а9 а10 ');

for i:=1 to n do write(mass[i]:1:1,' ');

readln;

end;

Procedure Working(var mass_A, mass_B :t_massive);

{Процедура получения отсортированных значений и их запись в mass2}

var temp, i :integer;

begin

temp:=0;

for i:=1 to n do

begin

if(i mod 2) <> 0 then

begin

mass_B[(i-temp)] := mass_A[i];

temp:=temp+1;

end;

if(i mod 2) = 0 then mass_B[((i+n) div 2)] := mass_A[i];

end;

end;

Procedure Show_num_done (var mass :t_massive);

{ Процедура вывода на экран элементов mass2 (после сортировки) }

var i :integer;

begin

writeln; writeln;

writeln('Массив после сортировки: ');

writeln('Вида а1 а3 а5 а7 а9 а2 а4 а6 а8 а10 ');

for i:=1 to n do write(mass[i]:1:1,' ');

writeln; writeln; writeln('Для выхода из программы нажмите ENTER.');

readln;

end;

Var

mass2, mass1 :t_massive;

Begin

Ent_num(mass1);

Show_num_first(mass1);

Working(mass1, mass2);

Show_num_done(mass2);

End.