|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.12.2014, 10:17 | #21 |
Пользователь
Регистрация: 19.11.2014
Сообщений: 13
|
|
07.12.2014, 00:19 | #22 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
а что Вам непонятно - спрашивайте. |
|
08.12.2014, 16:20 | #23 |
Пользователь
Регистрация: 19.11.2014
Сообщений: 13
|
Не понимаю, для чего нужны вот эти переменные
s,s1:string |
08.12.2014, 16:37 | #24 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
для того, чтобы вывести число на экран в графическом режиме.
функция outtextXY может выводить только текст. поэтому, мы число преобразовываем в строку с помощью функции str() и полученную строку выводим в нужное место. например: Цитата:
Цитата:
|
||
08.12.2014, 17:14 | #25 | |
Пользователь
Регистрация: 19.11.2014
Сообщений: 13
|
Цитата:
Ой нет "девушка блин", а как можно сделать график системы уравнения? Последний раз редактировалось Stilet; 09.12.2014 в 19:56. |
|
08.12.2014, 23:22 | #26 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Если не ошибаюсь. то тТочка (или точки) пересечения графиков и будут являтся решением данной системы. |
|
09.12.2014, 19:23 | #27 |
Пользователь
Регистрация: 19.11.2014
Сообщений: 13
|
|
10.12.2014, 11:35 | #28 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
|
|
18.12.2014, 16:41 | #29 | |
Пользователь
Регистрация: 19.11.2014
Сообщений: 13
|
Цитата:
uses graph; function F(x:real):real; function F2(x:real):real; begin F:=2*x*x-5-exp(ln(2)*x); {F(x)- исходная функция} F2:=2*x+5-exp(ln(2)); end; var xn,xk,max,min,mx,my,dx:real; x:real; x0,y0,i,c,n:integer; s,s1:string; a:array[1..20,1..2] of integer; begin x0:=0; initgraph(x0,y0,''); {Графический модуль} xn:=-7;xk:=7;{Интервал по оси Х} x0:=getmaxX div 2; mx:=(x0-30)/xk;{Масштаб по оси Х} y0:=getmaxY div 2; max:=F(xn); min:=F(xn); x:=xn; while x<=xk do begin if F(x)>max then max:=F(x); if F(x)<min then min:=F(x); x:=x+0.05; end; while x<=xk do begin if F2(x)>max then max:=F2(x); if F2(x)<min then min:=F2(x); x:=x+0.05; end; if max>abs(min) then my:=(y0-30)/max else my:=(y0-30)/abs(min); setbkcolor(15); {Цвет фона} setcolor(8); {Цвет линий функции} line(0,y0,getmaxX,y0); {Ось x} line(x0,0,X0,getmaxY); {Ось y} for i:=1 to 10 do {максимальное количество делений в одну сторону} begin line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10)); line(x0-3,y0+round(i*my*10),x0+3,y0+round(i *my*10)); str(i*10,s); {Подпись оси У} outtextXY(x0-25,y0-round(i*my*10),s); outtextXY(x0-30,y0+round(i*my*10),'-'+s); line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3); str(i,s); {Подпись оси Х} outtextXY(x0+round(i*mx),y0+10,s); outtextXY(x0-round(i*mx),y0+10,'-'+s); end; outtextXY(x0+5,y0+10,'0'); {Находим центр графика} outtextXY(getmaxX-10,y0-10,'X'); {Подписи концов оси x} outtextXY(x0+5,10, 'Y'); {Подписи концов оси y} x:=xn; dx:=0.01; n:=0; moveto(x0+round(x*mx),y0-round(F(x)*my)); begin setcolor(12); setlinestyle(0,0,1); lineto(x0+round(x*mx),y0-round(F(x)*my)); if F(x)*F(x+dx)<0 then begin setcolor(9); setlinestyle(0,0,3); circle(x0+round(x*mx),y0-round(F(x)*my),2); n:=n+1; if x<0 then begin a[n,2]:=trunc(x); a[n,1]:=a[n,2]-1; end else begin a[n,1]:=trunc(x); a[n,2]:=a[n,1]+1; end; end; x:=x+dx; end; x:=xn; dx:=0.01; n:=0; moveto(x0+round(x*mx),y0-round(F2(x)*my)); while x<=xk do begin setcolor(12); setlinestyle(0,0,1); lineto(x0+round(x*mx),y0-round(F2(x)*my)); if F(x)*F(x+dx)<0 then begin setcolor(9); setlinestyle(0,0,3); circle(x0+round(x*mx),y0-round(F2(x)*my),2); n:=n+1; if x<0 then begin a[n,2]:=trunc(x); a[n,1]:=a[n,2]-1; end else begin a[n,1]:=trunc(x); a[n,2]:=a[n,1]+1; end; end; x:=x+dx; end; setcolor(12); outtextXY(x0+30,20,'График функции y=2x^2-5-2^x'); outtextXY(x0+50,40,'На интервале [-7;7]'); y0:=getmaxY-200; outtextXY(50,y0,'Интервал корней:'); for i:=1 to n do begin str(a[i,1],s); str(a[i,2],s1); outtextXY(50,y0+20*i,'['+s+';'+s1+']'); end; for i:=1 to n do begin x:=a[i,1]; while (abs(F(x))>0.0001) and (x<a[i,2]) do x:=x+0.00001; str(x:2:6,s); outtextXY(150,y0+20*i,'x = '+s); for i:=1 to n do begin x:=a[i,1]; while (abs(F2(x))>0.0001) and (x<a[i,2]) do x:=x+0.00001; str(x:2:6,s); outtextXY(150,y0+20*i,'x = '+s); end; readln end. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
написать программму, которая будет решать систему уравнений матричным способом | Наталья1991 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 15.05.2012 01:10 |
Можно ли написать программу которая будет работать в Windows и Linux | Arassir | Qt и кроссплатформенное программирование С/С++ | 2 | 27.10.2011 23:35 |
Возможно ли написать такую программу которая будет решать уравнение ? | Anizotrop | Помощь студентам | 3 | 28.09.2011 13:49 |
Написать программу, которая будет использовать ранее созданную библиотеку. | sanya94 | Общие вопросы C/C++ | 3 | 19.02.2011 00:58 |
Delphi: Отделение корней уравнения графическим способом | JustSmile | Помощь студентам | 1 | 29.11.2009 10:33 |