mozok.click » Інформатика » Опрацювання двовимірних масивів даних
Інформація про новину
  • Переглядів: 2447
  • Автор: admin
  • Дата: 14-09-2017, 06:42
14-09-2017, 06:42

Опрацювання двовимірних масивів даних

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

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

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

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

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

Знайти суму елементів третього рядка масиву Tabl[1..4, 1..6] of Integer.



Знайти суму елементів у кожному рядку масиву Tabl[1..4, 1..6]:

Знайти суму всіх елементів масиву Tabl[1..4, 1..6]:

Знайти суму елементів головної діагоналі масиву Tabl[1..4, 1..6]:


Пошук у двовимірному масиві елементів із заданою властивістю

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

Знайти кількість парних елементів у кожному стовпці масиву

Знайти в кожному рядку масиву їаЬІ[1..4, 1..6] кількість елементів, які перевищують середнє арифметичне значення масиву.

Заповнити одновимірний масив В[1..6] значеннями максимальних елементів стовпців масиву їаЬ![1..4, 1..6].

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


Питання для самоперевірки

1. Запишіть оператор для обчислення суми елементів першого рядка масиву Ма$[1..5, 1..5].

2. Запишіть оператор для обчислення суми елементів головної діагоналі масиву МаБ[1..5, 1..5].

3. Запишіть фрагмент програмного коду для заміни нулями парних елементів масиву МаБ[1..5, 1..5].

4. Знайдіть максимальний елемент другого стовпця масиву А[1..4, 1..5].

5. Дано цілочисельний масив А[1..4, 1..5]. Напишіть фрагмент програмного коду, який реалізує створення одновимірного масиву В[1..5], елементи якого є сумами стовпців масиву А.

6. У 5 міст відправили вагони з десятьма різними видами товарів. Складіть програму для обчислення загальної маси продукції, відправленої в кожне місто, і загальної маси продукції кожного виду.

Вправа 39

Заповнити двовимірний масив А[1..6, 1..7] випадковими цілими числами з діапазону [-50,50]. Визначити: а) суму елементів &-го рядка; б) середні арифметичні значення елементів кожного рядка; в) максимальні значення для кожного стовпця; г) кількість додатних елементів &-го рядка.

1) Створіть новий проект. Розробіть інтерфейс програми згідно з рисунком. Для таблиці БїгіпдСгісП задайте значення властивостей СоІСоипї = 8, ВошСоипї = 7.

Опишіть масив А як глобальний: var Forml: TForml;

A: array[1..6, 1..7] of Integer;

У процедурі обробки події On-Create для форми запрограмуйте: виведення заголовків рядків і стовпців таблиці StringGridl; заповнення масиву А випадковими цілими числами з діапазону [-50,50] і виведення значень елементів до таблиці StringGridl.

2) У процедурі обробки події onclick для кнопки Сума елементів рядка запрограмуйте: введення номера рядка k з текстового поля Editi; знаходження суми k-го рядка; виведення значення суми з текстового поля Edit2.

3) Створіть процедуру обробки події onclick для кнопки Середні арифм. по рядках. Проаналізуйте, які дії виконуються для кожного рядка.

4) Створіть процедуру обробки події ОпСІіск для кнопки Максимальні у стовпцях.

5) Створіть процедуру обробки події onclick для кнопки Кількість додатних рядка. Номер рядка задається в текстовому полі Edit5.

6) Перевірте роботу програми. Збережіть проект у папці Вправа 39. Завершіть роботу за комп’ютером.

Комп'ютерне тестування

Виконайте тестове завдання 39 із автоматичною перевіркою на сайті «Інтерактивне навчання».

Практична робота 13

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

Завдання: створити проект для розв’язання задачі.

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

Обладнання: комп’ютер зі встановленим середовищем програмування Lazarus.

Хід роботи

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

І. Розміщення елементів керування на формі

1. Створіть новий проект. Змініть значення властивості Caption форми згідно з рис. 1.

2. Розробіть інтерфейс програми. Можливий вигляд вікна програми наведено на рис. 1. Компонент StringGrid призначено для виведення турнірної таблиці; компонент Memo — для виведення масиву рейтингу; компонент ListBox — для виведення списку призерів.

3. Налаштуйте властивості елементів керування згідно з рис. 1. Параметру StringGrid1 .Options.goEditing надайте значення True.

ІІ. Розробка програмного коду

4. Опишіть глобальний двовимірний масив Tur: array[1 ..5, 1..6] of Integer для збереження турнірної таблиці.

5. У процедурі обробки події OnCreate для форми запишіть оператори для виведення заголовків рядків і стовпців таблиці StringGridl. Заголовку шостого стовпця надайте значення Сума.

6. У процедурі обробки події onclick для кнопки Занести бали до масиву запишіть програмний код, що реалізує читання значень із таблиці StringGridl і присвоєння цих значень елементам масиву Tur.

7. Обчисліть суму балів кожної команди-учасниці. Для цього в процедурі обробки події onclick для кнопки Знайти суму балів команд запишіть оператори для заповнення шостого стовпця таблиці.

Алгоритм додавання елементів масиву по рядках: для кожного значення індексу і значення суми обнуляється, потім до значення суми додаються елементи і-го рядка з першого по п’ятий. Одержана сума присвоюється шостому елементу і-го рядка.

8. Визначте рейтинг команд і розташуйте їхні номери за зменшенням суми балів. Найбільша сума балів, яку може одержати кожна команда в ході турніру, дорівнює 8 (чотири перемоги). Тому процедура додавання до масиву Memo1.Lines[k] номерів команд за зменшенням суми балів може бути такою:

9. У процедурі обробки події OnCΠck для кнопки Визначити переможців запишіть програмний код для виведення трьох перших елементів масиву Memo1.Lines[k] як номерів команд-призерок турніру.

ІІІ. Тестування проекту

10. Перевірте правильність роботи програми, заповнивши турнірну таблицю так, як показано на рис. 2.

Числа в таблиці означають: 2 — виграш, 1 — нічия, 0 — програш.

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

12. Збережіть проект у папці Практична робота 13. Завершіть роботу за комп’ютером.

Зробіть висновок: як застосовувати алгоритми пошуку значень у масиві для розв’язування задач.

РОЗДІЛ 10

РОЗВ'ЯЗУВАННЯ КОМПЕТЕНТНІСНИХ ЗАДАЧ. ВИКОНАННЯ КОЛЕКТИВНОГО НАВЧАЛЬНОГО ПРОЕКТУ

ПОВТОРЮЄМО

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

Навчальний проект — це навчально-пізнавальна, дослідницька, творча або ігрова діяльність, спрямована на розв’язання певної проблеми.

У ході розв’язування компетентнісних задач і роботи над проектами вам необхідно буде побудувати інформаційну модель.

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

1. Що називають компетентнісною задачею?

2. Що таке навчальний проект?

3. Які види навчальних проектів вам доводилось виконувати?

4. Із яких етапів складається робота над проектами?

5. Що таке інформаційна модель?

6. Як здійснювати пошук матеріалів в Інтернеті?

7. Яким чином можна подати результати виконаної роботи?

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

 

Це матеріал з підручника Інформатика 9 клас Бондаренко

 






^