Построение любого графика, может это кому надо ... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Построение любого графика, может это кому надо ... |
Altair |
8.10.2004 20:22
Сообщение
#1
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Мне нужно было иногда рисовать графики (для матана). Я довольно ленивый, а потому написал прогу для их постоения. Онадалекаот совершенства, но может кому надо...
изменяя выражение {***} и опции можно строить любые графики. Код {$N+} {$E+} Uses Graph,crt; const { OPTIONS } shag=0.0001; lgr = -50; pgr = 50; zcrtX=320; zcrty=240; mtrX=10; mtrY=10; colorG=15; colorOXY=4; OXYminX=-200; OXYmaxX=200; OXYminY=-200; oxymaxY=200; Var grDriver : Integer; grMode : Integer; x,y:real;{extended;} i:integer; Begin grDriver:=Detect; InitGraph(grDriver, grMode, ''); for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY); for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY); x:=lgr; while x<=pgr do begin { readln(x);} {***} if x<>2 then begin y:=abs(x/(x-2))-1; {***} { writeln(y:1:8);} putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end; x:=x+shag; end; readkey; closegraph; end. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Таги |
29.12.2005 20:21
Сообщение
#2
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Таги Репутация: 0 |
Здорова...куда тут нужно свою функцию ставить скажи плиз...
|
GoodWind |
29.12.2005 20:30
Сообщение
#3
|
Автооответчик Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
место, куда подставляется фунция выделено так:
Код {****}замени эту функцию на свою{****} -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Таги |
29.12.2005 20:42
Сообщение
#4
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Таги Репутация: 0 |
Почему када компилируешь ничего не происходит...тока экран моргает...и все...
|
GoodWind |
29.12.2005 20:57
Сообщение
#5
|
Автооответчик Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
код покажи..
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Таги |
29.12.2005 21:08
Сообщение
#6
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Таги Репутация: 0 |
Код {$N+} {$E+} Uses Graph,crt; const { OPTIONS } shag=0.0001; lgr = -50; pgr = 50; zcrtX=320; zcrty=240; mtrX=10; mtrY=10; colorG=15; colorOXY=4; OXYminX=-200; OXYmaxX=200; OXYminY=-200; oxymaxY=200; Var grDriver : Integer; grMode : Integer; x,y:real;{extended;} i:integer; Begin grDriver:=Detect; InitGraph(grDriver, grMode, ''); for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY); for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY); x:=lgr; while x<=pgr do begin { readln(x);} {***} if x<>2 then begin y:=3/x; {***} { writeln(y:1:8);} putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end; x:=x+shag; end; readkey; closegraph; end. Сообщение отредактировано: GoodWind - 29.12.2005 21:16 |
volvo |
29.12.2005 21:23
Сообщение
#7
|
Гость |
Таги, у тебя при X = 0 происходит Division By Zero... Неужели это не видно по функции? Надо было делать так:
{***} if x<>0 then begin y:=3/x; {***} |
Таги |
29.12.2005 21:26
Сообщение
#8
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Таги Репутация: 0 |
ok...спасибо..работает...
|
madpanda |
14.04.2006 1:54
Сообщение
#9
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Карен Репутация: 0 |
Вот воспользовался этой программой для построения графика функции.
Uses Graph,crt; Выдает ошибку "207 - Invalid Floating poin operation " При простмотре сначала рисуется график, а потом он резко уходит вверх и появляется линия после нее рисуется какие-то точки... Помогите разобраться!!! |
klem4 |
14.04.2006 6:52
Сообщение
#10
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Ументш диапазон например
-10 ... 10 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Altair |
14.04.2006 7:46
Сообщение
#11
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Гость |
11.10.2006 14:14
Сообщение
#12
|
Гость |
было бы здорово, если бы автор добавил описания к константам :-)
з.ы. Altair, Спасибо :-) |
volvo |
11.10.2006 14:27
Сообщение
#13
|
Гость |
const Все вроде прозрачно... |
NadBlack |
14.10.2006 22:02
Сообщение
#14
|
Гость |
У меня почему то не получилось построить график
запускаю всё это дло а оно выдаёт мне с верху вниз пол экрана серым,вторая половина чёрным и красненькая полоска посередине всё... Код Uses Graph,crt; const { OPTIONS } shag=0.0001; lgr = -50; pgr = 50; zcrtX=320; zcrty=240; mtrX=10; mtrY=10; colorG=15; colorOXY=4; OXYminX=-200; OXYmaxX=200; OXYminY=-200; oxymaxY=200; Var grDriver : Integer; grMode : Integer; x,y:real;{extended;} i:integer; Begin grDriver:=Detect; InitGraph(grDriver, grMode, ''); for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY); for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY); x:=lgr; while x<=pgr do begin { readln(x);} {***} if x<>1 then begin y:=abs(x-1); {***} { writeln(y:1:8);} putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end; x:=x+shag; end; readkey; closegraph; end. Сообщение отредактировано: volvo - 14.10.2006 22:46 |
Bokul |
14.10.2006 22:38
Сообщение
#15
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Странно, у меня все хорошо отрисовало в FreePascal:
Эскизы прикрепленных изображений -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
14.10.2006 22:45
Сообщение
#16
|
Гость |
NadBlack, в Турбо Паскале тоже прекрасно отрисовывается...
|
Гость |
14.10.2006 23:27
Сообщение
#17
|
Гость |
Хм,у меня возможно из-за неполной версии паскаля такой глюк
А как мне нужно изменить эту строчку {***} if x<>1 then begin y:=abs(x-1); {***} если у меня формула y:=abs(x)-1 |
Bokul |
15.10.2006 1:10
Сообщение
#18
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата А как мне нужно изменить эту строчку {***} if x<>1 then begin y:=abs(x-1); {***} если у меня формула y:=abs(x)-1 Гость, ты что смеешься? Вот так: if true then begin y:=abs(x)-1;. Сообщение отредактировано: volvo - 2.11.2006 15:05 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Reflex |
15.10.2006 21:05
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
как построить график функции X^X
-------------------- Нам не дано предугадать как наше слово отзовется...
|
Atos |
16.10.2006 13:16
Сообщение
#20
|
Прогрессор Группа: Модераторы Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
http://forum.pascalnet.ru/index.php?showt...&st=0&p=38226 возведение в степень
|
Текстовая версия | 23.09.2024 18:39 |