Page 260 - Computer Science Class 11 With Functions
P. 260
Sample Output:
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
Fig 10.10 :Sharp Diamond
10.7.4 Hollow Diamond
Now it is time to apply our learning to draw a hollow diamond pattern. Fig 10.11 shows a hollow diamond comprising
11 rows (six rows in a hollow upper isosceles triangle and five rows in an inverted hollow isosceles triangle). To build a
hollow upper isosceles triangle, nUpper is set to 6. In the first row, we need 5 (=6-1) spaces followed by one asterisk.
For the next row, we need 4 (=6-2) leading spaces. The leading spaces are followed by two asterisks separated by one
space, in all 3 (=2×2-1)characters. For the next row, we need 3(=6-3) leading spaces. The leading spaces are followed by
th
two asterisks separated by three spaces, in all and 5 (=2×3-1) characters. Thus, in i row we need nUpper-i leading
spaces. The leading spaces are followed by two asterisks, separated by an appropriate number of spaces. To draw the
inverted isosceles triangle, the number of leading spaces decreases by one in each subsequent row. We incorporate
these details into the function hollowDiamond(nRows, symbol).
Program 10.18 To display a hollow diamond.
01 def hollowDiamond(nRows, symbol):
02 '''
03 Objective: To display a hollow diamond
04 Inputs:
05 nRows : number of rows
06 symbol: symbol to be printed
07 Return value: None
08 '''
09 assert nRows%2==1, 'A diamond must have odd no of rows'
10 # Upper part of hollow diamond
11 nUpper = nRows//2 +1
12 for i in range(1, nUpper+1):
13 print(' ' * (nUpper-i), end = '')
14
15 for j in range(1, 2*i):
16 if j==1 or j==2*i-1:
17 print(symbol, end = '')
18 else:
19 print(' ', end = '')
20 print()
21 # Lower part of hollow diamond
22 nInverted = nRows//2
23 for i in range(nInverted,0,-1):
24 print(' ' * (nInverted-i+1), end = '')
25 for j in range(1, 2*i):
26 if j==1 or j==2*i-1:
27 print(symbol, end = '')
28 else:
258 Touchpad Computer Science-XI

