|
|
Опции темы | Опции просмотра |
24.05.2010, 13:48 | #1 (permalink) |
Новичок
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Turbo Pascal.Разработать программу вывода в графическом режиме графиков двух функций
Разработать программу вывода на экран в графическом режиме графиков двух функций на интервале от xнач до xкон с шагом dx. Первая функция задана с помощью ряда Тейлора, ее вычисление должно выполняться с точностью ε. Значение параметра b для второй функции вводится с клавиатуры. Найти корень второго уравнения с помощью метода Ньютона. Последний раз редактировалось anonimka; 25.05.2010 в 00:50 Причина: не указан язык на каком требуется составить программу |
24.05.2010, 13:48 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Лучше не спешить, а просмотреть все темы которые были ранее Разработать алгоритм и составить программу для решения задачи График функций Написать программу, которая считывает текст из файла и выводит на экран предложения |
24.05.2010, 14:12 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
(│x│> ∞) - это мне нравится! Впечатляет.
А еще, не сочтите за наглость, но позвольте полюбопытствовать: на каком языке требуется составить программу? |
25.05.2010, 11:38 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Объясню. Не зависимо от того, кто это придумал, комизм ситуации заключается в том, что знак неравенства перепутан. То, что там написано, читается так: х по абсолютной величине превышает бесконечность. Полная чушь. Ну ладно, на самом деле ясно, что подразумевается просто любое значение х.
Теперь по сути. Это всё обязательно надо впихнуть в одну программу? И вычисление обеих функций, и построение графиков, и решение уравнения методом Ньютона? Или можно разбить на несколько программ? И еще. Чтобы у Вас заработало построение графиков, нужно, чтобы был грамотно (под Ваш компьютер) сконфигурирован графический режим, т.е. правильно заданы параметры функции InitGraph. Вы это умеете? |
25.05.2010, 12:45 | #5 (permalink) | |
Новичок
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
Задать параметры функции InitGraph я смогу. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
25.05.2010, 23:17 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
USES Graph,CRT; VAR Xmin,Xmax,X,dX,Epsilon1,Epsilon2,b,Xbef,Xaft,AV:REAL; XgrMin,XgrMax,YgrMin,YgrMax,StepGridX,StepGridY:WORD; ScaleX,ScaleY:REAL; Function f1(xf:Real):Real; VAR S,a:Real; k:Word; begin S:=0; a:=1; k:=1; Repeat S:=S+a; a:=a*xf/k; Inc(k); Until Abs(a)<Epsilon1; f1:=S; end; Function f2(xf:Real):Real; begin f2:=Exp(xf)+b; end; BEGIN Write('Xmin= '); ReadLn(Xmin); Write('Xmax= '); ReadLn(Xmax); Write('dX= '); ReadLn(dX); Write('Epsilon1= '); ReadLn(Epsilon1); Write('Epsilon2= '); ReadLn(Epsilon2); Repeat Write('b= '); ReadLn(b); If b>=0 then WriteLn('Incorrect value of b!!! It must be <0'); Until b<0; { Newton calculation } Xaft:=0; Repeat Xbef:=Xaft; Xaft:=Xbef-f2(Xbef)/Exp(Xbef); Until ABS(Xbef-Xaft)<Epsilon2; WriteLn('The result of Newton calculation is ',Xaft); AV:=Ln(-b); WriteLn('The accurate value is ',AV); WriteLn; WriteLn('Press "Enter" to continue...'); ReadLn; {Здесь нужно инициализировать графический режим} ClearDevice; ScaleX:=600/(Xmax-Xmin); ScaleY:=400/(f1(Xmax)-f2(Xmin)); Line(40,ROUND(f1(Xmax)*ScaleY),640,ROUND(f1(Xmax)*ScaleY)); If Xmin>0 then Line(40,0,40,440) else Line(40-Round(Xmin*ScaleX),0,40-Round(Xmin*ScaleX),440); SetLineStyle(SolidLn,0,ThickWidth); SetColor(11); MoveTo(40,ROUND((f1(Xmax)-f1(Xmin))*ScaleY)); X:=Xmin; Repeat X:=X+dX; LineTo(40+Round((X-Xmin)*ScaleX),ROUND((f1(Xmax)-f1(X))*ScaleY)); Until ROUND(X*10000)=ROUND(Xmax*10000); SetColor(14); MoveTo(40,ROUND((f1(Xmax)-f2(Xmin))*ScaleY)); X:=Xmin; Repeat X:=X+dX; LineTo(40+Round((X-Xmin)*ScaleX),ROUND((f1(Xmax)-f2(X))*ScaleY)); Until ROUND(X*10000)=ROUND(Xmax*10000); ReadKey; CloseGraph; END. Несколько пояснений: Epsilon1 задает точность вычисления ряда Тейлора (кстати, на самом деле это просто разложение функции Exp(x)), Epsilon2 - точность определения корня уравнения методом Ньютона. Значения Xmax (верхний предел) следует брать небольшими, не выше 2 - 3. |
|
26.05.2010, 14:31 | #7 (permalink) | |
Новичок
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
А насчет украшательства,нужно ведь и мне какую-то лепту внести. Еще раз спасибо. |
|
26.05.2010, 23:16 | #10 (permalink) |
Новичок
Регистрация: 26.05.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|