APS105 Page 1 of 4
APS 105 — Computer Fundamentals
Lab 3: Functions, Logic, and Debugging
The goal of this laboratory is to practice the material on functions. You are to write one C program that
consists of a main() and several functions. The program displays the Pascal’s triangle as explained in the
• Similar to previous labs, your solution will be marked by your TA during your scheduled lab period
for programming style and your understanding.
Read through this entire document carefully and do the work to create the programs that are described
below. You are encouraged to ask for assistance from your lab/tutorial TAs.
• In the sample output examples that follow:
o The text <enter> stands for the user pressing the enter key on the keyboard. On some
keyboards, the enter key may be labeled return.
• Throughout this lab, there is a single space after the colon (:) in each output line.
In a file called Lab3.c, write a C function named “triangle” that outputs Pascal’s triangle (for example) as
APS105 Page 2 of 4
In general, the Pascal’s triangle can be represented as:
2C2 2C1 2C0
3C3 3C2 3C1 3C0
4C4 4C3 4C2 4C1 4C0
where nCr represents how many ways there are to choose r from n, not counting duplicates.
In mathematics, it is usually presented as . The formula used to calculate nCr can be written as:
��� = �!
�! (� − �)!
where �! is the factorial of �.
The function triangle:
• Is called by value where exactly one parameter (the number of rows of the Pascal’s triangle) is
passed to it.
• Returns void (i.e. no value).
• Prints out the Pascal’s triangle to the standard output.
• Employs two other functions namely:
int choose(int n, int r);
§ That chooses r from n
int factorial(int n);
§ That calculates factorial of �.
Note: You are allowed to use any other function as need be.
You are required to provide a complete C program by writing the code for the main() function
• Prompts user to supply the number of rows in the Pascal’s triangle.
• Calls the function triangle such to displays the Pascal’s triangle based on the number of rows
provided by the user.
• Terminates the run of the program is the user supplies a negative value.
An example of the required output from your program is as follows:
APS105 Page 3 of 4
APS105 Page 4 of 4
• The number of the rows is limited to integers between 0 and 13 inclusive.
• Automarker tests inclusively between 0 and 13.
• If 0 then there are no triangles displayed.
• If negative integer, then program terminates.
• The number displayed in the last column MUST be always displayed at the start of the line. In other
words, and as an example:
§ If the number of rows entered is 3 then the first row displays its number at column 7.
§ Carefully calculate the spaces used between the numbers so that the numbers are properly
aligned across rows.
§ Use of a function spaces() that deals with spacing is recommended.