Міністерство освіти і науки України
Національний університет „ Львівська політехніка “
Кафедра програмного забезпечення
Курсова робота
з предмету: ”Проблемно орієнтовані мови програмування”
Львів-2004
Мета роботи:
реалізувати завдання у вигляді функцій, які для виконання об‘єднуються в проект. У процесі розробки програм слід широко використовувати відповідні структури даних (масиви, записи, множини, файли).
Варіант №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;}
}
Висновок: реалізував завдання у вигляді функцій, які для виконання об‘єднуються в проект. У процесі розробки програм використав відповідні структури даних (масиви, записи, множини, файли).