IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> не могу доделать, как записать функцию в програмнній код
Jocker
сообщение 12.05.2008 23:14
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


написал прожку которая строит графики, но только чтоб ввести функцию графика нужно открывать програмный код, и в нём изменять. можно как-то обойтись без этого (не открывая код)

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
andriano
сообщение 13.05.2008 8:12
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jocker
сообщение 13.05.2008 9:11
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Цитата(andriano @ 13.05.2008 8:12) *

Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.

Первый вариант мне не подходит так как хочется чтоб прога была универсальной и строила любой график, а не только из предлагаемого. А если по последнему варианту это разбирать в заданой строке-функции по символу?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 13.05.2008 9:36
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Совсем любой, боюсь не выйдет - разве только ты реализуешь язык, на котором можно записать любую функцию. В остальных же случаях - любое выражение, содержащее тот набор функций, которые ты предусмотрел заранее, например, любое выражение, содержащее 4 арифметических операции и скобки. Или + набор тригонометрических функций. Или еще + экспонены и логарифмы.
Можно, например, набратьв Google "разбор выражения паскаль" и походить по ссылкам.
Здесть простейший вариант http://pascal.sources.ru/parsing/calc_my.htm
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jocker
сообщение 13.05.2008 20:06
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


как раз то что я искал, спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"