#include<stdio.h> /* підключення бібліотеки stdio.h */
#include<stdlib.h> /* підключення бібліотеки stdlib.h */
#include<conio.h> /* підключення бібліотеки conio.h */
#include<math.h> /* підключення бібліотеки math.h */
void Avtor(void); /* прототип функції Avtor () */
void Vyvedennja_Rezultativ(void); /* прототип функції Vyvedennja_Rezultativ () */
int main() /* головна функція */
{ // початок головної функції main */
int m; /* об’явлення змінної м */
system("cls"); /* очистка екрану */
printf("\n\nVyberit\' potribnyy punkt:\n\n"); /* виведення на екран тексту */
printf("1) Pro avtora\n"); /* виведення на екран тексту */
printf("2) Vyvedennja rezul\'tativ\n"); /* виведення на екран тексту */
printf("3) Exit.\n"); /* виведення на екран тексту */
scanf("%d",&m); /* введення м */
switch (m) /* блок розгалуження свіч. розгалудження відбувається в залежності від м */
{
case 1:/* якщо м = 1 */
{
Avtor(); /* виклик функції Avtor () */
}
case 2: /* якщо м = 2 */
{
Vyvedennja_Rezultativ(); /* виклик функції Vyvedennja _ Rezultativ (); */
}
case 3: /* якщо м = 3 */
{
exit(1); /* вихід з програми */
}
} /* кінець блоку switch */
} /* кінець функції main */
void Vyvedennja_Rezultativ(void) /*опис функції Vyvedennja_Rezultativ() */
{
system("cls"); /* очистка екрану */
int a,b; /* об’явлення змінних*/
double y,h,p=3.14,x; /* об’явлення змінних */
do /* початок циклу do while */
{
printf("Vvedit\' diapazon:\n\nVvedit\' livu mezhu = "); /* виведення на екран тексту */
scanf("%d",&a); /* введення а */
printf("Vvedit\' pravu mezhu = "); /* виведення на екран тексту*/
scanf("%d",&b); /* введення b */
if(a<b) /* блок розгалуження if Якщо а< b */
break; /* вихід з циклу do while */
else /* в протилежному випадку */
printf("\nPomylka vvedennja!\nPovtorit\' vvedennja\n\n"); /* виведення на екран тексту */
} /* кінець циклу */
while(1); /* умова циклу. 1, означає, що цикл безкінечний, отже вийти з нього ми можемо тільки за допомогою break, тобто коли а< b */
printf("Vvedit\' krok = "); /* виведення на екран тексту */
scanf("%lf",&h); /* введення кроку */
printf("\n\tliva mezha=%d",a); /* виведення на екран тексту */
printf("\n\tprava mezha=%d",b); /* виведення на екран тексту */
printf("\n\tkrok=%lf",h); /* виведення на екран тексту */
printf("\n\t ___________________________________"); /* виведення на екран лінії */
for(x=a;x<=b;x+=h) /* початок циклу for присвоюємо х значень лівої межі, умова виходу з циклу : поки х не буде більшим за праву межу, з кожною інтеграцією х збільшуємо на значення кроку */
{
if((x<0.00001)&&(x>-0.00001)) /* блок розгалуження if Якщо x<0.00001 і x>-0.00001, то */
{
printf("\n\t| x = %5.2 lf | nema znachennja |",x); /* виведення на екран х та тексту, що при х=0 функція не має значень */
}
else /* в протилежному випадку */
{
y=(p+1/x)/(p*x+3)+23/sin(x); /* обчислення у */
printf("\n\t| x = %5.2lf | y = %17.11lf |",x,y); /* виведення на екран х та у */
}
} /* кінець циклу for */
printf("\n\t ___________________________________\n\n"); /* виведення на екран лінії */
getch(); /* затримка ( програма чекає поки користувач не натисне будь- яку клавішу) */
main(); /* виклик функції main, тобто повернення до початку */
}
void Avtor() /* опис функції Avtor() */
{
system("cls"); /* очистка екрану */
printf("\n\n Programu rozrobyv\n st.gr. MIT-10\n Zhuravskyi Dmutro"); /* виведення на екран тексту */
getch(); /* затримка ( програма чекає поки користувач не натисне будь- яку клавішу) */
main(); /* виклик функції main, тобто повернення до початку */
}