- •Обчислювальна техніка та алгоритмічні мови Методичні вказівки до лабораторних робіт
- •Загальні відомості
- •Структура програми
- •Типи даних
- •Умовний оператор if-else
- •Оператор вибору switch
- •Оператори циклу
- •Алгоритм обчислення ряду
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 3. «Функції. Форматне введення-виведення даних»(2 год.)
- •Теоретичні відомості
- •Ступеневі ряди
- •Форматне виведення даних в с
- •Форматне введення в с
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 4.«Одновимірні масиви.Покажчики. Рядки»(4 год.)
- •Теоретичні відомості Масиви й покажчики
- •Записи «покажчик-зсув» і «покажчик-індекс»
- •Рядки як одновимірні масиви
- •Передача рядка у функцію
- •Введення/виведення символів і рядків
- •Бібліотечні функції для роботи з символами та рядками
- •Постановка задачі
- •Варіанти
- •Передача масиву у функцію
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота6. «Динамічні одновимірні масиви»(2 год.)
- •Теоретичні відомості Динамічні масиви
- •Видалення елемента із масиву
- •Вставка елемента в масив
- •Перестановка двох елементів
- •Циклічна перестановка елементів
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота7. "Структури: складені типи даних"(2 год.)
- •Теоретичні відомості
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Література
Лабораторна робота 4.«Одновимірні масиви.Покажчики. Рядки»(4 год.)
Ціль роботи:Формування уміння описувати, ініціалізувати масиви, роздруковувати вміст масиву, виконувати прості операції над масивами. Одержання навичок використання покажчиків для звертання до масиву і його елементів.Освоєння прийомів роботи із символами й рядками, застосування бібліотечних функційдля обробки рядків.
Теоретичні відомості Масиви й покажчики
Зі змінних будь-якого типу можна утворювати масиви. При оголошенні масиву вказується тип даних, ідентифікатор (ім'я) масиву й число елементів масиву у квадратних дужках:
double mas[10] ; // Масив з п'яти елементів типу double
Індекси елементів масиву починаються з 0, індекс останнього елемента на одиницю менше числа елементів у масиві. Масив можна ініціалізувати списком значень у фігурних дужках:
int b[4] = {1, 2, 3, 4};
Для звертання до елемента масиву вказується ідентифікатор масиву й індекс елемента в квадратних дужках, наприклад, b[2], mas[5].
Змінна, значенням якої є адреса іншої змінної, називається покажчиком. При оголошенні покажчика перед ідентифікатором записується знак *:
int a, *pa;
– оголошення цілої змінної а й покажчика ра на цілочисельну змінну. Щоб покажчик зв'язати з певною змінною, потрібно покажчику присвоїти адресу цієї змінної:
pa = &a;
У С/С++ ім'я масиву є також покажчиком на масив, що посилається на перший елемент масиву (елемент із індексом 0). Таким чином, адресу першого елемента масиву можна одержати як pa або &a[0]. Значення першого елемента масиву повертається операцією розіменування:
int w = *pa;
– зміннійw присвоїли значення змінної, розміщеної за адресою pa, тобто a[0].
Записи «покажчик-зсув» і «покажчик-індекс»
Покажчик масиву посилається на перший елемент. Зміщуючи покажчик, можна звернутися до наступних елементів масиву, наприклад,
W = *(pa+2);
– змінній w присвоюється значення 3-го елемента масиву. Наведений запис – це запис "покажчик-зсув". Дужки обов’язкові, оскільки пріоритет операції * вище, ніж пріоритет +. Адреса елемента a[2], тобто &a[2], може бути записана як pa+2.
Усі елементи масиву можна записати за допомогою покажчиків і зсувів, а запис "покажчик-зсув" можна застосовувати до імені масиву як до покажчика, наприклад.
w = *(a+1)
– змінній w присвоєне значення 2-го елемента a[1].
Покажчики можна проіндексувати точно так само, як і масив. Наприклад, виразpa[1]посилається на елемент масиву a[1]. Даний вираз називається записом "покажчик-індекс".
Наведемо приклад виведення елементів масиву з використанням запису «покажчик-зсув»
int v[3]={1,3,5};
int*p1=v;
for(int i=0;i<3;i++)
cout<<*(p1+i)<<"\t";
Для виведення елементів із використанням запису «покажчик-індекс» в операції cout потрібно записати:
cout <<p1[i]<<"\t";
Рядки як одновимірні масиви
У мові С рядок подається як одновимірний масив змінних типу char, останнім елементом якого автоматично є нульовий символ '\0'. Можливі кілька видів оголошень масиву символів. По-перше, це може бути абстрактний рядок без вказівки розміру масиву:
charname[] = "Andrey";
Тут число елементів масиву визначається автоматично й дорівнює 7 (з урахуванням останнього елемента '\0'). По-друге, масив символів може мати більше елементів, чим містить абстрактний рядок:
char name[10] = "Andrey";
Тут три останніх елементи масиву не використовуються. Нарешті, рядок може бути оголошений за допомогою покажчика. Перед використанням покажчика рядок вже повинен існувати, наприклад:
char name[] = "Andrey";
char *namePtr;
namePtr = name;
Відзначимо, що при присвоєнні покажчику адреси масиву не потрібно використати адресний оператор &, тому що ім'я масиву поводить себе подібно адреси.
