Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
10.84 Кб
Скачать

Інформатика — Теорія — Функції, що не повертають значення    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаФункції : Функції, що не повертають значенняЗміст курсу

Вступ

Теорія

Визначення й виклик функцій

Передача параметрів

Функції, що не повертають значення

Функції із змінним числом параметрів

Рекурсивні функції

Перевантаження функцій

Передача параметрів за замовчуванням

Масиви як параметри функцій

Шаблони функцій

Практика

Практичне заняття

Лабораторна робота

Поточна перевірка знань

Функції

Висновки

Версія для друку

  Функції, що не повертають значення      Функції типу void (ті, що не повертають значення) можуть розглядатися як деякий різновид команд, реалізований особливими програмними операторами. Оператор func() виконує функцію void func() , тобто передасть керування функції, доки не виконаються усі її оператори. Коли функція поверне керування в основну програму, тобто завершить свою роботу, програма продовжить своє виконання з того місця, де розташовується наступний оператор за оператором func().

Приклад 8.

#include<iostream.h>void func1(void);void func2(void);main(){     func1();     func2();     return 0;}void func1(void){     /* тіло */}void func2(void){     /* тіло */}     Звернемо увагу на те, що текст програми починається з оголошення прототипів функцій - схематичних записів, що повідомляють компілятору ім'я та форму кожної функції у програмі. Для чого використовуються прототипи? У великих програмах це правило примушує Вас планувати проекти функцій та реалізовувати їх таким чином, як вони були сплановані. Будь-яка невідповідність між прототипом (оголошенням) функції та її визначенням (заголовком) призведе до помилки компіляції. Кожна з оголошених функцій має бути визначена у програмі, тобто заповнена операторами, що її виконують. Спочатку йтиме заголовок функції, який повністю співпадає з оголошеним раніше прототипом функції, але без заключної крапки з комою. Фігурні дужки обмежують тіло функції. В середині функцій можливий виклик будь-яких інших функцій, але неможливо оголосити функцію в середині тіла іншої функції.

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

#include <iostream.h>#include <stdlib.h>#include <math.h>float A,B,C;//функція прийому данихvoid GetData(){     cout<<"Input A,B,C:";     cin>>A>>B>>C;}//функція запуску основних обчисленьvoid Run() {     float D;     float X1, X2;     if ((A==0) && (B!=0))     {          X1 = (-C)/B;          cout<<"\nRoot: "<<X1;          exit(0);     }     D = B*B - 4*A*C;     if (D<0) cout<<"\nNo roots...";     if (D==0)      {          X1=(-B)/(2*A);          cout<<"\nTwo equal roots: X1=X2="<<X1;     }     if (D>0)      {          X1 = (-B+sqrt(D))/(2*A);          X2 = (-B-sqrt(D))/(2*A);          cout<<"\nRoot X1:"<<X1<<"\nRoot X2:"<<X2;     }}//головна функція програмиvoid main(){     GetData();     Run();}

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

     Просто кажучи, таку функцію неможливо використовувати у правій частині виразу. В якості результату функції остання не може повертати масив, але може повертати покажчик на масив. У тілі будь-якої функції може бути присутнім вираз return; який не повертає значення. І, насамкінець, усі програмні системи, написані за допомогою мови Сі , повинні містити функцію main(), що є вхідною точкою будь-якої системи. Якщо вона буде відсутня, завантажувач не зможе зібрати програму, про що буде отримано відповідне повідомлення.

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content