Міністерство освіти і науки України
Лабораторна робота
Тема: Підпрограми-функції
Мета
вивчення засобiв мови Сi для програмування процедур, оволодiння прийомами складання алгоритмiв і програм з пiдпрограмами.
Теоретичні відомості
Мова Сi дозволяє використовувати лише один вид пiдпрограми:
процедуру-функцiю з параметрами. Характерною особливiстю процедури-функцiї є наявнiсть багатьох вхiдних параметрiв i одного вихi-
дного, який присвоюється iменi функцiї. Всi пiдпрограми повиннi
бути оголошенi в головнiй або пiдпорядкованих програмах. Оголо-
шення процедури-функцi має вигляд:
ТПЗ IПФ(СТП);,
де ТПЗ - тип значення, яке повертає процедура-функцiя;
IПФ - iм'я процедури-функцiє, iдентифiкатор;
СТП - список типiв дiйсних параметрiв.
Крiм оголошення, функцiя має бути визначена, тобто має бути вка-
зано що ця функцiя власне виконує. Визначення функцiї має вигляд:
ТПЗ IПФ(СФП){ОЗП;ТПФ;},
де:СФП - список формальних параметрiв i їх типiв;
ОЗП - оголошення внутрiшнiх (власних) змiнних функцiї;
ТПФ - тiло процедури, оператори та вирази.
Тiло процедури-функцiї може мiстити один або декiлька операто-
рiв. RETURN(вираз):його виконання приводить до завершення проце-
дури i повернення в програму, з якої функцiя викликалася. Якщо
цей оператор має вираз, то його значення присвоюється iменi про-
цедури i є результатом її виконання. Формальнi параметри функцiї,
якщо вони є, локалiзованi в її тiлi, пам'ять пiд них дублюється.
Локалiзованими є також внутрiшнi змiннi функцiї, їх значення теж
втрачаються пiсля виходу з процедури, якщо вони не мають клас па-
м'ятi static. Звернення до процедури-функцiї в головнiй програмi
вiдбувається шляхом вказування її iменi, пiсля якого в круглих
дужках дається список дiйсних параметрiв.
Забороняється передавати масиви в якостi параметрiв функцiї.
Натомiсть можна використовувати вказувачi на масиви. Масиви в
процедурi не дублюються.
Звернення до процедури графiчно вiдображаїться за допомогою
прямокутника з подвоїними бiчними сторонами.
Завдання №13.1
Скласти програму для визначення величини
1.
, де а=1, b=32
Oбчислення інтегралу оформити у вигляді підпрограми-функції , використовуючи метод Сімпсона:
,
де h=(b-a)/n=0.5.
Програма
#include<math.h>
#include<stdio.h>
main()
{
int a=1,b=32;
float h=0.5,Q,S,integ(int,int,float);
clrscr();
Q=integ(a,b,h)+pow((a+b),1/3);
printf("Q=%f",Q);
getch();
}
float integ(int a,int b,float h)
{
int i=0,n=62;
float x,y[62],Y=0,S;
for(x=a;x<=b;x+=h)
{
y[i]=pow(x,3)*exp(x+sin(x));
i++;
}
for(i=1;i<=(n/2-1);i++)
{
Y+=4*y[2*i-1]+2*y[2*i];
}
S=h/3*(y[0]+4*y[n-1]+y[n]+Y);
return S;
}
Блок-схема
Результат виконання програми
q=7096370091456987140.0000.
Висновок
На цій лабораторній роботі я навчився створювати підпрограми-функції,
і оволодів прийомами складання алгоритмів.