mozok.click » Інформатика » Двовимірні масиви
Інформація про новину
  • Переглядів: 18775
  • Автор: admin
  • Дата: 18-09-2017, 10:51
18-09-2017, 10:51

Двовимірні масиви

Категорія: Інформатика

11.1. Загальні відомості про двовимірні масиви

Наведіть означення одновимірного масиву. Як оголошуються одновимірні масиви? Які існують класичні алгоритми опрацювання значень елементів одновимірного масиву? Чим, на вашу думку, відрізняються двовимірні масиви від одновимірних?

Ви вже знаєте, що масив — це структурований тип даних, елементи якого мають один тип.

Двовимірний масив являє собою таблицю, що складається з фіксованої кількості рядків і стовпців.

Елемент двовимірного масиву має два індекси: номер рядка і номер стовпця (приклади 1, 2).

Приклад 1. Двовимірний масив цілих чисел із трьома рядками і чотирма стовпцями може мати такий вигляд:

Приклад 2. Кількість пального, що доставляють з нафтобази на станцію заправки у робочі дні, можна подати у вигляді двовимірного масиву (таблиці):

У кожній клітинці вказана кількість пального (в тоннах), що постачається на станцію. Для опрацювання такого масиву потрібно дні тижня ототожнювати з номерами стовпців, а назви станцій — із номерами рядків.

Загальну структуру двовимірного масиву можна подати в такому вигляді:

У квадратних дужках — індекси елемента масиву. Місце елемента у двовимірному масиві визначається двома індексами. Перший індекс — це номер рядка масиву, другий — номер стовпця.

Способи оголошення двовимірного масиву принципово не відрізняються від оголошення одновимірного масиву. Різниця в тому, що в оголошенні двовимірного масиву через дві крапки вказується діапазон індексів рядків, а потім, відокремлюючи комою, — діапазон індексів стовпців (приклад 3).

Приклад 3.

var mas: array [1..4,1..5] of char; — оголошено двовимірний масив символів mas, що має чотири рядки з номерами від 1 до 4 і п’ять стовпців із номерами від 1 до 5.

Приклад 4.

type nov=array [1 ..8,1 ..10] of real; var mas: nov; — оголошено числовий масив дійсного типу з іменем mas, у якому 8 рядків і 10 стовпців.

Брендан Айк, автор мови програмування javascript, що є стандартом для веб-програмування. Брав участь устворенні американської компанії Mozilla, яка розробляє браузер Firefox.

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

var <ім'я змінної>: array [діапазон рядків, діапазон стовпців] of <тип елементів>;

Оголосити двовимірний масив можна і так: оголосити новий тип даних, а потім описати змінну нового типу (приклад 4):

type <ім'я типу>=аггау [діапазон рядків, діапазон стовпців] of <тип елементів>;

var <ім'я змінної>: <ім'я типу>;

Для оголошення масиву можна використовувати константи, визначені у розділі оголошення констант. Наприклад:

const n=7: m=5:

var mas: array [1..n,1..m] of integer;

Для звернення до елемента двовимірного масиву слід вказати ім’я масиву і значення індексів у квадратних дужках. Наприклад, для звернення до елемента, розташованого у третьому рядку четвертого стовпця слід вказати: mas[3,4].

Будь-якому символу можна присвоїти певне значення, наприклад: mas[2, 4]:=5 — елементу двовимірного масиву, розташованому у другому рядку четвертого стовпця, присвоєно символ 5.

Двовимірні масиви можна вводити як у консольному, так і у візуальному режимах. Як правило, для введення значень елементів двовимірного масиву використовують вкладені цикли. Внутрішній цикл використовується для введення значень елементів різних стовпців одного рядка, а зовнішній — для переходу до нового рядка. Для введення значень елементів масиву в консольному режимі використовується оператор readln (read), а для виведення — оператор writeln (write).

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

Приклад 5. На рис. 1 зображено консольну програму формування двовимірного масиву цілими випадковими числами і виведення їх за допомогою оператора write по рядках.

Після виконання програми на екран буде виведено імена елементів масиву та їхні значення (рис. 2).

Рис. 1. Консольна програма формування елементів масиву випадковими числами

Приклад 6. На рис. З зображено консольну програму створення двовимірного масиву шляхом уведення значення кожного елемента з клавіатури і виведення цього масиву. Якщо

після запуску програми послідовно вводити з клавіатури числа від 1 до 12, то отримаємо результат, поданий на рис. 4.

Рис. 3. Консольна програма введення масиву з клавіатури і його виведення

Запитання для перевірки знань

Наведіть означення двовимірного масиву.

Наведіть загальну структуру двовимірного масиву.

Як здійснюється звернення до окремих елементів двовимірного масиву?

Як оголошується двовимірний масив у розділі змінних?

Як оголошується двовимірний масив у розділі типів?

Наведіть приклад оголошення двовимірного масиву з використанням іменованих констант.

Завдання для самостійного виконання

Визначте помилки в операторах:

а) type mas=array [1..4,5] of real; var mas;

б) var a; array [3,4] of integer;

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

3 х 4, елементами якого є назви геометричних фігур (трикутник, прямокутник та ін.).

Знайдіть в Інтернеті 8 найбільших озер України. Збережіть назви цих озер у двовимірному масиві, розмір якого визначте самостійно. Розробіть консольну програму реалізації цього завдання.



11.2. Введення і виведення значень елементів двовимірних масивів у візуальному режимі

Яку структуру мають двовимірні масиви і як вони оголошуються? Поясніть порядок звернення до окремих елементів двовимірного масиву. За допомогою яких операторів здійснюється введення і виведення значень елементів масиву в консольному режимі?

Середовище Lazarus має різноманітні компоненти для організації введення/виведення даних у візуальному режимі. Раніше вже були описані й наведені приклади використання компонентів TEdit, TLabel, TMemo, TListBox і функцій InputBox(), ShowMessage(). Ці засоби застосовувалися у процесі введення-виведення одновимірних масивів. Досить зручним для організації введення/виведення значень двовимірних масивів є компонент TStringGrid (таблиця рядків). Він визначений у модулі Grids, а його піктограма розташована на вкладці Additional палітри компонентів. Компонент переноситься на форму і стає об’єктом так само, як і інші компоненти. Основні властивості об’єкта наведено в табл. 1.

Таблиця 1. ОСНОВНІ ВЛАСТИВОСТІ ОБ'ЄКТА StringGrid

Назва властивості

Призначення властивості

Name

Визначає ім'я об'єкта

ColCount

Визначає кількість стовпців

RowCount

Визначає кількість рядків

Gells [col, row]

Вказує клітинку, розташовану на перехресті стовпця номер col і рядка номер row (стовпці нумеруються від 0 до ColCount - 1, а рядки — від 0 до RowCount - 1)

FixedCols

Визначає кількість лівих стовпців, які виділяються кольором і залишаються на місці у процесі прокручування горизонтальної смуги

FixedRows

Визначає кількість верхніх рядків, які виділяються іншим кольором і залишаються на місці у процесі прокручування вертикальної смуги

ScrollBars

Визначає наявність смуг прокручування

Options.goEditing

Значення властивості true дозволяє редагування масиву, а значення false забороняє його редагування

DefaultColWidth

Визначає ширину стовпців

DefaultRowHeight

Визначає висоту рядків

Height

Визначає висоту об'єкта

Width

Визначає ширину об'єкта

Font

Визначає шрифт, яким відображається вміст клітинок

Приклад 1. Розглянемо приклад уведення цифрових значень у клітинки об’єкта StringGridl за допомогою клавіатури, створення двовимірного масиву із цих елементів і виведення значень масиву у зворотному порядку в клітинки об’єкта StringGrid2.

Для цього розмістимо на формі два компоненти TStringGrid і компонент TButton. Надамо такі значення властивостям об’єктів StringGridl і StringGrid2: ColCount — 4; RowCount — 3; FixedCols — 0; FixedRows — 0; Options — goEdi-ting — true.

Значення інших властивостей залишимо за замовчуванням. Після цього двічі клацнемо поле об’єкта StringGridl, розташованого на формі. Відкриється вікно Редактор StringGrid, зображене на рис. 1. У клітинки цього редактора введемо в 3 рядки і 4 стовпці цілочислові значення так, як показано на рис. 1.

Після завершення введення цифрових значень клацнемо кнопку Гаразд. Форма набуде вигляду, як на рис. 2.

На рис. З зображено код, за допомогою якого послідовно зчитуються значення клітинок об’єкта StringGridl, зі значень яких формується двовимірний масив mas розмірністю 3x4. Потім значення цього масиву виводяться у зворотному порядку в клітинки об’єкта StringGrid2.

Звернемо увагу на те, що у властивості Cells спочатку вказується номер стовпця, потім — номер рядка, а в масиві — навпаки.

Після успішної компіляції та виконання програми отримаємо результат, поданий на рис. 4.

Рис. 3. Код введення і виведення масиву за допомогою об'єктів StringGridl і StringGrid2

Приклад 2. Створимо двовимірний масив розмірністю п х т, елементами якого є цілі випадкові числа з діапазону від 0 до 20 і виведемо елементи цього масиву в клітинки об’єкта StringGridl. Додамо на форму компонент TButton, для якого визначимо подію onclick.

Значення основних властивостей об’єкта StringGridl обираємо такі самі, як у прикладі 1. Програму реалізації цього завдання наведено на рис. 5.

Результат виконання програми зображено на рис. 6.

Рис. 5. Код створення і виведення масиву в клітинки об'єкта StringGridl

Приклад 3. Перший член спадної геометричної прогресії дорівнює а, знаменник q. Обчислити 12 перших членів цієї прогресії і створити з їх значень масив розмірністю 3x4. Елементи масиву розмістити в порядку зменшення їхніх значень. Вивести елементи масиву за допомогою компонента TStringGrid.

Надамо основним властивостям об’єкта StringGridl такі значення, як і в попередніх прикладах. Програму реалізації завдання зображено на рис. 7.

Результат виконання програми наведено на рис. 8.

Рис. 7. Код створення масиву з членів спадної геометричної прогресії

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

Інші способи введення значень елементів двовимірних масивів будуть розглянуті в наступних розділах.

Якщо для динамічного масиву не вистачає пам'яті, виникає помилка EOutOfMemory. Якщо після використання динамічного масиву потреба в ньому відпадає, його можна знищити за допомогою процедури Finalize (ім'я масиву).

Запитання для перевірки знань

Які компоненти забезпечують введення/ви-ведення даних?

Який компонент зручний для введення/ви-ведення двовимірних масивів?

Як нумеруються стовпці й рядки об'єкта StringGrid?

Яке призначення мають властивості ColCount і RowCount?

Назвіть основні властивості об'єкта StringGrid.

Для чого призначено вікно редактора об'єкта StringGrid?

Завдання для самостійного виконання

У школі 3 дев'яті класи. Від кожного класу в кросі на 1 км беруть участь по 4 учні. Використайте компонент TStringGrid для введення результатів забігу. Створіть відповідний двовимірний масив. Результати учнів кожного класу відобразіть за допомогою компонентів TListBox.

Чотири учасники гри, починаючи з першого, по черзі кидають 5 разів гральний кубик із цифрами від 1 до 6. Зареєструйте результати кидання кубика у масиві й виведіть результати за допомогою компонента TStringGrid.

Відомі результати зовнішнього незалежного оцінювання п'яти учнів з української мови, історії, математики і фізики. За допомогою функції InputBox() уведіть ці результати в масив і виведіть його значення за допомогою функції ShowMessage().

У табл. 2 наведено 4 кращі команди чемпіонату України з футболу з 2011 до 2015 року. Використайте 2 компоненти TStringGrid для створення відповідного масиву та виведення його значень.

Таблиця 2


11.3. Класичні алгоритми опрацювання значень елементів двовимірних масивів

Пригадайте, які компоненти вже використовувалися для введення і виведення значень елементів масиву. Які з них доцільно застосовувати для двовимірних масивів? Які алгоритми, на ваш погляд, можна назвати класичними для двовимірних масивів?

До класичних алгоритмів опрацювання двовимірних масивів можна віднести обчислення загальної суми значень елементів масиву, суми значень елементів головної і побічної діагоналей, суми значень елементів кожного рядка і кожного стовпця.

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

Сутність алгоритму обчислення загальної суми значень елементів двовимірного масиву розглянемо на прикладі такого масиву:

Існують різні підходи до обчислення суми значень елементів масиву. Зокрема, можна знайти суму чисел у кожному рядку, а потім додати значення отриманих сум або обчислити суму чисел у кожному стовпці, а потім додати значення отриманих сум. Однак частіше застосовується метод «накопичення», сутність якого полягає в тому, що на початку значення суми дорівнює нулю. Потім до цього значення додається перший елемент першого рядка, до отриманої суми — другий елемент того самого рядка і так далі до останнього елемента цього рядка. До суми чисел першого рядка додається перший елемент другого рядка, потім другий елемент другого рядка і так далі до останнього елемента.

Математик, професор Дорт-мундського коледжу (США) Джон (Янош) Кемені (на фото праворуч) разом із Томасом Курцем розробив мову програмування ВАSIС та мережеву систему користування декількома комп'ютерами одночасно (англ. timesharing). Є одним із піонерів викладання основ програмування.

Рис. 1. Блок-схема алгоритму обчислення суми значень елементів двовимірного масиву

У блок-схемі використано такі змінні: і, j — лічильники циклів (і — лічильник рядків, j — лічильник стовпців), m — кількість рядків у масиві, n — кількість стовпців у масиві, s — сума значень елементів масиву.

За допомогою внутрішнього циклу обчислюється сума чисел у рядку, а за допомогою зовнішнього циклу — перехід до чергового рядка. Використання вкладених циклів характерне для більшості програм опрацювання двовимірних масивів.

Приклад 3. Розмістимо на формі компонент TLabel і компонент TButton. Для об’єкта Buttonl обираємо подію onclick. Програму, що реалізує алгоритм обчислення загальної суми значень елементів масиву, зображено на рис. 2.

Після успішної компіляції програми запустимо її на виконання й уведемо такі значення:

Результат виконання програми подано на рис. 3.

Рис. 2. Програма обчислення суми значень елементів двовимірного масиву

Рис. 3. Результат обчислення суми значень елементів двовимірного масиву

• Обчислення суми значень елементів масиву, розташованих на головній і побічній діагоналях.

Термін «головна діагональ» зазвичай використовується у масивах, у яких кількість рядків і стовпців однакова. Головна діагональ — це діагональ, що з’єднує лівий верхній елемент масиву з правим нижнім. Якщо, приміром, масив має розмірність 4 х 4, то на головній діагоналі розташовані елементи a[1,1], a[2,2], a[3,3] і a[4,4] (приклад 4).

Побічна діагональ — це діагональ, що з’єднує правий верхній елемент масиву з лівим нижнім. На цій діагоналі для наведеного вище масиву розташовані елементи a[1,4], a[2,3], a[3,2], a[4,1].

Розглянемо алгоритм обчислення значень елементів, розташованих на головній діагоналі. Позначимо змінною s значення суми елементів, змінною n — кількість рядків і стовпців у масиві, змінною i — поточний номер рядка (стовпця), mas[i, і] — значення елемента масиву на головній діагоналі. З урахуванням таких позначень алгоритм обчислення суми значень цих елементів, можна подати так:

Приклад 5. Двовимірний масив розмірністю п х п набуває значень членів арифметичної прогресії, перший член якої позначимо змінною а, різницю прогресії — змінною d. На рис. 4 зображено програму створення двовимірного

масиву зі значень членів цієї прогресії й обчислення суми значень елементів головної діагоналі.

Результат виконання програми наведено на рис. 5.

Рис. 4. Програма обчислення значень елементів головної діагоналі масиву

Розглянемо алгоритм обчислення значень елементів побічної діагоналі масиву розмірністю n х n. Використаємо ті самі позначення змінних, що й у попередньому алгоритмі.

Цей алгоритм можна подати так.

Приклад 6. Елементи масиву розмірністю 5x5 набувають значень випадкових цілих чисел. Для виведення цього масиву використаємо компонент TStringGrid. Для виведення суми значень побічної діагоналі — компонент TLabel. Для об’єкта Buttonl обрано подію onclick. Для об’єкта StringGridl встановлено такі

значення основних властивостей: ColCount — 5, RowCount — 5, FixedCols — 0, FixedRows — 0. Програму обчислення суми чисел побічної діагоналі зображено на рис. 6.

Результат виконання програми наведено на рис. 7.

Рис. 6. Програма обчислення значень елементів побічної діагоналі

Обчислення суми значень елементів кожного рядка масиву.

Алгоритм обчислення суми значень елементів в одному рядку двовимірного масиву принципово не відрізняється від алгоритму обчислення суми значень елементів одновимірно-го масиву. Тому задача обчислення суми значень елементів кожного рядка двовимірного масиву зводиться до обчислення суми значень елементів n одновимірних масивів. У процесі

розробки алгоритму використаємо такі змінні: n — кількість рядків, m — кількість стовпців, і — поточний номер рядка, j — поточний номер стовпця, s — сума значень елементів рядка. Цей алгоритм можна подати так.

Приклад 7. Програму реалізації алгоритму зображено на рис. 8. Для введення масиву використано функцію InputBoxO, для виведення масиву — компонент TStringGrid, для виведення суми значень елементів рядків — компонент TListBox, для виконання програми — компонент TButton з подією onclick. Для компонентів, розташованих на формі,

використано значення властивостей, аналогічних тим, які використовувалися у попередніх прикладах (звертаємо увагу на те, що для об’єкта StringGridl значення властивостей FixedCols і FixedRows слід встановити такими, що дорівнюють нулю).

Результат виконання програми наведено на рис. 9.

Рис. 8. Програма обчислення суми значень рядків двовимірного масиву

Гарний програміст у 10 разів продуктивніший, ніж середній, а відмінний — у 20-100 разів продуктивніший, ніж середній.

• Обчислення кількості заданих значень у масиві Алгоритм обчислення кількості заданих значень у двовимірному масиві аналогічний алгоритму обчислення таких значень у одновимірному масиві. Різниця полягає лише в тому, що після завершення аналізу одного рядка необхідно здійснити перехід на наступний рядок. Розглянемо алгоритм обчислення кількості чисел, менших від значення с, у масиві mas[n, m]. Кількість таких чисел присвоюється змінній k.


Приклад 8. Програму реалізації алгоритму зображено на рис. 10. Масив формується випадковими числами з діапазону від 0 до 20. Значення елементів цього масиву виведено в клітинки об’єкта StringGridl, а результат — в поле об’єкта Labell.

Результат виконання програми зображено на рис. 11. Зверніть увагу на те, що

у верхньому рядку і лівому стовпці записано номери рядків і номери стовпців. Це означає, що кількість стовпців і рядків у об’єкті StringGridl на одиницю більша за кількість рядків і стовпців у масиві. Тому властивість ColCount повинна мати значення 5, властивість RowCount — значення 4, а властивості FixedCols і FixedRows — значення 1.

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

• Пошук мінімального і максимального значень у двовимірному масиві

Сутність алгоритму пошуку максимального (мінімального) значення елемента двовимірного масиву полягає в тому, що спочатку максимальним (мінімальним) обирається значення елемента першого рядка першого стовпця. Це максимальне (мінімальне) значення послідовно порівнюється зі значеннями всіх елементів масиву. Кожного разу, коли поточне значення елемента більше за максимальне (менше від мінімального), поточне присвоюється максимальному (мінімальному). Процес порівняння елементів продовжується до останнього елемента масиву.

Розглянемо алгоритм пошуку максимального і мінімального значень елемента в масиві mas[n, m]. Значення максимального елемента зберігається у змінній max, а мінімального — у змінній min.

Поганий програміст не тільки не виконує свою роботу, але й створює проблеми, які доводиться вирішувати іншим.

Приклад 9. На рис. 12 зображено програму реалізації алгоритму. У програмі за допомогою клавіатури у 3 рядки і 4 стовпці об’єкта StringGridl уводяться цілі числа, з яких створюється масив mas[3, 4]. Значення

максимального і мінімального елементів виводиться за допомогою двох компонентів TEdit.

Результат виконання програми наведено на рис. 13.

Рис. 12. Програма пошуку максимального і мінімального елементів

Запитання для перевірки знань

Що називають головною діагоналлю двовимірного масиву?

Накресліть блок-схему алгоритму обчислення загальної суми значень елементів двовимірного масиву.

Поясніть сутність алгоритму обчислення суми значень рядків двовимірного масиву. Наведіть алгоритм обчислення суми значень елементів головної діагоналі двовимірного масиву.

Завдання для самостійного виконання

Із клавіатури за допомогою функції Input-Box() у масив розмірністю n х m уводять додатні і від'ємні числа. Розробіть алгоритм і програму заміни додатних чисел одиницею, а від'ємних — нулем. Виведіть новий масив у поле об'єкта StringGridl.

У таблиці наведено середні ціни реалізації продукції сільського господарства в окремих регіонах України у 2015 році (грн

за тонну). Створіть масив із наведених даних. Розробіть алгоритм і програму обчислення середньої ціни продукції за цими регіонами.

Протягом п'яти днів від чотирьох господарств району на елеватор надходить зерно нового врожаю. Розробіть алгоритм і програму визначення, з якого господарства надійшло найбільше зернових.

Практична робота № 21

Тема. Розробка алгоритмів з двовимірними масивами і їх реалізація у вигляді програм. Завдання: розробити алгоритм і програму для реалізації завдання одного з наведених варіантів. Обладнання: комп'ютер із встановленою програмою — середовищем програмування.

Варіант 1. Елементи двовимірного масиву розмірністю n х m набувають випадкових значень з діапазону від 0 до 20. Розробіть алгоритм і програму обчислення кількості чисел у масиві, менших від 15.

Завдання бажано виконувати у такій послідовності.

1. Розробити алгоритм реалізації завдання.

2. Розмістити на формі компоненти: TButton, TLabel і TStringGrid.

3. Установити необхідні властивості компонентів.

4. У програмі передбачити:

• виведення значень елементів масиву в клітинки об’єкта StringGrid1;

• для виведення результату використати об’єкт Label1.

Варіант 2. Відомі рейтинги восьми марок 3-річних автомобілів за два роки:

Із таблиці видно, що найвищий рейтинг як у 2015, так і у 2016 роках має марка автомобіля Lexus. Розробіть алгоритм і програму визначення середнього рейтингу кожної марки за два роки і розмістіть назви марок у порядку зменшення їх рейтингу.

Після розробки алгоритму бажано дотримуватися такого порядку виконання роботи.

1. Із клавіатури за допомогою функції InputBox() увести дані таблиці в клітинки об’єкта StringGrid1.

2. На основі даних, що містяться в об’єкті StringGrid1, створити двовимірний масив рейтингів.

3. Також на основі даних об’єкта StringGrid1 створити одновимірний масив марок автомобілів.

4. Опрацювати двовимірний масив, а саме: обчислити середнє значення рейтингів, із яких створити одновимірний масив за два роки.

5. Упорядкувати одновимірний масив рейтингів у порядку їх зростання, відповідно до яких розмістити у масиві марки автомобілів.

6. Вивести масив назв марок автомобілів, наприклад, у клітинки об’єкта ListBox1.

Хід роботи

Під час роботи за комп’ютером дотримуйтесь правил безпеки.

Виберіть один із варіантів завдань за вказівкою вчителя або самостійно.

(У разі успішного виконання одного варіанта, виконайте іншій).

Проаналізуйте умову задачі, побудуйте інформаційну модель.

Розробіть алгоритм і реалізуйте його у середовищі програмування за наведеним планом.

Виконайте програму. Проаналізуйте отриманий результат.

Зробіть висновок: які компоненти можуть бути використані у цій роботі.

Практична робота № 22

Тема. Класичні алгоритми для роботи з двовимірними масивами, їх реалізація у вигляді програм.

Завдання: розробити алгоритм і програму для реалізації завдання одного з наведених варіантів. Обладнання: комп'ютер із встановленою програмою — середовищем програмування.

Варіант 1. У шаховому турнірі брали участь 6 шахістів. Нижче у таблиці наведено результати турніру.

Розробити алгоритм і програму визначення прізвищ учасників, які виконали норматив першого розряду (для присвоювання першого розряду потрібно набрати не менше 50 % від максимально можливої кількості очок).

Доцільно дотримуватися такого порядку виконання роботи.

1. Розробити алгоритм розв’язування.

2. Розмістити на формі компоненти: TButton, TStringGrid, TMemo. Вибрати для об’єкта Button1 подію onclick.

3. Розробити програму реалізації алгоритму. У програмі слід передбачити:

• уведення за допомогою функції InputBox() у поле об’єкта StringGrid1 результатів турніру;

• створення на основі даних об’єкта StringGrid1 двовимірного масиву результатів учасників;

• обчислення результатів кожного учасника і створення на основі цих результатів одновимірного масиву;

• пошук у створеному одновимірному масиві значень, рівних або більших за 3;

• виведення у поле об’єкта Memo1 прізвищ учасників, результати яких відповідають нормі першого розряду.

Варіант 2. У таблиці наведено результати оцінювання учнів з окремих предметів.

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

1. Розробити алгоритм розв’язування.

2. Розмістити на формі компоненти: TLabel, TButton, TStringGrid.

3. Вибрати для об’єкта Button1 подію onclick.

4. Розробити програму реалізації алгоритму, у якій виконати такі дії:

• увести з клавіатури за допомогою функції InputBox() у клітинки об’єкта StringGrid1 дані, наведені в таблиці;

• створити двовимірний масив результатів оцінювання учнів;

• обчислити середнє значення кожного стовпця двовимірного масиву і з обчислених значень створити одновимірний

масив;

• знайти максимальне значення однови-мірного масиву;

• вивести за допомогою об’єкта Label1 відповідну назву предмета.

Хід роботи

Під час роботи за комп’ютером дотримуйтесь правил безпеки.

Виберіть один із варіантів завдань за вказівкою вчителя або самостійно.

(Можливе виконання завдання командою з двох-трьох учнів).

Проаналізуйте умову задачі, побудуйте інформаційну модель.

Розробіть алгоритм і реалізуйте його в середовищі програмування за наведеними вказівками.

Виконайте програму. Проаналізуйте отриманий результат.

Зробіть висновок: чи можна виконати цю роботу без операторів циклу.

 

Це матеріал з підручника Інформатика 9 клас Руденко (поглиблений рівень)

 






^