![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Jocker |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
написал прожку которая строит графики, но только чтоб ввести функцию графика нужно открывать програмный код, и в нём изменять. можно как-то обойтись без этого (не открывая код)
program graphiki; uses crt,graph; var gd,gm,xx,yy:integer; fun:string; procedure osicoordinat; const step=25; var x1,y1,r:integer; s:string; begin line(0,240,640,240); line(320,0,320,480); line(630,235,640,240); line(630,245,640,240); line(315,10,320,0); line(325,10,320,0); outtextxy(330,5,'Y'); outtextxy(630,220,'X'); y1:=240; x1:=320; r:=0; while x1+r<640 do begin line(x1+r,y1-2,x1+r,y1+2); line(x1-r,y1-2,x1-r,y1+2); r:=r+step; str(r div step, S); settextjustify (1,1); outtextxy(x1+r,y1+10,S); s:='-'+S; outtextxy(x1-r,y1+10,S); end; r:=0; while y1+r<480 do begin line(x1+4,y1+r,x1-4,y1+r); line(x1+4,y1-r,x1-4,y1-r); r:=r+step; str(r div step, S); settextjustify (1,1); outtextxy(x1-10,y1-r,S); s:='-'+S; outtextxy(x1-10,y1+r,S); end; end; procedure gra; var x,y,a,b:real; begin setcolor(2); x:=-15; y:=0; a:=1; b:=0; repeat y:=x*x; {вот эту строчку приходится менять} putpixel(round(x*a*25)+320,240-round(y*25)-round(b*25),2); x:=x+0.0003; until x>15; end; begin initgraph(gd,gm,'..\bgi'); osicoordinat; gra; readln end. |
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них. Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль. |
Jocker |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ту можно идти различными путями в зависимости от того, что требуется получить. Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них. Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль. Первый вариант мне не подходит так как хочется чтоб прога была универсальной и строила любой график, а не только из предлагаемого. А если по последнему варианту это разбирать в заданой строке-функции по символу? |
andriano |
![]()
Сообщение
#4
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Совсем любой, боюсь не выйдет - разве только ты реализуешь язык, на котором можно записать любую функцию. В остальных же случаях - любое выражение, содержащее тот набор функций, которые ты предусмотрел заранее, например, любое выражение, содержащее 4 арифметических операции и скобки. Или + набор тригонометрических функций. Или еще + экспонены и логарифмы.
Можно, например, набратьв Google "разбор выражения паскаль" и походить по ссылкам. Здесть простейший вариант http://pascal.sources.ru/parsing/calc_my.htm |
Jocker |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
как раз то что я искал, спасибо
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:22 |