Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 2

Не выводится график функции

07.04.2014, 22:28. Показов 1461. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! приключилось беда, написал программу, а она не работает должным образом! график не выводится ! изначально вывести график фу-и , методом золотого сечения найти оптимум(max) на промежутке (1,10).
помогите знающие люди..)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Program test;
uses crt, graphABC;
const
maxx=500;
maxy=350;
eps=0.001;
step=0.01;
var
dr,md,ercode,xb,yb:integer;
h,l,f1,f2,x,y,xmax,ymax,x3:real;
x1,x2,a,b,e,k,c,d:integer;
s:string;
function f(x:real):real;
begin
f:=power(2.1*x,5.17)*exp((-1.3)*x);
end;
begin
clrscr;
a:=1;
b:=10;
repeat
l:=b-a;
x1:=round(a+0.618*l);
x2:=round(a+0.382*l);
f1:=f(x1);
f2:=f(x2);
if f(x1)<f(x2) then
b:=x1
else if f(x1)>f(x2) then
a:=x2
else
begin
a:=x1;
b:=x2;
end;
xmax:=a;
ymax:=f(xmax);
until abs(l)<=eps;
writeln('xmax=',xmax:3:3);
writeln('ymax=',ymax:3:3);
readln;
a:=-1;
b:=10;
 
moveto(20,460);
lineto(620,460);
lineto(615,465);
line(620,460,615,455);
moveto(250,460);
lineto(255,20);
lineto(315,25);
line(250,20,245,25);
textout(625,460,'X');
textout(255,15,'Y');
e:=60;
k:=200;
c:=-22;
d:=460;
h:=10/100;
x3:=1;
textout(100,460,'1');
textout(610,460,'10');
repeat
y:=power(2.1*x,5.17)*exp((-1.3)*x);
xb:=round(e*x3+k);
yb:=round(c*y+d);
moveto(xb,yb);
lineto(xb,yb);
x3:=x3+h;
until  x3>10;
textout(250,30,'f(x)=power(2.1*x,5.17)*exp((-1.3)*x)');
str(xmax:1:1,s);
textout(250,465,'xmax='+s);
str(ymax:1:1,s);
textout(350, 465,'ymax='+s);
readln;
End.
Добавлено через 5 часов 6 минут
вот более правильная версия , но все равно не работает((

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Program test;
uses  graph;
const
maxx=500;
maxy=350;
a=1;b=10;
step=0.01;
 
 
var
dr,md,ercode:integer;
i,j:integer;
kx,x1,f1,f2,x2,l,ky:real;
x,y:real;ymax,xm:real;
s:string;
 
function f(x:real):real;
begin
f:=power(2.1*x,5.17)*exp((-1.3)*x);
end;
begin
x:=a;ymax:=f(x);xm:=x;
repeat
l:=b-a;
x1:=round(a+0.618*l);
x2:=round(a+0.382*l);
f1:=f(x1);
f2:=f(x2);
if f(x1)>f(x2) then
xm:=x1
else if f(x1)<f(x2) then
ymax:=x2
else
begin
ymax:=x1;
xm:=x2;
end;
xm:=xm;
ymax:=f(xm);
until abs(l)<=step;
writeln('xmax=',xm:3:3);
writeln('ymax=',ymax:3:3);
readln;
 {setviewport(50,400,50,400,clipoff);
setbkcolor(white);}
kx:=maxx/(b-a);
ky:=maxy/ymax;
{
SetLineStyle(0,0,3);
setcolor(blue);}
line(0,-maxy-30,0,0);
line(0,0,maxx+30,0);
line(540,-8,530,0);line(520,8,530,0);
line(-8,-370,0,-380);line(8,-370,0,-380);
{setlinestyle(1,0,1);}
for i:=1 to b do begin
line(round(i*kx),-maxy,round(i*kx),0);
str(i,s);
textout(round(i*kx),20,s);
end;
for j:=1 to round(ymax) do begin
if j mod 10=0 then begin
line(0,-round(j*ky),maxx,-round(j*ky));
str(j,s);
textout(-30,-round(j*ky),s);
end;
end;
x:=a; repeat
y:=f(x);
x:=x+step;
until(x>b);
{settextstyle(4,0,5);}
textout((maxx div 2),-360,'y=50-10x*x+100x');
{settextstyle(1,0,2);}
str(xm:1:1,s);
textout(50,30,'xmax='+s);
str(ymax:1:1,s);
textout(250,30,'ymax='+s);
readln;
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2014, 22:28
Ответы с готовыми решениями:

Выводится неправильный график
почему неправильный график выходит, надо y=2x^2-1 uses crt,graphABC; var v,x1,x2,y1,y2:integer; x,dx,y,mx,my,a,b:real; ...

График функции не выводится
restart; p := proc (n) local k, r; r := 0; for k from 1 to n do r := r+k end do; return r end proc; p(1); p(3);...

Составьте программу, в результате которой на экране выводится график интерполяционной функции
Пользователь вводит с клавиатуры координаты пяти опытных точек. Со-ставьте программу, в результате которой на экране выводится график...

3
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.04.2014, 06:59
Цитата Сообщение от Феншуй Посмотреть сообщение
вот более правильная версия , но все равно не работает((
Это вообще суррогат из Турбо Паскаль и Паскаль АВС.
Напишите точное задание и в чем нужна программа в Турбо или в АВС
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 2
12.04.2014, 23:23  [ТС]
вывести график фу-и , методом золотого сечения найти оптимум(max) на промежутке (1,10)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.04.2014, 10:02
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну примерно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
uses graphABC;
const
x1=1;//начало и конец графика в реальных значениях
x2=10;
eps=0.0001;//точность
function f(x:real):real;//функция
begin
f:=power(2.1*x,5.17)*exp((-1.3)*x);
end;
var a,b,r,d,z,mx,my,x,max,min,dx:real;
    x0,y0,i:integer;
    s:string;
begin
//поиск точки максимума методом золотого сечения
a:=x1;
b:=x2;
r:=(sqrt(5)-1)/2;
d:=eps/2;
max:=a+(b-a)*r;
min:=b-(b-a)*r;
if f(a)>(f(a+d)) then z:=1 else z:=-1;
while abs(b-a)>eps do
 begin
  max:=a+(b-a)*r;
  min:=b-(b-a)*r;
  if (z*f(min))<(z*f(max)) then b:=max else a:=min;
 end;
x0:=50;//начало координат по оси Х
y0:=windowheight-50;
mx:=(windowwidth-x0-40)/x2;//масштаб по Х
my:=(y0-40)/f(max);//масштаб по Y
line(20,y0,windowwidth-20,y0); //ось Х
line(x0,20,x0,windowheight-20); //ось У
for i:=1 to x2+1 do
 begin
  line(x0-3,y0-round(i*my*50),x0+3,y0-round(i*my*50));//засечки на оси У
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3); //засечки на оси Х
 //подпись оси У
  str(i*50,s);
  textout(x0-20,y0-round(i*my*50),s);{соответственно засечкам}
  //подпись оси Х
  str(i,s);
  textout(x0+round(i*mx),y0+10,s);
  textout(x0-round(i*mx),y0+10,'-'+s);
  end;
//центр
textout(x0+5,y0+10,'0');
//подписи концов осей
textout(windowwidth-30,y0-20,'X');
textout(x0+10,10, 'Y');
//график
x:=x1;
dx:=0.001;
while x<=x2 do
 begin
  setpixel(x0+round(x*mx),y0-round(f(x)*my),clRed);
  x:=x+dx; //наращиваем х
 end;
setbrushcolor(clBlue);
circle(x0+round(max*mx),y0-round(f(max)*my),3);
setbrushstyle(bsClear);
setfontcolor(clRed);
textout(100,20,'График функции');
textout(100,40,'Y=(2.1x)^5.17*x^-1.3');
textout(100,60,'на инт.[1;10]');
setfontcolor(clBlue);
str(max:0:4,s);
textout(x0+round(max*mx)+10,y0-round(f(max)*my)-15,'xmax='+s);
str(f(max):0:4,s);
textout(x0+round(max*mx)+100,y0-round(f(max)*my)-15,'fmax='+s);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2014, 10:02
Помогаю со студенческими работами здесь

Двумерный график - ошибок нет, но график не выводится
Не получается вывести графики,но I(u) должен идти через 0 и постепенно по экспоненте расти до 1. Формулы все выведены,но сам график не...

Найти производные функции и на одном графике построить график данной функции, график первой и второй производной.
найти производные первого и второго порядка функции и на одном графике построить график данной функции , график первой и второй...

Не выводится график
Добрый вечер, подскажите в чем проблема. Две функции в коде идут подряд, однако ни одна из них не срабатывает в плане вывода графиков на...

Не выводится график
hold on grid on for x=-5:0.01:-3 y=sin(3.*x)-tan(x); plot(x,y); end for x=-1:0.01:-3 y=((1+x)./(7+x.^3)).^(1/3); plot...

Не выводится график
не выводит график не пойму в чем проблема


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru