Как нарисовать график на паскале - Pascal
Формулировка задачи:
Решение задачи: «Как нарисовать график на паскале»
uses crt,graph; const t=0.0001;{точность определения ноля} type Point=record{тип запись - точка} x,y:real;{с координатами} end; {логическая функция, описывает заштрихованную область} function F(x,y:real):boolean; begin F:=((x>=-3)and(x<=-1.5)and(y<=t)and(y>=x)and(y>=-sqrt(9-x*x))) or( (x>=-1.5) and (x<=t) and (y>=-x-3) and(y<=t) ) or((x>=0) and (x<=3/sqrt(2)) and (((y>=-sqrt(9-x*x)) and(y<=t)) or((y>=-x+3)and(y<=sqrt(9-x*x))))) or((x>=3/sqrt(2))and(x<=3)and(((y>=-sqrt(9-x*x))and(y<=t)) or((y>=-x+3)and(y<=x)))) or((x>=3)and(x<=4)and(y<=x)and(y>=0)) end; var x,y:real; a:array[1..41,1..20] of Point;{массив точек} k,i,j:integer; x0,y0,m:integer; s:string; begin clrscr; writeln('KOORDINATY TOCHEK V OBLASTI:');{процесс табуляции функции от 2х переменныз} x:=-3.5; k:=0;i:=1; while x<=4.5+t do{по Х} begin j:=1; y:=-3.2; while y<=4.0+t do{по У} begin a[i,j].x:=x;{записываем координаты в масив} a[i,j].y:=y; if F(x,y) then{если точка в области} begin k:=k+1;{считаем} writeln('x=',x:4:1,' y=',y:4:1);{выводим на экран координаты} if k mod 22=0 then{чер 22 строки задержка, точек очень много} begin write('Press Enter...'); readln end; end; y:=y+0.4; j:=j+1;{считаем столбцы в матрице} if j mod 20=0 then{если кратно 20} begin j:=1;{снова=1} i:=i+1;{новая строка} end; end; x:=x+0.2; end; writeln; write('Press Enter...'); readln; m:=0;{переходим в графический режим} initgraph(m,x0,''); {центр экрана-начало координат} x0:=getmaxX div 2; y0:=getmaxY div 2; setbkcolor(15);{фон белый} setcolor(8);{линии темно серые} line(0,y0,getmaxX,y0);{оси координат} line(x0,0,x0,getmaxY); m:=round(getmaxY/9);{масштаб по осям} for i:=1 to 5 do{количество засечек в одну сторону} begin line(x0-3,y0-round(i*m),x0+3,y0-round(i*m));{засечки на оси Х} line(x0-3,y0+round(i*m),x0+3,y0+round(i*m)); line(x0+round(i*m),y0-3,x0+round(i*m),Y0+3); {то же на У} line(x0-round(i*m),y0-3,x0-round(i*m),Y0+3); str(i,s); {подписи засечек по Х} outtextXY(x0-30,y0-round(i*m),s); outtextXY(x0-35,y0+round(i*m),'-'+s); {то же по У} str(i,s); outtextXY(x0+round(i*m),y0+10,s); outtextXY(x0-round(i*m),y0+10,'-'+s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0+10,10, 'Y'); {рисуем картинку} setcolor(8); circle(x0,y0,3*m); line(x0-3*m,y0+3*m,x0+5*m,y0-5*m); line(x0-5*m,y0-2*m,x0+m,y0+4*m); line(x0-m,y0-4*m,x0+5*m,y0+2*m); line(x0+4*m,y0-4*m,x0+4*m,y0+m); setfillstyle(3,8);{устанавливаем стиль заливки, штрихуем область} floodfill(x0-2*m,y0+2*m-20,8); floodfill(x0-20,y0+10,8); floodfill(x0-10,y0+20,8); floodfill(x0+20,y0+20,8); floodfill(x0+m,y0-2*m-20,8); floodfill(x0+2*m,y0-m-20,8); floodfill(x0+3*m,y0-2*m,8); {выводим точки в виде кружочков, а то плохо видно} setlinestyle(1,0,3); for i:=1 to 41 do for j:=1 to 20 do begin if F(a[i,j].x,a[i,j].y) then setcolor(4){если в области - красные} else setcolor(3);{нет - зеленые} Circle(x0+round(a[i,j].x*m),y0-round(a[i,j].y*m),1); end; readln end.
Объяснение кода листинга программы
Этот код написан на языке Pascal и использует библиотеку graph для создания графика. Он рисует график функции F(x,y), где x и y - это координаты точек. Функция F принимает два аргумента и возвращает true, если точка находится в заданной области, и false в противном случае. В коде используется логическая функция, которая определяет, находится ли точка в заданной области. Эта область определяется несколькими условиями, которые проверяют, находится ли точка в определенном диапазоне по каждой оси. Для рисования графика используются функции из библиотеки graph. В частности, функция line используется для рисования линий, а функция circle - для рисования кругов. Также используется функция outtextXY для вывода текста на график. Код также содержит массив точек a, который содержит 41 строку и 20 столбцов. Каждая строка и каждый столбец содержат координаты точек. В конце кода происходит вывод точек в виде кружочков. Для этого используется цикл, который проходит по всем точкам и проверяет, находится ли точка в заданной области. Если да, то устанавливается цвет точки на красный, иначе - на зеленый. Затем для каждой точки рисуется круг.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д