- •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.2. Приклад алгоритму та програми
Знайти корені нелінійного
рівняння виду
.
Пошук наближеного значення хоча б одного
кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснюватимемо методом ділення відрізка
навпіл. Для цього обчислимо середину m
відрізка, і якщо f(m)0,
то пошук продовжуватимемо на тому з
відрізків [a;
m],
[m; b],
на кінцях якого функція приймає значення
різних знаків. Реалізація алгоритму
подана у програмі ex5_5.
Для обчислення значення функції в
заданій точці визначимо функцію f(xx).
У програмі змінюватимуться значення
змінних через розименування покажчика,
наприклад, *a = x,
де double*
const a —
константний покажчик на тип double,
double
x — змінна,
на яку посилатиметься покажчик. Спроба
змінити сам покажчик приведе до
синтаксичної помилки.
//ex6_1.срр пошук кореня рівняння методом ділення відрізка навпіл #include<iostream> #include<math.h> using namespace std; double precision=0.00001,x; //точність та аргумент функції //========== обчислити значення функції в точці =============== double f(double *param) { if (*param==0) //перевірити точку розриву, *param+=precision; //перейти до наступної точки return exp(*param)-1/(*param);//значення функції в поточній точці } //=====реалізація алгоритму половинного ділення ================ void solution(double* a, double* b ) { //параметри - константні покажчики на границі відрізка do{ x=(*a+*b)/2; //визначити середину відрізка if (f(&x)*f(&(*a))<0) //знаки функції різні на кінцях відрізка *b=x; //вибрати новий кінець відрізку else *a=x; }while( (*b-*a)>=precision); //точність розрахунків досягнута }
//======================= головна функція ===================== int main(){ double left,right; //границі відрізка cout<<"pointer to data"<<endl; cout<<"define root of e^x=1/x"<<endl; cout<<"input a,b"<<endl; cin>>left>>right; //ввести значення кінців відрізка double* pl=&left;//ініціалізувати константні покажчики double* pr=&right; solution(pl,pr); //розв’язати рівняння cout<<"root = "<<x<<endl; //вивести значення кореня рівняння system("pause"); }

Рис. 6.1. Результат роботи програми ex6_1. Розв’язання нелінійного рівняння
6.3. Варіанти завдань
-
Надрукувати таблиці значень функцій cox(x) та ex на відрізку [a; b] із кроком h, розвинувши функції у ряд Тейлора та використавши покажчики на функції. Для довідки: ряд Тейлора для функції сos(x) =1 – x 2/2! + x4/4! – x6 /6! +..., ряд Тейлора для функції ex=1 + x / 1! + x2 / 2! + x3 / 3! + ...
-
Розрахувати біноміальні коефіцієнти: C(m, n) = 1, якщо m 1, n = 0 або n = m; C(m, n) = C(m – 1, n – 1) + C(m – 1, n) в протилежному випадку. Значення n та m передавати у функцію як покажчики на тип int.
-
Нехай в трикутнику ABC задані координати вершин A=(0,0), B=(а,b), де а і b – цілі числа, що вводяться користувачем. Розробити функцію, яка визначає такі координати вершини C=(x,y), щоб площа трикутника ABC була мінімальною (не рівною нулю). Координати вершин передавати у функцію як покажчики на тип int.
-
Вивести в порядку зростання всі звичайні нескоротні дроби в діапазоні від 0 до 1, знаменники яких не перевищують 15. Чисельники та знаменники дробів подати як покажчики на типи int
-
Написати програму, яка здійснює введення у вільному форматі одного цілого числа і його переведення з текстового представлення в значення типу int. Функція getint() повинна повертати значення отриманого числа через параметр або сигналізувати значенням , якщо вхідний потік вичерпаний. Значення EOF повертати через оператор return. Знаки - або +, за якими не йде цифра, функція розуміє як неправильне представлення числа.
-
Розв’язати нелінійне рівняння x=cos(x) методами перебору та хорд, визначивши інтервал [a, b], на якому існує рішення рівняння. Порівняти результати розв’язків двома методами. У функції, що реалізують алгоритми, передавати покажчики на тип float.
-
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами перебору та
дотичних. У функції, що реалізують
алгоритми, передавати покажчики на тип
float. -
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами перебору та хорд.У
функції, що реалізують алгоритми,
передавати покажчики на тип float. -
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами перебору та хорд.
У функції, що реалізують алгоритми,
передавати покажчики на тип float. -
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами перебору та хорд.
У функції, що реалізують алгоритми,
передавати покажчики на тип float -
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами дотичних та хорд.
У функції, що реалізують алгоритми,
передавати покажчики на тип float -
Знайти корені нелінійного рівняння виду
.
Пошук наближеного значення хоча б
одного кореня рівняння f(x)
= 0 на відрізку [a;
b]
здійснювати методами дотичних та
ділення навпіл. У функції, що реалізують
алгоритми, передавати покажчики на тип
float -
Використовуючи покажчики на функції для їх викликів, знайти найбільше, найменше та середнє арифметичне значення двох чисел, які генеруються комп’ютером.
-
Використовуючи покажчики на функції для їх викликів, обчислити ланцюговий дріб

-
Використовуючи покажчики на функції для їх викликів, обчислити ланцюговий дріб

-
Використовуючи покажчики на функції для їх викликів, обчислити ланцюговий дріб

-
Скласти програму обчислення найбільшого числа Фібоначчі, яке не перевищує число
та номера найменшого числа Фібоначчі,
яке більше від числа
.
Використати функції, що повертають
покажчики на тип int. -
Число називається досконалим, якщо воно дорівнює сумі всіх своїх дільників, крім самого цього числа. Використати функцію, що повертає покажчик на тип int, в якому зберігається досконале число з проміжку [2,n]. Надрукувати досконалі числа з проміжку [2,n], котрі є повними квадратами.
-
Скласти програму для знаходження всіх простих чисел із діапазону [2, n], які є числами послідовності Фібоначчі або числами виду
,
де q –
ціле число. Для обчислення простих
чисел використати функцію, яка повертає
значення типу покажчик на цілий тип та
приймає покажчики. -
Послідовність задана рекурентним співвідношенням

Для знаходження найбільшого члена цієї послідовності та його номера, який не перевищує число а, використати функцію, що повертає покажчики на типи int знайдених значень.
-
Скласти програму обчислення числа за формулою Грегорі
та за формулою Валліса
, використовуючи покажчики для повернення
значень з функцій обчислення числа .
Розрахувати кількість ітерацій в каждому
з методів.
-
Задати натральне число
.
Визначити, чи можна його подати у вигляді
суми квадратів двох натуральних чисел.
Якщо можливо, то визначити вказати пару
таких натуральних чисел, що
.
Використати функції, що повертають
покажчики на цілий тип та використовують
покажчики як параметри. -
Задати натуральне число
.
Знайти усі менші за
паліндроми,
які при піднесенні до квадрата дають
також паліндром. Число є паліндромом,
якщо його можна прочитати справа наліво
та зліва направо однаково, наприклад,
12321.Використати функції, що повертають
покажчики на цілий тип та використовують
покажчики як параметри. -
Скласти програму визначення чисел Армстронга, що складаються з двох, трьох та чотирьох цифр. Натуральне число із
цифр
є числом Армстронга, якщо сума його
цифр, піднесених до
го
степеня, дорівнює самому числу, наприклад,
153=13+53+33.
Використати функції, що повертають
покажчики на цілий тип та використовують
покажчики як параметри.
