program julia_bw; {Almost exactly the same as julia_col. There is only one main difference: this creates the Julia sets in black and white as opposed to colour.} uses crt, graph; var xcorner, y2corner, x2corner, ycorner: real; xsize, ysize, k, i, xgap, ygap, max: integer; ca, cb, za2, za1, za, zb: real; gd, gm: integer; count: word; procedure iterate; begin count := 0; za2 := za; while 1=1 do begin za1 := za2; za2 := (za1 * za1 - zb * zb) + ca; zb := za1 * zb * 2 + cb; IF za2 * za2 + zb * zb > 4 THEN EXIT; count := count + 1; IF count > max THEN EXIT end; END; procedure main; begin gd := Detect; InitGraph(gd, gm, 'd:\tp\bgi'); xcorner := -1.5; y2corner := 1.5; x2corner := 1.5; ycorner := -1.5; max := 50; xsize := 400; ysize := 400; xgap := 10; ygap := 10; setcolor(white); {CLS} FOR k := ysize downTO 1 do FOR i := 1 TO xsize do begin za := (i / xsize) * (x2corner - xcorner) + xcorner; zb := (k / ysize) * (y2corner - ycorner) + ycorner; ca := 0.360284; cb := 0.100376; iterate; {The line below is the only different part.} if count > max then LINE (xgap + i, ygap +ysize- k, xgap+i, ygap +ysize- k) end; while not keypressed do end; begin main; end.