![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
matic |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Необходимо построить графики заданной функции в паскале.
Условие задачи: Построить графики функции, заданной в параметрически, при разных значениях параметра "а" (должна быть реализована возможность вывода нескольких графиков при разных значениях "а") x=a(sh(t) -t), y=a(ch(t)-1) (a>0). Помогите пожалуста. Заранее благодарю. |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
matic |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мне та прога не поможет... у меня задание в параметрическом виде построить.
|
compiler |
![]()
Сообщение
#4
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Мне та прога не поможет... у меня задание в параметрическом виде построить. -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата у меня задание в параметрическом виде построить. Значит, вот это поможет:Графики функций, заданных параметрически |
matic |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo, благодарю. Помог твой мануал.
Вот что получилось:
{$N+}
{$E+}
program ex;
uses crt, graph;
type
tcurve = procedure(t: double;
var x, y: double);
const
a = 3;
b = 9;
L: double = 4;
scale = 12; { mashtab izobrageniya }
step = 0.005;
{
procedura dlya otrisovki tochki krivoy,
parametricheskoe predstavlenie kotoroy zadano funkchiey F
pri znachenii parametra = T
}
procedure set_point(t: double; f: tcurve);
var
x, y: double;
begin
f(t, x, y);
putpixel( (getmaxx div 2) + trunc(scale * x),
(getmaxy div 2) - trunc(scale * y), white );
end;
{
otrisovka krivoy so znacheniem parametra,
legavshim v intervale [start, finish] i shagom izmeneniya parametra step
}
procedure draw_curve(start, finish, step: double;
f: tcurve);
var t: double;
begin
{ risovanie osi koordinat }
setcolor(green);
line(0, getmaxy div 2, getmaxx, getmaxy div 2);
line(getmaxx div 2, 0, getmaxx div 2, getmaxy);
t := start; { nachalo intervala }
{ poka ne vishli za granichu intervala }
while t <= finish do begin
set_point(t, f);
t := t + step; { narashivaem parametr}
end;
end;
procedure giper(t: double; var x, y: double); far;
begin
{ sh(t)=(exp(t)-exp(-t))/2, ch(t)=(exp(t)+exp(-t))/2 }
x := a * ((exp(t)-exp(-t))/2-t);
y := a * ((exp(t)+exp(-t))/2-1);
end;
var
mode, driver:integer;
begin
driver:=detect;
initgraph(mode, driver, 'D:\program\bp\bgi');
{draw_curve(nachalo intervala, konech intervala, shag, my_curve);}
draw_curve(-10, 10, step, giper);
readln;
closegraph;
end.
У меня теперь проблема, как мне организовать возможность вывода нескольких графиков при разных значениях "а" ? Помогите пожалуйста. |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Тебя смущает то, что A задана константой, и ее нельзя менять? Тогда опиши A вот так:
Const a: double = 3;
и после того, как отрисовал первую кривую с одним значением A, меняй его (фактически, теперь это - переменная со стартовым значением) и отрисовывай с другим значением... |
matic |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Тебя смущает то, что A задана константой, и ее нельзя менять? Тогда опиши A вот так: Const a: double = 3;
и после того, как отрисовал первую кривую с одним значением A, меняй его (фактически, теперь это - переменная со стартовым значением) и отрисовывай с другим значением... А по подробней? |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
const
a: double = 3;
...
begin
driver:=detect;
initgraph(mode, driver, 'D:\program\bp\bgi');
draw_curve(-10, 10, step, giper); { <--- Рисуешь с параметром А = 3 }
a := 27; { меняешь параметр }
draw_curve(-10, 10, step, giper); { <--- Рисуешь уже с A = 27 }
readln;
closegraph;
end.
Можешь еще и цвет графика в процедуру draw_curve передавать как параметр, чтобы графики отрисовывались разными цветами при разных A ... |
matic |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Можешь еще и цвет графика в процедуру draw_curve передавать как параметр, чтобы графики отрисовывались разными цветами при разных A ... что-то у меня не получилось... помоги пожалуйста... |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Так, например:
procedure set_point(t: double; f: tcurve; color: integer);
var x, y: double;
begin
f(t, x, y);
putpixel( (getmaxx div 2) + trunc(scale * x), (getmaxy div 2) - trunc(scale * y), color );
end;
procedure draw_curve(color: integer; start, finish, step: double; f: tcurve);
var t: double;
begin
setcolor(green);
line(0, getmaxy div 2, getmaxx, getmaxy div 2);
line(getmaxx div 2, 0, getmaxx div 2, getmaxy);
t := start; { nachalo intervala }
{ poka ne vishli za granichu intervala }
while t <= finish do begin
set_point(t, f, color);
t := t + step; { narashivaem parametr}
end;
end;
...
draw_curve(white, -10, 10, step, giper);
a := 27;
draw_curve(yellow, -10, 10, step, giper);
...
|
Autre |
![]()
Сообщение
#12
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Реальное имя: Тёма Репутация: ![]() ![]() ![]() |
Здравствуйте! А у Вас не найдётся готовой задачи(.pas) для улитки Паскаля, Декартова листа, спирали Архимеда и др. Заранее благодарен Вам! До свидания!
|
Артемий |
![]()
Сообщение
#13
|
![]() Помощник капитана ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Цитата для улитки Паскаля, Декартова листа, спирали Архимеда и др. Оригинально!Может перечислил-бы до конца? ![]() -------------------- Dum spiro spero!
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Зайди по ссылке из сообщения №5, там лежит файл curves.pas ...
|
![]() ![]() |
![]() |
Текстовая версия | 21.04.2025 22:10 |