Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1769 Лабораторна робота 3 на тему Використання функцій

Лабораторна робота 3 на тему Використання функцій

« Назад

Лабораторна робота №3

Використання функцій 

Мета роботи: Оволодіння практичними навичками у використанні функцій

3.1. Теоретичні відомості

Програма на мові С складається з однієї або декількох функцій. Функція — це логічно самостійна частина програми, яка може отримувати параметри, та повертати значення. Функція має наступний формат визначення: 

[тип_даних] ім'я_функції (перелік_аргументів | void)

{

опис даних

оператори

[return (вираз)]

} 

Сукупність виразів у фігурних дужках називається тілом фунції. Поле тип_даних задає тип значення, що повертає фунція. Якщо воно відсутнє, то вертається значення int. Якщо поле тип_даних містить ключове слово void, функція не повертає ніякого значення.

Поле ім'я_функції — це ім'я (вказівник) функції.

Поле перелік_аргументів визначає аргументи, що передаються в функцію, та містить будь-яку комбінацію типів та імен. Це поле є необов'язковою частиною визначення функції. Якщо у функцію не передаються ніякі аргументи, це поле може бути порожнім або містити ключове слово void.

Звернення до функції має вигляд: 

ім'я_функції(перелік_аргументів); 

Перелік аргументів складається з виразів, відділених комами, типи яких повинні співпадати з типами відповідних параметрів.

3.2. Приклад

Згідно з заданим натуральним числом  обчислити суму  членів гармонічного ряду  у вигляді звичайного дробу. 

#include <stdio.h>

void scdr(long* p1, long* p2); 

main()

{

long s1, s2;

int k, n; 

scanf("%d", &n);

s1 = 0; s2 = 1;

for(k=1;k<=n;k++)

{

s1=s1*k+s2;

s2*=k;

scdr(&s1, &s2);

}

printf("Сума %d членiв ряда: %d / %d\n", n, s1, s2);

} 

void scdr(long* p1, long* p2)

{

long gcd();

long t; 

t=gcd(*p1, *p2);

*p1/=t;

*p2/=t;

} 

long gcd(x, y)

long x, y;

{

long r;

if(x<y)

{

r=y;

y=x;

x=r;

}

while(y)

{

r=x%y;

x=y;

y=r;

}

return(x);

} 

3.3. Порядок виконання роботи

3.3.1. Проаналізувати умову задачі.

3.3.2. Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту.

3.3.3. Результати роботи оформити протоколом.

3.4. Варіанти завдань

1) Дано дійсні числа s, t. Отримати . .

2) Дано дійсні числа s, t. Отримати . .

3) Дано дійсне число y. Отримати , де .

4) Дано дійсні числа s, t. Отримати де .

5) Дано натуральні числа k,l,m та дійсні числа. Отримати

6) Дано дійсні числа . У послідовності  та у послідовності  всі члени, розташовані за членом з найбільшим значенням (за першим, якщо їх декілька), замініть на 0.5.

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

8) Дано дійсні числа . Отримати , де  — комплексні числа , , . (Визначити функції виконання арифметичних операцій над комплексними числами.)

9) Дано дійсні числа . Знайти периметр десятикутника, вершини якого мають відповідно координати . (Визначити функцію обчислення відстані між двома точками, що задані своїми координатами.)

10) Скласти функцію, що замінює у початковому рядку символів всі одиниці на нулі та всі нулі — одиницями. Заміна повинна виконуватись з заданої позиції рядку.

11) Визначити функцію повного скорочення раціонального числа, яке задано чисельником та замінником, а також процедури складання та множення раціональних чисел.

12) Дано натуральне число . Серед чисел  знайти всі ті, які можно представити у вигляді суми квадратів двох натуральних чисел. (Визначити функцію, що дозволяє розпізнати повні квадрати.)

13) Дано натуральне число , дійсні числа . Знайти площу -кутника, вершини якого при деякому послідовному обході мають координати . (Визначити функцію обчислення площі трикутника по координатах його вершин.)

14) Дано натуральні числа ; знайти . Використати програму, що вміщує рекурсивну процедуру обчислення , що базується на спвівідношенні , де  — залишок від ділення  на . (НСD — найбільший спільний дільник.)

15) Дано натуральні числа . Отримати , де — залишок від ділення  на 10. Використати программу, що містить в собі рекурсивну функцію обчислення.

16) Дано невід'ємні числа ; обчислити , де

(Це так звана функція Аккермана.) Використати программу, що включає рекурсивну функцію.

17) Дано парне число ; перевірити для цього гіпотезу Гольбаха. Ця гіпотеза (на сьогоднішній день не спростована та повністю не доведена) полягає в тому, що кожне парне число , що більше 2, можна представити у вигляді суми двох простих чисел. (Визначити функцію, що дозволяє розпізнавати прості числа.)

18) Дано натуральне число . З'ясуйте, чи знаходяться серед чисел близнюки — прості числа, різниця яких дорівнює 2. (Визначити функцію, що дозволяє розпізнавати прості числа.)

19) Дано дійсні числа . Отримати для  значення , де .

20) Дано дійсні числа . Отримати , де .

21) Дано натуральне число , цілі числа . Розглянути відрізки послідовності (послідовності членів, що йдуть поруч), що складаються з повних квадратів. Отримати найбільшу з довжин цих відрізків. (Визначити функцію, що дозволяє розпізнавати повні квадрати.)

22) Дано натуральне число , цілі числа . Розглянути відрізки послідовності (послідовності членів, що йдуть поруч), що складаються із ступенів п'ятірки. Отримати найбільшу з довжин цих відрізків. (Визначити функцію, що дозволяє розпізнавати ступені п'ятірки.)

23) Дано натуральне число , цілі числа . Розглянути відрізки послідовності (послідовності членів, що йдуть поруч), що складаютьсяз з простих чисел. Отримати найбільшу з довжин цих відрізків. (Визначити функцію, що дозволяє розпізнавати прості числа.)

24) Дано натуральне число , цілі числа . Розглянути відрізки послідовності (послідовності членів, що йдуть поруч), що складаютьсяз із досконалих чисел. Отримати найбільшу з довжин цих відрізків. (Натуральне число називається доскональним, якщо воно дорівнює сумі своїх дільників, за винятком самого себе. Наприклад, 6=1+2+3. Визначити функцію, що дозволяє розпізнавати досконалі числа.)

25) Скласти функцію, в результаті звертання до якої з першого заданого рядка  вилучається кожний символ, що належить ще й до другого рядка.

26) Скласти функцію, що дозволяє визначити позицію першого входження в заданий рядок деякого символу з другого заданого рядка. Результатом роботи функції повинна бути -1, якщо перший рядок не містить в собі жодного символа, що належить до другого рядка.

3.5. Контрольні запитання

1. Як здійснюється об'ява функцій?

2. Які ви знаєте класи пам'яті? Час життя та область дії функцій та змінних.

3. Наведіть приклад визначення функції.

4. Неведіть синтаксис виклику функції.

5. Що таке директиви препроцесору?

З повагою ІЦ "KURSOVIKS"!