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
   255   256   257   258   259   260   261   262   263   264   265