Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Текст программы. 
Разработка программного комплекса решения математической задачи численными методами

РефератПомощь в написанииУзнать стоимостьмоей работы

Tc (4);rpr («НЕПРАВИЛЬНОЕ УКАЗАНИЕ ПОГРЕШНОСТИ! «);tc (7); Rpr («быть монотонной и не иметь точек перегиба. «); Gxy (7,8); rpr («Инфо о сие замечательном творении…»); Tc (4);rpr («НЕПРАВИЛЬНОЕ УКАЗАНИЕ ИНТЕРВАЛА! «);tc (7); Void draw_window (char *caption, int xl, int xr, int yu, int yd, int cf, int cb) {. Gxy (7,7); rpr («Ввести данные и начать работу…»); Gxy (7,13); rpr («ESC — выйти; ENTER… Читать ещё >

Текст программы. Разработка программного комплекса решения математической задачи численными методами (реферат, курсовая, диплом, контрольная)

#include.

#include.

#include.

#include.

#include.

#define gxy gotoxy.

#define cpr cprintf.

#define rpr rprintf.

#define tc textcolor.

int x[]={10,10,10}, y[]={7,8,9};

FILE *hlp;

void rprintf (char str[]) {.

char buffer[200];

CharToOem (str, buffer);

cpr («%s», buffer); }.

void draw_window (char *caption, int xl, int xr, int yu, int yd, int cf, int cb) {.

register short int x, y;

tc (cf);

gxy (xl, yu); putch (218);

gxy (xl, yd); putch (192);

gxy (xr, yu); putch (191);

gxy (xr, yd); putch (217);

for (x=xl+1;x.

gxy (x, yu); putch (196);

gxy (x, yd); putch (196); }.

for (y=yu+1;y.

gxy (xl, y); putch (179);

gxy (xr, y); putch (179);

for (x=xl+1;x.

gxy (x, y);putch (32); } }.

gxy (xl+floor ((xr-xl-strlen (caption))/2), yu); cpr («%s», caption);

}.

int selection (int *x, int *y, int cnt) {.

int cur=1, i, c;

int pressed_key;

const int enter_key=13, up_arrow=72,down_arrow=80,esc_key=27;

do {.

for (i=0;i.

{.

gxy (x[i], y[i]);

if (i+1==cur)c=14; else c=0;

tc (c); putch (16);

}.

pressed_key=getch ();

switch (pressed_key) {.

case up_arrow: cur=(cur==1)?cnt:cur-1;break;

case down_arrow: cur=(cur==cnt)?1:cur+1;break;

case esc_key: exit (0);

case enter_key: return cur;

default: break; }.

}while (pressed_key≠up_arrow||pressed_key≠down_arrow);

}.

float F (float v, int n, float*k).

{.

int i;

float tmp=0;

for (i=n;i>=0;i—).

{.

tmp+=k[i]*pow (v, i);

}.

return tmp;

}.

int main (void) {.

int choice, i, j;

int n, xc, yc;

float *k, a, b, p, l, r, fl, fr, fx, xp, root;

char s[50];

for (;;){.

clrscr ();

gxy (7,6);rpr («______________________КУРСОВАЯ РАБОТА_____________________»);

gxy (7,5);rpr («__________________________________________________________»);

gxy (7,6); rpr (««); tc (2);

gxy (7,7); rpr («Ввести данные и начать работу…»);

gxy (7,8); rpr («Инфо о сие замечательном творении…»);

gxy (7,9); rpr («Выход…»);

gxy (7,10); rpr (««); tc (7);

gxy (7,11); rpr («______________________КЛАВИШИ:_________________________»);

gxy (7,12); rpr («ВНИЗ, ВВЕРХ — Выбор»);

gxy (7,13); rpr («ESC — выйти; ENTER — подтвердить»);

gxy (7,14); rpr («_______________________________________________________»);

tc (3);

gxy (7,15); rpr («___________________ТОКАРЧУК Н.А.______________________»);

choice=selection (x, y,3);

switch (choice) {.

case 1: clrscr ();tc (14);

rpr («____________________Вводд данных:___________________ «); do {.

tc (7);rpr («Введите степень многочлена из интервала [2; 5]-> «);

scanf («%d» ,&n);

if (n5).

{.

tc (4);rpr («НЕПРаВИЛЬНОЕ ЗНАЧЕНИЕ! «);tc (7);

}.

}while (n5);

k=new float[n+1];

rpr («Введите коэффициенты многочлена при степенях, начиная со старшего: «);

for (i=0;i<=n;i++)scanf («%f» ,&k[n-i]);

tc (2);rpr («ПОЛУЧЕННЫЙ МНОГОЧЛЕН: «);tc (10);

for (i=n;i>=0;i—).

{.

if (k[i]<0 || i==n)cpr («%f (X^%d)», k[i], i);

else if (i≠n)cpr («+%f (X^%d)», k[i], i);

}.

putch (8);putch (8);putch (8);putch (8);putch (8);

cpr («= 0 «);tc (7);

do {.

rpr («Введите интервал [a; b], содержащий корень уравнения: «);

rpr («Примечание: Функция y=f (x) должна иметь на указанном интервале только 1 корень, «);

rpr («быть монотонной и не иметь точек перегиба. «);

scanf («%f %f», &a,&b);

if (a==b || a>b).

{.

tc (4);rpr («НЕПРАВИЛЬНОЕ УКАЗАНИЕ ИНТЕРВАЛА! «);tc (7);

}.

}while (a==b || a>b);

do {.

rpr («Введите точность вычисления корня уравнения:»);

scanf («%f», &p);

if (p>0.1 || p<0.1).

{.

tc (4);rpr («НЕПРАВИЛЬНОЕ УКАЗАНИЕ ПОГРЕШНОСТИ! «);tc (7);

}.

}while (p>0.1 || p<0.1);

if (F (a, n, k)*F (b, n, k)>0).

{.

tc (14);rpr («Уравнение не имеет корней либо имеет более 1 корня на указанном интервале! «);

tc (7);rpr («Нажмите любую клавишу…»); getch ();

break;

}.

l=a;r=b;

fl=F (l, n, k);

fr=F (r, n, k);

do {.

xp=(l+r)/2;

fx=F (xp, n, k);

if (fx==0).

{.

root=fx; break;

}.

if (fx*fl<0).

{.

r=xp; fr=fx;

}.

else.

{.

l=xp; fl=fx;

}.

if (r-l-p<0)root=(r+l)/2;

}while (r-l-p>=0);

tc (13);rpr («Корень уравнения X = «);

cpr («%f «, root);

tc (7);rpr («Нажмите любую клавишу…»);

getch ();

delete [] k;

break;

case 2: draw_window («HELP «, 1, 80, 1, 23, 10, 0);

if ((hlp=fopen («c:hlp.txt» ," rt"))==NULL).

{.

gxy (10,8);tc (4);rpr («Файл не найден! «);

gxy (10,9);tc (7);rpr («Нажмите любую клавишу…»);

getch (); break;

}.

xc=2,yc=2;

tc (11);

while (!feof (hlp)).

{.

s[0]='';

fscanf (hlp," %s" ,&s);

strcat (s," «);

if (xc+strlen (s)>79){xc=2;yc++;}.

gxy (xc, yc); rpr (s);

xc+=strlen (s);

}.

rpr (««); tc (15);

putch (179);rpr («Нажмите любую клавишу…»);

getch (); break;

case 3: exit (0);

default:break; }.

}.

}.

Показать весь текст
Заполнить форму текущей работой