- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •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. а) Обчислити вираз
для , де , .
б) Знайти перший член послідовності, для якого виконується умова , якщо послідовність утворена за законом: , .