Program with procedures calling procedures. program diamonds; 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; procedure diamond(var s:integer); begin writeln; dia(s); mond(s); end; begin writeln('n?'); readln(m); while m > 0 do begin dia(m); mond(m); m := m - 1; end; readln; end. Sample output: >n? <2 > > * > *** > * > > * Program with procedure to find volume of cylinder. program vols; var r, l, v: real; procedure cylvol(var radius, leng, vol: real); var pi, endarea: real; begin pi := 3.14159265; endarea := pi * radius * radius; vol := endarea * leng; end; begin writeln('radius ? '); readln(r); while r > 0.0 do begin writeln('length ? '); readln(l); cylvol(r, l, v); writeln('The volume of the cylinder is ', v:10:2); writeln('radius ? '); readln(r); end; readln; end. >Sample output: >radius ? <1.0 >length ? <10.0 >The volume of the cylinder is 31.42 >radius ? <10.0 >length ? <1.0 >The volume of the cylinder is 314.16 >radius ? <0.0