Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_Lab_Work_ANSI_C__2010_lab1-10_v2.doc
Скачиваний:
40
Добавлен:
22.11.2018
Размер:
1.14 Mб
Скачать

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) дотичної з віссю абсцис використовується формула Умова збіжності методу дотичних .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]