Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2011, 21:22   #1
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию графік функції

написати програму побудови графіка функції у=х*sqrt(2-sqr(x))
xє[-sqrt(2); sqrt(2)]
Sonne_asja вне форума Ответить с цитированием
Старый 14.06.2011, 21:24   #2
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию

Program Grafik;
uses crt, graph;
Var dr, mode : integer;
scale : real;
cx, cy : integer; {center}
{-----------------------------------------------------------}
function f(x : real) : real;
begin
f := x*sqrt(2-sqr(x));
end;

{-------------------------------------------------------------}
procedure axes;
begin
SetColor(1);
Line(cx, 0, cx, GetMaxY); {OY}
Line(0, cy, GetMaxX, cy); {OX}
{arrow X,Y}
Line(GetMaxX-10, (cy)-5, GetMaxX, cy);
Line(GetMaxX-10, (cy)+5, GetMaxX, cy);

Line(cx, 0, (cx)-5, 10);
Line(cx, 0, (cx)+5, 10);
{title}
OutTextXY(GetMaxX-10, cy+20, 'X');
OutTextXY(cx+10, 10, 'Y');
end;
{--------------------------------------------------------------------------}
procedure graduir;
var i, j : real;
s : string[7];
begin
SetColor(1);
j := 0; {0}
{--------------------------graduir OX-------------------------}
repeat
i := cx+(-j)*scale;
Line(round(i), cy-5, round(i), cy+5);
if j<>0 then {not 0}
begin
str(-j:6:2, s);
OutTextXY(round(i)-10, cy+10, s);
end;
i := cx+j*scale;
Line(round(i), cy-5, round(i), cy+5);
if j<>0 then
begin
str(j:6:2, s);
OutTextXY(round(i)-10, cy+10, s);
end;
j := j+2;
until j = 10;
{--------------------------graduir OY------------------------}
j:= 0;
repeat
i:= cy - j*scale;
Line(cx+3, round(i), cx-3, round(i));
if j<>0 then
begin
str(j:4:1, s);
OutTextXY(cx+15, round(i)-2, s);
end;
i:= cy+j*scale;
Line(cx+3, round(i), cx-3, round(i));
if j<>0 then
begin
str(-j:4:1, s);
OutTextXY(cx+15, round(i)-2, s);
end;
j := j+1;
until j = 8;
end;
{--------------------------------------------build_graph-----------------------------------------------}
procedure build_graph;
var x0, y0, x1, y1 : integer; {}
x : real;
begin
for x0 := 0 to GetMaxX do {}
begin
x := (x0-cx)/scale; {}
y0 := round(cy-scale*f(x));
if x0>0 then
Line(x0, y0, x1, y1); {}
x1 := x0; {}
y1 := y0;
end;
end;
{--------------------------------------------main prog----------------------------------------------}
begin
dr:= Detect; {визначити драйвер автоматично}
InitGraph(dr, mode, '..\bgi'); {ініціалізація графічного режиму}
cx := GetMaxX div 2; {визначити координати центру екрану}
cy := GetMaxY div 2;
SetBkColor(15); {вибір кольору фону}
SetColor(1); {вибір кольору}
OutText('input scale (20..100): ');
gotoxy(27, 1);
read(scale); {ввести масштаб}
ClearDevice; {очистити екран}
axes; {зобразити осі координат}
graduir; {розмітити осі}
OutTextXY(10, 30, ' x*sqrt(2-sqr(x)); {вивести напис}
build_graph; {зобразити графік}
{closegraph;}
readkey
end.
Sonne_asja вне форума Ответить с цитированием
Старый 14.06.2011, 21:25   #3
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию

вот я код написала но только с межами проблема(( если с ними то не работает,
а если без них то "-" в функции не может быть((( зато с "+" в функции работает
Sonne_asja вне форума Ответить с цитированием
Старый 14.06.2011, 21:42   #4
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Sonne_asja Посмотреть сообщение
вот я код написала но только с межами проблема(( если с ними то не работает,
а если без них то "-" в функции не может быть((( зато с "+" в функции работает
подскажите как правильно єти границы организовать?
Sonne_asja вне форума Ответить с цитированием
Старый 15.06.2011, 13:37   #5
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
Восклицание

нужен свежийвзгляд!!!!
Sonne_asja вне форума Ответить с цитированием
Старый 15.06.2011, 13:45   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Кто такие "межи"? Можно хоть на русский перевести?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.06.2011, 13:52   #7
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию

написать график функции у=х*sqrt(2-sqr(x))
xє[-sqrt(2); sqrt(2)]
межі - область значения х(xє[-sqrt(2); sqrt(2)])
Sonne_asja вне форума Ответить с цитированием
Старый 15.06.2011, 14:00   #8
Sonne_asja
Пользователь
 
Аватар для Sonne_asja
 
Регистрация: 20.02.2011
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Sonne_asja Посмотреть сообщение
написать график функции у=х*sqrt(2-sqr(x))
xє[-sqrt(2); sqrt(2)]
межі - область значения х(xє[-sqrt(2); sqrt(2)])
если еще что то не понятно пишите
Sonne_asja вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функції. Динамічні масиви й структури Katpenko_tolik Помощь студентам 2 28.11.2010 17:14