Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2014, 22:47   #1
rik1
 
Регистрация: 19.05.2014
Сообщений: 6
По умолчанию Построить график

F(x)=x*tgx-1/3ю на интревале [0;2.1]
Ответ должен выйти x=0.5472
Помогите пожалуйста,очень нужно..
rik1 вне форума Ответить с цитированием
Старый 19.05.2014, 22:58   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Так график построить, или решить уравнение F(x) = 0 ?
И на каком языке?
Изображения
Тип файла: jpg graf.jpg (10.2 Кб, 48 просмотров)
type_Oleg вне форума Ответить с цитированием
Старый 19.05.2014, 23:13   #3
rik1
 
Регистрация: 19.05.2014
Сообщений: 6
По умолчанию

Задав конкретную функцию F(X),построить на символьном экране дисплея ее график и графически найти все возможные решения, не применяя никаких численых методов.При реализации учесть,что вид функции и интервал могут быть любыми. В паскале

Последний раз редактировалось rik1; 19.05.2014 в 23:16.
rik1 вне форума Ответить с цитированием
Старый 19.05.2014, 23:38   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

x=0.5472
Цитата:
Сообщение от rik1 Посмотреть сообщение
... на символьном экране дисплея ее график и графически найти все возможные решения, не применяя никаких численых методов...В паскале
.. с точностью до 4-го знака ?
type_Oleg вне форума Ответить с цитированием
Старый 19.05.2014, 23:44   #5
rik1
 
Регистрация: 19.05.2014
Сообщений: 6
По умолчанию

да все верно
rik1 вне форума Ответить с цитированием
Старый 19.05.2014, 23:52   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Если на экране нормального размера изображен график при x = 0...2,1 , то разница между x=0.5472 и x=0.5473 будет примерно 0,02 мм.
Это не смущает ?
type_Oleg вне форума Ответить с цитированием
Старый 20.05.2014, 00:03   #7
rik1
 
Регистрация: 19.05.2014
Сообщений: 6
По умолчанию

та вовсе нет
rik1 вне форума Ответить с цитированием
Старый 20.05.2014, 06:28   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну задавайте цикл с шагом 0,0001 и понеслась.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.05.2014, 18:51   #9
rik1
 
Регистрация: 19.05.2014
Сообщений: 6
По умолчанию

Цитата:
uses graphABC;
function F(x:real):real;
begin
F:=x*sin(x)/cos(x)-1/3;
end;
var xn,xk,x,mx,my,dx,x1:real;
x0,y0,n,i:integer;
s,s1,s2:string;
begin
xn:=0;//интервал по Х
xk:=2.1;
x0:=50;//начало координат
y0:=windowheight div 2;
mx:=(windowwidth-2*x0)/xk;//масштаб по Х
my:=(y0-40)/10;//масштаб по Y
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to 21 do//разбивка осей координат
begin
line(x0+round(i*mx/10),y0-3,x0+round(i*mx/10),y0+3); //засечки на оси Х
line(x0-3,y0+round(i*my),x0+3,y0+round(i*my )); //засечки на оси Y
line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));
//подпись оси Х
str(i/10:0:1,s);
textout(x0+round(i*mx/10),y0+10,s);
//подпись оси Y
str(i,s);
textout(x0-25,y0-round(i*my),s);
textout(x0-20,y0+round(i*my),'-'+s);
end;
//центр
textout(x0+5,y0+10,'0');
//подписи концов осей
textout(windowwidth-15,y0-20,'X');
textout(x0+5,10, 'Y');
//график
{setfontcolor(clRed);
setfontsize(11);
textout(100,60,'Точки пересечения');}
x:=xn;
dx:=0.00001;
n:=0;
while x<=xk do
begin
setpixel(x0+round(x*mx),y0-round(F(x)*my),clRed);
if abs(F(x))<0.0001 then x1:=x;
x:=x+dx;
end;
setbrushcolor(clBlue);
circle(x0+round(x1*mx),y0-round(F(x1)*my),3);
str(x1:6:4,s);
setbrushstyle(bsClear);
setfontsize(12);
setfontcolor(clBlue);
textout(100,60,' x= '+s);
setfontcolor(clRed);
textout(100,20,'y=x*tgx-1/3');
end.

не понимаю в чем ошибка,и как её исправить.
rik1 вне форума Ответить с цитированием
Старый 20.05.2014, 19:51   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ха! АБЦ что ограничивает setpixel() генерируя исключение если он пытается отрисовать вне поля вывода?? Убожество...
Ну поставь тогда проверку на выход за диапазон:
Код:
var ax,ay:double;
...
while твой
 ax:=x0+round(x*mx); ay:=y0-round(F(x)*my;
 if (ax>0) and (ax<windowwidth) and  (ay>0) and (ay<windowheight) then
   setpixel(ax,ay),clRed);
...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить график в С++ AbsenTt Помощь студентам 4 06.09.2013 20:42
Построить График МакаРомка! Паскаль, Turbo Pascal, PascalABC.NET 0 02.06.2013 11:17
Построить график ф-и. bhopperz Паскаль, Turbo Pascal, PascalABC.NET 6 11.12.2012 14:31
Построить график qwerty26 Мультимедиа в Delphi 2 26.10.2012 21:32
Построить график!! Inferno777 Помощь студентам 10 30.06.2009 17:46