联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2021-02-23 10:57

APS 105 — Computer Fundamentals

Lab 5: Functions, Logic, and Debugging

Winter 2021

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

following section.

Preparation

Read through this entire document carefully, and do the work to create the programs that are described

below. You are encouraged to:

? Read the class bulletin board on Piazza, to see if others had similar problems. If you do not see

anything helpful there, ask a question. Do not ask for, or ever give a full or partial solution to the

lab assignment.

? Ask for assistance from your lab/tutorial TAs.

? Attend and ask questions during the plenary sessions.

Notes:

? 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.

Pascal’s Triangle

In a file called Lab5.c, write a C function named “triangle” that outputs Pascal’s triangle (for example) as

follows:

2

In general the Pascal’s triangle can be represented as:

0C0

1C1 1C0

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 display the Pascal’s triangle based on the number of rows

provided by the user.

? Terminates the run of the program if the user supplies a negative value.

An example of the required output from your program is as follows:

3

4

Notes:

? 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.

? 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.

Grading by TA and Submitting Your Program for Auto-Marking

There are a total of 10 marks available in this lab, marked in two different ways:

1. By your TA, for 4 marks out of 10. Once you are ready, show your program to your TA so that

we can mark your program for style, and to ask you a few questions to test your understanding of

what is happening. Programs with good style are:

? Clear comments that describe what is happening in the program.

? Good choices for variable names that indicate their purpose. Please adopt the naming

convention where if you have a variable that is described by multiple words, user lower

case for the first letter of the first word, and Upper case for all subsequent words e.g.

inputCode.

? Properly indented code.

? Proper use of named constants, rather than putting constants (such as 125) directly into

the code.

The TA will also ask you some questions to be sure that you understand the underlying concepts

being exercised in this lab.

2. By an auto-marking program for 6 marks out of 10. You must submit all of your program files

through the ECF computers for marking. We will use a software program to compile and run your

program, and test it with different inputs. Long before you submit your program for marking, you

should run the exercise program that compiles and runs your program and gives it sample inputs,

and checks that the outputs are correct. You should run the following command:

/share/copy/aps105s/lab5/exercise

within the directory that contains both your solution programs. This program will look for the files

comprising Lab5 in your directory, compile them, and run them on some of the test cases that will be used

to mark your program automatically later. If there is anything wrong, the exercise program will report this

to you, so read its output carefully, and fix the errors that it reports.

IMPORTANT: YOU WILL HAVE TO COPY ALL OF YOUR FILES TO BE IN THE SAME

FOLDER/DIRECTORY WHERE YOU WILL RUN THE SUBMIT COMMAND.

3. Once you have determined that your program is as correct as you can make it, then you must

submit your program for auto-marking. This must be done by the end of your lab period as that is

the due time. To do so, go into the directory containing your solution files and type the following

command:

/share/copy/aps105s/lab5/submit

5

This command will re-run the exercise program to check that everything looks fine. If it finds a

problem, it will ask you if you are sure that you want to submit. Note that you may submit your

work as many times as you want prior to the deadline; only the most recent submission is marked.

All files to be submitted as solutions to the lab must be within the same directory, and the

submission script must be run also from that directory via the command line. The exercise

program (and the marker program that you will run after the final deadline) will be looking for

the exact letters as described in the output in this handout, including the capitalization. When you

test your program using the exercise program, you will see that it is expecting the output to be

exactly this, so you will have to use it to see if you have this output correct.

Important Note: You must submit your lab by 11:59 p.m. after the end of your assigned lab

period. Late submissions will not be accepted, and you will receive a grade of zero.

You can also check to see if what you think you have submitted is actually there, for peace of

mind, using the following command:

/share/copy/aps105s/lab5/viewsubmitted

This command will download into the directory you run it in, a copy of all of the files that have

been submitted. If you already have files of that same name in your directory, these files will be

renamed with a number added to the end of the filename.

After the Final Deadline Obtaining Automark

Briefly after all lab sections have finished you will be able to run the automarker to determine the

automarked fraction of your grade on the code you have submitted. To do so, run the following

command:

/share/copy/aps105s/lab5/marker00

This command will compile and run your code, and test it with all of the test cases used to determine the

automarked grade. You will be able to see those test cases output and what went right or wrong.

Good Luck!


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp