МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра САПР
ПІДПРОГРАМИ В МОВІ ПРОГРАМУВАННЯ С
МЕТА РОБОТИ
Ознайомитися із особливостями застосування підпрограм у алгоритмічній мові С.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Підпрограми
Дуже часто виникає потреба у виконанні тої ж самої послідовності дій на різних етапах обробки інформації. В алгоритмах такого роду у різних місцях зустрічаються однакові за діями фрагменти, які відрізняються лише значеннями вхідних даних. Для підвищення ефективності програмування введено поняття підпрограми, або функції.
Загальний вигляд функції
Загальний вигляд функції такий:
тип ім’я_функції( список параметрів )
{
тіло функції
}
Тип визначає тип значення, яке поверне функція використовуючи оператор return. Якщо тип не визначений, то функція поверне значення типу integer по замовчуванню. Список параметрів являє собою список, розділених попарно комами, типів та імен змінних, значення яких отримує в якості аргументів функція при виклику. У випадку, коли функція не має аргументів, список параметрів є порожнім, але дужки не опускаються.
Вихід з функції
Існують два шляхи завершення виконання функції і повернення у програму, яка здійснила виклик. Перший шлях - послідовне проходження всього тіла функції, наприклад, функція, що друкує значення х:
void simple( int x )
{
printf( “%d”, x );
}
Другий шлях - завершення виконання функції з використанням оператора return. Наступна функція завершує виконання, якщо значення змінної х рівне нулю або досягнуто кінець функції. Оператор return викликає завершення функції, хоча вона не виконалася до кінця (якщо х = 0).
void divide( float x, float y )
{
float z;
if (x == 0) return; /* не можна ділити на нуль*/
z = x / y;
printf( “Результат : %f”, z );
}
Повернення значення
Для повернення значення з функції використовується оператор return із вказаною змінною, значення якої повертається. Наприклад:
max( int a, int b )
{
int temp;
if (a > b) temp = a;
else temp = b;
return temp;
}
Зауважте, що функція повертає значення цілого типу, який по замовчуванню назначається функції, для якої явно не визначено жодного типу, тобто перед іменем функції в описі не вказано тип. Дозволяється використовувати більше одного оператора return. Це спрощує розуміння алгоритму.
Прототип функції
Прототип функції виконує два завдання. Перше полягає в ідентифікації типу значення, яке поверне функція, так, щоб компілятор міг з генерувати коректний код для типу даних, що повертаються. Друге завдання - у визначенні типу та кількості аргументів, які використовуються функцією. Загальний вигляд прототипу наступний:
тип ім’я_функції( список параметрів );
Індивідуальне завдання
Скласти підпрограму переводу десяткового числа в двійкову систему числення.
Програма
#include<stdio.h>
#include<math.h>
#include<conio.h>
void KOD(int a,int b)
{
do{
a=a/2;
b=fmod(a,2);
printf("%d",b);}
while (a>=2);
}
void main()
{
clrscr();
int x,y,a;
printf("Vvedit desyatkove chislo X=");
scanf("%d",&x);
printf("\nY zvorotnomy napryami: \n");
printf("\n\t\t<--<--<--<--<--<\n");
y=fmod(x,2);
printf(" Dviikovui kod=%d",y);
KOD(x,y);
printf("\n\t\t<--<--<--<--<--<\n");
getch();
}
Висновок:виконавши цю лабораторну роботу я ознайомився з особливостями застосування підпрограм у алгоритмічній мові С.