Assignments | Class Photo | Computing Resources | Course Home | Lab Hours/Tutoring | Schedule | Submit

Saint Louis University

Computer Science 180
Data Structures

Michael Goldwasser

Spring 2009

Dept. of Math & Computer Science


Lab Assignment 00

Topic: A First Glance at C++
Class Time: Tuesday, 13 January 2009
Submission Deadline: Friday, 16 January 2009, 11:59pm


  1. If you have not already done so, please fill out the online questionnaire for the course, in order to establish credentials for submitting assignments.

  2. Open up a console window and change to the working directory of your choice. You may create a new directory with a command such as
    mkdir csci180
    and then change to that directory with the command
    cd csci180

  3. We are providing a directory containing sample C++ source code named gcd.cpp. Copy our directory into your working directory with the following command (note well the final period)
    cp -R /Public/goldwasser/180/labs/lab0 .
    and then change into your copy of the directory as
    cd lab0

  4. That directory will contain the file gcd.cpp. You should see it in the listing of your directory with the command
    ls

    View the source code by opening the file with a text editor. A simple text editor on turing is called kate. You may either type kate gcd.cpp in the console to start the program or look for it in the "Utilities" folder of the "K" menu at the bottom-left corner of your workspace. If you want a more advanced text editor, my personal favorite is named emacs.

  5. Our next goal is to compile the source code. We recommend doing this with the command
    make gcd

    make is not actually the C++ compiler, but a convenient utility that assits when building applications. When you execute that command, it invokes the actual compiler with a command such as
    g++ gcd.cpp -o gcd

    If you work on a system other than turing and you do not have make installed, you can compile your code by directly invoking g++ as shown above. Our reasons for prefer the use of make are that it is a simpler syntax and that make can better handle complex builds when we start to use multiple source files. Make is also clever in that it won't recompile if the source code has not been modified since the last build. For example, type make gcd again and see how it responds.

  6. After a successful compilation, the output of the compiler will be an executable named gcd (that file name was dictated with the syntax -o gcd when g++ was invoked).

    You should be able to see that file in the listing of your directory with the command
    ls

  7. The executable can be run from your working directory using the command
    ./gcd
    try the following interactions

    First value: 30
    Second value: 18
    gcd: 6
    
  8. Use the program to calculate the greatest commond divisor of the values 9772444 and 3297294. Record the result.

To complete this lab, create a text file named lab0.txt with the following format:

Lab 0
your_name_here
gcd_result_here
then submit the file lab0.txt using the online submission system from our course web page.
Extra time? Open the source code again in a text editor and try the following.
  1. Go to line 7 and insert the characters // at the beginning of the line (turing that line into a comment). Now go back to the console and type
    make gcd
    What is the compiler's complaint?

    Uncomment line 7 to restore the original file.

  2. Delete the first int that begins line 4 and try to rebuild the program. What is the compiler's complaint?

    Restore line 4 to its original form.

  3. Go to line 19 and change the characters >> to <<. What is the compiler's complaint?

    Restore line 19 to its original form.

  4. Go to line 8 and remove the { character near the end of the line and try again to make the project. This time, the compiler complains about line 13. Why?

    Restore the { at line 8 before continuing.

  5. Comment out line 13 (by prefixing it with // and try to rebuild. This time, the make succeeds. Rerun the resulting executable and recalculate the gcd of 30 and 18. What happened?

    Restore line 13 to its original form.

  6. Experiment with other changes to the source code and see what happens.


Michael Goldwasser
CSCI 180, Spring 2009
Last modified: Tuesday, 13 January 2009
Assignments | Class Photo | Computing Resources | Course Home | Lab Hours/Tutoring | Schedule | Submit