Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Рогатая гусеница. Проблема с компиляцией.


Автор: Кругой_Ной 3.1.2005, 23:51
Я несмог компилировать в Паскале for Windows.
Выдаетьса ошибка такое: Error 15: File not found (MATH.TPU)

Вот сам код етой программы!



uses WinCRT, Math, Graph;
var
i,j: integer;
t, s: extended;
ia,ja, RR, RR0, RR1: extended;
x, y, z: extended;
X1, Y1, X2, Y2, xx, yy: LongInt;
red, green, blue: byte;

begin
SetSVGAMode(800,600,16,LFBorBanked);

if GraphResult<>grOk then begin
Writeln('Mode not supported..');
Halt(0);
end;
xx := 400;
yy := 300;
RR := 260;
RR1 := 60;
For i := 0 To 719 do begin
ia := i / 2.0;
For j := 0 To 719 do begin
ja := j / 2;
t := ia * Pi / 180;
s := ja * Pi / 180;
{1a} RR0 := RR1;
{1b} {RR0 := RR1 + 60 * IntPower(Sin(2 * t),2);}
{1c} {RR0 := RR1 + 60 * IntPower(Sin(2 * t),2) +
60 * IntPower(Sin(8 * s),24) * IntPower(Sin(16 * t),24);}
{1d} {RR0 := RR1 + 60 * IntPower(Sin(16 * s),24) * IntPower(Sin(32 * t),24);}
{1e} {RR0 := RR1 + 60 * IntPower(Sin(4 * s),24) * IntPower(Sin(8 * t),24);}
X := RR * Cos(t) + RR0 * Cos(s);
Y := RR0 * Sin(s);
{2a} z := RR * Sin(t) + RR0 * Cos(s);
{2b} {z := RR * Sin(2 * t) + RR0 * Cos(s);}

X1 := trunc(X - z * Cos(Pi / 3) * 0.5);
Y1 := trunc(Y - z * Sin(Pi / 3) * 0.5);

red := trunc(RR0 * 255) div trunc(RR1 + 60);
green := trunc(255 * ia / 10) mod 255;
blue := trunc(0.1 * ia * ja) mod 255;
if (i = 0) and (j = 0) then begin
red := 0;
green := 0;
blue := 0;
end;
Line (X1 + xx, Y1 + yy, X2 + xx, Y2 + yy, RGBColor(red, green, blue));
X2 := X1;
Y2 := Y1;
end;
end;
ReadKey;
CloseGraph;
end.

smile

Я новичок в етом, помогите мне с компиляцией! smile

Автор: Fedor 3.1.2005, 23:56
Возьми где-то файл Math.tpu

Автор: Pakshin A. S. 3.1.2005, 23:57
Как понятно из ошибка: отсутствует подключаемый модуть Math...
Надо будет его поискать... Может просто с обычного паскаля скопировать в папку с tpu...

Автор: Кругой_Ной 4.1.2005, 00:05
Попробую!
А сам код правилно да?
Добавлено @ 00:10
А у кого етот модул есть можеть скините мне?

Автор: Fedor 4.1.2005, 08:07
Цитата
А сам код правилно да?

А вот ты поставь модуль, скомпилируй, протестируй и узнаешь smile

Автор: dm9 4.1.2005, 10:09
Кругой_Ной, math.pas - прикрепляю. Не знаю уж, тот ли тебе нужен...

Можно просто кинуть модуль в папку программы - должно работать, по идее...

Кстати о птичках, это же TMT Паскаль... Или в BP с некоторых пор появилась ф-ция SetSVGAMode?
А ты в чём пытаешься это откомпилировать?

Автор: Pakshin A. S. 4.1.2005, 10:50
Как мне понимается, компилатор - TPW

Автор: dm9 4.1.2005, 11:05
Ты хочешь сказать, что в TPW есть SetSVGAMode?
Что-то мой BPW таковой в справке не имеет.

Автор: dm9 4.1.2005, 11:22
Кстати, Кругой_Ной, пользуйтесь тэгами code, пожалуйста. Для этого используется кнопка "Код"...
Добавлено @ 11:23
Код
uses WinCRT, Math, Graph;
var
 i,j: integer;
 t, s: extended;
 ia,ja, RR, RR0, RR1: extended;
 x, y, z: extended;
 X1, Y1, X2, Y2, xx, yy: LongInt;
 red, green, blue: byte;

begin
 SetSVGAMode(800,600,16,LFBorBanked);  

 if GraphResult<>grOk then begin      
   Writeln('Mode not supported..');
   Halt(0);
 end;
 xx := 400;
 yy := 300;
 RR := 260;
 RR1 := 60;
 For i := 0 To 719 do begin
   ia := i / 2.0;              
   For j := 0 To 719 do begin
     ja := j / 2;              
     t := ia * Pi / 180;        
     s := ja * Pi / 180;        
{1a}  RR0 := RR1;
{1b}  {RR0 := RR1 + 60 * IntPower(Sin(2 * t),2);}
{1c}  {RR0 := RR1 + 60 * IntPower(Sin(2 * t),2) +
             60 * IntPower(Sin(8 * s),24) * IntPower(Sin(16 * t),24);}
{1d}  {RR0 := RR1 + 60 * IntPower(Sin(16 * s),24) * IntPower(Sin(32 * t),24);}
{1e}  {RR0 := RR1 + 60 * IntPower(Sin(4 * s),24) * IntPower(Sin(8 * t),24);}
     X := RR * Cos(t) + RR0 * Cos(s);
     Y := RR0 * Sin(s);
{2a}  z := RR * Sin(t) + RR0 * Cos(s);
{2b}  {z := RR * Sin(2 * t) + RR0 * Cos(s);}
     
     X1 := trunc(X - z * Cos(Pi / 3) * 0.5);
     Y1 := trunc(Y - z * Sin(Pi / 3) * 0.5);

     red := trunc(RR0 * 255) div trunc(RR1 + 60);
     green := trunc(255 * ia / 10) mod 255;      
     blue := trunc(0.1 * ia * ja) mod 255;      
     if (i = 0) and (j = 0) then begin
       red   := 0;      
       green := 0;      
       blue  := 0;      
     end;
     Line (X1 + xx, Y1 + yy, X2 + xx, Y2 + yy, RGBColor(red, green, blue));
     X2 := X1;
     Y2 := Y1;
   end;
 end;
 ReadKey;          
 CloseGraph;
end.


Красивее выглядит ведь?

Автор: Fedor 4.1.2005, 13:51
И еще никак не могу понять, зачем там вообще Math нужен... smile

Автор: dm9 4.1.2005, 16:42
Кстати, да. Нафиг не нужен. А нужен был для IntPower. Сейчас все употребления этой ф-ции закомментированы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)