DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Курсова робота з предмету: Проблемно-орієнтовані мови програмування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2015
Тип роботи:
Курсова робота
Предмет:
Проблемно-орієнтовані мови програмування
Група:
КН-117
Коротко про документ

Про що ця робота

У курсовій роботі реалізовано комплекс програм на мові C для розв'язання прикладних математичних задач і обробки структур даних. Проєкт складається з головного меню та набору окремих функцій для роботи з матрицями, точками, прямими та чисельними методами.

У роботі розглядаються

  • Програмування на мові C
  • Обробка матриць і векторів
  • Геометричні задачі на площині
  • Чисельне інтегрування методом Сімпсона
  • Наближене обчислення коренів рівнянь
  • Робота з файлами в C
  • Модульна структура програм

Зміст і розділи

  1. Перше завдання: операції з квадратною матрицею
  2. Друге завдання: формування матриці зі стовпців
  3. Третє завдання: підмножина точок у замкненій області
  4. Четверте завдання: обробка множини прямих
  5. П'яте завдання: відстань від точок до прямої
  6. Шосте завдання: прямі, паралельні осі OY
  7. Сьоме завдання: довжини ламаних ліній
  8. Восьме завдання: обчислення інтеграла методом Сімпсона
  9. Дев'яте завдання: наближене обчислення рівняння методом хорд
  10. Головне меню програми
Для кого:Студенти технічних спеціальностей, викладачі та розробники, які вивчають мови програмування та чисельні методи.
Викладачі:Семотюк В.М.

Ключові поняття

мова Cматрицяструктури данихфункціяметод Сімпсонаметод хорддекартові координатифайловий ввід-вивідалгоритм

Частина тексту файла (без зображень, графіків і формул):

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

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!