


1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Neuropunka |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
построить график функции y=e^sinx при х<0 в паскале что-то у меня вообще не чего не выходит. Парни выручайте нужно очень срочно.
![]() ![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
построить график функции y=e^sinx при х<0 в паскале что-то у меня вообще не чего не выходит. Покажи, что и как не выходит. Поможем. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
Program UniversalGraph;
Uses Graph;
Type Fun = Function(X:Real):Real;
Procedure Graphic(F:Fun; XBeg,XEnd:Real);
Var
Max, Min, {Экстремальные точки функции в пределах диапазона}
I, {Переменная цикла}
Step, {Расчитываемый шаг}
GradX, {Приращение функции на один шаг по X}
GradY: Real; {Приращение функции на один шаг по Y}
GraphicX, {Координата по X}
GraphicY: Integer; {Координата по Y}
Flag: Boolean; {Флаг - перемещена первая точка}
Procedure Coord (CoordYBeg, CoordYEnd, CoordHMin, CoordHMax: Real);
Var GradX, GradYX: Real;
X, Y: Integer;
Color: Word;
Begin
Color:=GetColor;
SetColor (7);
GradX :=GetMaxX/(CoordYEnd-CoordYBeg);
GradYX:=GetMaxY/(CoordHMax-CoordHMin);
If (CoordYEnd>0) And (CoordYBeg<0) Then
Y:=Round(GradX*(0-CoordYBeg));
If CoordYEnd<0 Then Y:=GetMaxY;
If CoordYBeg>0 Then Y:=1;
If (CoordHMin<0) And (CoordHMax>0) Then
X:=Round(GradYX*(CoordHMax));
If CoordHMin>0 Then X:=GetMaxY;
If CoordHMax<0 Then X:=1 ;
Line (1,X,GetMaxX,X); {Горизонтальная линия}
Line (GetMaxX-4,X+5,GetMaxX,X); {Стрелочка}
Line (GetMaxX-4,X-5,GetMaxX,X); {Стрелочка}
Line (Y,1,Y,GetMaxY); {Вертикальная линия }
Line (Y-5,5,Y,1); {Стрелочка}
Line (Y+5,5,Y,1); {Стрелочка}
SetColor (Color);
End;
Begin
Step:=(XEnd-XBeg)/(GetMaxY-40);
I:=XBeg;
Max:=F(XBeg);
Min:=F(XBeg);
While I<=(XEnd+Step) Do
Begin
If Max<F(I) Then Max:=F(I);
If Min>F(I) Then Min:=F(I);
I:=I+Step;
End;
GradX:=GetMaxX/(XEnd-XBeg);
GradY:=GetMaxY/(Max-Min);
Coord (XBeg, XEnd, Min, Max);
Flag:=True;
I:=XBeg;
While I<=(XEnd+Step) Do
Begin
GraphicX:=Round(GradX*(I-XBeg));
GraphicY:=Round(GradY*(Max-F(I)));
If Flag Then
MoveTo (GraphicX,GraphicY);
{ PutPixel(GraphicX,GraphicY,15);}
LineTo(GraphicX,GraphicY);
I:=I+Step;
Flag:=False;
End;
End;
{$F+} {Ключи ассемблирования}
Function F1(X:Real):Real;
Begin
F1:=Sin(x)+COS(x/2);
End;
Procedure GraphicIni;
Var
Mode, DriverDet: Integer;
Begin
Mode:=0;
DriverDet:=Detect;
InitGraph(Mode,DriverDet,'c:\BP\BGI');
SetColor(15);
End;
{$F-} {Ключи ассемблирования}
Begin
GraphicIni;
Graphic(F1,-10,10);
ReadLn;
CloseGraph;
End.
Добавлено через 3 мин. Это не так, я уже поняла, но больше я не понимаю как и что делать, хоть ты меня по лбу бей, а это нужно к 6 июню сделать или мне капец... ( Парни объясните нормально как делать? Добавлено через 4 мин. Program UniversalGraph;
Uses Graph;
Type Fun = Function(X:Real):Real;
Procedure Graphic(F:Fun; XBeg,XEnd:Real);
Var
Max, Min, {Экстремальные точки функции в пределах диапазона}
I, {Переменная цикла}
Step, {Расчитываемый шаг}
GradX, {Приращение функции на один шаг по X}
GradY: Real; {Приращение функции на один шаг по Y}
GraphicX, {Координата по X}
GraphicY: Integer; {Координата по Y}
Flag: Boolean; {Флаг - перемещена первая точка}
Procedure Coord (CoordYBeg, CoordYEnd, CoordHMin, CoordHMax: Real);
Var GradX, GradYX: Real;
X, Y: Integer;
Color: Word;
Begin
Color:=GetColor;
SetColor (7);
GradX :=GetMaxX/(CoordYEnd-CoordYBeg);
GradYX:=GetMaxY/(CoordHMax-CoordHMin);
If (CoordYEnd>0) And (CoordYBeg<0) Then
Y:=Round(GradX*(0-CoordYBeg));
If CoordYEnd<0 Then Y:=GetMaxY;
If CoordYBeg>0 Then Y:=1;
If (CoordHMin<0) And (CoordHMax>0) Then
X:=Round(GradYX*(CoordHMax));
If CoordHMin>0 Then X:=GetMaxY;
If CoordHMax<0 Then X:=1 ;
Line (1,X,GetMaxX,X); {Горизонтальная линия}
Line (GetMaxX-4,X+5,GetMaxX,X); {Стрелочка}
Line (GetMaxX-4,X-5,GetMaxX,X); {Стрелочка}
Line (Y,1,Y,GetMaxY); {Вертикальная линия }
Line (Y-5,5,Y,1); {Стрелочка}
Line (Y+5,5,Y,1); {Стрелочка}
SetColor (Color);
End;
Begin
Step:=(XEnd-XBeg)/(GetMaxY-40);
I:=XBeg;
Max:=F(XBeg);
Min:=F(XBeg);
While I<=(XEnd+Step) Do
Begin
If Max<F(I) Then Max:=F(I);
If Min>F(I) Then Min:=F(I);
I:=I+Step;
End;
GradX:=GetMaxX/(XEnd-XBeg);
GradY:=GetMaxY/(Max-Min);
Coord (XBeg, XEnd, Min, Max);
Flag:=True;
I:=XBeg;
While I<=(XEnd+Step) Do
Begin
GraphicX:=Round(GradX*(I-XBeg));
GraphicY:=Round(GradY*(Max-F(I)));
If Flag Then
MoveTo (GraphicX,GraphicY);
{ PutPixel(GraphicX,GraphicY,15);}
LineTo(GraphicX,GraphicY);
I:=I+Step;
Flag:=False;
End;
End;
{$F+} {Ключи ассемблирования}
Function F1(X:Real):Real;
Begin
F1:=Sin(x)+COS(x/2);
End;
Procedure GraphicIni;
Var
Mode, DriverDet: Integer;
Begin
Mode:=0;
DriverDet:=Detect;
InitGraph(Mode,DriverDet,'c:\BP\BGI');
SetColor(15);
End;
{$F-} {Ключи ассемблирования}
Begin
GraphicIni;
Graphic(F1,-10,10);
ReadLn;
CloseGraph;
End.
Добавлено через 3 мин. Это не так, я уже поняла, но больше я не понимаю как и что делать, хоть ты меня по лбу бей, а это нужно к 6 июню сделать или мне капец... ( Парни объясните нормально как делать? Добавлено через 1 мин. Program UniversalGraph;
Uses Graph;
Type Fun = Function(X:Real):Real;
Procedure Graphic(F:Fun; XBeg,XEnd:Real);
Var
Max, Min, {Экстремальные точки функции в пределах диапазона}
I, {Переменная цикла}
Step, {Расчитываемый шаг}
GradX, {Приращение функции на один шаг по X}
GradY: Real; {Приращение функции на один шаг по Y}
GraphicX, {Координата по X}
GraphicY: Integer; {Координата по Y}
Flag: Boolean; {Флаг - перемещена первая точка}
Procedure Coord (CoordYBeg, CoordYEnd, CoordHMin, CoordHMax: Real);
Var GradX, GradYX: Real;
X, Y: Integer;
Color: Word;
Begin
Color:=GetColor;
SetColor (7);
GradX :=GetMaxX/(CoordYEnd-CoordYBeg);
GradYX:=GetMaxY/(CoordHMax-CoordHMin);
If (CoordYEnd>0) And (CoordYBeg<0) Then
Y:=Round(GradX*(0-CoordYBeg));
If CoordYEnd<0 Then Y:=GetMaxY;
If CoordYBeg>0 Then Y:=1;
If (CoordHMin<0) And (CoordHMax>0) Then
X:=Round(GradYX*(CoordHMax));
If CoordHMin>0 Then X:=GetMaxY;
If CoordHMax<0 Then X:=1 ;
Line (1,X,GetMaxX,X); {Горизонтальная линия}
Line (GetMaxX-4,X+5,GetMaxX,X); {Стрелочка}
Line (GetMaxX-4,X-5,GetMaxX,X); {Стрелочка}
Line (Y,1,Y,GetMaxY); {Вертикальная линия }
Line (Y-5,5,Y,1); {Стрелочка}
Line (Y+5,5,Y,1); {Стрелочка}
SetColor (Color);
End;
Begin
Step:=(XEnd-XBeg)/(GetMaxY-40);
I:=XBeg;
Max:=F(XBeg);
Min:=F(XBeg);
While I<=(XEnd+Step) Do
Begin
If Max<F(I) Then Max:=F(I);
If Min>F(I) Then Min:=F(I);
I:=I+Step;
End;
GradX:=GetMaxX/(XEnd-XBeg);
GradY:=GetMaxY/(Max-Min);
Coord (XBeg, XEnd, Min, Max);
Flag:=True;
I:=XBeg;
While I<=(XEnd+Step) Do
Begin
GraphicX:=Round(GradX*(I-XBeg));
GraphicY:=Round(GradY*(Max-F(I)));
If Flag Then
MoveTo (GraphicX,GraphicY);
{ PutPixel(GraphicX,GraphicY,15);}
LineTo(GraphicX,GraphicY);
I:=I+Step;
Flag:=False;
End;
End;
{$F+} {Ключи ассемблирования}
Function F1(X:Real):Real;
Begin
F1:=Sin(x)+COS(x/2);
End;
Procedure GraphicIni;
Var
Mode, DriverDet: Integer;
Begin
Mode:=0;
DriverDet:=Detect;
InitGraph(Mode,DriverDet,'c:\BP\BGI');
SetColor(15);
End;
{$F-} {Ключи ассемблирования}
Begin
GraphicIni;
Graphic(F1,-10,10);
ReadLn;
CloseGraph;
End.
Добавлено через 3 мин. Это не так, я уже поняла, но больше я не понимаю как и что делать, хоть ты меня по лбу бей, а это нужно к 6 июню сделать или мне капец... ( Парни объясните нормально как делать? Добавлено через 4 мин. Сообщение отредактировано: Neuropunka - |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
несколько наворочено вышло ))
когда будет свободная минутка - постараюсь разобраться и ответить. Забегай утром )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Постой, а почему у тебя в функции стоит совсем не то, что тебе надо?
![]() Почему бы не сделлать так: Function F1(X:Real):Real;
Begin
F1:= Exp(Sin(x));
End;
- а?И убери комментарий про "ключи ассемблирования", он бросается в глаза и смешит своей нелепостью )). А директиву {$F-} переставь к концу F1. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
Постой, а почему у тебя в функции стоит совсем не то, что тебе надо? ![]() Почему бы не сделлать так: Function F1(X:Real):Real;
Begin
F1:= Exp(Sin(x));
End;
- а?И убери комментарий про "ключи ассемблирования", он бросается в глаза и смешит своей нелепостью )). А директиву {$F-} переставь к концу F1. в том то и дело что я только эту знаю как делать, а другие нуль... А мне нужна y=e^sinx при х<0, а не x=a(sh(t) -t), y=a(ch(t)-1) (a>0) я даже начало не могу додуматься как делать. Можешь кинуть сразу готовый код, мне как-то не удобно просить, но выхода нету... |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
в том то и дело что я только эту знаю как делать, а другие нуль... А мне нужна y=e^sinx при х<0, а не x=a(sh(t) -t), y=a(ch(t)-1) (a>0) я даже начало не могу додуматься как делать. Можешь кинуть сразу готовый код, мне как-то не удобно просить, но выхода нету... Выход есть всегда )). Попробуй to pull yourself together. Я же тебе написал, что и как нужно изменить, чтобы рисовать твою любимую экспоненту синуса! Сделай это, и получишь свой график. ПОСЛЕ этого займемся пределами по x (кстати, обнародуй левую границу тоже, а то правая есть, 0, а вот рисовать до минус бесконечности я не умею)). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
Выход есть всегда )). Попробуй to pull yourself together. Я же тебе написал, что и как нужно изменить, чтобы рисовать твою любимую экспоненту синуса! Сделай это, и получишь свой график. ПОСЛЕ этого займемся пределами по x (кстати, обнародуй левую границу тоже, а то правая есть, 0, а вот рисовать до минус бесконечности я не умею)). Вот ты тока что написал я прочитала, и не чего не поняла... вообще можещь хоть начало кинуть, а дальше я уже сама Добавлено через 2 мин. Выход есть всегда )). Попробуй to pull yourself together. Я же тебе написал, что и как нужно изменить, чтобы рисовать твою любимую экспоненту синуса! Сделай это, и получишь свой график. ПОСЛЕ этого займемся пределами по x (кстати, обнародуй левую границу тоже, а то правая есть, 0, а вот рисовать до минус бесконечности я не умею)). Ты сейчас бьёшь по чайнику, и поверь до него очень тяжко достучатся... |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ты сейчас бьёшь по чайнику, и поверь до него очень тяжко достучатся... ![]() Так, смотри. Я взял тот код, который ты привела, и заменил в нем строчку F1:=Sin(x)+COS(x/2);
на такую:
F1:= Exp(Sin(x));
Попробуй сделать то же самое и рапортуй о результатах )). Добавлено через 4 мин. p.s. сиб за плюс )). ты забыла добавить: добрый, ласковый, симпатичный... )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#11
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
=)) ну прости))) сяс сижу ковыряюсь(((
Добавлено через 5 мин. Ошибка в Color:=GetColor; Program UniversalGraph;
Uses Graphabc;
Type Fun = Function(X:Real):Real;
Procedure Graphic(F:Fun; XBeg,XEnd:Real);
Var
Max, Min, {Экстремальные точки функции в пределах диапазона}
I, {Переменная цикла}
Step, {Расчитываемый шаг}
GradX, {Приращение функции на один шаг по X}
GradY: Real; {Приращение функции на один шаг по Y}
GraphicX, {Координата по X}
GraphicY: Integer; {Координата по Y}
Flag: Boolean; {Флаг - перемещена первая точка}
Procedure Coord (CoordYBeg, CoordYEnd, CoordHMin, CoordHMax: Real);
Var GradX, GradYX: Real;
X, Y: Integer;
Color: Word;
Begin
Color:=GetColor;
Set Color (7);
GradX :=GetMaxX/(CoordYEnd-CoordYBeg);
GradYX:=GetMaxY/(CoordHMax-CoordHMin);
If (CoordYEnd>0) And (CoordYBeg<0) Then
Y:=Round(GradX*(0-CoordYBeg));
If CoordYEnd<0 Then Y:=GetMaxY;
If CoordYBeg>0 Then Y:=1;
If (CoordHMin<0) And (CoordHMax>0) Then
X:=Round(GradYX*(CoordHMax));
If CoordHMin>0 Then X:=GetMaxY;
If CoordHMax<0 Then X:=1 ;
Line (1,X,GetMaxX,X); {Горизонтальная линия}
Line (GetMaxX-4,X+5,GetMaxX,X); {Стрелочка}
Line (GetMaxX-4,X-5,GetMaxX,X); {Стрелочка}
Line (Y,1,Y,GetMaxY); {Вертикальная линия }
Line (Y-5,5,Y,1); {Стрелочка}
Line (Y+5,5,Y,1); {Стрелочка}
SetColor (Color);
End;
Begin
Step:=(XEnd-XBeg)/(GetMaxY-40);
I:=XBeg;
Max:=F(XBeg);
Min:=F(XBeg);
While I<=(XEnd+Step) Do
Begin
If Max<F(I) Then Max:=F(I);
If Min>F(I) Then Min:=F(I);
I:=I+Step;
End;
GradX:=GetMaxX/(XEnd-XBeg);
GradY:=GetMaxY/(Max-Min);
Coord (XBeg, XEnd, Min, Max);
Flag:=True;
I:=XBeg;
While I<=(XEnd+Step) Do
Begin
GraphicX:=Round(GradX*(I-XBeg));
GraphicY:=Round(GradY*(Max-F(I)));
If Flag Then
MoveTo (GraphicX,GraphicY);
{ PutPixel(GraphicX,GraphicY,15);}
LineTo(GraphicX,GraphicY);
I:=I+Step;
Flag:=False;
End;
End;
{$F+} {Ключи ассемблирования}
Function F1(X:Real):Real;
Begin
F1:= Exp(Sin(x);
End;
Procedure GraphicIni;
Var
Mode, DriverDet: Integer;
Begin
Mode:=0;
DriverDet:=Detect;
InitGraph(Mode,DriverDet,'c:\BP\BGI');
SetColor(15);
End;
{$F-} {Ключи ассемблирования}
Begin
GraphicIni;
Graphic(F1,-10,10);
ReadLn;
CloseGraph;
End.
|
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Почему SetColor распался на части? строка 23
И закрой скобку в той строке, которую изменяла (с экспонентой). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Neuropunka |
![]()
Сообщение
#13
|
Группа: Пользователи Сообщений: 7 Пол: Женский Репутация: ![]() ![]() ![]() |
[quote name='Lapp' date='4.06.2011 3:20' post='156109']
Почему SetColor распался на части? строка 23 И закрой скобку в той строке, которую изменяла (с экспонентой). Procedure Coord (CoordYBeg, CoordYEnd, CoordHMin, CoordHMax: Real); Var GradX, GradYX: Real; X, Y: Integer; Color: Word; Begin Color:=GetColor; SetColor (7); GradX :=GetMaxX/(CoordYEnd-CoordYBeg); GradYX:=GetMaxY/(CoordHMax-CoordHMin); If (CoordYEnd>0) And (CoordYBeg<0) Then Y:=Round(GradX*(0-CoordYBeg)); If CoordYEnd<0 Then Y:=GetMaxY; If CoordYBeg>0 Then Y:=1; If (CoordHMin<0) And (CoordHMax>0) Then X:=Round(GradYX*(CoordHMax)); If CoordHMin>0 Then X:=GetMaxY; If CoordHMax<0 Then X:=1 ; Не извесный индификатор GetColor; |
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Neuropunka, ты плохо выспалась? не с той ноги встала?
Извини, но я на такой бред тебе отвечать не буду. ![]() Я тебе понятно пишу? правильно теги расставляю? вот и ты позаботься, пожалуйста.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 3:30 |