Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (Мова С) .doc
Скачиваний:
13
Добавлен:
04.11.2018
Размер:
1.22 Mб
Скачать

Динамічний розподіл пам’яті

Крім статичної пам’яті, яка виділяється при описі та ініціалізації змінних, в мові С є можливість додатково виділяти пам’ять під час виконання програми. Для цього використовуються функції 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. а) Обчислити вираз

для , де , .

б) Знайти перший член послідовності, для якого виконується умова , якщо послідовність утворена за законом: , .