Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
07 Лабораторная работа _ОТ.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
539.65 Кб
Скачать

ЛАБОРАТОРНА РОБОТА №8. ПРОЕКТУВАННЯ СХЕМ АЛГОРИТМІВ ОБРОБКИ ОДНОВИМІРНИХ МАСИВІВ.

Мета: вивчення та освоєння методики проектування алгоритмів введення, формування, обробки та виведення результатів обробки одновимірних масивів.

Порядок виконання лабораторної роботи:

1 – провести лабораторне дослідження на тестовому прикладі;

2 – виконати індивідуальні завдання;

3 – оформити результати досліджень в журналі.

ТЕОРЕТИЧНИЙ МАТЕРІАЛ

У практиці інженерних розрахунків рішення багатьох задач припускає обробку великих сукупностей однорідних даних, наприклад, множина результатів вимірів однієї й тієї ж фізичної величини. Якщо всі елементи об'єкта належать до однакового типу, то змінна, якою позначені ці елементи, є однорідною і може бути представлена у вигляді деякого масиву.

Масив - сукупність однорідних елементів, упорядкована за допомогою числових значень індексів.

Ім'я масиву позначає всю впорядковану множину елементів у цілому.

Елементом масиву називають змінну з індексом. Для позначення окремого елемента масиву до імені додається список індексів, що дозволяє здійснювати доступ до конкретного елемента.

Індекс – константа, змінна або вираз. Значення індексу повинне бути цілим додатнім числом (бо це номер), тому він завжди округляється, перетворюється й зберігається в такому вигляді.

Список індексів - упорядкована послідовність індексів, розділених комами. Кожний індекс має свій діапазон зміни, названий граничною парою.

Змінні з індексом обробляються за такими же правилами, як і скалярні (прості) змінні. Всі елементи одного масиву не тільки мають спільне ім'я, але й розміщаються, як правило, у послідовних комірках пам'яті ЕОМ. Місце розташування елемента може визначатися як одним (одномірні масиви), так і декількома значеннями (багатомірні масиви) індексів.

Характеристиками масивів є розмірність і розмір. Кількість індексів визначає розмірність масиву. Кількість елементів масиву визначає розмір масиву. Наприклад, Ai; Z9; Sj+2; Sk-3 - елементи одномірних масивів;

Ai, j; Z9, j; S2*i, j+2 - елементи двомірних масивів.

В алгоритмах обробки масивів присутні блоки обробки елементів масивів і величин відповідних індексів. Як правило, ці блоки є складовими циклічних алгоритмів. Це пов'язане з тим, що обробка будь-якого елемента масиву являє собою однакову послідовність дій, і організувавши цикл по числу елементів масиву, можна тими самими командами обробити всі елементи. Особливість таких алгоритмів - при кожному повторенні циклу в обробці повинен брати участь наступний елемент. Тому їх називають циклами з переадресацією - перехід до наступного елемента здійснюється збільшенням адреси звертання до пам'яті (звичайно на 1). Наприклад, X={xi}, i=1,5 - одномірний масив з 5 елементів. У математиці одномірні масиви називаються векторами або стовпцями. Для введення, виведення й обробки одномірних масивів використовуються прості цикли.

Алгоритми обробки одномірних масивів

Розглянемо задачу знаходження елементу масиву за ознакою:

Frame1

І етапформалізація задачі.

Frame2

ІІ етапалгоритмізація та ІІІ етаппрограмування.

Технологія проектування алгоритму обробки будь-кого масиву включає:

  • завдання значень елементів масиву;

  • обробка даних відповідно умові конкретної задачі;

  • виведення результатів обчислень.

Наприклад, схема алгоритму введення значень елементів одномірного масиву K довільного розміру І варіант - з клавіатури (користувач послідовно вводить елементи масиву, починаючи з елемента з індексом i=1); ІІ варіант – з тексту програми; ІІІ – випадковими числами з діапазону від a до b.

INPUT N

DIM к(N)

FOR i = 1 TO N

PRINT “ ВВЕДІТЬ к(“;i;“)=“;

INPUT к(i)

NEXT i

INPUT N,a,b

DIM к(N)

FOR i = 1 TO N

к(i)= a+(b–а)*RND

PRINT “к(“;i;“)=“; к(i)

NEXT i

І

ІІІ

INPUT N

DIM к(N)

DATA 5,-5,4,-4,100,-100,6,7,8,9,10,11,12,-11,-12,-13,13,11,1,25

FOR i = 1 TO N

READ к(i)

PRINT “к(“;i;“)=“; к(i)

NEXT i

ІІ

Пояснення алгоритму:

символ 2– ввести розмір масиву N;

символ 3 – звернення до поточного елементу масиву;

символ 4 – введення поточного елементу масиву;

Відмітимо, що обробляти увесь масив у цілому засобами QBasic не можливо. Максимальне значення індексу 32767, мінімальне (за замовчуванням) - 0. При необхідності за допомогою оператора OPTІON BASE N (N =0/1) воно може бути встановлено рівним 1. Надалі у прикладах вважатимемо, що N дорівнює 1.

Масиви повинні бути обов'язково описані (оголошені) використовуючи оператор-описувач DІM, за допомогою якого ви одночасно:

  • визначаєте ім'я масиву;

  • описуєте тип елементів масиву або вказуєте тип даних для скалярних змінних (не масивів);

  • обнуляєте всі елементи числових масивів, а символьним - присвоюєте значення порожнього рядка ("");

  • резервуєте комірки пам'яті для елементів масивів.

Формат оператора:

DІM[SHARED]<змінна>[(<індекс>)][AS тип][,<змінна> [(<індекс>) [AS тип ]]

  • SHARED вказує, що змінні використовуються спільно всіма процедурами SUB або FUNCTІON у модулі.

  • <змінна> - ім'я змінної масиву.

  • <індекс> - розміри масиву у вигляді:[низ TO] верх[, [низ TO] верх ]...

  • низ - нижня границя індексу масиву. За замовчуванням нижня границя дорівнює нулю;

  • верх - верхня границя.

  • AS тип - описує тип елементів масиву або скалярну змінну (ІNTEGER, LONG, SІNGLE, DOUBLE, STRІNG або тип даних, що задається користувачем).

Наприклад:

DІM RUB(10) - одновимірний масив з 10 речовинних елементів.

DІM MВА%(3,4) - двовимірний масив з 12 цілочислових елементів (матриця розміром 3*4).

DІM All_Bright$(5) - одновимірний масив з 5 символьних елементів.

DІM X(88), XX(89), XXX(8,9) - два одновимірних і один двовимірний масиви.

DІM SOS (3 To 12) - двовимірний масив з 10 речовинних елементів (індекси змінюються від 3 до 12).

DІM W#(3 To 10, 0 To 5) - двовимірний масив з 48 речовинних довгих елементів.

DІM Y45 (1 To 45) AS ІNTERGER - одновимірний масив з 45 цілочислових елементів.

Frame9

Пояснення алгоритму:

символ 2– ввести розмір масиву N;

символ 3 – звернення до поточного елементу масиву;

символ 4 – введення поточного елементу масиву;

символ 5 – звернення до поточного елементу масиву;

символ 7 – пошук елемента масиву за ключовою ознакою;

символ 8 – виведення елемента масиву, який відповідає критерію пошуку;

символ 6 – виведення повідомлення про відсутність елемента масиву, який відповідає критерію пошуку;

символ 9 – вихід з алгоритму.

ІV етап тестування.

Frame10

V етапаналіз результатів.

Frame11

Розглянемо задачу пошук найбільшого\найменьшого значення елементу масиву:

Frame12

І етапформалізація задачі.

Frame13

ІІ етапалгоритмізація та ІІІ етаппрограмування.

Frame14

Пояснення алгоритму:

символ 2– ввести розмір масиву N;

символ 3 – звернення до поточного елементу масиву;

символ 4 – введення поточного елементу масиву;

символ 5 – визначення першого елемента, як найбільшого елементу масиву;

символ 6 – звернення до поточного елементу масиву (з 2 до останнього);

символ 8 – пошук елемента масиву, більшого за max;

символ 9 – визначення поточного елемента, як найбільшого елементу масиву;

символ 7 – виведення найбільшого елементу масиву та його номер;

символ 10 – вихід з алгоритму.

ІV етап тестування.

Frame15

V етапаналіз результатів.

Frame16

Розглянемо задачу розрахунків значень елементів масиву:

Frame17

І етапформалізація задачі.

Frame18

ІІ етапалгоритмізація та ІІІ етаппрограмування.

Frame19

Послідовним переглядом елементів масиву A знаходимо елементи, які задовольняють умовам пошуку (символи 5, 6). Символами 9 і 10 елементи масиву A, записуються у відповідні масиви. Порядковий номер елемента масиву X задається змінною j, a масиву Z - змінною k. Перед записом наступного елемента в кожний з масивів значення відповідних змінних символами 7, 8 збільшуються на 1. Останні значення змінних j, k будуть відповідати загальній кількості елементів масивів X і Z.

ІV етап тестування.

Frame20

V етапаналіз результатів.

Frame21

Розглянемо задачу розрахунків значень елементів масиву:

Frame22

І етапформалізація задачі.

Frame23

ІІ етапалгоритмізація та ІІІ етаппрограмування.

Frame24

ІV етап тестування.

Frame25

V етапаналіз результатів.

Frame26

Порядок виконання лабораторної роботи:

Заняття 1

Завдання 2.1. – провести лабораторне дослідження - набрати текст програми, протестувати оператори коду програми тестової задачі №1. Отримані результати занести до журналу з самостійної роботи.

Завдання 2.2. – провести лабораторне дослідження - набрати текст програми, протестувати оператори коду програми тестової задачі №2. Отримані результати занести до журналу з самостійної роботи.

Завдання 2.3. – провести лабораторне дослідження - набрати текст програми, протестувати оператори коду програми тестової задачі №3. Отримані результати занести до журналу з самостійної роботи.

Завдання 2.4. – провести лабораторне дослідження - набрати текст програми, протестувати оператори коду програми тестової задачі №4. Отримані результати занести до журналу з самостійної роботи.

Завдання 2.5. – провести лабораторне дослідження - набрати текст програми, протестувати оператори коду програми тестової задачі №5. Отримані результати занести до журналу з самостійної роботи.

Заняття 2

Завдання 2.6. – виконати індивідуальні завдання. Отримати у викладача та виконати індивідуальне завдання. Результати занести до журналу з самостійної роботи.

Завдання 2.7 – виконати індивідуальні завдання. Отримати у викладача та виконати індивідуальне завдання. Результати занести до журналу з самостійної роботи.

Завдання 2.8. – провести лабораторне дослідження по ІДЗ Результати занести до журналу з самостійної роботи.