Лабораторний практикум присвячений мові Сі в його базовому варіанті. Для виконання даного циклу придатна будь-яка операційне середовище і будь-яка система програмування Сі, так як ті властивості мови, які тут вивчаються, є ядром мови і присутні у всіх її реалізаціях. Тут розглядається робота в операційній системі Windows XP і системі програмування Borland C.
Опис кожної лабораторної роботи починається з розділів «Мета роботи», «Короткі теоретичні відомості» і «Приклади розв'язання задач». Зазначені в розділі «Короткі теоретичні відомості» теми обов'язково повинні бути вивчені за матеріалами лекційного курсу і по літературі до початку лабораторної роботи, а також повинні бути розібрані всі рішення, наведені в розділі «Приклади розв'язання задач».
Лабораторна робота № 13
Мета роботи: отримання практичних навичок в роботі з одновимірними масивами.
Короткі теоретичні відомості
Масив - це кінцева іменована послідовність однотипних величин. Масиви широко використовуються в тому випадку, якщо необхідно обробити багато даних, які користувач вводить з клавіатури.
Масив називається одновимірним. якщо він складається з одного рядка і N стовпців (вектор).
Формат опису масиву наступний:
тіп_елементов ім'я [розмірність];
Розмірність - це кількість елементів в масиві (ціла позитивна константа).
Даний запис означає, що резервується пам'ять для 10 чисел цілого типу з ім'ям array і порядковими номерами (індексами) від 0 до 9 включно. У Сі індексація починається з нуля, тому розмір масиву, зазначений в описі, завжди на одиницю більше максимального значення індексу.
Щоб звернутися до окремого елементу масиву, треба вказати ім'я масиву та номер елемента в масиві (індекс) в квадратних дужках. Індекс є цілим числом.
array [0] - перший елемент масиву, array [9] - останній елемент масиву.
Елементи масиву володіють всіма атрибутами заданого типу.
§ неініціалізованих (наприклад, масив з чотирма елементами цілого типу можна визначити як int array [4];);
§ ініціалізований. Визначається наступним чином: int array [] =;
Введення елементів масиву
Введення елементів одновимірного масиву з клавіатури здійснюється наступним чином:
const int n = 5; // кількість елементів в масиві
scanf ( "% f", array [i]); // зчитування з клавіатури елемента
Заповнення масиву випадковими числами
Нехай потрібно заповнити масив рівномірно розподіленими випадковими числами в інтервалі [a, b]. Оскільки для цілих і дійсних чисел способи обчислення випадкового числа в заданому інтервалі відрізняються, розглянемо обидва варіанти. Тут і далі передбачається, що на початку програми є рядок
Опис функції-датчика випадкових чисел знаходиться в заголовки stdlib.h.
Зручно також додати в свою програму функцію random:
яка видає випадкові числа з рівномірним розподілом в інтервалі [0, N-1]. Для отримання випадкових чисел з рівномірним розподілом в інтервалі [a, b] треба використовувати формулу
Для дійсних чисел формула дещо інша:
Тут константа RAND_MAX - це максимальне випадкове число, яке видає стандартна функція rand.
У наведеному нижче прикладі масив A заповнюється випадковими цілими числами в інтервалі [-5,10]. а масив X - випадковими числами в тому ж інтервалі.
int i, A [n], a = -5, b = 10 ;;
randomize (); // ініціалізація генератора випадкових чисел
A [i] = random (b-a + 1) + a; // кожному елементу масиву
// привласнює деякий випадкове значення
Якщо необхідно, щоб числа були не тільки позитивними, але й негативними, можна записати, наприклад, так:
array [i] = 20 - random (100);
Висновок елементів масиву
1. Висновок елементів масиву в один рядок екрана:
printf ( "% f \ t", array [i]); // \ t - табуляція
Для виведення елементів масиву в один стовпець екрану в функції printf потрібно замінити \ t на \ n - перехід на новий рядок екрана.
За допомогою операції sizeof () можна визначити розмір пам'яті, яка відповідає ідентифікатору або типу. Операція sizeof () має такий вигляд:
Як вираження може бути використаний будь-який ідентифікатор або ім'я типу. Якщо в якості вираження вказано ім'я масиву, то результатом є розмір всього масиву (т. Е. Твір числа елементів на довжину типу).
printf ( ". \ n", sizeof (array));