- •Содержание
- •Пример оформления работы
- •Задание 2.
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №9
Задание 2.
-
Создать процедуру:
-
определяющую максимальный и минимальный элементы вектора vectorn,
-
сортирующую элементы, находящиеся между ними, по возрастанию.
Перед началом поиска максимального элемента max вектора vectorn принимаем за него элемент vector1. После этого сравниваем остальные элементы вектора vectori (i=2,…,n) с текущим максимумом: если очередной элемент больше текущего максимума max, то сейчас он – текущий максимум. Запоминаем индекс текущего максимума i_max.
Таким же образом определяем минимальный элемент вектора min и его индекс i_min.
Сравниваем индексы найденных элементов:
-
если i_min < i_max , то сортируем элементы вектора от i_min+1 до i_max-1,
-
если i_max < i_min , то сортируем элементы вектора от i_max+1 до i_min-1,
-
Схема алгоритма решения задачи
2.1. Головная программа:
2.2. Подпрограмма-процедура:
3. Код программы:
Program Variant_0;
Uses WinCrt;
Const n = 10; {задание размера вектора именованной константой}
Type TVect=Array [1..n] Of Integer;{описание нового типа}
Var i, j : Word;
vector : TVect;
min, max, v_min, v_max : Integer;
Procedure Sort_max_min(Var min_vector, max_vector: Integer; Var AA: Array Of Integer);
Var i, j, k, min, max, i_min, i_max, k_nach, k_kon, nn: Integer;
Begin
nn:=High(AA); {индекс последнего элемента открытого вектора}
max:=AA[0];
i_max:=0;
For i:=1 To nn Do {поиск максимального элемента вектора}
If (AA[i]>max) Then
Begin
max:=AA[i];
i_max:=i;
End;
min:=AA[0];
i_min:=0;
For i:=1 To nn Do {поиск минимального элемента вектора}
If (AA[i]<min) Then
Begin
min:=AA[i];
i_min:=i;
End;
min_vector:=min;
max_vector:=max;
If (i_min<i_max) {определяем начало и конец диапазона сортировки}
Then
Begin
k_nach:=i_min+1;
k_kon:=i_max-1;
End
Else
Begin
k_nach:=i_max+1;
k_kon:=i_min-1;
End;
{сортировка элементов между k_nach и k_kon методом “пузырька”}
For i:=k_kon DownTo k_nach+1 Do
For j:=k_nach To i-1 Do
If (AA[j]>AA[j+1]) Then {меняем эти элементы местами}
Begin
k:=AA[j];
AA[j]:=AA[j+1];
AA[j+1]:=k;
End;
End; {процедуры Sort_max_min}
Begin {головной программы}
Randomize; {запуск генератора случайных чисел}
WriteLn('Лабораторная работа №7_2');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do {заполнение вектора случайными числами}
vector[i]:=Random(v_max-v_min + 1) + v_min;
WriteLn;
WriteLn('Исходный вектор:');
For i:=1 To n Do {вывод на экран исходного вектора}
Write(vector[i]:5);
WriteLn;
Sort_max_min(min, max, vector);
WriteLn;
WriteLn('min=', min);
WriteLn('max=', max);
WriteLn;
WriteLn('Полученный вектор:');
For i:=1 To n Do {вывод на экран выходного вектора}
Write(vector[i]:5);
WriteLn;
WriteLn;
End.
4. Компиляция, отладка, тестирование и получение результата: