Масиви та рядки Завдання
1. Напишіть функцію reversit(), яка перевертає рядок (масив типу char). Рядок повинен передаватися в функцію reversit() як аргумент. Напишіть програму для виконання функції reversit(). Програма повинна приймати рядок від користувача, викликати функцію reversit(), а потім виводити отриманий результат.
2. Створіть клас employee, який містить ім’я (об’єкт класу string) і номер (типу long) службовця. Включіть в нього метод getdata(), для отримання даних від користувача і запису їх у відповідне поле об’єкту, і метод putdata(), для виведення даних. Припускаємо, що ім'я може містити пробіли. Напишіть функцію main(), що використовує цей клас. Вам потрібно буде створити масив типу employee, а потім запропонувати користувачеві ввести дані до 100 службовців. Потім вивести дані всіх службовців на екран.
3. Напишіть програму, яка обчислює середнє значення 100 інтервалів, введених користувачем. Створіть масив об’єктів класу Distance.
4. Напишіть програму, яка дозволяє користувачеві вводити цілі числа, а потім зберігати їх в масиві типу int. Напишіть функцію maxint(), яка, опрацьовуючи елементи масиву найбільший. Функція повинна приймати в якості аргументу адресу масиву і кількість елементів у ньому, а повертати індекс найбільшого елемента. Програма повинна викликати цю функцію, а потім вивести найбільший елемент і його індекс.
5. Опишіть клас fraction з попередньої лабораторної роботи. Напишіть функцію main(), яка генерує 256 випадкових дробових чисел, зберігає їх у масиві типу fraction, обчислює середнє значення і виводить результат.
6. У грі бридж кожному з гравців роздають 13 карт, таким чином колода роздається повністю. Модифікуйте програму CARDARAY з лекції так, щоб після перемішування колоди вона ділилася на чотири частини по 13 карт кожна. Кожна з чотирьох груп карт потім повинна бути виведена на екран.
7. Одним з недоліків C++ є відсутність вбудованого типу для грошових значень для бізнес-програм, такого, як $173’698’001,32. Такий грошовий тип повинен зберігати числа з фіксованою десятковою крапкою з точністю до 17 знаків, якого було б достатньо для зберігання національного боргу в доларах і центах. Створіть клас money, додайте можливість введення і виведення грошових значень розділеними апострофами груп по три числа, двома знаками після коми і знаком $ на початку. Додайте метод mstold(), який приймає рядок як аргумент – суму і повертає еквівалентне їй значення – число типу long double. Вам потрібно опрацювати рядок як масив символів, перевірити коректність введених даних.
8. Іншим недоліком C ++ є відсутність автоматичної перевірки індексів масиву на відповідність їх меж масиву (це робить дії з масивами швидкими, але менш надійними). Створіть клас safeexaray, який використовує масив типу int. Конструктор класу повинен приймати 2 параметри типу int – початковий і кінцевий індекси елементів масиву. У конструкторі повинна здійснюватись перевірка на довжину масива. У класі потрібно описати методи. Перший, putel(), приймає індекс і значення типу int як аргументи і вставляє це значення в масив по заданому індексу. Другий, getel(), приймає індекс як аргумент і повертає значення типу int, що міститься в елементі з цим індексом.
9. Створіть клас matrix, який надає ті ж заходи безпеки, як і клас із завдання 8, тобто здійснює перевірку індексів масиву на входження їх в межі масиву. Полем класу matrix буде масив 10 на 10. Конструктор повинен дозволяти програмістові визначити реальний розмір масиву (припустимо, зробити його менше, ніж 10 на 10). Методам, призначеним для доступу до членів матриці, тепер потрібні два індекси: по одному для кожної розмірності масиву. Напишіть методи класу для виконання дій над об’єктами типу matrix.