Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб.3.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
207.87 Кб
Скачать

Задание 3.1

Написать программу решения задачи. Указание: использовать процедуры задания массива случайным образом, ввода элементов с клавиатуры, вывода элементов массива на экран; используемые процедуры описать в модуле.

Задание 3.2

Написать программу решения задачи.

Указания:

1. Выполнить процедурную декомпозицию задачи методом пошаговой детализации. 2. Для ввода и вывода массива использовать процедуры, модуля, использованного при решении задания 3.1.

Пример 2

Сортировка по возрастанию массива A из N целых чисел.

Приведем текст процедуры сортировки. Описание константы N, типа mas, процедур заполнения массива и вывода массива на экран см. в примере 6.1.

Procedure sort(var a:mas);

Procedure obmen(x1, x2:integer;

{вспомогательная процедура, выполняющая обмен значений двух переменных х1 и х2}

var

t:integer;

begin

t:=x1;

x1:=x2;

x2:=t

end;

var i, k: integer;

{основная процедура}

begin

for i:=1 to n-1 do

{внешний цикл}

for k:=1 to n-i do

{внутренний цикл, в котором «всплывает» вверх наибольше из чисел a[1]..a[n-i]}

if a[k]>a[k+1] then obmen(a[k],a[k+1]);

end;

Пусть константа N=4, тогда протокол исполнения процедуры sort будет следующий:

действия

a

i

k

передача в процедуру аргумента a

Инд.

1

2

3

4

Знач.

9

7

5

8

i := 1

1

i <= N-1 (1<=3 true)

k:=1

1

k<=n-i (1<=3 true)

a[k]>a[k+1] (a[1]>a[2] true)

obmen(a[k],a[k+1])

Инд.

1

2

3

4

Знач.

7

9

5

8

k:=k+1

2

k<=n-i (2<=3 true)

a[k]>a[k+1] (a[2]>a[3] true)

obmen(a[k],a[k+1])

Инд.

1

2

3

4

Знач.

7

5

9

8

k:=k+1

3

k<=n-i (3<=3 true)

a[k]>a[k+1] (a[3]>a[4] true)

obmen(a[k],a[k+1])

Инд.

1

2

3

4

Знач.

7

5

8

9

k:=k+1

4

k<=n-i (4<=3 false)

i:=i+1

2

i <= N-1 (2<=3 true)

k:=1

1

a[k]>a[k+1] (a[1]>a[1] true)

obmen(a[k],a[k+1])

Инд.

1

2

3

4

Знач.

5

7

8

9

k:=k+1

2

k<=n-i (2<=2 true)

a[k]>a[k+1] (a[2]>a[3] false)

k:=k+1

3

k<=n-i (3<=2 false)

i:=i+1

3

i <= N-1 (3<=3 true)

k:=1

1

k<=n-i (1<=1 true)

a[k]>a[k+1] (a[1]>a[2] false)

k:=k+1

2

k<=n-i (2<=1 false)

i:=i+1

4

i <= N-1 (4<=3 false)

передача в основную программу значения массива а

Инд.

1

2

3

4

Знач.

5

7

8

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]