Навигация |
Ярославский химико-механический техникум |
|
Уроки программирования. Урок №1. Упорядочивание массивов по возрастанию или убыванию.Данный вопрос рассмотрим на примере нескольких задач. Дан одномерный массив целых чисел. Определить минимальный элемент этого массива и поменять его местами с элементом, имеющим индекс 1. Program task_1; Var a:array[1..100] of byte;{определяем одномерный массив} N, {количество элементов массива} K, {текущий индекс} Min, {значение минимального элемента этого массива} Number_min:byte; {индекс минимального элемента} Begin {для заполнения массива используем генератор случайных чисел} Randomize; Write('количество элементов массива: n=');Readln(n); For k:=1 to n do Begin A[k]:=Random(100);{случайное целое число от 0 до 99} Write(a[k]:4);{выводим на экран} End; Writeln; {ищем минимальный элемент этого массива и его индекс} min:=a[1];number_min:=1; for k:=2 to n do if min>a[k] then; begin min:=a[k]; number_min:=k; end; {меняем местами первый элемент и минимальный} a[number_min]:=a[1]; a[1]:=min; {выводим на экран результат} for k:=1 to n do write(a[k]:4); writeln; End. Теперь добавим к нашей программе следующую задачу: Среди оставшихся элементов найти минимальный и поставить его на второй место. Для этого перед выводом результата на экран необходимо добавить следующие строки программы: Min:=a[2];number_min:=2; For k:=3 to n do If min>a[k] then Begin Min:=a[k]; Number_min:=k; End; A[number_min]:=a[2]; A[2]:=min; Нетрудно заметить, что меняются только начальные установки, а действия выполняются одни и те же. Поэтому объединим все это в один цикл и получим упорядочивание по возрастанию. For i:=1 to n-1 do Begin Min:=a[i]; Number_min:=i; For k:=i+1 to n do If min>a[k] then; Begin Min:=a[k]; Number_min:=k; End; A[number_min]:=a[i]; A[i]:=min; End; Нам пришлось добавить новую переменную i типа byte, которая задает индекс элемента, с которого производится поиск минимального элемента. Обратите внимание на то, что эта переменная принимает значения от 1 до n-1. Это связано с тем, что после того как будет упорядочено n-1 элементов оставшийся последний n-й элемент не нуждается в упорядочивании. А.М. Гелоян Кто работает в Центре? |
Адрес: 150023, Россия, г. Ярославль, ул. Гагарина,дом 8 |