68973

Сортування масивів

Лекция

Информатика, кибернетика и программирование

Стан об’єкту цілком і повністю визначається станом елементів масиву. Для роботи з об’єктом можна використовувати інтерфейс що містить наступний набір операцій: розміщення масиву динамічної пам’яті ініціалізація масиву проглядання вивід значень елементів масиву сортування масиву різними способами...

Украинкский

2014-09-28

30.5 KB

3 чел.

Лекція № 18

Тема: Сортування масивів

План

Сортування масивів

Специфікація класів для сортування масивів

Сортування масивів

Перше питання, на яке слід отримати відповідь, це визначити, чи може і |чи повинна програма бути об'єктно-орієнтованою чи ні? В даному випадку відповідь "Так" очевидна. Чому? Об'єктом є масив, який доцільно розмістити в динамічній пам'яті. Стан об'єкту цілком і повністю визначається станом елементів масиву. Для роботи з об'єктом можна використовувати інтерфейс, що містить наступний набір операцій: розміщення масиву динамічної пам'яті, ініціалізація масиву, проглядання (вивід) значень елементів масиву, сортування масиву різними способами (прості і складні сортування вибором, обміном або вставками), звільнення зайнятої пам'яті. Отже, сортування масиву зручно реалізувати з використанням класу або ієрархії класів, до проектування яких ми і перейдемо зараз.

Специфікація класу для сортування масиву

При проектуванні специфікації класу необхідно вирішити наступні питання:

-  вибрати доцільну ієрархію класів;

- визначити, чи достатнім є використання звичайних класів або слід застосувати шаблони класів;

- спроектувати структуру кожного з класів ієрархії (визначити склад членів класу, їх функціональне призначення і доступність);

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

Ієрархія шаблонних або звичайних класів. Оскільки сортування масиву є хоча і важливим, але все таки приватним завданням, що є одним з етапів складнішого завдання, в якому потрібно використовувати відсортований масив, то представляється доцільним реалізувати сортування масиву в одному класі або в ієрархії класів. Цей клас (класи) можна використовувати як базового (базових) при вирішенні завдань, що використовують відсортовані масиви. Як указувалося раніше, при сортуванні масивів використовується   наступний набір операцій: розміщення масиву в динамічній пам'яті, ініціалізація масиву, проглядання (вивід) значень елементів масиву, сортування масиву різними способами (прості і складні сортування вибором, обміном або вставками), звільнення зайнятої пам'яті. Аналізуючи цей набір операцій, неважко відмітити, що частина операцій (розміщення масиву в динамічній пам'яті, ініціалізація масиву, перегляд або виведення значень елементів масиву, звільнення зайнятої пам'яті) є типовою і використовується не тільки при сортуванні масиву, але і при вирішенні практично будь-яких інших завдань обробки масивів. Із сказаного виходить, що як вершина ієрархії класів слід використовувати базовий клас, в якому реалізовані наступні типові операції:

розміщення масиву в динамічній пам'яті (конструктор);

ініціалізація масиву значеннями, що читаються, наприклад, з файлу на магнітному диску;

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

звільнення зайнятої масивом динамічної пам'яті (деструкція).

 

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

Таким чином, отримуємо наступну ієрархію класів, яку можна використовувати для сортування масивів.

// Базовий клас: конструктор, деструкція, ініціалізація і виведення масиву

class SArTJB

{

};

// Похідний клас: різні методи сортування масивів

class SArTJD : public SArT_B

{

}

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

шаблон похідних класів повинні розміщуватися в різних заголовних файлах.


 

А также другие работы, которые могут Вас заинтересовать

54224. Корекція знань, умінь, навичок. Масштаб 291.5 KB
  Організаційний момент Учні вітають гостей. Вчитель повідомляє про те що за роботу на відкритому уроці всі учні отримають оцінку. Учні користуються зошитами для контрольних робіт виставляють оцінки в щоденники. Вправа Мікрофон: учні формулюють основні правила на використання дій з десятковими дробами.
54225. Узагальнюючий урок по темі «Звичайні дроби» 273 KB
  А які знання ми з вами застосували при поділі цих цукерок Знання про звичайні дроби. Я думаю що ви ще раз переконалися що знати все про звичайні дроби корисно а інодіще й смачно Правда Тому на сьогоднішньому уроці ми з вами пригадаємо все що вивчили про звичайні дроби. Але він каже що теж дещо знає про дроби.
54226. Множення і ділення натуральних чисел, їх властивості 231 KB
  Вироблення навиків розв’язування вправ на множення і ділення натуральних чисел. Розв’язування рівнянь на основі залежностей між компонентами дій множення і ділення розв’язувати текстові задачі що потребують використання залежностей між величинами зокрема розв’язувати задачі за допомогою рівнянь Обладнання: Дидактичний матеріал із завданнями для різних етапів уроку. Сьогодні ми повинні повторити всі прийоми множення та ділення переконатися що ми навчилися виконувати вправи на множення та ділення натуральних чисел розв’язувати...
54227. Практичне застосування відсотків 209.5 KB
  Мета: Поглибити знання з теми; Розвивати в учнів пізнавальний інтерес уміння використовувати набуті знання навички й уміння в нових ситуаціях; Формувати навички взаємоконтролю і самоконтролю уміння об’єктивно оцінити результати індивідуальної роботи; Виховувати інтерес до математики почуття колективізму та вміння працювати в групах. Удосконалити практичні вміння та навички розв’язувати задачі на відсотки. Оцінити рівень засвоєння учнями знань та вмінь розв’язувати задачі на відсотки. Ви розв’язували багато задач на відсотки.
54228. Решение задач с помощью уравнений 297 KB
  Оборудование: мультимедийное оборудование, презентация, инидвидуальные карточки с дополнительными, тестовими заданиями, роздаточный матеріал «Алгоритм решения задач с помощью уравнений»
54229. Действия с натуральными числами 148.5 KB
  Цель: обобщить, систематизировать знания и умения учащихся по теме; закрепить навыки решения задач и упражнений на действия с натуральными числами; развивать четкость и логику мышления; воспитывать чувство патриотизма, гордости, любви к Украине, родному городу Луганску.
54230. Розвязування задач на додавання і віднімання натуральних чисел 106.5 KB
  Мета: Навчальна: удосконалити вміння застосовувати правила та властивості додавання і віднімання натуральних чисел до розв’язування задач; Розвивальна: сприяти розвитку логічного мислення обчислювальних навичок учнів культуру математичної мови і записів; формувати інтерес до математики; Виховна: виховувати самостійність наполегливість взаємодовіру навчити працювати за аналогією. Обладнання і наочність: плакати з короткими...
54231. Дії з натуральними числами 3.21 MB
  Мета: узагальнення та систематизація знань, умінь та навичок; розвиток логічного мислення, обчислювальних навичок, інтересу до математики, культури математичного мовлення, самостійності; виховання віри в свої сили, уважності, наполегливості.
54232. Десятичная дробь. Чтение и запись десятичной дроби 194 KB
  Тип урока: урок усвоения знаний и умений Цели урока: повторить учебный материал по теме: Обыкновенные дроби сформировать у учащихся понятие о десятичной дроби; сформировать умение...