- •1.1.2 Структура функцій програми
- •1.1.3 Правила синтаксису
- •1.1.4. Типи даних
- •1.1.5. Функції введення та виведення даних
- •1.2 Приклад програми Умова задачі
- •Особливості використання функцій вводу та виводу
- •1.3 Технологія виконання лабораторної роботи
- •1.4. Варіанти завдань
- •1.5 Контрольні запитання
- •Розгалужені обчислювальні процеси Лабораторна робота 2
- •2.1 Теоретичні відомості
- •2.1.1. Вибір із двох альтернатив
- •2.1.2. Вкладеність конструкцій вибору
- •2.1.3. Операторний блок
- •2.1.4. Поліваріантний вибір
- •2.2. Приклади програм
- •2.3. Варіанти завдань
- •2.4 Контрольні запитання
- •Циклічні обчислювальні процеси Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.1.1. Цикл із передумовою
- •3.1.2. Цикл із постумовою
- •3.1.3. Цикл із лічильником
- •3.1.4. Переривання та продовження циклу
- •3.2. Приклад алгоритму та програми
- •3.3. Варіанти завдань
- •3.4 Контрольні запитання
- •Цикли з розгалуженням Лабораторна робота 4
- •4.1 Теоретичні відомості
- •4.1.1. Рекурентні співвідношення
- •4.1.2. Функції користувача
- •4.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Код програми
- •4.3. Варіанти завдань
- •4.4 Контрольні запитання
- •Рекурсивні функції Лабораторна робота 5
- •5.1 Теоретичні відомості
- •5.2. Приклад алгоритму та програми
- •5.3. Варіанти завдань
- •6.1.2. Оголошення та ініціалізація
- •6.1.3. Операції над покажчиками
- •6.1.4. Методи розв’язанні нелінійних рівнянь
- •6.2. Приклад алгоритму та програми
- •6.3. Варіанти завдань
- •6.4 Контрольні запитання
- •Одновимірні масиви Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2. Приклад алгоритму та програми
- •Алгоритм програми
- •Код програми
- •7.3. Варіанти завдань
- •7.4 Контрольні запитання
- •Багатовимірні масиви Лабораторна робота 8
- •8.1 Теоретичні відомості
- •8.1.1. Оголошення багатовимірних масивів. Доступ до елементів
- •8.1.2. Базові операції обробки двовимірних масивів
- •8.2. Приклад алгоритму та програми
- •8.3. Варіанти завдань
- •9.1.2. Деякі функції обробки рядків
- •9.2. Приклад алгоритму та програми
- •9.3. Варіанти завдань
- •9.4 Контрольні запитання
- •Структури та масиви структур Лабораторна робота 10
- •10.1 Теоретичні відомості
- •10.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Приклад коду
- •10.3. Варіанти завдань
- •10.4 Контрольні запитання
6.1.2. Оголошення та ініціалізація
Константні значення, арифметичні вирази та регістрові змінні не зберігають значення в оперативній пам’яті, тому застосувати до них операцію & неприпустимо.
Змінну-покажчик оголошують:
<тип>* <ідентифікатор_покажчика>;
Тут <тип> — простий чи структурований тип адресованої змінної; <ідентифікатор_покажчика> — рядок символів, що є ім’ям змінної-покажчика; символ * означає «вказати на».
Покажчик перед використанням iнiцiалiзується адресою змінної або значенням іншого покажчика. Покажчику можна присвоїти значення 0 (NULL). Такий покажчик не адресує жодну змінну.
Посилання є псевдонімом змінної, тобто її альтернативним іменем і для нього не резервується місце в оперативній пам’яті. Синтаксис оголошення посилання застосовує символ &, який записують після типу змінної:
<тип>& <ідентифікатор_посилання >;
Посилання слід iнiцiалiзувати ім’ям змінної. Типи посилання та змінної, значенням якої ініціалізуються посилання, мають збігатися.
6.1.3. Операції над покажчиками
Для покажчиків означені операції адресування, присвоєння, арифметичні та відношення.
Унарна операція & повертає адресу свого аргументу.
Значення змінної за певною адресою отримують, застосувавши операцію розименування. Операція позначається символом *, який записують перед іменем покажчика. Операція * повертає об’єкт, на який вказує покажчик.
Операція присвоєння використовується для надання значення покажчику
Арифметичні операції: унарні операції інкремента та декремента, бінарні операції додавання та віднімання цілого числа, віднімання одного покажчика з іншого.
Покажчики одного типу можна порівнювати один з одним. При цьому порівнюються адреси, що зберігаються в покажчиках.
Покажчик на функцію містить адресу її в оперативній пам’яті. Ім’я функції — це початкова адреса її коду. До функцій можна застосувати тільки дві операції: виклик і отримання її адреси, тобто визначити її покажчик.
Синтаксис оголошення покажчика на функцію:
<тип> (*<ідентифікатор покажчика>)(<оголошення параметрів>);
Щоб викликати функцію через покажчик, його слід розименувати.
Існують три способи передачі аргументів у функцію — як значення, як посилання та як покажчики. Щоб повертати з функцій більше одного значення, слід передати функції аргументи-посилання або аргументи-покажчики. Під час оголошення функції параметри-посилання вказують у її заголовку, використовуючи операцію посилання &. Параметри-покажчики оголошують в заголовку функції, використовуючи операцію непрямої адресації *.
В операціях виклику функції з аргументом-покажчиком застосовується операція & адресації змінної, значення котрої змінюватимуться. В операції виклику функції з параметром-посилання аргументом є ім’я змінної.
6.1.4. Методи розв’язанні нелінійних рівнянь
Метод перебору. При розв’язанні нелінійного рівняння методом перебору задаються початкове значення аргументу x=a і крок h, який при цьому визначає і точність знаходження коріння нелінійного рівняння. Поки виконується умова F(x)*F(x+h)>0 аргумент x збільшуємо на крок h (x=x+h). Якщо добуток F(x)*F(x+h) стає від’ємним , то на інтервалі [x, x+h] існує розв’язок рівняння.
Метод половинного ділення. При розв’язанні нелінійного рівняння методом половинного ділення задаються інтервал [a, b], на якому існує тільки одне рішення, і бажана точність ε. Потім визначається середина інтервалу с=(а+b)/2 і перевіряється умова F(a)∙F(c)<0. Якщо вказана умова виконується, то праву межу інтервалу b переносимо в середню точку с (b=c). Якщо умова не виконується, то в середню точку переносимо ліву межу(a=c). Ділення відрізку навпіл триває доки |b - a|>ε. .
Метод хорд.
При розв’язанні нелінійного рівняння
методом хорд задаються інтервал [a, b],
на якому існує тільки одне рішення, і
точність ε. Потім через дві точки з
координатами (a, F(a)) і (b, F(b)) проводимо
відрізок прямої лінії (хорду) і визначаємо
точку перетину цієї лінії з віссю абсцис
(точка c). Якщо при цьому F(a)∙F(c)<0, то
праву межу інтервалу переносимо в точку
с (b=c). Якщо вказана умова не виконується,
то в точку c переноситься ліва межа
інтервалу (а=с). Пошук рішення припиняється,
коли досягається задана точність |F(c)|<
ε. Для визначення точки перетину хорди
з віссю абсцис використовується формула
.
Метод дотичних.
При розв’язанні нелінійного рівняння
методом дотичних задаються початкове
значення аргументу x0 і точність ε. Потім
в точці(x0, F(x0)) проводимо дотичну до
графіка F(x) і визначаємо точку перетину
дотичної з віссю абсцис x1. У точці (x1,
F(x1)) знову будуємо дотичну, знаходимо
наступне наближення шуканого рішення
x2 і так далі. Вказану процедуру повторюємо
доки |F(xi)|> ε. Для визначення точки
перетину (i+1) дотичної з віссю абсцис
використовується формула
Умова збіжності
методу дотичних
.
