Как войти в графический режим? - C (СИ)
Формулировка задачи:
#include <graphics.h> #include <stdio.h> #include <conio.h> #include <math.h> #define PATHTODRIVER ” d:\\borlandc\\bg.i\" floa t fl ( float x) { int a=5; return(2 * sin(x) * exp(x/a)); } void grafik{) { float xl=0, float ?2 =25; float yl,y2; float ?; float dx= 0.01; int. l=50; int b=4 00; int w=300, n=200; float m?,m?; int ?0,?0; char st[25]; y1 = fl(x1); y2 = fl(xl); x = xl + dx; do { y = fl(x); if (y < yl) yl = y; if (y > y2) y2 = y; x+=dx; } while (x <=x2); mx =h/fabs (y2-yl); my = w/tabs(x2-x1); /* oci */ x0 = 1; y0=b-abs (yl *my) ; line( 1, b, 1, b-h) ; line{x0,y0,x0 + w,y0); outtextxy(1-10, b-h, "?"); outtextxy(l+245,b-i30,"x"); sprintf (st, " % 3 . 2.f" , y2 ) ; outtextxy{l+5,b-h,st); sprintf(st,"% 3.2 f", yl) ; out textxy(1 + 5,b, st); x = xl ; do { y = fl(x) ; putpixel (x0+x*m.x, y0-y*my, 10); x + =dx; } while (x <= x2); } void main (void) int gdriver = DETECT; /* ??????? */ int gmode; /* ????? */ int errorcode; /* ??? ??????? */ initgraph(&gdriver,&gmode,PATHTODRIVER); errorcode=graphresult(); if (errorcode==grOk) { setbkcolor(BROWN) ; grafik () ; qetchar () ; closegraph () ; } else { printf("Error: %d\n",errorcode); puts("Enter key for exit program"); getch(); } }
Решение задачи: «Как войти в графический режим?»
textual
Листинг программы
#include "stdafx.h" //у = 2sin(x)*exp(x/a) #include <graphics.h> #include <cstdio> #include <math.h> float x1 = 0,//нижяя x2 = 25;//верхняя граница аргумента функции float y1, y2;//границы значения функции float x;//аргумент функции float y;//значение функции в точке х float dx = 0.01;//шаг увеличение аргумента int l = 50,//левый нижний угол области графика b = 400; int w = 300,//ширина h = 200;//высота области графика float mx,my;//масштаб по осям Х и У int x0,y0;//точка начало координат char st[25];//изображение числа /* функция, график которой нужно построить */ float fl(float x) { int a = 5; return(2 * sin(x) * exp(x / a)); } void grafik() { y1 = fl(x1);//минимум y2 = fl(x2);//максимум значение функции на отрезку х1 и х2 x = x1 + dx; do { y = fl(x); if (у < y1) y1 = у; if (y > y2) y2 = у; x0 += dx; } while (x <= x2); /* Расчет масштабу по осям */ my = h / fabs(y2 - y1); mx = w/fabs(x2-x1); /* ocи */ float x0 = 1; float y0 = b - abs(y1*my); line(1, b, 1, b - h); line ( x0, y0, x0 + w, y0); /* обозначение осей координат */ outtextxy(1 - 10, b - h, "у"); outtextxy(l + 245, b - 130, "x"); /* максимальное и минимальное значении функции*/ sprintf(st, " % 3 . 2.f", y2); outtextxy{ l + 5, b - h, st); sprintf(st, "% 3.2 f", yl); out textxy(1 + 5, b, st); //Построение графика x = xl; do { у = fl(x); putpixel(x0 + x*m.x, y0 - y*my, 10); x + = dx; } while (x <= x2); } void main(void) { int gdriver = DETECT, gmode; initgraph(&gdriver, &gmode, " ");//точка входа в графический режим int errorcode = graphresult();//код ошибки if (errorcode == grOk) { setbkcolor(BLUE);//цвет фона grafik(); getchar(); closegraph(); } else { printf("Error: %d\n", errorcode); puts("Enter key for exit program"); system("pause"); } }
Объяснение кода листинга программы
- Объединение файлов
stdafx.h
иприводит к ошибке компиляции. Правильно будет включить stdafx.h
в начало кода, а затем включить. - В функции main() переменная gdriver инициализируется значением DETECT. Это означает, что библиотека графики будет автоматически определять, какая библиотека графики доступна на компьютере.
- В функции main() после вызова функции grafik() вызывается функция getchar(). Эта функция ожидает нажатия клавиши для продолжения выполнения программы.
- Функция main() закрывает графический режим с помощью функции closegraph().
- В функции grafik() используется функция sin() и exp() из библиотеки math.h.
- В функции grafik() используется функция putpixel() для отображения точек на графике.
- В функции grafik() используется функция outtextxy() для отображения текста на графике.
- В функции grafik() используется функция line() для рисования линий на графике.
- В функции grafik() используется переменная dx для увеличения аргумента x.
- В функции grafik() используется переменная y0 для установки начальной точки Y.
- В функции grafik() используется переменная mx для масштабирования по оси X.
- В функции grafik() используется переменная my для масштабирования по оси Y.
- В функции grafik() используется переменная x0 для установки начальной точки X.
- В функции grafik() используется переменная y1 для хранения минимального значения функции.
- В функции grafik() используется переменная y2 для хранения максимального значения функции.
- В функции grafik() используется переменная x1 для хранения нижней границы аргумента функции.
- В функции grafik() используется переменная x2 для хранения верхней границы аргумента функции.
- В функции grafik() используется переменная l для установки левого нижнего угла области графика.
- В функции grafik() используется переменная b для установки правого верхнего угла области графика.
- В функции grafik() используется переменная w для хранения ширины области графика.
- В функции grafik() используется переменная h для хранения высоты области графика.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д