Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ч2(программирование).doc
Скачиваний:
51
Добавлен:
01.03.2016
Размер:
1.49 Mб
Скачать

Функції обробки масивів чисел

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

  • введення масиву чисел;

  • виведення масиву чисел;

  • формування масиву випадкових чисел;

  • пошук суми елементів масиву;

  • пошук максимального та мінімального елементів масиву та їх індексів;

  • пошук індексу елементу масиву за його значенням;

  • циклічний зсув елементів масиву праворуч або ліворуч;

  • видалення елементу з масиву;

  • формування масиву накопичених значень елементів.

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

Незважаючи на відмінність завдань, що вирішуються цими функціями, у них буде дві однакові особливості.

Перша полягає в тому, що в кожну з цих функцій буде передаватися ім'я масиву і функція буде обробляти саме цей масив, а не його копію.

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

      1. Функція формування випадкового масиву

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

Рисунок 7.4 – Функція формування випадкового масиву

      1. Функції виведення масиву на консоль

Ця функція досить проста і не потребує коментарів. Ця функція досить проста і не потребує коментарів. Текст функції наведено на рисунку 7.5.

Рисунок 7.5 – Функція виведення масиву на консоль

      1. Функції введення масиву з консолі

Можливі декілька варіантів введення масиву з консолі. Перший полягає у тому, що користувач одразу набирає числа масиву, розділяючи їх пробілами, тобто масив чисел являє собою рядок символів. Цей рядок вводиться за допомогою функції gets(),а далі перетворюється у послідовність чисел. Перевага цього способу полягає у простоті вводу, а недолік у тому, що доводиться перетворювати символьний рядок у масив чисел.

Другий варіант полягає у послідовному введенні розміру та кожного елементу масиву з консолі як чисел за допомогою об’єкту cin. Тут вже не потрібно турбуватиcя про перетворення символів у числа, але сама процедура введення ускладнена.

Нижче ми розглянемо обидва варіанти.

Функція введення масиву як рядка символів

Сама функція, що наведена нижче, виглядає досить просто і фактично забезпечує тільки введення рядка символів, а для перетворення рядка символів у масив використовується функція strToArr().

Рисунок 7.6 – Функція введення масиву як рядка символів

Функцію перетворення рядка символів у масив наведено на рисунку 7.7.

Рисунок 7.7 – Функція перетворення рядка символів у масив

У цій функції довжину рядка визначено розміром 80 виходячи з ширини консолі. Для введення рядка використовується функція gets() а не об’єкт cin,тому що цей об’єкт буде сприймати пробіл, як кінець рядка. Використання функції gets() потребує підключення заголовного файлу <cstdio> або < stdio.h>.

Роботу по перетворенню рядка символів у масив виконує функція strToArr():

У цій функції для перевірки, чи є символ цифрою, використовується функція isdigit(), що визначена у заголовному файлі <cctype> або <ctype.h>.

Для перетворення символу цифри у число використовується тай факт, що код цифри на 48 більший ніж значення цієї цифри.

Значення усього числа накопичується за схемою Горнера, відповідно до якої, наприклад, число 12345 обчислюється так: (((1*10+2)*10+3)*10+4)*10+5 .