CSC111 HW 1 2011

From dftwiki3
Revision as of 14:20, 13 September 2011 by Thiebaut (talk | contribs) (Problem #4)
Jump to: navigation, search

--D. Thiebaut 13:59, 13 September 2011 (EDT)




Page under construction!
UnderConstruction.jpg


This homework assignment is due on Tuesday 9/20 evening, at midnight. Assignments submitted after this date and time will not be graded.

You are required to work on Homework 1 or Homework 2 in pairs, following the recommendations of the paper on pair programming that we have covered/will cover in class on 9/15.

If you cannot work in pairs for this assignment, then you will have to do so for Homework #2.

If you work in pairs, include both names and account number at the top of your programs, in a comment.

Problem 1

  • Write a python program called hw1a.py that uses a list of names, defined as follows:
  dwarfNames = [ "Sleepy", "Sneezy", "Bashful", "Happy", "Grumpy", "Dopey", "Doc" ]
and prints them with boxes around them. This time the boxes are all 20 characters in length. The length of the box is fixed.
+------------------+
| Sleepy           |
+------------------+

+------------------+
| Sneezy           |
+------------------+

etc...
  • Note that there is one blank line printed between each box.
  • Create a program that uses a main function, as we did in class on Tuesday.
  • When you are done, transfer your program to your Linux 111a-xx account, and submit it as follows (more info on how to do that in class on Thursday 9/15).
 submit hw1 hw1a.py

Problem #2

  • Same problem as Problem #1, but this time the list is slightly different. Some names have a space at the end, some not. The reason is that I want all names to contain an even number of characters.
  dwarfNames = [ "Sleepy", "Sneezy", "Bashful ", "Happy ", "Grumpy", "Dopey ", "Doc " ]
  • Your assignment is to write a program called hw1b.py that displays the list of names centered in a box that is 20 characters in length.
+------------------+
|      Sleepy      |
+------------------+

+------------------+
|      Sneezy      |
+------------------+

etc...


Hints: we saw in class, with the temperature conversion program, that to divide one number by another number, we use the / symbol, and the result is a real number. Here, however, you want to get the integer result, so that you can use it to generate many minus or dash symbols. The operator that gives you the integer quotient when dividing an integer by another integer is //.

To understand what I mean, try these statements in Idle:

 print( 10 / 3 )
 print( 10 // 3 )
 print( 100 / 3 )
 print( 100 // 3 )
 print( 3 / 10 )
 print( 3 // 10 )

We say that the / operator gives you the real result, while // gives you the integer result.


  • When you are done, transfer your program to your Linux 111a-xx account, and submit it as follows:
 submit hw1 hw1b.py

Problem #3

  • Create a program called hw1c.py that uses the same list as in Problem #1 and that outputs the names in this fashion:
+------------------+
|Sleepy            |
|Sneezy            |
|Bashful           |
|Happy             |
|Grumpy            |
|Dopey             |
|Doc               |
+------------------+ 
Note that there are now only two lines of dashes, and all the names fit inside the box.
  • Submit your program as follows:
   submit hw1 hw1c.py

Problem #4

  • Create a program called hw1d.py that uses the same list as in Problem #1 and that outputs the names in this fashion:
+------------------+
|            Sleepy|
|            Sneezy|
|           Bashful|
|             Happy|
|            Grumpy|
|             Dopey|
|               Doc| 
+------------------+
Note that there are now only two lines of dashes, and all the names fit inside the box.
  • Submit your program as follows:
   submit hw1 hw1d.py

Problem #5

  • Create a program called hw1e.py that uses the same list as in Problem #1 and that outputs the names in this fashion:
+-------------------------------------+
|           Sleepy | Sleepy           |
|           Sneezy | Sneezy           |
|          Bashful | Bashful          |
|            Happy | Happy            |
|           Grumpy | Grumpy           |
|            Dopey | Dopey            |
|              Doc | Doc              | 
+-------------------------------------+
  • Your program must use a loop.
  • Submit your program as follows:
  submit hw1 hw1e.py

Optional and Extra Credit

  • This problem is only for people who have done some programming before and feel they need some more challenge than provided by the other problems. TAs are not allowed to help with this extra-credit problem. If this problem seems too challenging, don't attempt to work on it; I am making it available only to people with previous programming experience.
  • Write a program called hw1x.py that uses the list of names defined as follows:
dwarfNames = [ "Sleepy", "Sneezy", "Bashful", "Happy", "Grumpy", "Dopey", "Doc" ]
  • and that outputs the names all on one line, in a box, as follows:
+---------------------------------------------+
|Sleepy Sneezy Bashful Happy Grumpy Dopey Doc | 
+---------------------------------------------+
  • Submit your program as follows:
 submit hw1 hw1x.py


Hint: Look at the end='\n' option provided by the print statement, and documented in the first chapter of Zele. You can also figure out how the end option works by trying out these different python statements:
 name = "hello"
 print( name,  end='\n' )
 print( "there" )

 print( "-" * 80 )

 print( name,  end=' ' )  # there is space between the two quotes
 print( "there" )

 print( "-" * 80 )

 print( name,  end=',' )
 print( "there" )