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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2008, 09:15   #1
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию Помогите доделать задание в паскале

Построить график функций по формуле y=-3(2x по модулю)+30
Надо сделать шаг по меньше, чтоб она не выходила в верх
Код:
Program Graph_14_1;
uses graph;
var
k:byte;
x,dx,x1,x2,y:real;
mx,my,x0,y0,px,py:integer;
driver,mode,errcode:integer;
s,path:string;
procedure Grid(X1,Y1,X2,Y2:integer;k:real);
var i:integer;
begin
 if k>=8 then
  begin
   i:=X1+((X2-X1) div 2);
   setcolor(8);
   repeat
    line(i,Y1,i,Y2);
    i:=i+round(k);
   until i>=X2;
   i:=X1+((X2-X1) div 2);
   repeat
    line(i,Y1,i,Y2);
    i:=i-round(k);
   until i<=X1;
   i:=Y1+((Y2-Y1) div 2);
   repeat
    line(X1,i,X2,i);
    i:=i+round(k);
   until i>=Y2;
   i:=Y1+((Y2-Y1) div 2);
   repeat
    line(X1,i,X2,i);
    i:=i-round(k);
   until i<=Y1;
  end;
  setcolor(15);
  line(X1+((X2-X1) div 2),Y1,X1+((X2-X1) div 2),Y2);
  line(X1,Y1+((Y2-Y1) div 2),X2,Y1+((Y2-Y1) div 2));
 setcolor(12);
 rectangle(X1,Y1,X2,Y2);
end;
begin
k:=30;
driver:=vga;
mode:=vgahi;
path:='g:\bp\bgi';
initgraph(driver,mode,path);
errcode:=graphResult;
Grid(0,0,639,479,K);
if errcode<>grok then
begin
writeln('Error');
readln;
halt(1);
end;
x0:=320;
y0:=240;
mx:=10;
my:=10;
setcolor(15);
line(10,y0,790,y0);
line(x0,10,x0,590);
x1:=-3;
x2:=3;
dx:=0.01;
x:=x1;
while (x<x2) do
begin
setcolor(4);
outtextxy(90,300,'-3*abs(2*x)+30');
outtextxy(290,245,'-10');
outtextxy(325,245,'10');
outtextxy(360,245,'20');
outtextxy(390,245,'30');
y:=-3*abs(2*x)+30;
px:=x0+round(x*mx);
py:=y0-round(y*my);
putpixel(px,py,4);
x:=x+dx;
end;
readln;
closegraph;
end.
neomaximus вне форума Ответить с цитированием
Старый 23.06.2008, 13:19   #2
bag
Пользователь
 
Регистрация: 20.06.2008
Сообщений: 95
По умолчанию

Попробуй изменить строки 59, 60, 72-75 на следующие:
59. mx:=trunc(k/10);
60. my:=mx;
72. outtextxy(x0-k,245,'-10');
73. outtextxy(x0+k,245,'10');
74. outtextxy(x0+k*2,245,'20');
75. outtextxy(x0+k*3,245,'30');
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
bag вне форума Ответить с цитированием
Старый 23.06.2008, 13:19   #3
bag
Пользователь
 
Регистрация: 20.06.2008
Сообщений: 95
По умолчанию

Попробуй изменить строки 59, 60, 72-75 на следующие:
59. mx:=trunc(k/10);
60. my:=mx;
72. outtextxy(x0-k,245,'-10');
73. outtextxy(x0+k,245,'10');
74. outtextxy(x0+k*2,245,'20');
75. outtextxy(x0+k*3,245,'30');
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
bag вне форума Ответить с цитированием
Старый 23.06.2008, 13:21   #4
bag
Пользователь
 
Регистрация: 20.06.2008
Сообщений: 95
По умолчанию

Упс, клавиша залипла
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
bag вне форума Ответить с цитированием
Старый 23.06.2008, 13:40   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Сделай проще, mx:=10; my:=3; x1:=-10; x2:=10; Ну и подпиши ось Х влево, а на оси У хотя бы точку +30 подпиши, все-таки узловая.
puporev вне форума Ответить с цитированием
Старый 23.06.2008, 14:35   #6
bag
Пользователь
 
Регистрация: 20.06.2008
Сообщений: 95
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Сделай проще, mx:=10; my:=3; x1:=-10; x2:=10; Ну и подпиши ось Х влево, а на оси У хотя бы точку +30 подпиши, все-таки узловая.
Проще - это не значит, что лучше! У него 3 коэффициента отвечают почти за одно и то же. Зачем подгонять каждый из них, когда можно выразить все через один?
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
bag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доделать задание в паскале! neomaximus Помощь студентам 4 23.06.2008 18:16
Помогите доделать задание в паскале! neomaximus Помощь студентам 1 22.06.2008 09:45
Помогите доделать граф в паскале neomaximus Помощь студентам 1 18.06.2008 15:09
Помогите доделать Povar Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2008 14:43
Помогите доделать задачу!!!! Vincenzo Паскаль, Turbo Pascal, PascalABC.NET 4 11.05.2008 09:35