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

Контрольні питання

  1. Що ви розумієте під поняттям масив?

  2. Що ви розумієте під поняттям матриця?

  3. Що таке повний і неповний умовний оператор?

  4. Що значить поміняти місцями два елементи масива?

  5. Навіщо при зміні місцями двох елементів в масиві вводиться додаткова змінна?

  6. Якого типу може бути змінна, яка виступає в якості параметра в циклі For і чому?

  7. Що означає: створити масив з елементів даного за умовою?

  8. Які команди треба записати, щоб цикл виконував за один крок декілька операторів?

Лабораторна робота № 11 (13) Тема: Створення та реалізація програм опрацювання табличних величин. Сортування таблиць методом прямого вибору.

Мета: Уміти створювати та реалізовувати програми опрацювання табличних величин, опрацьовувати масиви за умовою.

Теоретичні відомості

Розглянемо npocтi алгоритми упорядкування (сортування) одновимірних таблиць. Мета сортування - полегшити наступний пошук елементів. Bи6ip алгоритму сортування залежить від структури оброблюваного списку. Критеріями ефективності сортування є швидкодія й економія пам'яті, що може бути важливим у разі великих списків.

Метод прямого вибору. Скажімо, вам потрібно з вихідної послідовності А [i], що складається з N елементів, утворити спадну послідовність (точніше, послідовність з незростаючих елементів). Зафіксуємо перший елемент i переглянемо інший масив (N-і) елементів, відшукавши в ньому найбільший. Якщо цей елемент виявиться більшим від першого, поміняємо його місцями з першим елементом. Потім зафіксуємо елемент 2 i переглянемо (N-2) елементи, що залишились. Знайшовши найбільший елемент, поміняемо його з елементом 2. Подібну процедуру продовжуватимемо, поки не залишиться один, найбільший, елемент.

Наведемо програму мовою Pascal, що здійснює сортування масиву з 5 еле-ментів (рядків) методом прямого вибору:

Program SortSelect;

const Num=5;

A:array[l..Num] of string=('ca','aa','dі,'a','abі);

Var Temp:string; I,J,L:integer;

begin

Writeln ('Начальный массив');

for I:=l to Num do

Write (' ' ,A[I] ) ;

Writeln; Writeln;

for I:=l to Num-і do

for J:=I+і to Num do

begin

if A[I]<A[J] then

begin

Temp:=A[I]; A[I]:=A[J]; A[J]:=Temp;

end;

for L:=l to Num do Write(' ',A[L]); Writeln; end; end.

Процес сортування в цьому прикладі проілюструємо виведенням одержуваної послідовності елементів після кожної операції порівняння.

ca

aa

d

a

ab

d

aa

ca

a

ab

d

aa

ca

a

ab

d

aa

ca

a

ab

d

aa

aa

a

ab

d

aa

aa

a

ab

d

aa

aa

a

ab

d

aa

ab

a

ab

d

aa

ab

a

aa

d

aa

ab

a

a

Неважко підрахувати, що кількість операцій порівняння в методі прямого вибору дорівнюватиме числу комбінацій з Nmах по 2, тобто Nmax!/ (2! (Nmax-2) !), де Nmax - розмір початкового масиву.