Міністерство освіти і науки України
Національний університет  „ Львівська політехніка “
	
    Кафедра програмного забезпечення
Курсова робота
з предмету: ”Проблемно орієнтовані мови програмування”
            
                                                                                                    
Мета роботи: 
      реалізувати завдання у вигляді функцій, які для виконання об‘єднуються в проект. У процесі розробки програм слід широко використовувати відповідні структури даних (масиви, записи, множини, файли).
Варіант №27
Завдання №1
Виконати над квадратною матрицею порядку n послідовність дій, які вибираються згідно з варіантом: сформувати вектор, елементами якого є суми елементів рядків і стовпців, що перетинаються на відповідних елементах головної діагоналі.
Текст програми №1
///////////////               pershe zavdannja              ////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
  void prog1 (void)
 {
  FILE *fp;
  int n,i,j,k,m;
  char var;
  float A[10][10],sum[10];
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
  fflush(stdin);
  printf("\nVvedit rezhym roboty:");
  printf("\n 1 - demonstracijnyj;");
  printf("\n 2 - vvid danyh z klaviatury\n");
  scanf("%c",&var);
   switch (var)
    {
     case '1' :goto s1;
     case '2' :goto s2;
    }
////////       vidkryttja fajlu
s1:fp=fopen("Zchyt1.dat","r");
    fscanf(fp,"%d",&n);
    printf("\nNad kvadratnoju matryceju porjadku %d vykonaty diju:",n);
  printf("\nsformuvaty vector, elementamy jakogo e sumy elementiv rjadkiv i stovpciv, shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali.");
   for(i=0;i<n;i++)
     for(j=0;j<n;j++)
       fscanf(fp,"%f",&A[i][j]);
       fclose(fp);
   goto s3;
s2:printf("\nVvedit porjadok matryci n=");
   scanf("%d",&n);
   printf("\nNad kvadratnoju matryceju porjadku %d vykonaty diju:",n);
   printf("\nsformuvaty vector, elementamy jakogo e sumy elementiv rjadkiv i stovpciv, shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali.");
   printf("\nVvedit elementy matryci:\n");
/////////////////       zchytuvannja elementiv matryci        //////////////////
    for(i=0;i<n;i++)
     for(j=0;j<n;j++)
        {
         printf("A[%d][%d]=",i+1,j+1);
         scanf("%f",&A[i][j]);
        }
////////////////////////////////////////////////////////////////////////////////
//formuvannja vectora, elementamy jakogo e sumy elementiv rjadkiv i stovpciv,///
///  shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali       ///
////////////////////////////////////////////////////////////////////////////////
s3:   m=0;
      sum[0]=0;
    for(k=0;k<n;k++)
       {
        for(i=0;i<n;i++)
          sum[m]+=A[i][k];
        for(j=0;j<n;j++)
          sum[m]+=A[k][j];
        m++;
        sum[m]=0;
       }
  printf("\nVvedena matrycja:\n");
     for(i=0;i<n;i++)
       {
        printf("\n");
        for(j=0;j<n;j++)
          printf("%-10.2f",A[i][j]);
       }
/////////////////////////   vyvedennja rezultatu       /////////////////////////
  printf("\n\nVyvid sformovanogo vectora:");
    for(i=0;i<k;i++)
       printf("\nsum[%d]=%.2f",i+1,sum[i]);
 getchar();
 getchar();
}
Завдання №2
Сформувати зі стовпців прямокутної матриці В, які не містять однакових елементів, матрицю С розміром m*k, де k<=n – кількість таких стовпців.
Текст програми №2
///////////                   druge zavdannja               ////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog2 (void)
 {
  FILE *fp;
  char var;
  int m,n,i,j,k,ii,jj,y,x;
  float B[10][10],C[10][10];
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
 fflush(stdin);
  printf("\nIz zadanoji prjamokutnoji matryci sformuvaty matrycju C z stovpciv");
  printf(" B, jaki ne mistjat odnakovyh elementiv, rozmirom m*k, de k<=n -  ");
  printf("kilkist takyh stovpciv");
  printf("\nVvedit rezhym roboty:");
  printf("\n 1 - demonstracijnyj;");
  printf("\n 2 - vvid danyh z klaviatury\n");
  scanf("%c",&var);
   switch (var)
    {
     case '1' :goto s1;
     case '2' :goto s2;
    }
////////       vidkryttja fajlu
s1:fp=fopen("Zchyt2.dat","r");
    fscanf(fp,"%d",&m);
    fscanf(fp,"%d",&n);
  for(i=0;i<m;i++)
     for(j=0;j<n;j++)
       fscanf(fp,"%f",&B[i][j]);
       fclose(fp);
   goto s3;
s2:printf("\nVvedit parametry matryci m*n  m=");
  scanf("%d",&m);
  printf("\n                              n=");
  scanf("%d",&n);
  printf("\nVvedit elementy prjamocutnoji matryci %d*%d:\n",m,n);
/////////////////       zchytuvannja elementiv matryci        //////////////////
    for(i=0;i<m;i++)
     for(j=0;j<n;j++)
        {
         printf("B[%d][%d]=",i+1,j+1);
         scanf("%f",&B[i][j]);
        }
////////////////////////////////////////////////////////////////////////////////
/////   formuvannja matrycju C z rjadkiv B, jaki ne mistjat odnakovyh    ///////
///////               elemantom rozmirom m*k, de k<=n -               //////////
///////                     kilkist takyh stovpciv                    //////////
////////////////////////////////////////////////////////////////////////////////
s3:      k=0;x=0;
       for(j=0;j<n;j++)
          {
           for(i=0;i<m;i++)
             {
               ii=i;
               while(ii<m)
                {
                 ii++;
                 if(B[i][j]==B[ii][j])
                    k++;
                 }
              }
            if(k!=0)
               k=0;
            else
              {
               for(y=0;y<m;y++)
                 C[y][x]=B[y][j];
               x++;
              }
         }
  printf("\nVvedena matrycja:");
    for(i=0;i<m;i++)
      {
       printf("\n");
       for(j=0;j<n;j++)
          printf("%-10.2f",B[i][j]);
       }
/////////////////////////   vyvedennja rezultatu       /////////////////////////
  printf("\n\nVyvid sformovanji matruci:");
  for(i=0;i<m;i++)
   {
    printf("\n");
    for(j=0;j<x;j++)
      printf("%-10.2f",C[i][j]);
   }
 getchar();
 getchar();
}
Завдання№3
З множини М точок на площині, заданих декартовими координатами, сформувати підмножину Р(М, що містить точки, які знаходяться всередині замкненої області D. Область D обмежена лініями:
y=0,2*x-k1;
y=k3x;
     y=ln(x-k4).
Текст програми №3
///////////////               tretje zavdannja                 /////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog3 (void)
 {
  int n,i;
  float x[10],y[10];
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
  printf("\nFormuvannja pidmnozhyny tochok zamknenoji oblasti D, jaki zadani");
  printf("v dekartovij systemi koordynat");
  printf("\nVvedit kilkist tochok n=");
    scanf("%d",&n);
//////////////////////////   zchytuvannja tochok      //////////////////////////
       for(i=0;i<n;i++)
          {
           printf("\nx[%d]=",i+1);
           scanf("%f",&x[i]);
           printf("\ny[%d]=",i+1);
           scanf("%f",&y[i]);
          }
////////////////           obchyslennja ta vyvedennja             //////////////
///////////////       tochok, jaki nalezhat zamknenij oblasti    ///////////////
    for(i=0;i<n;i++)
          {
           if ( (y[i]>0.2*x[i]-0.1)&&(y[i]>x[i])&&(y[i]>log(fabs(x[i])-0.25))&&(y[i]>log(fabs(x[i])-0.5))&&(y[i]>log(fabs(x[i])-0.75)))
               printf("\nDana tochka (%.2f;%.2f) ne nalezhyt zamknenij oblasti D.",x[i],y[i]);
           else
               {
                if ((y[i]<=0.2*x[i]-0.1)&&(y[i]<=x[i])&&(y[i]<=log(fabs(x[i])-0.25))&&(y[i]<=log(fabs(x[i])-0.5))&&(y[i]<=log(fabs(x[i])-0.75)) )
                   printf("\nDana tochka (%.2f;%.2f) nalezhyt zamknenij oblasti D.",x[i],y[i]);
                else
                    printf("\nDana tochka (%.2f;%.2f) ne nalezhyt zamknenij oblasti D.",x[i],y[i]);
               }
          }
  getchar();
  getchar();
}
Завдання №4
З множини прямих М, заданих коефіцієнтами рівняння Ах+Ву+С=0, сформувати множину прямих Р(М, відстань від яких до точки А(хА;уА) менша за задану величину, і впорядкувати прямі в порядку спадання відстаней.
Текст програми №4
/////////////////         chetverte zavdannja            //////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog4(void)
 {
  int kst,i,j;
  float A[10],B[10],C[10],d[10];
  float xa,ya,vel;
  float *koef;
  float *Dmin[10],*Amin[10],*Bmin[10],*Cmin[10];
/////////////////////////////// text programy  /////////////////////////////////
 textcolor(11);
 clrscr();
 printf("\nZ mnozhyny prjamyh M, zadanych koeficijentamy rivnjannja Ax+By+C=0");
 printf(", sformuvaty mnozhynu prjamyh P=<M, vidstan vid jakyh do tochky A(xa");
 printf(";ya) najmensha za zadanu velychynu, i vporjadkuvaty prjami v porjadku spadannja");
 printf(" vidstanej");
//////////////////////// vvedennja neobhidnyh parametriv ///////////////////////
   printf("\nVvedit kilkist prjamyh kst=");
   scanf("%d",&kst);
   printf("Vvedit %d koeficijentiv A, B i C prjamoji, vygljadu Ax+By+C=0:",kst);
    for(i=0;i<kst;i++)
       {
        printf("\n                                %d prjama ",i+1);
        printf("A[%d]=",i+1);
        scanf("%f",&A[i]);
        printf("                                         B[%d]=",i+1);
        scanf("%f",&B[i]);
        printf("                                         C[%d]=",i+1);
        scanf("%f",&C[i]);
       }
   printf("\nVvedit coordynaty tochku A(xa;ya)  xa=");
   scanf("%f",&xa);
   printf("\n                                   ya=");
   scanf("%f",&ya);
   printf("\nVvedit bud-jaku velychynu vel-");
   scanf("%f",&vel);
///////////        znahodzennja vidstanej vid tochky do prjamyh      ///////////
    for(i=0;i<kst;i++)
       d[i]=fabs((A[i]*xa+B[i]*ya+C[i])/( pow((pow(A[i],2)+pow(B[i],2)),0.5 )));
//////////// vporjadkuvannja prjamyh v porjadky spadannja vidstanej ////////////
    for(i=0;i<kst;i++)
       {
        Amin[i]=&A[i];
        Bmin[i]=&B[i];
        Cmin[i]=&C[i];
        Dmin[i]=&d[i];
       }
    for(i=0;i<kst-1;i++)
     for(j=i+1;j<kst;j++)
       {
        if(*Dmin[j]>*Dmin[i])
          {
           koef=Dmin[i];
           Dmin[i]=Dmin[j];
           Dmin[j]=koef;
           fflush(stdin);
           koef=Amin[i];
           Amin[i]=Amin[j];
           Amin[j]=koef;
           fflush(stdin);
           koef=Bmin[i];
           Bmin[i]=Bmin[j];
           Bmin[j]=koef;
           fflush(stdin);
           koef=Cmin[i];
           Cmin[i]=Cmin[j];
           Cmin[j]=koef;
          }
       }
////////////////////////////// vyvid rezultativ ////////////////////////////////
////////        obchyslennja prjamyh, vidstan vid jakoji          /////////////
/////////         do tochky - mensha za zadanu velychynu         ///////////////
  printf("\n Prjami, vidstan vid jakoji do tochky A(%.2f;%.2f) bilsha za zadanu velychynu vel=%.2f:",xa,ya,vel);
   for(i=0;i<kst;i++)
     if(d[i]<vel)
       printf("\n Vidst=%.2f, prjama  %.2fx%+.2fy%+.2f=0",d[i],A[i],B[i],C[i]);
   printf("\n\n Prjami v porjadky spadannja vidstanej:");
    for(i=0;i<kst;i++)
       printf("\n%d. %.2fx%+.2fy%+.2f=0;",i+1,*(Amin[i]),*(Bmin[i]),*(Cmin[i]));
   getchar();
   getchar();
 }
Завдання №5
З множини М точок на площині сформувати множину точок Р(М, відстань від яких до прямої Ах+Ву+С=0 найбільша, і впорядкувати точки в порядку спадання відстаней.
Текст програми №5
////////////                  pjate zavdannja                      /////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog5(void)
 {
  int n,i,j,nom_max;
  float x[10],y[10],d[10],max;
  float A,B,C;
  float *Xmin[10],*Ymin[10],*Dmin[10];
  float *koef;
/////////////////////////////// text programy  /////////////////////////////////
  textcolor(11);
  clrscr();
 printf("\nZ mnogyny M tochok na ploshchyni sformuvaty mnozhynu tochok P=<M, ");
 printf("vidstan vid jakyh do prjamoji Ax+By+C=0 - najbilsha i vporjadkuvaty ");
 printf("tochky v porjadku spadannja vidstanej.");
//////////////////////// vvedennja neobhidnyh parametriv ///////////////////////
   printf("\nVvedit kilkist tochok  n=");
   scanf("%d",&n);
   printf("Vvedit koordynaty %d tochok",n);
     for(i=0;i<n;i++)
       {
        printf("\n                                %d tochka ",i+1);
        printf("x[%d]=",i+1);
        scanf("%f",&x[i]);
        printf("                                         y[%d]=",i+1);
        scanf("%f",&y[i]);
       }
   printf("\nVvedit coeficijentu prjamoji Ax+By+C=0  A=");
   scanf("%f",&A);
   printf("\n                                        B=");
   scanf("%f",&B);
   printf("\n                                        C=");
   scanf("%f",&C);
//////// obchyslennja prjamoji, vidstan vid jakoji do tochky - najbilsha ///////
    for(i=0;i<n;i++)
       d[i]=fabs((A*x[i]+B*y[i]+C)/( pow((pow(A,2)+pow(B,2)),0.5 )));
   max=d[0];
   nom_max=0;
    for(i=1;i<n;i++)
       {
        if(d[i]>max)
          {
           max=d[i];
           nom_max=i;
          }
        }
//////////// vporjadkuvannja tochok v porjadky spadannja vidstanej ////////////
    for(i=0;i<n;i++)
       {
        Xmin[i]=&x[i];
        Ymin[i]=&y[i];
        Dmin[i]=&d[i];
       }
   for(i=0;i<n-1;i++)
     for(j=i+1;j<n;j++)
       {
        if(*Dmin[j]>*Dmin[i])
          {
           koef=Dmin[i];
           Dmin[i]=Dmin[j];
           Dmin[j]=koef;
           fflush(stdin);
           koef=Xmin[i];
           Xmin[i]=Xmin[j];
           Xmin[j]=koef;
           fflush(stdin);
           koef=Ymin[i];
           Ymin[i]=Ymin[j];
           Ymin[j]=koef;
           fflush(stdin);
          }
       }
////////////////////////////// vyvid rezultativ ////////////////////////////////
  printf("\n Tochka, vidstan vid jakoji do prjamoji %.2fx%+.2fy%+.2f=0",A,B,C);
  printf("\n - najbilsha  A(%0.2f;%0.2f)",x[nom_max],y[nom_max]);
  printf("\n\n Tochky v porjadky spadannja vidstanei do prjamoji:");
   for(i=0;i<n;i++)
     printf("\n%d. A(%.2f;%.2f)",i+1,*(Xmin[i]),*(Ymin[i]));
  getchar();
  getchar();
}
Завдання №6
З множини прямих М, заданих коефіцієнтами рівняння Ах+Ву+С=0, вибрати прямі, що паралельні осі ОУ.
Текст програми №6
/////////////              shoste zavdannja                    ///////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog6(void)
 {
  int kst,i,j,n;
  float  obc_vid;         //obc_vid - obchyslena vidstani
  float A[10],B[10],C[10];
/////////////////////////////// text programy  /////////////////////////////////
  textcolor(11);
  clrscr();
   puts("\nZ mnozhyny prjamyh M, zadanyh koeficijentamy rivnjannja Ax+By+C=0,");
   puts(" vybraty prjami, paralelni osi OY. ");
   printf("\nVvedit kilkist prjamyh -> kst=");
   scanf("%d",&kst);
    printf("Vvedit %d koeficijentiv A, B i C prjamoji, vygljadu Ax+By+C=0:",kst);
    for(i=0;i<kst;i++)
       {
        printf("\n                                %d prjama ",i+1);
        printf("A[%d]=",i+1);
        scanf("%f",&A[i]);
        printf("                                         B[%d]=",i+1);
        scanf("%f",&B[i]);
        printf("                                         C[%d]=",i+1);
        scanf("%f",&C[i]);
       }
////               obchyslennja prjamyh, jaki paralelni osi OY               ///
////////                          vyvid na druk                        /////////
   printf("\nPrjami, paralelni osi OY");
    for(i=0;i<kst;i++)
       {
        if((A[i]/(-1))==(B[i]/2))
          printf("\n    %.2fx%+.2fy%+.2f=0 ",A[i],B[i],C[i]);
       }
   getchar();
   getchar();
 }
Завдання №7
Визначити довжини ламаних ліній, які починаються в точці А(хА;уА), проходить через одну з точок множини М((х1;у1), (х2;у2), ..., (хп;уп)( і закінчується в точці В(хВ;уВ).
Сформувати множину точок Р(М, що належать ламаним, довжина яких найбільша, і впорядкувати точки в порядку зростання довжини ламаних.
Текст програми №7
////////////////           sjome zavdannja                 ////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog7 (void)
 {
  int n,i,max,nom;
  float xa,ya,xb,yb,x[10],y[10],d[2],A[2],B[2],C[2];
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
 printf("\nVyznachyty dovzhyny lamanyh linij, jaki pochynajutsja v tochci ");
 printf("A(xa;ya), prohodjat cherez odnu z tochok mnozhyny M{(x1;y1),(x2,y2),");
 printf(" ...,(xn;yn)} i zakinchujutsja v tochci B(xb;yb).");
 printf("\nSformuvaty mnogynu tochok PeM, shcho nalezhat lamanym, dovzhyna ");
 printf("jakyh - najbilsha, i vporjadkuvaty tochky v porjadku zrostannja ");
 printf("dovzhyny lamanyh");
  printf("\nVvedit coordynaty pochatky ta kincja lamanoji xa=");
  scanf("%f",&xa);
  printf("                                                ya=");
  scanf("%f",&ya);
  printf("                                                xb=");
  scanf("%f",&xb);
  printf("                                                yb=");
  scanf("%f",&yb);
  printf("\nSkilky tochok mnozhyny M Vy hochete vvesty n=");
  scanf("%d",&n);
  printf("\nVvedit %d tochok mnozhynu:",n);
   for(i=0;i<n;i++)
     {
      printf("\nA%d \n   x[%d]=",i+1,i+1);
      scanf("%f",&x[i]);
      printf("   y[%d]=",i+1);
      scanf("%f",&y[i]);
     }
   printf("\nVvedit nomer tochky(nom<=%d), cherez jaku prohodyt lamana nom=",n);
   scanf("%d",&nom);
      A[0]=y[nom]-ya;            //znahodzennja prjamyh
      B[0]=xa-x[nom];
      C[0]=-xa*y[nom]+ya*x[nom];
      A[1]=yb-y[nom];
      B[1]=x[nom]-xb;
      C[1]=-x[nom]*yb+y[nom]*xb;      //d1 i d2  dovzhyny lamanyh
      d[0]=abs((A[1]*xa+B[1]*ya+C[1])/( pow((pow(A[1],2)+pow(B[1],2)),0.5 )));
      d[1]=abs((A[0]*xb+B[0]*yb+C[0])/( pow((pow(A[0],2)+pow(B[0],2)),0.5 )));
   d[0]<d[1]?max=1:max=0; //znahodzhennja najdovshoji prjamoji
 printf("\nTochky, jaki nalezhat najdovshij lamanij:");
    for(i=0;i<n;i++)
       if(x[i]==(-(C[max]+B[max]*y[i])/A[max]))
        printf("\n   A(%.2f;%.2f); ",x[i],y[i]);
getchar();
getchar();
}
Завдання №8
Обчислення інтеграла із заданою точністю способом Сімпсона(парабол).
Текст програми №8
///////////////             vosjme zavdannja                ///////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog8 (void)
 {
  int n,i,j,jmax;
  float h,b,a,sum1,sum2;
  double I[50],ee,e;
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
  printf("\nObchyslennja integrala iz zadanoju tochnistju metodom ");
  printf("Simpsona(parabol)");
  printf("\n jmax=");
  scanf("%d",&jmax);
  printf("\nVvedit tochnist obchyslennja e=");
  scanf("%f",&e);
///////////////////////   obchyslennja integrala      //////////////////////////
   b=1.0;a=0.0;n=2;sum1=0;sum2=0;j=0;ee=0;
printf("\n _____________________________________________________________________");
printf("\n|       b      |       I[j]      |      nj      |          e          |");
printf("\n _____________________________________________________________________");
    h=(b-a)/n;
      for(i=0;i<(n/2-1);i++)
          sum1+=(a+(2*i+1)*h);
      for(i=1;i<(n/2-1);i++)
         sum2+=a+2*i*h;
       I[j]=((h/3)*(1/(pow((2*a*a*a*a+1.7),0.5))+ 1/(pow((2*b*b*b*b+1.7),0.5))+4*sum1+2*sum2));
printf("\n|     %.2f     |     %0.5lf     |      %d      |  %.15lf       |",b,I[j],n,ee);
   b=1.2;n=4;sum1=0;sum2=0;j=1;
   while(e>ee||jmax>j)
       {
        h=(b-a)/n;
        for(i=0;i<(n/2-1);i++)
           sum1+=(a+(2*i+1)*h);
        for(i=1;i<(n/2-1);i++)
           sum2+=a+2*i*h;
       I[j]=((h/3)*(1/(pow((2*a*a*a*a+1.7),0.5))+ 1/(pow((2*b*b*b*b+1.7),0.5))+4*sum1+2*sum2));
       ee=fabs(I[j]-I[j-1]);
/////////////////////        vyvid tablyci           ///////////////////////////
printf("\n|     %.2f     |     %0.5lf     |      %d      |  %.15lf       |",b,I[j],n,ee);
     b+=0.2;n*=2;j++;sum1=0;sum2=0;
      }
printf("\n _____________________________________________________________________");
getchar();
getchar();
}
Завдання №9
Наближене обчислення рівняння методом хорд.
Текст програми №9
//////////////                    devjate zavdannja              ///////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog9 (void)
 {
  FILE *fp;
  char var;
  float b,a,C,e,ee,b1,a1;
  float Fc,Fa,Un,Vn,X;
////////////////////////     text  programy        /////////////////////////////
 textcolor(11);
 clrscr();
 fflush(stdin);
  printf("\nNablyzhene obchyslennja korenja rivnjannja");
  printf("\nVvedit rezhym roboty:");
  printf("\n 1 - demonstracijnyj;");
  printf("\n 2 - vvid danyh z klaviatury\n");
  scanf("%c",&var);
   switch (var)
    {
     case '1' :goto s1;
     case '2' :goto s2;
    }
////////       vidkryttja fajlu
s1:fp=fopen("Zchyt9.dat","r");
    fscanf(fp,"%f",&e);
    fclose(fp);
   goto s3;
s2:printf("\nVvedit tochnist obchyslennja e=");
  scanf("%f",&e);
//////////////     obchyslennja korenja rivnjannja metodom hord       //////////
s3: b=0.1;a=1.0;C=0;
  do
   {
    Un=(1/a)-a*cos(3.14/2*a);//pry vykorystanni sqrt(-x)- programa ne pracuje
    Vn=(1/b)-b*cos(3.14/2*b);// zaminyv na 1/x
    C=a-Un*((b-a)/(Vn-Un));
    Fa=(1/a)-a*cos(3.14/2*a);
    Fc=(1/C)-C*cos(3.14/2*C);
    if((Fa>0)&&(Fc>0)||(Fa<=0)&&(Fc<=0))
     {
      a1=a;
      a=C;
      b=b;
      ee=fabs((a-a1)/a);
     }
    else
      {
       b1=b;
       a=a;
       b=C;
       ee=fabs((b-b1)/b);
      }
    X=C;
    }
  while(ee>=e);
  printf("\nRezultat obchyslennja rivnjannja metodom polovynnogo dilennja x=%.2f",X);
getchar();
getchar();
}
Текст головного меню
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 void prog1(void);
 void prog2(void);
 void prog3(void);
 void prog4(void);
 void prog5(void);
 void prog6(void);
 void prog7(void);
 void prog8(void);
 void prog9(void);
void main(void)
{
 char var;
start:textcolor(11);
 clrscr();
 printf("\nVyberit variant zavdannja kursovoji roboty:");
 printf("\n 1 - pershe zavdannja ");
 printf("\n 2 - druge zavdannja ");
 printf("\n 3 - tretje zavdannja ");
 printf("\n 4 - chetverte zavdannja ");
 printf("\n 5 - pjate zavdannja ");
 printf("\n 6 - shoste zavdannja ");
 printf("\n 7 - sjome zavdannja ");
 printf("\n 8 - vosme zavdannja ");
 printf("\n 9 - devjate zavdannja\n  ");
 scanf("%c",&var);
  switch (var)
    {
     case '1':goto p1;
     case '2':goto p2;
     case '3':goto p3;
     case '4':goto p4;
     case '5':goto p5;
     case '6':goto p6;
     case '7':goto p7;
     case '8':goto p8;
     case '9':goto p9;
    }
    p1:{  prog1();goto start;}
    p2:{  prog2();goto start;}
    p3:{  prog3();goto start;}
    p4:{  prog4();goto start;}
    p5:{  prog5();goto start;}
    p6:{  prog6();goto start;}
    p7:{  prog7();goto start;}
    p8:{  prog8();goto start;}
    p9:{  prog9();goto start;}
  }
Висновок: реалізував завдання у вигляді функцій, які для виконання об‘єднуються в проект. У процесі розробки програм використав відповідні структури даних (масиви, записи, множини, файли).