Сортування масивів. Пошук елементів у відсортованому масиві


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

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


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

ІІ. Розробка програмного коду
4. Опишіть глобальний двовимірний масив Tur: array[1..5, 1..6] of Integer для збереження турнірної таблиці.
5. У процедурі обробки події OnCreate для форми запишіть оператори для виведення заголовків рядків і стовпців таблиці StringGrid1. Заголовку шостого стовпця надайте значення Сума.
6. У процедурі обробки події OnClick для кнопки Занести бали до масиву запишіть програмний код, що реалізує читання значень із таблиці StringGrid1 і присвоєння цих значень елементам масиву Tur.
7. Обчисліть суму балів кожної команди-учасниці. Для цього в процедурі обробки події OnClick для кнопки Знайти суму балів команд запишіть оператори для заповнення шостого стовпця таблиці.
Алгоритм додавання елементів масиву по рядках: для кожного значення індексу і значення суми обнуляється, потім до значення суми додаються елементи і-го рядка з першого по п’ятий. Одержана сума присвоюється шостому елементу і-го рядка.
8. Визначте рейтинг команд і розташуйте їхні номери за зменшенням суми балів. Найбільша сума балів, яку може одержати кожна команда в ході турніру, дорівнює 8 (чотири перемоги). Тому процедура додавання до масиву Memo1.Lines[k] номерів команд за зменшенням суми балів може бути такою:
var N, k: Integer;
begin k := 0;
For N := 8 downto 0 do
For i := 1 to 5 do
If Tur[i, 6] = N Then
begin Memo1.Lines[k] := IntToStr(i);
k := k + 1;
end;
end;
9. У процедурі обробки події OnClick для кнопки Визначити переможців запишіть програмний код для виведення трьох перших елементів масиву Memo1.Lines[k] як номерів команд-призерок турніру.
ІІІ. Тестування проекту
10. Перевірте правильність роботи програми, заповнивши турнірну таблицю так, як показано на рис.. Числа в таблиці означають: 2 — виграш, 1 — нічия, 0 — програш.


11. Перевірте роботу програми, запускаючи проект на виконання для різних варіантів заповнення турнірної таблиці.
12. Збережіть проект у папці Практична робота 13. Завершіть роботу за комп’ютером.
Зробіть висновок: як застосовувати алгоритми пошуку значень у масиві для розв’язування задач.

Домашня робота
Завдання 2. Табель
У вибраному середовищі програмування створіть проект Табель, у якому реалізовано електронний табель. У проекті передбачте, що в лінійній таблиці задають назви предметів, які вивчає учень. Елементи управління екранної форми передбачають можливість за номером предмета дізнатись оцінку з відповідного предмета; отримати дані про максимальну оцінку з предметів, що вивчаються; кількість предметів, які мають найвищу та найнижчу оцінки; середній бал успішності.

Комментариев нет:

Отправить комментарий