uses Crt, Graph;
const s=5;
var I,L,J,K,N,M,Gd, Gm: Integer;
VAR F:FILE OF BYTE;
B:BYTE;

PROCEDURE ZOOM;
LABEL KONEC;

BEGIN;
READLN;
FOR I:=340 DOWNTO 1 DO
   FOR J:=260 DOWNTO 1 DO
   BEGIN
      IF GETPIXEL(I,J)<>0 THEN
         BEGIN
            N:=0;WHILE (GETPIXEL(I-N,J)>0) AND (N<s) DO        N:=N+1;
            M:=0;WHILE (GETPIXEL(I,J-M)>0) AND (M<s) DO        M:=M+1;
            if (n<s) and (m<s)
            then begin PUTPIXEL(I*2,J*2,15);PUTPIXEL(I,J,0);
                 end;
            IF (N<s)  THEN
                     BEGIN
                            FOR K:=0 TO N-1 DO PUTPIXEL(I*2-K,J*2,15);
                            FOR K:=0 TO N   DO
                            if getpixel(i-k,j-1)<>0 then PUTPIXEL(I*2-K,J*2-1,15);

                            FOR K:=0 TO N   DO
                            if getpixel(i-k,j+1)<>0 then PUTPIXEL(I*2-K,J*2+1,15);
                            PUTPIXEL(I,J,0);
                        GOTO KONEC
                      END;
            IF M<s THEN BEGIN
                        FOR K:=0  TO m-1 DO PUTPIXEL(I*2,J*2-k,15);
                        FOR K:=-1  TO m DO
                            if getpixel(i-1,j-k)<>0 then PUTPIXEL(I*2-1,J*2-k,15);
                        PUTPIXEL(I,J,0);
                        GOTO KONEC

                        END;
            PUTPIXEL(I*2,  J*2  ,15);
            PUTPIXEL(I*2-1,J*2-1,15);
            PUTPIXEL(I*2  ,J*2-1,015);
            PUTPIXEL(I*2-1,J*2  ,015);
            PUTPIXEL(I,J,0);
   KONEC:
   END;
END;
Readln;
END;


begin
 ASSIGN (F,'POKUS.BMP');
RESET(F);
writeln;
writeln('DEMO NA ZOOM - koeficient pevne na 2');
writeln('Sila se zachova pro tenke cary, plochy se upravi dle koef.');
writeln('soubor POKUS.BMP vytvoren pomoci PAINT ve windows, cernobily, 640x480');
writeln;
writeln('nekolik dalsich demonstracnich prikladu kresleno v programu');
readln;

 Gd := Detect;
 InitGraph(Gd, Gm, 'g:\bp\bgi');
FOR I:=1 TO 62 DO READ(F,B);
FOR J:=1 TO 480 DO
FOR I:=1 TO 80 DO BEGIN READ(F,B);FOR K:=1 TO 8 DO BEGIN
IF B<128 THEN  PUTPIXEL(I*8+K,480-J,15) ELSE B:=B-128; B:=B*2;
END END;
 ZOOM;
 CLOSE(F);

 InitGraph(Gd, Gm, 'g:\bp\bgi');
   SetLineStyle(0, 2, 3);
   LINE(60,45,150,200);
   ZOOM;
   InitGraph(Gd, Gm, 'g:\bp\bgi');
   LINE(30,45,150,200);
   SetLineStyle(0, 2, 3);
   RECTANGLE(25,25,175,175);
   SetLineStyle(0, 2, 1);
   RECTANGLE(45,45,135,175);
   CIRCLE(100,100,50);
   ZOOM;
 InitGraph(Gd, Gm, 'g:\bp\bgi');
OUTTEXTxy(60,40,'pokusny text');
   Line(10, 10, 200, 200);
   Line(10, 200, 200, 200);
   Line(10, 200, 200, 10);
   SetLineStyle(0, 2, 1);
   Line(10, 10, 10, 200);
   Line(10, 10, 200, 10);
   Line(200, 10, 200,200);
ZOOM;
 CloseGraph;
end.

I:INTEGER;

BEGIN;
FOR I:=1 TO 100 DO
BEGIN READ(F,B); WRITE(B) END;
CLOSE(F);
READLN

