
Опытный
 
Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург
Репутация: 3 Всего: 7
|
вот написана на борланде 3 но функцию сам подставь свою....ибо мне влом! Код | #include <graphics.h> #include <stdio.h> #include <conio.h> #include <math.h>
#define PATHTODRIVER "D:\\BORLAND\\BGI\\"
void grafik() { float x,dx; // аргумент и его приращение float x1,x2; // диапозон изменения аргумента float y; // значение функции int mx, my; // масштаб по X и Y - колличество точек экрана, соответствующее единице по осям координат int x0,y0; // начало осей координат int px,py; // координаты точки графика на экране x0=320; y0=240; // расположение координатных осей по центру экрана mx=20; my=20; // выбираем подходящий масштаб bar(0,0,640,480); setfillstyle(SOLID_FILL,WHITE); /************************************************************************/ /* Накладываем сетку по вертикали вдоль оси Y */ /************************************************************************/
int count_x = 0; // счетчик начала наложения сетки do { setlinestyle(DOTTED_LINE,0,0.0000001); setcolor(GREEN); line (count_x,0,count_x,480); count_x +=20; // шаг сетки (в пикселях) } while (count_x < 640); /************************************************************************/ /* Накладываем сетку по горизонтали вдоль оси X */ /************************************************************************/ int count_y = 0; // счетчик начала наложения сетки do { setlinestyle(DOTTED_LINE,0,0.005); setcolor(GREEN); line (0,count_y,640,count_y); count_y +=20; // шаг сетки (в пикселях) } while (count_y < 480);
/************************************************************************/ /* Вычерчиваем главные оси: ординат и абсиц вдоль */ /************************************************************************/ setlinestyle(SOLID_LINE,0,0.0000001); setcolor(BLACK); line (0,y0,640,y0); line (x0,0,x0,480);
/************************************************************************/ /* Накладываем сетку по горизонтали вдоль оси X */ /************************************************************************/ line (320,16,309,27); // вычерчиваем стрелочки над осями координат по X line (316,12,331,27); // вычерчиваем стрелочки над осями координат по X line (640,240,630,230); // вычерчиваем стрелочки над осями координат по Y line (640,240,630,250); // вычерчиваем стрелочки над осями координат по Y gotoxy(38,2); // делаем подпись оси Y printf("Y");; gotoxy(79,17);// делаем подпись оси X printf("X"); /************************************************************************/ /*отмечаем единичный отрезок*/ /************************************************************************/ line (340,236,340,245); line (315,220,325,220); gotoxy(43,17); printf("1"); gotoxy(39,14); printf("1");
/************************************************************************/ /* Задаем начальные условия для искомой функции */ /************************************************************************/ x1=-30; x2=30; //int x3=-1; // "нижний" предел //int x4=0+dx; // "верхний" предел dx=0.0001; // приращение функции float x3=0-dx; // "нижний" предел float x4=0+dx; // "верхний" предел x=x1;
/************************************************************************/ /* Вызываем цикл для решения/нахождения искомой функции */ /************************************************************************/ while (x<x3) { y=(log(fabs(cos(x))))/(log(1+pow(x,2))); // запись искомой функции px=x0+x*mx; // находим координаты точки по оси X py=y0-y*my; // находим координаты точки по оси Y putpixel(px,py,RED); // на месте решения ставим "точку" x+=dx; // продолжаем выполнение цикла с приращением } /*if (x==0) { x=x4; }*/ x=x4; px=x0+x*mx; y=(log(fabs(cos(x))))/(log(1+pow(x,2))); py=y0-y*my; moveto(px,py); while (x<x2) { y=(log(fabs(cos(x))))/(log(1+pow(x,2))); ; // запись искомой функции px=x0+x*mx; // находим координаты точки по оси X py=y0-y*my; // находим координаты точки по оси Y putpixel(px,py,RED); // на месте решения ставим "точку" x+=dx; // продолжаем выполнение цикла с приращением } }
/************************************************************************/ /* Вызываем главную функцию MAIN для обработки функции GRAFIK */ /************************************************************************/
void main(void) { int gdriver=DETECT; int gmode; int errorcode; initgraph(&gdriver,&gmode,PATHTODRIVER); errorcode=graphresult(); if (errorcode!=grOk) { printf("Ошибка: %d\n", errorcode); puts("Для завершения программы нажмите <ENTER>"); getch(); return; } grafik(); // вызываем функцию построения графика getch(); closegraph(); }
|
|