uses Graph;

var
 grDriver: Integer;
 grMode: Integer;
 ErrCode: Integer;
 x, y, x1, y1, x2, y2: integer;
 pi, dx, dy: real;
begin
 grDriver := Detect;
 InitGraph(grDriver, grMode,' ');
 ErrCode := GraphResult;
 if ErrCode =grOk then
 begin
   x1:=0; y1:=0; x2:=GetMaxX; y2:=150; pi:=0; y:=0;
   dx:=x2-x1; dy:=y2-y1;
   pi:=2*dy*x2-(2*dx*y2);
 for x:=0 to x2 do begin
   if (pi<=0) then begin
      PutPixel(x,y, red);
      pi:= pi+ (2*dy);
   end
   else begin
      PutPixel(x,y, white);
      y:=y+1;
      pi:= pi+ (2*dy) - (2*dx);
   end;
 end;
{ Line(0,0,100,50);
 }  Readln;
   CloseGraph;
 end
 else
   Writeln('Graphics error:', GraphErrorMsg(ErrCode));
end.
