Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-1 Программирование С++ / метод_лб_ пз_Інформатика.doc
Скачиваний:
5
Добавлен:
31.01.2021
Размер:
699.9 Кб
Скачать

Void qsort (void *base , n , width,

int (* fcmp ) (const void *elem 1, const void -> elem2)) ,

де base — покажчик на перший елемент масиву;

n — кількість елементів масиву;

width -довжина елементів масиву в бітах.

При виконанні сортування функція qsort ( ) звертається до заданого користувачем функції.

Функція задається покажчиком на функцію:

Int (*fcmp) ( const void *elem1, const void *elem2) .

Функція, на яку вказує fcmp , виконує порівняння двох елементів масиву, на які вказує elem1 і elem2.

Функція повинна повертати значення:

< 0, якщо *elem1 < *elem2;

= 0, якщо *elem1 = *elem2;

> 0, якщо *elem1 > *elem2;

Якщо *elem1 > *elem2 , то елемент, на який указує elem1 розташовується в масиві раніш; "колишній" елемент розташовується в упорядкованому масиві пізніше.

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

У бібліотеці <stdlib.h> існує також функція пошуку змінних структурного типу в масиві цих змінних.

4.3 Контрольні питання

1. Що таке дані типу структура і які типи даних вони містять?

2. Як описуються дані типу структура?

3. Які існують засоби ініціалізації полів структури?

4. Що таке “вкладеність“ структур?

4.4. Індивідуальні завдання

1. З відомості працівників цеху визначити, скільки в цеху чоловіків-токарів?

2. Скільки в групі студентів-відмінників (всі оцінки 5) і студентів невстигаючих?

3. Є чи в групі студенти, що грають у волейбол , зріст яких більше 180 см?

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

5. Ввести в довільному порядку відомості про студентів групи. Вивести прізвища студентів по групах: встигають ”добре”,” задовільно”,” незадовільно”.

6. Віддрукувати список робітників-жінок ціху пенсійного віку.

7. Ввести в пам'ять розклад електропоїздів прямуючих з Харкова через Мерефу. Які з потягів прямують тільки до Мерефи?

8. Хто зі студентів групи має самий великий зріст і вагу ?

9. Ввести відомості про дату народження студентів групи, вивести дані в такому порядку: спочатку - про народжених в 1-ої декаді, потім у 2-ий і 3-їй декадах.

10. Зі списку студентів групи вивести на екран два списки: перший містить прізвища дівчин, другий — прізвища юнаків.

11. Список студентів групи ввести в довільному порядку, а вивести на екран по групах, кожна група належить до якого-небудь знака зодіаку.

12. За яким предметом в студента з заданим номером по журналу краща оцінка за підсумками сесії?

13. Ввести в пам'ять результати змагань по лижних гонках. Показати п'ять кращих результатів окремо для юнаків і дівчат.

14. За результатами лижних змагань у трьох групах сформувати збірну команду з 7 чоловік.

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

16. В одному списку інформація про студентів, що приймали участь в олімпіаді по математиці, в іншому — по інформатиці. Сформувати третій список з учнями, що брали участь в обох олімпіадах.

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

18. Хто зі студентів-спортсменів здав усі випускні іспити на "добре" і "відмінно" ?

19. Хто краще учиться в групі - дівчата або юнаки?

20. Є чи в групі студенти, що мають оцінку 4 або 5 по інформатиці і грають в шахи ?

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

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

23. Роздрукувати список студентів, прізвища яких починаються з букви "А", і їхньої оцінки за час навчання.

24. За підсумками останньої сесії роздрукувати список відмінників і тих, що вчаться добре упорядкований за алфавітом.

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