'Free Basic version .9 #define Intrange(f,l) int(Rnd*(((l)+1)-(f))+(f)) Type pair As Integer x,y End Type Operator =(a As pair,b As pair) As Integer Return a.x=b.x And a.y=b.y End Operator Function NotInArray(a() As pair,n As pair) As Integer For z As Integer=Lbound(a) To Ubound(a) If a(z)=n Then Return 0 Next z Return -1 End Function Redim As pair pts(0) Dim As Integer x,y,counter Do counter=counter+1 x=IntRange(-20,20) y=IntRange(-20,20) var root=Sqr(x*x+y*y) If 10<= root And root<=15 Then If NotInArray(pts(),Type(x,y)) Then Redim Preserve pts(1 To Ubound(pts)+1) pts(Ubound(pts))=Type(x,y) End If End If Loop Until counter=100000 '============== Plot to Console ====================== dim as integer yres=hiword(width) dim as integer xres=loword(width) #define map(a,b,x,c,d) ((d)-(c))*((x)-(a))/((b)-(a))+(c) #define _X(num) int( map(0,xres,(num),0,loword(width))) #define _Y(num) int( map(0,yres,(num),0,hiword(width))) counter=0 For n As Integer=Lbound(pts) To Ubound(pts) counter=counter+1 if counter <=100 then var xpos=map(-20,20,pts(n).x,0,xres) var ypos=map(-20,20,pts(n).y,0,yres) locate _Y(ypos),_X(xpos) print "*" end if Next n print locate 1,1 Print "Total number of points "; counter print "Total number plotted ";100 print "done" Sleep