Program decomposition
Program decomposition refers to the process of breaking down a complex program into smaller, more manageable, and understandable parts or components.
It avoids unnecessary common code and improves the structural quality of code.
Print a classic guitar
print(" ___")
print(" o|* *|o")
print(" o|* *|o")
print(" o|* *|o")
print(" \===/")
print(" |||")
print(" |||")
print(" ___|||___")
print(" / ||| \ ")
print(" / ||| \ ")
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(" / ||| \ ")
print(" / ||| \ ")
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
Print a retro head guitar
print(" ._-_.")
print(" +|\G/|+")
print(" +|\./|+")
print(" +|\./|+")
print(" \===/")
print(" |||")
print(" |||")
print(" ___|||___")
print(" / ||| \ ")
print(" / ||| \ ")
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(" / ||| \ ")
print(" / ||| \ ")
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
Print a retro head long neck guitar
print(" ._-_.")
print(" +|\G/|+")
print(" +|\./|+")
print(" +|\./|+")
print(" \===/")
print(" |||")
print(" |||")
print(" |||")
print(" |||")
print(" ___|||___")
print(" / ||| \ ")
print(" / ||| \ ")
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(" / ||| \ ")
print(" / ||| \ ")
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
Class activity one
Compare the three types of guitar, write your asnwers:
Class activity one – answers
Classic guitar vs. Retro head guitar:
Class activity one – answers
Retro head guitar vs. Retro head long neck guitar:
Decomposition
def print_classic_guitar():
print_head()
print_neck()
print_body()
def print_retro_guitar():
print_retro_head()
print_neck()
print_body()
def print_long_guitar():
print_head()
print_neck()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_retro_guitar() # print retro head guitar
print_long_guitar() # print long neck guitar
main()
Class activity two
Read the code for classic guitar, write your asnwers:
Print a classic guitar
print(" ___")
print(" o|* *|o")
print(" o|* *|o")
print(" o|* *|o")
print(" \===/")
print(" |||")
print(" |||")
print(" ___|||___")
print(" / ||| \ ")
print(" / ||| \ ")
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(" / ||| \ ")
print(" / ||| \ ")
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
Class activity two – answers
Read the code for classic guitar, answer the questions:
Write functions
Write functions print_head
, print_neck
, and print_body
:
def print_classic_guitar():
print_head()
print_neck()
print_body()
def print_long_guitar():
print_head()
print_neck()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_long_guitar() # print long neck guitar
main()
Write functions – answers
def print_head():
print(" ___")
print(" o|* *|o")
print(" o|* *|o")
print(" o|* *|o")
print(" \===/")
def print_neck():
print(" |||" + "\n" + " |||")
def print_body():
print(" ___|||___")
print(" / ||| \ ")
print(" / ||| \ ")
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(" / ||| \ ")
print(" / ||| \ ")
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
def print_classic_guitar():
print_head()
print_neck()
print_body()
def print_long_guitar():
print_head()
print_neck()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_long_guitar() # print long neck guitar
main()
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
Write functions – improved answers
def print_head():
print(" ___")
pattern = " o|* *|o"
print(pattern)
print(pattern)
print(pattern)
print(" \===/")
def print_neck():
print(" |||" + "\n" + " |||")
def print_body():
print(" ___|||___")
pattern = " / ||| \ " + "\n" + " / ||| \ "
print(pattern)
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(pattern)
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
def print_classic_guitar():
print_head()
print_neck()
print_body()
def print_long_guitar():
print_head()
print_neck()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_long_guitar() # print long neck guitar
main()
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
Write a function
Write print_retro_head
:
def print_retro_guitar():
print_retro_head()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_long_guitar() # print long neck guitar
print_retro_guitar() # print retro head guitar
main()
Write a function – answer
def print_head():
print(" ___")
pattern = " o|* *|o"
print(pattern)
print(pattern)
print(pattern)
print(" \===/")
def print_retro_head():
print(" ._-_.")
print(" +|\G/|+")
pattern = " +|\./|+"
print(pattern)
print(pattern)
print(" \===/")
def print_neck():
print(" |||" + "\n" + " |||")
def print_body():
print(" ___|||___")
pattern = " / ||| \ " + "\n" + " / ||| \ "
print(pattern)
print("| ||| |")
print(" \ (|||) /")
print(" | ||| |")
print(pattern)
print("/ ||| \ ")
print("| [===] |")
print(" \ /")
print(" '. .'")
print(" '-------'")
def print_classic_guitar():
print_head()
print_neck()
print_body()
def print_retro_guitar():
print_retro_head()
print_neck()
print_body()
def print_long_guitar():
print_head()
print_neck()
print_neck()
print_body()
def main():
print_classic_guitar() # print classic guitar
print_retro_guitar() # print retro head guitar
print_long_guitar() # print long neck guitar
main()
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
._-_.
+|\G/|+
+|\./|+
+|\./|+
\===/
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'
___
o|* *|o
o|* *|o
o|* *|o
\===/
|||
|||
|||
|||
___|||___
/ ||| \
/ ||| \
| ||| |
\ (|||) /
| ||| |
/ ||| \
/ ||| \
/ ||| \
| [===] |
\ /
'. .'
'-------'