- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •I для опису цілих чисел без дробової частини nt
- •1. Char – символ
- •3. Float – число з плаваючою крапкою одинарної точності
- •4. Double – число з плаваючою крапкою подвійної точності
- •Арифметичні операції
- •Функції введення scanf() та виведення printf()
- •Оператори
- •Функції користувача
- •Функції із змінним числом аргументів
- •Функції стандартних бібліотек Функції для роботи із символами (ctype.H)
- •Функції для роботи з каталогами (dir.H)
- •Функції для роботи з ос (dos.H)
- •Функції для роботи з графічним режимом (graphics.H)
- •Математичні функції (math.H)
- •Функції для роботи з рядками (string.H)
- •Функції потокового вводу/виводу (stdio.H)
- •Функції вводу/виводу нижнього рівня (io.H)
- •Функції вводу/виводу консолі та порту (conio.H)
- •Структури
- •Об'єднання
- •Динамічний розподіл пам’яті
- •Іі. Практична частина Лабораторна робота №1 Тема: Основні конструкції мови с. Програмування простих алгоритмів
- •Лабораторна робота №2 Тема: Створення і використання функцій
- •Лабораторна робота №3 Тема: Використання структур
- •Лабораторна робота №4 Тема: Організація роботи з файлами
- •Рекомендована література
Динамічний розподіл пам’яті
Крім статичної пам’яті, яка виділяється при описі та ініціалізації змінних, в мові С є можливість додатково виділяти пам’ять під час виконання програми. Для цього використовуються функції malloc(), calloc() з бібліотеки alloc.h.
Синтаксис :
void* malloc(int);
void* calloc(int,int);
Форма звертання до функції malloc() наступна:
ім'я вказівника=(тип вказівника)malloc(об'єм ОП);
де
ім'я вказівника – ім'я змінної-вказівника;
тип вказівника – тип значення, що повертається функцією malloc; об'єм ОП – кількість байтів ОП, що виділяються змінній, яка адресується.
Форма звертання до функції сalloc() наступна:
ім'я вказівника=(тип вказівника) сalloc(count,size);
де
ім'я вказівника – ім'я змінної-вказівника;
тип вказівника – тип значення, що повертається функцією calloc; count – кількість комірок ОП, що виділяються змінній, яка адресується;
size – розмір кожної комірки в байтах.
Звільнення пам’яті, виділеної за їх допомогою, відбувається функцією free().
Синтаксис :
void free(void*);
Приклад динамічного виділення пам‘яті для тривимірного масиву символів.
int n=5,m=3,k=4,i,j,l,с;
//розмір пам’яті під довільний вказівник - 2
//байти, sizeof(char**)=2
char ***Cube = (char***)calloc(n,sizeof(char**)); for(i=0;i<n;i++)
{ Cube[i] = (char**)calloc(m,sizeof(char*)); for(j=0;j<m;j++) Cube[i][j] = (char*)malloc(k);
}
//заповнення таблиці символами
с=65;// Cимвол ‘А’ for(i=0;i<n;i++) for(j=0;j<m;j++) for(l=0;l<k;l++) Cube[i][j][l] = с++;
//звільнення пам’яті
for(i=0;i<n;i++) { for(j=0;j<m;j++) free(Cube[i][j]); free(Cube[i]); } free(Cube);
Іі. Практична частина Лабораторна робота №1 Тема: Основні конструкції мови с. Програмування простих алгоритмів
Завдання
1.
a) Дано дійсне число
.
Послідовність
![]()
створено
за законом:

,
n=1,2, … Знайти перший член
,
для якого
.
Вказати його номер.
б)
Трикутник задано довжинами сторін.
Знайти:![]()
-
довжини висот;
-
довжини меридіан;
-
довжини бісектрис;
-
радіус вписаного та описаного кіл;
Видати повідомлення, якщо трикутник із заданими сторонами не існує.
2. а) Підрахувати суму
![]()
з точністю , або до кількості доданків n, якщо точність не досяглась раніше.
б) Визначити всі непарні дільники заданого натурального числа n.
3. а) Розкласти число M на прості множники.
б) Дано дійсне число a. Обчислити b

4.
а) Дано дійсні числа x,
(x
,![]()
).
Обчислити з точністю
нескінченну суму і вказати кількість
доданків, що сумувалися
.
б)
Дані натуральне число n, дійсне число
x. Серед чисел
(k=1,...,n) знайти найближче до будь-якого
цілого. Визначити номер цього числа.
5. а) Дано натуральне n. Знайти всі числа від 1 до n, які діляться на всі свої цифри.
б) Дані натуральне число n, дійсне число r. Обчислити:
,
де
(для парного n),
(для непарного n),
[a] - ціла частина числа а.
6.
а) Протабулювати функцiю
як суму перших десяти членiв ряду:
,
де x змiнюється вiд 0 до 2 з кроком 0,5.
б)
Задане дiйсне додатне число
.
Методом iтерацiї обчислити з точнiстю
корiнь рiвняння:
.
Початкове наближення x0=0
.
7.
а) Задані дійсні числа
,
x (
).
Обчислити з точністю
![]()
б) Задане натуральне число n. Вилучити із запису числа n цифри 0 і 5, залишивши порядок цифр незмінним. Наприклад, результатом обробки числа 59012 буде число 912.
8. а) Дано натуральне n. Підрахувати вираз
б) Виписати всі числа менші за n, які діляться на 3 або на 4 і не діляться на 5.
9. а) Дано натуральне число n. Підрахувати добуток перших n спiвмножникiв
б) Дано натуральне число n. Отримати всі прості дільники цього числа.
10.
а) Задані дійсні числа
,
x,
.
Обчислити з точністю
нескінчену суму і видати кількість
доданків
![]()
б) Натуральне число з n цифр є числом Армсронга, якщо сума його цифр, піднесених до n-ого степеня, дорівнює самому числу (наприклад, 153=13+53+33). Отримати всі числа Армстронга, які складаються з двох, трьох, чотирьох цифр.
11.
а) Задано дійсне число x. Послідовність
a1, a2, …, an,
… створена за правилом
Обчислити а1 + a2
+ … + ak, де k – найменше
ціле число, яке задовольняє двом умовам:
k > 10, |ak+1| < 10-5.
б) Дано дійсні додатні числа a, b, c. За трьома сторонами з довжинами a, b, c будується трикутник. Знайти кути трикутника в радіанах і в градусах, хвилинах, секундах. Вивести повідомлення, якщо трикутник із заданими сторонами не існує.
12.
а) Задано дійсне число
і натуральне n
.
Обчислити з точністю
нескінченну суму
![]()
або, якщо точність не задовольняється, – скінченну суму (кількість доданків n).
б) Знайти всі пари двозначних натуральних чисел n, m таких, що значення добутку nm не зміниться, якщо поміняти місцями цифри кожного з співмножників (такою парою буде, наприклад, 38 i 83).
13. а) Обчислити значення
![]()
де a i m – сума і кількість введених чисел.
б) Дано натуральне число n. Серед чисел 1, 2, …, n знайти ті, які можна подати у вигляді суми квадратів двох натуральних чисел.
14. а) Дані натуральне число n, дійсне число x. Обчислити:
![]()
б)
Дано дійсне число h. Визначити корені
рівняння
(дійсні або комплексні), якщо
![]()
15. а) Дані натуральні числа n і m, дійсне число x. Обчислити:
![]()
б)
Дано дійсні числа a, b, c
.
Визначити корені рівняння
(дійсні або комплексні). Вивести кількість
дійсних і комплексних коренів.
16.
а) Для заданого натурального числа
знайти суму цифр числа і визначити
число, що одержується виписуванням в
зворотному порядку цифр числа
.
б)
Обчислити суму
для заданого натурального
.
17.
а) Для заданого комплексного числа
,
представленого в алгебраїчній формі,
і числа
визначити всі значення
.
б)
Для заданого дійсного значення
і точності
обчислити добуток
.
18.
а) Визначити корені зведеного кубічного
рівняння
з дійсними коефіцієнтами.
б)
Знайти перший член послідовності, для
якого виконується умова
,
якщо послідовність утворена за законом:
.
19.
а) Обчислити вираз
для заданого натурального
і дійсного
.
б) Знайти площу фігури, що покриває два задані координатами своїх вершин прямокутники. Сторони прямокутників паралельні осям координат.
20.
а) Для довільного цілого
і дійсного
,
обчислити
із заданою точністю
суму
.
б) Для заданих координат двох трикутників визначити той, що має найменшу площу.
21.
а) Обчислити із заданою точністю
суму
,
для
.
б) Знайти площу фігури, що покриває два круга задані координатами центрів та радіусами.
22.
а)
Використовуючи для обчислення
з точністю
ітераційну формулу:
,
,
знайти
.
б)
Дано натуральне число
.
Підрахувати кількість розв‘язків
нерівності
в натуральних числах.
23.
а) Обчислити вираз
для
,
де
,
.
б)
Дано натуральні числа
,
і
.
Надрукувати
десяткових знаків числа
(при наявності двох десяткових розкладів
вибирається той із них, який не містить
дев‘ятки в періоді).
24.
а) Обчислити суму
для заданого натурального
і дійсного
.
б)
Функція
з натуральними значеннями і аргументами
визначена так:
,
,
,
.
Обчислити
за заданим значенням
.
25.
а) Обчислити
,
– довільне дійсне число, із заданою
точністю
,
використовуючи для знаходження
гіперболічного тангенса формулу
.
б)
Дано натуральне число
і ціле додатне число
.
Обчислити частку
і залишок
при діленні
на
не використовуючи операцій цілочисельного
ділення / і пошуку залишку %.
26.
а) Знайти перший член послідовності,
для якого виконується умова
,
якщо послідовність утворена за законом:
,
.
б)
Знайти перші
членів послідовності, якщо послідовність
утворена за законом:
,
.
27.
а) Обчислити суму
для заданого натурального
.
б)
Знайти перші
членів послідовності, якщо послідовність
утворена за законом:
,
.
28.
а) Обчислити добуток
для заданого натурального
і дійсного
.
б)
Для заданих натуральних
і
обчислити біноміальний коефіцієнт,
використовуючи правило
.
29.
а) Обчислити вираз
для заданого натурального
і дійсного
.
б)
Для заданого натурального числа
підрахувати кількість цифр в десятковому
записі числа і перевірити чи є число
паліндромом (тобто таким, десятковий
запис якого читається однаково зліва
направо і справа наліво).
30. а) Обчислити вираз
![]()
для
,
де
,
.
б)
Знайти перший член послідовності, для
якого виконується умова
,
якщо послідовність утворена за законом:
,
.
