Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні icon

Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні



НазваниеЛабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні
Дата конвертации15.07.2013
Размер87.24 Kb.
ТипЛабораторна робота
скачать >>>

Лабораторна робота №5
Функції




Мета роботи: отримати навички роботи з функціями.

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



Кожна програма у своєму складі повинна мати головну функцію main(). Саме функція main() забезпечує створення точки входу в об’єктний модуль.

Крім функції main(), в програму може входити будь-яка кількість функцій. Кожна функція по відношенню до іншої є зовнішньою. Для того, щоб функція була доступна, необхідно, щоб до її виклику про неї було відомо компілятору.

Із поняттям функції у мові С++ пов’язано три наступних компоненти:

опис функції;

прототип;

виклик функції.

^ Опис функції складається з двох частин: заголовка і тіла. Опис функції має наступну форму запису:

/* заголовок функції*/

[тип_ результату] <ім’я>([список_параметрів])

{

/* оголошення і оператори */

тіло_функції

}

Тип результату — це тип значення, яке повертається. У випадку відсутності специфікатора типу передбачається, що функція повертає ціле значення (int). Якщо функція не повертає ніякого значення, то на місці типу записується специфікатор void. У списку параметрів для кожного параметра повинен бути зазначений тип. При відсутності параметрів список може бути порожнім або мати специфікатор void.

Тіло функції являє собою послідовність оголошень і операторів, які описують визначений алгоритм. Важливим оператором тіла функції є оператор повернення в точку виклику: return [вираз]. Оператор return має подвійне призначення. Він забезпечує негайне повернення у викликаючу функцію і може використовуватися для передачі обчисленого значення функції. У тілі функції може бути декілька операторів return, але може не бути й жодного. В останньому випадку повернення у викликаючу програму відбувається після виконання останнього оператора тіла функції.

Прототип функції може вказуватися до виклику функції замість опису функції для того, щоб компілятор міг виконати перевірку відповідності типів аргументів і параметрів. Прототип функції за формою такий же, як і заголовок функції, наприкінці його ставиться ;. Параметри функції в прототипі можуть мати імена, але компілятору вони не потрібні.

Компілятор використовує прототип функції для порівняння типів аргументів з типами параметрів. Мова С++ не передбачає автоматичного перетворення типів у випадках, коли аргументи не співпадають за типами з відповідними їм параметрами, тобто мова С++ забезпечує строгий контроль типів.

При наявності прототипу функції, які викликаються, не зобов'язані розміщатися в одному файлі з функцією, що їх викликає.

Виклик функції може бути оформлений у виді оператора, якщо у функції відсутнє значення, що повертається, або у виді виразу, якщо існує значення, що повертається.

У першому випадку оператор має наступний формат:

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

Наприклад f(x);

В другому випадку вираз записується у такий спосіб: h=f(x);

Значення обчисленого виразу є значенням функції, що повертається. Значення, що повертається, передається в місце виклику функції і є результатом її роботи.

Число і типи формальних аргументів повинні співпадати з числом і типом фактичних параметрів функції. При виклику функції фактичні параметри підставляються замість формальних аргументів.

^

Області дії змінних



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

У С++ можливі три місця оголошення змінних.

По-перше, поза будь-яких функцій, у тому числі і main(). Така змінна називається глобальною і може використовуватися в будь-якому місці програми від місця оголошення і до кінця програми.

По-друге, змінна може бути оголошена усередині блоку, у тому числі й усередині тіла функції. Оголошена в такий спосіб змінна називається локальною і може використовуватися лише усередині блоку. Така змінна поза блоком, у якому вона оголошена, невідома.

По-третє, змінна може бути оголошена як параметр функції. Крім спеціального призначення, а саме для передачі даних у функцію, параметр можна розглядати як локальну змінну для тіла функції.

Приклад. Скласти програму для обчислення суми k чисел.

#include

void sum(int );// прототип функції

int s=0;// глобальна змінна

void main()

{

int i,b,k;// локальні змінні

cout<<"\nВведіть число доданків";

cin>>k;

for(i=0;i
{

cout<<"\nВведіть новий доданок ";

cin>>b;

sum(b);// звернення до функції

}

cout<<"\ns="<
}

void sum(int c)

{

s=s+c;

}

У цій програмі змінна s є глобальною, вона доступна із обох функцій програми — main() і sum(), а змінні i, b, k та с — локальні, доступні тільки у тих функціях, де вони оголошені.

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

5.2. Приклад



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

Можливий розв’язок даної задачі має вид:

#include

int max(int,int);/* прототип функції */

void main()

{

int x,y,z;

cout << "\n почергово введіть x та у \n";

cin >> x; cin >> у; z=max(x,y); cout <<"z=" << z;

}


int max (int a,int b)

{

int с; /* робоча змінна */

if(a>=b)c=a;

else c=b;

return c;

}

^

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



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

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

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

^

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



Написати функцію, яка обчислює значення виразу, та визначити її значення для введених користувачем значень фактичних параметрів.

При цьому знайти область визначення функцій та забезпечити необхідну реакцію програми на некоректні ситуації.


1) ; 13) ;

2) ; 14) ;

3) ; 15) ;

4) ; 16) ;

5) ; 17) ;

6) ; 18) ;

7) ; 19) ;

8) ; 20) ;

9) ; 21) ;

10) ; 22) ;

11) ; 23) ;

12) ; 24) ;

25) .

Завдання підвищеної складності.

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

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

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

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

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

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

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

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

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

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

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



1. Поясніть значення прототипа функції.

2. Який зв’язок між параметрами функції і аргументами?

3. Яким чином можна забезпечити отримання за допомогою функції декількох результатів?

4. Які змінні називаються глобальними?

5. У чому відмінність глобальних та локальних змінних?



Похожие:

Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні
Така необхідність виникає при реалізації динамічних структур даних, таких як стеки, дерева, черги. Для реалізації рекурсивних алгоритмів...
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №9 Передача масивів у функції Мета роботи: отримати навички роботи з масивами у функціях. Теоретичні
Масиви можуть бути параметрами функцій, і функції як результат можуть повертати вказівник на масив. Розглянемо ці можливості
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №7 Вказівники та посилання. Динамічні масиви Мета роботи : отримати навички роботи з вказівниками, посиланнями та динамічними масивами. Теоретичні
Мета роботи: отримати навички роботи з вказівниками, посиланнями та динамічними масивами
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №10 Робота з рядками (string) Мета роботи : отримати навички роботи з рядками. 10 Теоретичні
В с++ з'явилася дуже корисна бібліотека роботи з рядками. Вона досить ефективна І дозволяє легко вирішувати наступні задачі
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №2 Умовна операція та множинний вибір Мета роботи : отримати навички роботи з умовною операцією та оператором множинного вибору. Теоретичні
Мета роботи: отримати навички роботи з умовною операцією та оператором множинного вибору
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №3 Цикл while з передумовою та постумовою Мета роботи : Отримати навички роботи з циклом while Теоретичні
При виконанні програми часто виникає необхідність неодноразового повторення однотипних обчислень над різними даними. Для цих цілей...
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №1 Принципи програмування на С++ Мета роботи : отримати навички роботи з типами даних та виразами. Теоретичні
Кожна програма на С++ у своєму складі повинна мати головну функцію main(). Саме функція main() забезпечує створення точки входу в...
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №4 Цикл for мета роботи : отримати навички роботи з циклом for. Теоретичні
При цьому виконуються три операції: ініціалізація лічильників циклів, порівняння його значення з деяким граничним значенням і зміна...
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота №6 Масиви Мета роботи : отримати навички роботи з одно та багатовимірними масивами. Теоретичні
Масив являє собою набір однотипних об’єктів, які мають спільне ім’я і відрізняються місцезнаходженням в цьому наборі (або індексом,...
Лабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні iconЛабораторна робота 1 Тема. Класи та об’єкти. Мета роботи: засвоїти основні поняття об’єктно-орієнтованого програмування на прикладі мови програмування С++. Теоретичні
Основні поняття, потрібні для виконання роботи. Це 1 класи; 2 область доступу; 3 ієрархія класів
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©gua.convdocs.org 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов