Introduction to Computer Science I

Lab 3


The basics of nested loops

As some of you have discovered on your own, you are allowed to place one loop inside another. In doing so, all of the repetitions of the inner loop are performed every single time the body of the outer loop is performed. For example, the following program will print something like your standard, elementary school multiplication tables:

public class MultiplicationTables {

    public static void main (String[] args) {

	int i = 1;
	while (i < 10) {

	    int j = 1;
	    while (j < 10) {

		System.out.print(i + " * " + j + " = " + (i*j) + "   ");
		j = j + 1;

	    } // end while j

	    System.out.println();
	    i = i + 1;

	} // end while i

    } // end main ()

} // end class MultiplicationTables
    

The output will look like this:

1 * 1 = 1   1 * 2 = 2   1 * 3 = 3   1 * 4 = 4   1 * 5 = 5   1 * 6 = 6   1 * 7 = 7   1 * 8 = 8   1 * 9 = 9   
2 * 1 = 2   2 * 2 = 4   2 * 3 = 6   2 * 4 = 8   2 * 5 = 10   2 * 6 = 12   2 * 7 = 14   2 * 8 = 16   2 * 9 = 18   
3 * 1 = 3   3 * 2 = 6   3 * 3 = 9   3 * 4 = 12   3 * 5 = 15   3 * 6 = 18   3 * 7 = 21   3 * 8 = 24   3 * 9 = 27   
4 * 1 = 4   4 * 2 = 8   4 * 3 = 12   4 * 4 = 16   4 * 5 = 20   4 * 6 = 24   4 * 7 = 28   4 * 8 = 32   4 * 9 = 36   
5 * 1 = 5   5 * 2 = 10   5 * 3 = 15   5 * 4 = 20   5 * 5 = 25   5 * 6 = 30   5 * 7 = 35   5 * 8 = 40   5 * 9 = 45   
6 * 1 = 6   6 * 2 = 12   6 * 3 = 18   6 * 4 = 24   6 * 5 = 30   6 * 6 = 36   6 * 7 = 42   6 * 8 = 48   6 * 9 = 54   
7 * 1 = 7   7 * 2 = 14   7 * 3 = 21   7 * 4 = 28   7 * 5 = 35   7 * 6 = 42   7 * 7 = 49   7 * 8 = 56   7 * 9 = 63   
8 * 1 = 8   8 * 2 = 16   8 * 3 = 24   8 * 4 = 32   8 * 5 = 40   8 * 6 = 48   8 * 7 = 56   8 * 8 = 64   8 * 9 = 72   
9 * 1 = 9   9 * 2 = 18   9 * 3 = 27   9 * 4 = 36   9 * 5 = 45   9 * 6 = 54   9 * 7 = 63   9 * 8 = 72   9 * 9 = 81
    

A review of the char data type

We were recently introduced to the char type that allows us to store and manipulate character values. The following example shows the specifics of assigning, comparing, and performing simple arithmetic on a character value. This little program prints the alphabet.

public class Alphabet {

    public static void main (String[] args) {

	char letter = 'A';
	while (letter <= 'Z') {

	    System.out.print(letter);
	    letter = (char)(letter + 1);

	} // end while letter

    } // end main ()

} // end class Alphabet
    

Your assignment, part A: Printing a grid pattern

Write a program, named PrintGrid, that does the following:

  1. Ask the user for a number of rows to print.

  2. Ask the user for a number of columns to print.

  3. Using those user-supplied dimensions, print a grid that has the following format (here assuming 3 rows and 5 columns):

    A-1 A-2 A-3 A-4 A-5
    B-1 B-2 B-3 B-4 B-5
    C-1 C-2 C-3 C-4 C-5
    	

Your assignment, part B: Christmas trees (or non-sectarian bushes)

Write a program, named PrintTree, that does the following:

  1. Ask the user for the height of the tree to print.

  2. Print the following pattern, forming a nice, text-based "tree" of the requested height (here assuming a height of 5):

        *
       ***
      *****
     *******
    *********
        |
    	

Submitting your work

When your work is complete, use the cs11-submit program again. For this lab, you will submit your work with the following command at the shell prompt:

cs11-submit lab-3 PrintGrid.java PrintTree.java

This lab is due on Thursday, February 21st at 11:59 pm

Scott F. H. Kaplan
Last modified: Fri Feb 15 11:59:46 EST 2008