Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Распечатка текста программы

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

Printf («В интервале корня нет! «, g, s); Return getmaxy () — (y-y_min)/(y_max-y_min)*getmaxy (); Printf («Введите коэффициенты: a=»); Pol_del.cpp — главный файл проекта. Printf («Введите точность eps:»); Float x, f1, f2, fm, x1, g, s, f, pog, pog1, j, t; Printf («Введите границы: gr1=»); Void Point (float x, float y, int color){. A=-sign®*pow (fabs®+sqrt (R1-Q1), 0.33); Setlocale (LC_CTYPE… Читать ещё >

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

Комментарии к файлу хранятся в исходнике.

Pol_del.cpp — главный файл проекта.

#include.

#include.

#include.

#include.

#include.

#include.

const int X0=400, Y0=300, k=100;

const float pi=3.14;

int n=0, v, n_max, n1;

float a, b, c, gr1, gr2, eps;

float q, r, Q, R, m, A, B, R1, Q1;

float x, f1, f2, fm, x1, g, s, f, pog, pog1, j, t;

float F1(float x){.

return a*x*x*x+b*x+c;

}.

float F2(float x){.

return a*sin (x+b)+c;

}.

float F3(float x){.

return a*log (fabs (x+b))+c;

}.

float sign (float x){.

if (x==0)return 0;

if (x>0) return 1;

else return -1;

}.

#include" graphic. cpp" .

main () {.

setlocale (LC_CTYPE, «Russian»);

printf («Выберите уравнение: 1) y=a*x*x*x+b*x+c 2) y=a*sin (x+b)+c 3) y=a*ln|x+b|+c Ввод:»);

scanf («%d», &v);

switch (v).

{.

case 1: break;

case 2: break;

case 3: break;

default:printf («Введен неверное значение! Программа закрывается! «);

system («pause»);

exit (0);

}.

fflush (stdin);

printf («Введите точность eps:»);

while (!scanf («%f», &eps)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! Введите точность eps:»);

}.

if (eps<0||eps==0){.

printf («Точность не может быть отрицательной или равной нулю! Программа закрывается! «);

system («pause»);

exit (0);

}.

fflush (stdin);

printf («Введите границы: gr1=»);

while (!scanf («%f», &gr1)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! gr1=»);

}.

fflush (stdin);

printf («gr2=»);

while (!scanf («%f», &gr2)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! gr2=»);

}.

if (gr1>gr2){.

s=gr1;

g=gr2;

gr1=g;

gr2=s;

}.

g=gr1;

s=gr2;

fflush (stdin);

printf («Введите коэффициенты: a=»);

while (!scanf («%f», &a)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! a=:»);

}.

fflush (stdin);

printf («b=»);

while (!scanf («%f», &b)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! b=»);

}.

fflush (stdin);

printf («c=»);

while (!scanf («%f», &c)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! c=:»);

}.

fflush (stdin);

printf («Введите максимальное число делений:»);

while (!scanf («%d», &n_max)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! Введите максимальное число делений:»);

}.

if (n_max<0||n_max==0){.

printf («Количество делений не может быть вещественным числом или меньше, либо равным нулю! Программа закрывается! «);

system («pause»);

exit (0);

}.

fflush (stdin);

switch (v).

{case 1:

while (fabs (gr2-gr1)>eps){.

n++;

x=(gr1+gr2)/2;

f1=F1(x);

f2=F1(gr2);

if (fabs (f1).

{break;}.

if (f2*f1<0).

{gr1=x;}.

else.

{gr2=x;}.

}.

if (a==0&&b≠0){.

x1=-c/b;

break;

}.

if (a≠0){.

q=b/a;

r=c/a;

Q=-(3*q)/9;

R=(27*r)/54;

Q1=pow (Q, 3);

R1=pow (R, 2);

if (R1.

{m=acos (R/sqrt (Q1))/3;

x1=-2*sqrt (Q)*cos (m);

}.

if (R1>=Q1).

{A=-sign®*pow (fabs®+sqrt (R1-Q1), 0.33);

if (A≠0).

{B=Q/A;

}.

if (A==0).

{B=0;

}.

x1=(A+B);

}.

}.

if (!((g=x1))||a==0&&b==0){.

printf («В интервале [%.3f;%.3f] корня нет! «, g, s);

system («pause»);

exit (0);

}.

x=(gr2+gr1)/2;

fm=F1(x);

break;

case 2:

while (fabs (gr2-gr1)>eps){.

n++;

x=(gr1+gr2)/2;

f1=F2(x);

f2=F2(gr2);

if (fabs (f1).

{break;}.

if (f2*f1<0).

{gr1=x;}.

else.

{gr2=x;}.

}.

if (c/a>1||c/a<-1){.

printf («В интервале [%.3f;%.3f] корня нет! «, g, s);

system («pause»);

exit (0);

}.

if (!((g=x1))||a==0){.

printf («В интервале [%.3f;%.3f] корня нет! «, g, s);

system («pause»);

exit (0);

}.

x=(gr2+gr1)/2;

for (n1=0;n1<=1000;n1++).

{.

j=-asin (c/a)-b-pi*n1;

if (((x-0.03*x)=j)){.

x1=j;

}.

}.

for (n1=0;n1<=1000;n1++){.

j=-asin (c/a)-b+pi*n1;

if (((x-0.03*x)=j)){.

x1=j;

}.

}.

fm=F2(x);

break;

case 3:

while (fabs (gr2-gr1)>eps){.

n++;

x=(gr1+gr2)/2;

f1=F3(x);

f2=F3(gr2);

if (fabs (f1).

{break;}.

if (f2*f1<0).

{gr1=x;}.

else.

{gr2=x;}.

}.

x1=pow (M_E, (-c/a))-b;

if (!((g=x1))||a==0){.

printf («В интервале [%.3f;%.3f] корня нет! «, g, s);

system («pause»);

exit (0);

}.

if (gr2+b<0){.

printf («В интервале [%f;%f] корня нет! «, g, s);

system («pause»);

exit (0);

}.

x=(gr2+gr1)/2;

fm=F3(x);

break;

}.

pog1=fabs (x-x1);

if (x1>x){.

pog=fabs ((x-x1)/x1)*100;

}.

if (x==0&&x1==0){.

pog=0;

}.

else{.

pog=fabs ((x1-x)/x)*100;

}.

if (n>n_max){.

printf («За %d шаг (ов) корень не найден. Продолжаем? 1) Да 2) Нет Ввод:», n_max);

while (!scanf («%d», &t)){.

while (getchar () ≠ ' ');

printf («Ошибка ввода! Попробуйте снова! Ввод:»);

}.

if (t==1){.

printf («Приближенное x=%.3f F (x)=%.3f Количество делений n=%d Точное x=%.3f Абсолютная погрешность=%.3f Относительная погрешность=%.3f%% «, x, fm, n, x1, pog1, pog);

system («pause»);

}.

if (t==2){.

printf («Корень не подсчитан! Программа закрывается! «);

system («pause»);

exit (0);

}.

else{.

printf («Неверный ввод! Программа закрывается! «);

system («pause»);

exit (0);

}.

}.

else{.

printf («Приближенное x=%.3f F (x)=%.3f Количество делений n=%d Точное x=%.3f Абсолютная погрешность=%.3f Относительная погрешность=%.3f%% «, x, fm, n, x1, pog1, pog);

system («pause»);

}.

initwindow (800, 600);

Axes ();

Plot ();

getch ();

closegraph ();

}.

graphic.cpp — отображение графиков функций и процесс вычисления корня.

float ScreenX (float x){.

return (x-g)/(s-g)*getmaxx ();

}.

float ScreenY (float y){//перевод y в координаты экрана.

float y_min, y_max;

y_min=-(600-Y0)/k;

y_max=Y0/k;

return getmaxy () — (y-y_min)/(y_max-y_min)*getmaxy ();

}.

void Point (float x, float y, int color){.

float xe, ye;

xe=ScreenX (x);

ye=ScreenY (y);

if (xe>=0&&xe=0&&ye<600).

putpixel (xe, ye, color);

}.

void Plot (){.

float x, h, x_min, x_max;

h=0.0001;//шаг.

for (x=g;x<=s;x+=h).

switch (v).

{.

case 1:

Point (x, F1(x), RED);

break;

case 2:

Point (x, F2(x), RED);

break;

case 3:

Point (x, F3(x), RED);

break;

}.

}.

void Axes ().

{.

setcolor (8);

line (400, 0, 400, 599);

line (0, 300, 799, 300);

}.

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