help! unit graph

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение mike » 13.01.2006 21:59:00

procedure asd;
var ii: integer;

begin
{fon}
setfillstyle(solidfill, darkgray);
bar(0, 0, getmaxx, getmaxy);
repeat
setcolor(black);
inc(ii, 10);
line(0, (getmaxy div 2)-ii, getmaxx, (getmaxy div 2)-ii);
line(0, (getmaxy div 2)+ii, getmaxx, (getmaxy div 2)+ii);
line((getmaxx div 2)-ii, 0, (getmaxx div 2)-ii, getmaxy);
line((getmaxx div 2)+ii, 0, (getmaxx div 2)+ii, getmaxy);
until (getmaxx <= ii*2);

end;



:o pochemu eta procedura neresujet 4ernije liniii na serom fone?
pozalujsta skazite v 4em moja oshibka !
mike
 

Сообщение virt » 13.01.2006 23:30:04

Потому что переполнение возникает изза неопределенного ii

В начале процедуры добавь
Код: Выделить всё
ii := 0;
virt
новенький
 
Сообщения: 35
Зарегистрирован: 01.12.2005 12:31:41

Сообщение mike » 14.01.2006 00:04:38

spasibo!

no a po4emu kogda eto ne v procedure a v samom osnovanii vsepokazivajetsa a ja ii ne obnuljal !?
mike
 

Сообщение virt » 14.01.2006 08:52:45

А я откуда знаю ,я кода не видел.
virt
новенький
 
Сообщения: 35
Зарегистрирован: 01.12.2005 12:31:41

Сообщение Guest » 14.01.2006 13:13:35

V etom sluchaje vse rabotajet (vse linii pokazivajutsa)!

uses graph, crt;
var st,tr,ii: integer;

begin
detectgraph(st, tr);
initgraph(st, tr, '');
{fon}
setfillstyle(solidfill, darkgray);
bar(0, 0, getmaxx, getmaxy);
repeat
setcolor(black);
inc(ii, 10);
line(0, (getmaxy div 2)-ii, getmaxx, (getmaxy div 2)-ii);
line(0, (getmaxy div 2)+ii, getmaxx, (getmaxy div 2)+ii);
line((getmaxx div 2)-ii, 0, (getmaxx div 2)-ii, getmaxy);
line((getmaxx div 2)+ii, 0, (getmaxx div 2)+ii, getmaxy);
until (getmaxx <= ii*2);
readln;
closegraph;
end.


A v etot sluchaje toko serij fon i vse (chernije linii nevidni)! (budut vidni jesli toko vna4ale proceduri postavitj ii:=0; )!

uses graph, crt;
var st,tr: integer;

procedure asd;
{var ii: integer;}
begin
{fon}
setfillstyle(solidfill, darkgray);
{ii:=0;}
bar(0, 0, getmaxx, getmaxy);
repeat
setcolor(black);
inc(ii, 10);
line(0, (getmaxy div 2)-ii, getmaxx, (getmaxy div 2)-ii);
line(0, (getmaxy div 2)+ii, getmaxx, (getmaxy div 2)+ii);
line((getmaxx div 2)-ii, 0, (getmaxx div 2)-ii, getmaxy);
line((getmaxx div 2)+ii, 0, (getmaxx div 2)+ii, getmaxy);
until (getmaxx <= ii*2);
end;

begin
detectgraph(st, tr);
initgraph(st, tr, '');
asd;
readln;
closegraph;
end.


Pochemu v pervom sluchaje vse pokazivajetsa a vo vtorom ne 4ego, jesli nepostavitj ii:=0;???
(izvinjajusj za tupostj!)
Guest
 

Сообщение dunpeal » 14.01.2006 16:21:21

Потому, глобальные переменные обнуляются (тут инициализируются) по дефолту, а пользовательских процедурах нет
dunpeal
 

Сообщение mike » 14.01.2006 19:14:11

:D spasibo!
mike
 


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 86

Рейтинг@Mail.ru