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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 23:30   #1
Masya1705
 
Аватар для Masya1705
 
Регистрация: 31.05.2010
Сообщений: 3
По умолчанию Защита РГЗ

Помогите пожалуйста объяснить задачу.
завтра защита, а я никак не могу разобраться.Просто спрашивают про каждую буковку

Код:
Program grafik;
uses graph, crt;
var
 gd,gm,n,i:integer;
 step,a,b,mash:real;
 col,cur:byte;
 c:char;

procedure osi (a,b,mash:real);      
var
  xos:integer;      
  st:string;
 begin
 setcolor(8);       
line(0,round(getmaxy/2),getmaxx,round(getmaxy/2)); 
 outtextxy(getmaxx-10,round(getmaxy/2)-10,'X');     
for i:=0 to round(b-a) do
  begin
   str(round(a+i),st);                                
   outtextxy(round(i*mash),round(getmaxy/2)+5,st);  
   line(round(i*mash),round(getmaxy/2)-2,round(i*mash),round(getmaxy/2)+2);  
end;

  if a*b<0 then xos:=round(-a*mash) else xos:=round(getmaxx/2);
  line(xos,0,xos,getmaxy);                                      
  outtextxy(xos-10,3,'Y');     
  for i:=1 to round((getmaxy/mash)/2) do
   begin
    str(round(i),st);
    outtextxy(xos+5,round(getmaxy/2+i*mash),'-'+st);                 
    outtextxy(xos+5,round(getmaxy/2-i*mash),st);
    line(xos-2,round(getmaxy/2+i*mash),xos,round(getmaxy/2+i*mash)); 
    line(xos-2,round(getmaxy/2-i*mash),xos+2,round(getmaxy/2-i*mash));
   end;
 end;

procedure podpis (D:real;col:byte);  
 var
  st:string;
 begin
  str(d:2:2,st);
  setfillstyle(1,col);
  bar(2,cur,7,cur+5);
  setcolor(8);
  outtextxy(10,cur,st+'*(x^2-1)/(x^4+1)');
  cur:=cur+10;
 end;

function st(as:real;bs:byte):real; 
 var
  i:byte;
  r:real;
 begin
  r:=1;
  for i:=1 to bs do
   r:=r*as;
  st:=r;
 end;

procedure draw(a,b,mash,step,D:real;col:byte);       
 var
  x1,y1:real;
 begin
  setcolor(col);                              
 x1:=a-step;

  for i:=1 to n do
   begin
    x1:=x1+step;    
    y1:=-D*(st(x1,2)-1)/(st(x1,4)+1);           
    putpixel(round((x1-a)*mash),round(y1*mash+getmaxy/2),col);
   end;
  podpis(D,col);
 end;

begin
 write('vvedite tochnost(n), a, b ');
 readln(n,a,b);          
 write(‘zadat masshtab vrychnyy?’ (Y/N)');
 readln(c);

 if c='y' then
  begin
   writeln;
   write(‘mashtab= ');
   readln(mash);
   step:=abs(b-a)/n;             
   initgraph(gd,gm,'..\bgi'); 
  end
 else
  begin
   initgraph(gd,gm,'..\bgi'); 
   mash:=getmaxx/abs(b-a);      
   step:=abs(b-a)/n;             
  end;

 osi(a,b,mash);             
draw(a,b,mash,step,-1,1);  
draw(a,b,mash,step,0.5,2);
 draw(a,b,mash,step,1,4);
 draw(a,b,mash,step,1.5,5);

 repeat until keypressed;   

 closegraph;                
end.

Последний раз редактировалось Stilet; 09.06.2010 в 08:50.
Masya1705 вне форума Ответить с цитированием
Старый 09.06.2010, 08:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
write(‘zadat masshtab vrychnyy?’ (Y/N)');
Это что за...
так нужно: write('zadat masshtab vrychnyy? (Y/N)');

Насчет пояснений:
procedure osi (a,b,mash:real); судя по всему строит координатную сетку, с возможностью масштабирования.
procedure podpis (D:real;col:byte); создает подобие марок-подписей для графика в колонку.
function st(as:real;bs:byte):real; возведение в степень. Корявое, вместо него лучше использовать стандартный финт: :=exp(bs*ln(as))
procedure draw(a,b,mash,step,D:real;col:byte) ; - собственно отрисовывает все вызывая выше описанные процедуры.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнение мне РГЗ на с++.за вознаграждение! Mcwww Помощь студентам 0 17.05.2010 21:49
Питон в мониторах (Помогите с РГЗ) BRIGADIR Помощь студентам 3 05.04.2010 21:37
ЗАЩИТА Dimarik Общие вопросы C/C++ 6 26.09.2009 17:35
Защита astorik Софт 12 20.12.2007 04:43