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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 15:22   #1
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
Печаль Паскаль.Графика.Помогите пожалуйста((

Помогите пожалуйста, пол дня мучаюсь, а завтра сдавать. Нужно построить два графике в одной системе: Y=a*cos^3(фи) и Y=a*sin^3(фи), с графиками честно говоря не очень все фто могла сделать это вот в прикрепленном файле((

[program grafik;
uses Crt, Graph;
const
mtx=50;
mty=50;
xn=320;
yn=235;
var
grad,grreg,i,m,n,g,v:integer;
x,y,x0,y0:real;
s:string;
begin
grad:=detect;
InitGraph(grad,grreg,'K:\tp7\bgi');
SetBkColor(LightGray);
SetColor(blue);
line(10,yn,630,yn);
line(630,yn,600,225);
line(630,yn,600,250);
line(xn,10,xn,470);
line(xn,10,340,30);
line(xn,10,300,30);
outtextXY(xn+25,10,'Y');
outtextXY(620,yn+20,'X');
outtextXY(xn-20,yn+10,'0');
m:=trunc(540/mtx);
n:=trunc(460/mty);
for i:=1 to m do
begin
g:=i*mtx;
line(xn+g,yn-3,xn+g,yn+3);
str(i,s);
outtextXY(xn+g-5,yn+10,s);
line(xn-g,yn-3,xn-g,yn+3);
str(-i,s);
outtextXY(xn-g-5,yn+10,s);
end;
for i:=1 to n do
begin
v:=i*mty;
line(xn-3,yn-v,xn+3,yn-v);
str(i,s);
outtextXY(xn-30,yn-v,s);
line(xn-3,yn+v,xn+3,yn+v);
str(-i,s);
OutTextXY(xn-30,yn+v,s)
end;
setcolor(green);
OutTextXY(90,15,'Grafik funkcii y=cos(x)');
x0:=-270;
Repeat
x:=x0/mtx;
y:=cos(x);
y0:=y*mty;
PutPixel(xn+trunc(x0),yn-trunc(y0),red);
x0:=x0+1
until x0>270;
readln;
Closegraph
end.]
Diamond2107 вне форума Ответить с цитированием
Старый 03.05.2009, 15:35   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так очень хорошо. Почти все сделали. Только функции поменять (и одну добавить).
Вот:
Код:
program grafik; 
uses Crt, Graph; 
const 
mtx=50; 
mty=50; 
xn=320; 
yn=235; 
var 
i,m,n,g,v:integer;
grad,grreg : integer;
x,y,x0,y0:real; 
s:string;
 
begin 
grad:=detect;
InitGraph(grad,grreg,'K:\tp7\bgi'); 
SetBkColor(LightGray); 
SetColor(blue); 

line(10,yn,630,yn); 
line(630,yn,600,225); 
line(630,yn,600,250); 
line(xn,10,xn,470); 
line(xn,10,340,30); 
line(xn,10,300,30); 
outtextXY(xn+25,10,'Y'); 
outtextXY(620,yn+20,'X'); 
outtextXY(xn-20,yn+10,'0'); 
m:=trunc(540/mtx); 
n:=trunc(460/mty); 

for i:=1 to m do 
 begin
 g:=i*mtx;
 line(xn+g,yn-3,xn+g,yn+3);
 str(i,s);
 outtextXY(xn+g-5,yn+10,s);
 line(xn-g,yn-3,xn-g,yn+3);
 str(-i,s);
 outtextXY(xn-g-5,yn+10,s);
 end;

for i:=1 to n do 
 begin
 v:=i*mty;
 line(xn-3,yn-v,xn+3,yn-v);
 str(i,s);
 outtextXY(xn-30,yn-v,s);
 line(xn-3,yn+v,xn+3,yn+v);
 str(-i,s);
 OutTextXY(xn-30,yn+v,s)
 end;

{setcolor(green);
OutTextXY(90,15,'Grafik funkcii y=cos(x)'); 
x0:=-270; 
Repeat 
 x:=x0/mtx;
 y:=cos(x);
 y0:=y*mty;
 PutPixel(xn+trunc(x0),yn-trunc(y0),red);
 x0:=x0+1
until x0>270;   }

setcolor(green);
OutTextXY(90,15,'Grafik funkcii y=a*cos^3(fi) - Zelenyj');
x0:=-270; 
Repeat 
 x:=x0/mtx;
 y:=cos(x)*cos(x)*cos(x);   // здесь, судя по уравнению, нужно еще умножить на какое-то a
 y0:=y*mty;
 PutPixel(xn+trunc(x0),yn-trunc(y0),green);
 x0:=x0+1
until x0>270; 

setcolor(red);
OutTextXY(90,25,'Grafik funkcii y=a*sin^3(fi) - krasnij');
x0:=-270; 
Repeat 
 x:=x0/mtx;
 y:=sin(x)*sin(x)*sin(x);   // здесь, судя по уравнению, нужно еще умножить на какое-то a
 y0:=y*mty;
 PutPixel(xn+trunc(x0),yn-trunc(y0),red);
 x0:=x0+1
until x0>270;

readln; 
Closegraph 
end.
Там у вас в функции какое-то a. Видимо, вам нужно его ввести.
Думаю, сможете добавить.

ps Код заключайте в теги CODE ("#" на панели в окне редактирования).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 15:50   #3
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Да конечно))спасибо огромное..очень помог)))
Diamond2107 вне форума Ответить с цитированием
Старый 03.05.2009, 16:16   #4
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

а можно еще вопросик я вот пишу фто бы 'а' можно было ввести с клавиатуры, то есть любое и он считал, но программа сразу же вылетает((
Diamond2107 вне форума Ответить с цитированием
Старый 03.05.2009, 16:24   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
я вот пишу фто бы 'а' можно было ввести с клавиатуры, то есть любое и он считал, но программа сразу же вылетает((
Где пишете? ) Я же не вижу.
Подозреваю, что вы вводите a уже после инициализации граф. режима.

Вот:

Код:
program grafik; 
uses Crt, Graph; 
const 
mtx=50; 
mty=50; 
xn=320; 
yn=235; 
var 
i,m,n,g,v:integer;
grad,grreg : integer;
x,y,x0,y0:real; 
s:string;
a : real;
 
begin 
grad:=detect;
write('Enter a: ');
readln(a);
InitGraph(grad,grreg,'K:\tp7\bgi'); 
SetBkColor(LightGray); 
SetColor(blue); 

line(10,yn,630,yn); 
line(630,yn,600,225); 
line(630,yn,600,250); 
line(xn,10,xn,470); 
line(xn,10,340,30); 
line(xn,10,300,30); 
outtextXY(xn+25,10,'Y'); 
outtextXY(620,yn+20,'X'); 
outtextXY(xn-20,yn+10,'0'); 
m:=trunc(540/mtx); 
n:=trunc(460/mty); 

for i:=1 to m do 
 begin
 g:=i*mtx;
 line(xn+g,yn-3,xn+g,yn+3);
 str(i,s);
 outtextXY(xn+g-5,yn+10,s);
 line(xn-g,yn-3,xn-g,yn+3);
 str(-i,s);
 outtextXY(xn-g-5,yn+10,s);
 end;

for i:=1 to n do 
 begin
 v:=i*mty;
 line(xn-3,yn-v,xn+3,yn-v);
 str(i,s);
 outtextXY(xn-30,yn-v,s);
 line(xn-3,yn+v,xn+3,yn+v);
 str(-i,s);
 OutTextXY(xn-30,yn+v,s)
 end;

setcolor(green);
OutTextXY(90,15,'Grafik funkcii y=a*cos^3(fi) - Zelenyj');
x0:=-270; 
Repeat 
 x:=x0/mtx;
 y:=a*cos(x)*cos(x)*cos(x);
 y0:=y*mty;
 PutPixel(xn+trunc(x0),yn-trunc(y0),green);
 x0:=x0+1
until x0>270; 

setcolor(red);
OutTextXY(90,25,'Grafik funkcii y=a*sin^3(fi) - krasnij');
x0:=-270; 
Repeat 
 x:=x0/mtx;
 y:=a*sin(x)*sin(x)*sin(x);
 y0:=y*mty;
 PutPixel(xn+trunc(x0),yn-trunc(y0),red);
 x0:=x0+1
until x0>270;

readln; 
Closegraph 
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 16:33   #6
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Ой..не дело не вэтом было..я задержку не поставила..спасибо еще раз за помощь
Diamond2107 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, написать программу (графика) Helga Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2007 15:46
помогите пожалуйста!!! Паскаль светлана Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2006 20:45