Program with two procedures to produce pretty pattenrs. program diamond; var m: integer; procedure dia(var n:integer); var i: integer; spa, ast: string; begin spa := ' '; ast := '*********************************'; i := 0; while i < n do begin writeln(copy(spa,1,10-i),copy(ast,1,2*i+ 1)); i := i + 1; end; end; procedure mond(var n:integer); var i: integer; spa, ast: string; begin spa := ' '; ast := '*********************************'; i := n - 1; while i > 0 do begin writeln(copy(spa,1,11-i),copy(ast,1,2*(i-1)+ 1)); i := i - 1; end; end; begin writeln('n?'); readln(m); while m > 0 do begin dia(m); mond(m); writeln(' '); m := m -1; end; readln; end. Sample output: >n? <3 > * > *** > ***** > *** > * > > * > *** > * > > *