Jump to content

Yin and yang: Difference between revisions

Add Modula-2
m (→‎{{header|68000 Assembly}}: general clarification)
(Add Modula-2)
Line 3,091:
 
end.</lang>
 
=={{header|Modula-2}}==
<lang modula2>MODULE Taijitu;
FROM InOut IMPORT Write, WriteLn;
 
PROCEDURE YinYang(r: INTEGER);
VAR x, y: INTEGER;
PROCEDURE circle(x, y, c, r: INTEGER): BOOLEAN;
BEGIN
RETURN r*r >= (x DIV 2) * (x DIV 2) + (y-c) * (y-c);
END circle;
PROCEDURE pixel(x, y, r: INTEGER): CHAR;
BEGIN
IF circle(x, y, -r DIV 2, r DIV 6) THEN RETURN '#';
ELSIF circle(x, y, r DIV 2, r DIV 6) THEN RETURN '.';
ELSIF circle(x, y, -r DIV 2, r DIV 2) THEN RETURN '.';
ELSIF circle(x, y, r DIV 2, r DIV 2) THEN RETURN '#';
ELSIF circle(x, y, 0, r) THEN
IF x<0 THEN RETURN '.';
ELSE RETURN '#';
END;
ELSE RETURN ' ';
END;
END pixel;
BEGIN
FOR y := -r TO r DO
FOR x := -2*r TO 2*r DO
Write(pixel(x,y,r));
END;
WriteLn();
END;
END YinYang;
 
BEGIN
YinYang(4);
WriteLn();
YinYang(8);
END Taijitu.</lang>
{{out}}
<pre> ..
........##
......##....##
..........####
..........#######
....##########
..####..######
..########
##
 
..
............##
..................####
............##......######
..........######......####
..............##......########
......................########
....................##########
..................###############
..........####################
........######################
........######..##############
....######......##########
......######..############
....##################
..############
## </pre>
 
=={{header|NetRexx}}==
2,114

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.