- •Методичні рекомендації до виконання лабораторних робіт
- •Для спеціальностей
- •Лабораторна робота № 1 Лінійні програми
- •Теоретичні відомості
- •Вирази, операнди, операції.
- •Аналогічно не можна змішувати літерні та числові типи даних,тобто вираз типу:
- •Введення-виведення інформації.
- •Завдання
- •Лабораторна робота № 2 Використання операторів умовного та безумовного переходів
- •Теоретичні відомості
- •Оператор умови if
- •Завдання
- •Лабораторна робота № 3 Використання операторів циклу
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 4 Обробка табличних елементів
- •Теоретичний матеріал
- •1 Спосіб
- •2 Спосіб
- •Завдання
- •Лабораторна робота № 5 Сортування елементів масиву
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 6 Робота з даними типу String
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 7 Використання множин даних
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 8 Обробка даних типу запис
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 9 Файлові типи даних
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 10 Типизовані файли
- •Теоретичний матеріал
- •Типизовані файли
- •Завдання
- •Лабораторна робота № 11 Організація підпрограм з використанням функцій
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 12 Організація підпрограм з використанням процедур
- •Теоретичний матеріал
- •Параметри-значення
- •2. Параметри-змінні
- •Завдання
- •Лабораторна робота № 13 Модульна організація програм
- •Теоретичний матеріал
- •Завдання
- •Варіант 1. Робота з матрицями
- •Варіант 2. Арифметичні дії з цілими числами, які не визначаються типом Longint
- •Варіант 3. Цілочисельна арифметика
- •Варіант 4. Опрацювання лінійного масиву даних
- •Варіант 5. Аналіз текстового рядка
- •Варіант 6. Трикутник
- •Варіант 7. Опрацювання масиву даних
- •Варіант 8. Опрацювання масиву даних
- •Варіант 9. Опрацювання двовимірних масивів
- •Лабораторна робота № 14 Створення графічних зображень
- •Теоретичний матеріал
- •Завдання
- •Список літератури
Лабораторна робота № 5 Сортування елементів масиву
Мета: навчитися застосовувати методи впорядкування одновимірних масивів при розв’язуванні задач.
Теоретичний матеріал
Алгоритм сортування обміном
Елементи масиву, які стоять поруч, починаючи з першої пари, порівнюються між собою. Якщо вони стоять у невірному порядку, то вони міняються місцями. Якщо у вірному, то залишаються на своїх місцях. Після проходження всього масиву, процес починається з початку.
Так відбувається до тих пір, доки при перегляданні всіх пар елементів масиву не буде зроблено жодного обміну.
Приклад програми.
Program BUBBLESORT;
Uses CRT;
Const N=10; {кількість елементів масиву}
Var A:array[l..N] of integer; {опис масиву}
I,j:integer; {допоміжні змінні}
ADOP:integer; {допоміжна змінна}
Prap:integer;
begin
clrscr;
writeln('Bведіть елементи масиву');
for i:=1 to N do
begin
write('A[',i,']=');
readln(A[i]);
end;
writeln('Macив до сортування:');
writeln;
for i:=1 to N do
write(A[i]:5);
writeln;
I:=2;
repeat
prap:=0;
for j :=N downto 1 do
begin
if A[j]<A[j-l] then
begin
ADOP:=A[j-l];
A[j-1]:=A[j];
A[j]:=ADOP;
PRAP:=1;
end;
end;
i:=i-1;
until PRAP=0;
writeln;
writeln('Macив після сортування:');
writeln;
for i:=l to N do write(A[i]:5);
writeln;
end.
Алгоритм сортування вставками
Масив розділяється на дві частини. Перша частина — упорядкована, друга— ні. З початку в першій частині знаходиться перший елемент масиву, в другій — всі інші.
Береться перший неупорядкований елемент X (перший елемент другої частини масиву) і порівнюється з елементами першої (упорядкованої) частини масиву, починаючи з останнього. Коли знаходиться елемент першої групи Y менший (при упорядкуванні за зростанням) за Х, то всі елементи першої групи, що йдуть після елементу Y, здвигаються на один елемент далі по масиву, а елемент X вставляється після елементу Y на звільнене місце. Перша (упорядкована) частина масиву збільшується на один елемент, а друга, відповідно, зменшується.
Алгоритм завершується, коли всі елементи потраплять до першої групи.
Алгоритм сортування вибором
Перший елемент масиву приймається за мінімальний і запам’ятовується його номер k (при сортуванні за зростанням). Він порівнюється зі всіма елементами масиву по черзі. Якщо при цьому знаходиться елемент менший за елемент з номером k, то він приймається за мінімальний і k прирівнюється номеру цього елементу. Коли проглянуто весь масив, k дорівнює номеру мінімального елементу в масиві. Мінімальний елемент обмінюється місцями з першим елементом масиву.
Процес повторюється. Тепер відшукується мінімальний елемент починаючи з другого, і ставиться на друге місце у масиві. Тепер маємо два відсортованих елемента.
Процес продовжується для третього та інших елементів до тих пір, доки всі елементи не будуть поставлені на свої місця.
Приклад програми
Program MINSORT;
Uses CRT;
Const N=10; {кількість елементів масиву}
Var A:array[1..n] of integer; {опис масиву}
і,j:integer; {допоміжні змінні}
Amin :integer; {допоміжна змінна для }
{мінімального елементу масиву}
l:integer; {порядковий номер}
{мінімального елементу масиву}
begin
ClrScr;
writeln('Введіть елементи масиву');
for i:=1 to N do
begin
write('A[',i,']=');
readln(A[i]);
end;
writeln('Масив до сортування:');
writeln;
for i:=1 to N do write(A[i]:5);
writeln;
for i:=1 to N do
begin
Amin:=A[i];
l:=i;
while j<=N do
begin
if Amin>A[j]then
begin
Amin:=A[j];
l:=j;
end;
j:=j+1;
end;
А[l]:=А[i];
A[i]:=Amin;
end;
writeln;
writeln('Масив після сортування:');
writeln;
for i:=1 to N do write(A[i]:5);
writeln;
end.