МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
Національний університет “Львівська політехніка”
/
КАФЕДРА САПР
ПІДПРОГРАМИ (ФУНКЦІЇ) В МОВІ ПРОГРАМУВАННЯ С
Лабораторна робота № 1
з курсу “Проблемно-орієнтовані мови програмування”
для студентів базового напрямку 6.08.04 "Комп’ютерні науки"
(заочна форма навчання)
Варіант 13
1. МЕТА РОБОТИ
Мета роботи - ознайомитися із особливостями застосування функцій у алгоритмічній
мові С.
2. ТЕОРЕТИЧНІ ВІДОМОСТІ
Підпрограми (функції)
Дуже часто виникає потреба у виконанні тої ж самої послідовності дій на різних етапах обробки інформації. В алгоритмах такого роду у різних місцях зустрічаються однакові за діями фрагменти, які відрізняються лише значеннями вхідних даних. Для підвищення ефективності програмування введено поняття підпрограми, або функції.
Загальний вигляд функції
Загальний вигляд функції такий:
тип ім’я_функції( список параметрів )
{
тіло функції
}
Тип визначає тип значення, яке поверне функція використовуючи оператор return. Якщо тип не визначений, то функція поверне значення типу integer по замовчуванню. Список параметрів являє собою список, розділених попарно комами, типів та імен змінних, значення яких отримує в якості аргументів функція при виклику. У випадку, коли функція не має аргументів, список параметрів є порожнім, але дужки не опускаються.
Для прикладу наведено правильний опис функції f:
f( int x, int y, float z )
та опис, що є невірним, через int x,y:
f( int x, y, float z )
Отже, кожна змінна у списку параметрів разом із своїм типом має бути відокремлена комою від інших.
Вихід з функції
Існують два шляхи завершення виконання функції і повернення у програму, яка здійснила виклик. Перший шлях - послідовне проходження всього тіла функції, наприклад, функція, що друкує значення х:
void simple( int x )
{
printf( “%d”, x );
}
Другий шлях - завершення виконання функції з використанням оператора return. Наступна функція завершує виконання, якщо значення змінної х рівне нулю або досягнуто кінець функції. Оператор return викликає завершення функції, хоча вона не виконалася до кінця (якщо х = 0).
Повернення значення
Для повернення значення з функції використовується оператор return із вказаною змінною, значення якої повертається. Наприклад:
max(int a, int b)
{
int temp;
if (a > b) temp = a;
else temp = b;
return temp;
}
Зауважте, що функція повертає значення цілого типу, який по замовчуванню назначається функції, для якої явно не визначено жодного типу, тобто перед іменем функції в описі не вказано тип. Дозволяється використовувати більше одного оператора return. Це спрощує розуміння алгоритму.
Приклад :
Скласти підпрограму переводу шістнадцяткового числа в десяткову систему числення.
Текст програми
#include <map>
#include "iostream"
using namespace std;
// 12. Скласти підпрограму переводу шістнадцяткового числа в десяткову систему
// числення.
Int main() {
string hexadecimal;
string decimal;
map<string, string> mapHexadecimal;
mapHexadecimal["A"] = "10";
mapHexadecimal["B"] = "11";
mapHexadecimal["C"] = "12";
mapHexadecimal["D"] = "13";
mapHexadecimal["E"] = "14";
mapHexadecimal["F"] = "15";
cout << "Enter number in hexadecimal: ";
cin >> hexadecimal;
definition(hexadecimal, mapHexadecimal, decimal);
}
void definition(string hexadecimal, map<string, string> mapHexadecimal,
string decimal) {
for (int i = 0; i < hexadecimal.size(); ++i) {
string ch = hexadecimal.substr((unsigned long) (i), 1);
string number = mapHexadecimal[ch];
if (number.empty()) {
decimal.append(ch);
} else {
decimal.append(number);
}
}
cout << "Result number in decimal: " << decimal;
}
5. Блок-схема
Висновок
Отже, на лабораторній роботі я ознайомилась із особливостями застосування функцій у алгоритмічній мові С. Яким є загальний вигляд функцій типи функцій, функції з аргументами.