Найдите ошибку, рисунок должен быть симметричным uses graphABC,crt; VAR t: integer;...

0 голосов
31 просмотров

Найдите ошибку, рисунок должен быть симметричным
uses graphABC,crt;
VAR t: integer;
procedure lin( x,y,a,h: integer);
begin
t:= a- x;
if ( h> 0) then
begin
line ( x,y,a,y);
lin (x+ t div 4,y+ h, a- t div 4, h div 2);
lin (x+ t div 4,y- h, a- t div 4, h div 2);
end;
end;
BEGIN
lin ( 20, 100, 80,20);
END.


Информатика (145 баллов) | 31 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Uses graphABC;
procedure LineFamily(x, y, a, h: integer);
var
    t: integer;
begin
    t := a - x;
    if (h > 0) then
    begin
        Line(x, y, a, y);
        LineFamily(x + t div 4, y + h, a - t div 4, h div 2);
        LineFamily(x + t div 4, y - h, a - t div 4, h div 2);
    end;
end;

begin
    LineFamily(20, Window.Height div 2, Window.Width - 20, Window.Height div 4);
end.

нечего использовать глобальные перемены в процедуре

(53.1k баллов)
0

Спасибо огромное !