Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Схема программы



Читайте также:
  1. AvrStudio в режиме отладки программы
  2. I. Схема характеристики.
  3. II. НОРМАТИВНОЕ ПРАВОВОЕ ОБЕСПЕЧЕНИЕ деятельности учреждений образования, реализующих образовательные программы общего среднего образования
  4. II. Требования к результатам освоения основной образовательной программы начального общего образования
  5. II. ТРЕБОВАНИЯ К СТРУКТУРЕ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ДОШКОЛЬНОГО ОБРАЗОВАНИЯ И ЕЕ ОБЪЕМУ
  6. III. Методический раздел программы
  7. III. Требования к структуре основной образовательной программы начального общего образования

Program Problem5;

Описание массивов и переменных.

Процедура быстрой сортировки.

Begin

Создание двумерного массива с помощью функции случайных чисел и одновременное "растягивание" в одномерный массив, а также вывод полученной матрицы на экран.

Вызов процедуры быстрой сортировки и сортировка одномерного массива в порядке возрастания.

v:= 1; - счетчик столбцов матрицы, получаемой из отсортированного одномерного массива;

k:= 0; - счетчик элементов одномерного массива;

Repeat

if v mod 2 <> 0 then

for i:= 1 to n do

Begin

k:= k + 1;

a[i, v]:= b[k]

End

Else

for i:= n downto 1 do

Begin

k:= k + 1;

a[i, v]:= b[k]

end;

v:= v + 1

until v = m + 1;

Вывод массива на экран.

end.

Программа

Program Problem5;

Const

n = 5; m = 6;

Type

s = array [1..m] of integer; t = array [1..n] of s; f = array [1..n*m] of integer;

Var

a: t;

b: f;

i, j, k, v: integer;

{----------------------------------------------------------------------------------------}

Procedure create_two(n, m: integer; var a: t);

Var

i, j: integer;

Begin

writeln('Заданный двумерный массив целых чисел');

randomize;

for i:= 1 to n do

Begin

for j:= 1 to m do

Begin

a[i, j]:= random(201) - 100;

write(a[i, j]:6, ' ')

End;

writeln

End

End;

{----------------------------------------------------------------------------------------}

Procedure sprain(n, m: integer; a: t; var b: f);

Var

k, i, j: integer;

Begin

k:= 0;

for i:= 1 to n do

for j:= 1 to m do

Begin

k:= k + 1;

b[k]:= a[i, j]

End

End;

{----------------------------------------------------------------------------------------}

Procedure fast(q, p: integer; var b: f);

Var

s, l, r: integer;

Begin

l:= q; r:= p;

s:= b[l];

Repeat

while (b[r] >= s) and (l < r) do r:= r - 1;

b[l]:= b[r];

while (b[l] <= s) and (l < r) do l:= l + 1;

b[r]:= b[l]

until l = r;

b[l]:= s;

if q < l - 1 then fast(q, l - 1, b);

if l + 1 < p then fast(l + 1, p, b)

End;

{----------------------------------------------------------------------------------------}

Begin

create_two(n, m, a);

sprain(n, m, a, b);

fast(1, n*m, b);

for i:= 1 to n*m do write(b[i], ' '); writeln;

v:= 1; k:= 0;

Repeat

if v mod 2 <> 0 then

for i:= 1 to n do

Begin

k:= k + 1;

a[i, v]:= b[k]

End

Else

for i:= n downto 1 do

Begin

k:= k + 1;

a[i, v]:= b[k]

End;

v:= v + 1

until v = m + 1;

writeln('Массив расположения элементов по схеме');

for i:= 1 to n do

Begin

for j:= 1 to m do write(a[i, j]:6, ' '); writeln

End

end.


Дата добавления: 2015-07-11; просмотров: 66 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.007 сек.)