Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 24.05.2010, 13:48   #1 (permalink)
anonimka
Новичок
 
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Turbo Pascal.Разработать программу вывода в графическом режиме графиков двух функций

Доброго времени суток!Прошу помочь мне с этой программой:

Разработать программу вывода на экран в графическом режиме графиков двух функций на интервале от xнач до xкон с шагом dx. Первая функция задана с помощью ряда Тейлора, ее вычисление должно выполняться с точностью ε. Значение параметра b для второй функции вводится с клавиатуры.
Найти корень второго уравнения с помощью метода Ньютона.
Вложения
Тип файла: doc Функции.doc (17.5 Кб, 363 просмотров)

Последний раз редактировалось anonimka; 25.05.2010 в 00:50 Причина: не указан язык на каком требуется составить программу
anonimka вне форума   Ответить с цитированием

Старый 24.05.2010, 13:48
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Лучше не спешить, а просмотреть все темы которые были ранее

Разработать алгоритм и составить программу для решения задачи
График функций
Написать программу, которая считывает текст из файла и выводит на экран предложения

Старый 24.05.2010, 14:12   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

(│x│> ∞) - это мне нравится! Впечатляет.
А еще, не сочтите за наглость, но позвольте полюбопытствовать: на каком языке требуется составить программу?
Vladimir_S вне форума   Ответить с цитированием
Старый 24.05.2010, 17:45   #3 (permalink)
anonimka
Новичок
 
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
(│x│> ∞) - это мне нравится! Впечатляет.
А еще, не сочтите за наглость, но позвольте полюбопытствовать: на каком языке требуется составить программу?
Я это условие не сама придумала...Ну что вы,отсутствие языка на котором требуется составить программу-моя ошибка.Turbo Pascal
anonimka вне форума   Ответить с цитированием
Старый 25.05.2010, 11:38   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от anonimka Посмотреть сообщение
Я это условие не сама придумала...
Объясню. Не зависимо от того, кто это придумал, комизм ситуации заключается в том, что знак неравенства перепутан. То, что там написано, читается так: х по абсолютной величине превышает бесконечность. Полная чушь. Ну ладно, на самом деле ясно, что подразумевается просто любое значение х.
Теперь по сути. Это всё обязательно надо впихнуть в одну программу? И вычисление обеих функций, и построение графиков, и решение уравнения методом Ньютона? Или можно разбить на несколько программ? И еще. Чтобы у Вас заработало построение графиков, нужно, чтобы был грамотно (под Ваш компьютер) сконфигурирован графический режим, т.е. правильно заданы параметры функции InitGraph. Вы это умеете?
Vladimir_S вне форума   Ответить с цитированием
Старый 25.05.2010, 12:45   #5 (permalink)
anonimka
Новичок
 
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Теперь по сути. Это всё обязательно надо впихнуть в одну программу? И вычисление обеих функций, и построение графиков, и решение уравнения методом Ньютона? Или можно разбить на несколько программ? И еще. Чтобы у Вас заработало построение графиков, нужно, чтобы был грамотно (под Ваш компьютер) сконфигурирован графический режим, т.е. правильно заданы параметры функции InitGraph. Вы это умеете?
Вообще желательно в одну,где график будет занимать большую часть экрана.
Задать параметры функции InitGraph я смогу.
anonimka вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 25.05.2010, 23:17   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от anonimka Посмотреть сообщение
Вообще желательно в одну,где график будет занимать большую часть экрана.
Задать параметры функции InitGraph я смогу.
Тогда, например, как-то так:
Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.05.2010, 14:31   #7 (permalink)
anonimka
Новичок
 
Регистрация: 24.05.2010
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вы уж не взыщите, но заниматься дальнейшим украшательством типа числовой разметки осей возможности нет.
Несколько пояснений:
Epsilon1 задает точность вычисления ряда Тейлора (кстати, на самом деле это просто разложение функции Exp(x)), Epsilon2 - точность определения корня уравнения методом Ньютона. Значения Xmax (верхний предел) следует брать небольшими, не выше 2 - 3.
Премного благодарна вам за предоставленную программу и пояснения!
А насчет украшательства,нужно ведь и мне какую-то лепту внести.
Еще раз спасибо.
anonimka вне форума   Ответить с цитированием
Старый 26.05.2010, 17:40   #8 (permalink)
Gektor
Новичок
 
Регистрация: 26.05.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а если точно такое же задание но только вот с этими функциями то много нужно в программе изменить?
Вложения
Тип файла: doc Документ Microsoft Word (3).doc (17.0 Кб, 398 просмотров)
Gektor вне форума   Ответить с цитированием
Старый 26.05.2010, 20:33   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Gektor Посмотреть сообщение
а если точно такое же задание но только вот с этими функциями то много нужно в программе изменить?
Да нет, не так чтобы много. А уж если разобраться в программе, так и вовсе пустяки. Успехов!
Vladimir_S вне форума   Ответить с цитированием
Старый 26.05.2010, 23:16   #10 (permalink)
Gektor
Новичок
 
Регистрация: 26.05.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Да нет, не так чтобы много. А уж если разобраться в программе, так и вовсе пустяки. Успехов!
спасибо
Gektor вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:45.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.