$24
Goals:
Learn to use Kate editor to create and debug C programs.
Learn to use gcc compiler with math library and one source file.
Learn Linux commands: cd, pwd, cp, dir, mkdir, mv, and rm
Write a C program that uses assignment, input, output, selection, and repetition.
Note on grading:
Part of the points (12%) will be for demonstrating to a TA in the lab that you know how to use gcc and that your program1 is working (see step 7 in the instructions). You have to be attending the lab to do it.
Step by Step Lab Instructions
Log in. Open the Kate editor.
To make the Terminal window visible in Kate, do as follows.
Go to the Settings menu and choose
Configure Kate
Plugins
check the box next to Terminal Tool View then click OK.
You may also set C-style syntax highlighting by going to the Tools menu and choosing
Highlighting
Sources
C
And set C-style indentation by going to the Tools menu and choosing Indentation
C Style.
(If you haven't used Linux before, refer to the "Essential Linux Commands" handout.)
Move the cursor to the Terminal Window: Click in the terminal window area at the bottom of Kate.
Type pwd and press Enter. Note the directory information. Type cd and press Enter.
Type pwd again and note the difference in the directory information (if any).
Type mkdir cs271 and press Enter.
Change directory to cs271 by typing cd cs271.
Type mkdir Lab1 and press Enter.
Type cd Lab1 to change directory to Lab1. This is where you will save your files.
3. Editor: To practice using Kate, type in the program shown below.
Reminder: In the terminal window, you must set your working directory to the folder where you saved your program.
Each time you log in, you must set your working directory again.
#include <stdio.h
#include <math.h
The purpose of this program is to calculate the length of hypotenuse
of a right triangle.
int main (void) {
float leg1, leg2, hypotenuse;
// input the lengths of leg1 and leg2
printf("Enter the length of side A\n"); scanf("%f", &leg1;;
printf("\nEnter the length of side B: \n"); scanf("%f", &leg2;;
// calculate the hypotenuse
hypotenuse = sqrtf( leg1 * leg1 + leg2 * leg2 );
display the length of the hypotenuse with 2 decimal places printf("The hypotenuse is %.2f\n", hypotenuse);
} // end main function
Save the file as program1.c in the cs271/Lab1 directory.
Terminal: In the Terminal window, compile the program and produce an executable file named program1. Here's the command:
gcc program1.c -lm -o program1
"flags" or options for the compiler are preceded by a hyphen -.
-o must appear immediately before the name of the executable
-lm (an "el", not a one) means that the math library is needed
If you have syntax errors, go back to the editor window and fix them. Compile again and debug until the program compiles correctly.
Terminal: Run the program by typing a period, a slash, then the name of the executable:
./program1
Test the program by entering 3.0 and 4.0 for the legs. The output should be 5.00. If it's not, you have some debugging to do.
Run the program again. Test with values 5.0 and 8.0. (Determine what the expected output is before you run the program.)
Editor: Close program1.c.
(12% of the grade): Demonstrate to the TA or instructor that you know how to use gcc and that your program1 is working.
Editor: Write a C program (call it lab1.c) that will solve the following problem. Make sure that your program satisfies Programming Documentation and Style Requirements.
An instructor wants to check the progress for each student in his class. The students have taken 4 exams and each exam score is an integer number between 0 and 100 (inclusive).
The instructor wants to see numeric average of the 4 scores and the letter grade that corresponds to the exam average. Here is the grading scale:
0 <= average < 60
F
60
<= average < 70
D
70
<= average < 80
C
80
<= average <
90
B
90
<= average <
100
A
For each student, your program should do the following:
prompt the instructor to enter 4 exam scores,
read and echo print the 4 exam scores,
calculate and print the average with 2 decimal places,
print the letter grade as a capital letter.
The program should repeat the process of reading 4 exam scores, calculating and printing the average and letter grade, until the instructor enters numbers
-1 0 0 0 for the exam scores. (Note: the score sequence -1 0 0 0 is called the “sentinel”.)
Do not display the sentinel in the output.
Sample run of the program may look like the following:
cs271/Lab1 ./lab1
Enter the four scores: 70 80 90 80
Exam scores: 70 80 90 80
Average: 80.00
Letter grade: B
Enter the four scores: 65 71 73 68
Exam scores: 65 71 73 68
Average: 69.25
Letter grade: D
Enter the four scores: -1 0 0 0
Terminal: Compile, debug, and compile again until the program compiles correctly.
gcc lab1.c -o lab1 ./lab1
to compile
to run
Debug as needed until the program runs correctly with 2 students.
Canvas: Download the file "testdata.dat" from this assignment page in Canvas. Save the file as a plain text file in the same folder as your lab1.c program.
Terminal: Run the program again... this time using "input redirection". This will take all input from the file you specify (instead of the keyboard).
./lab1 < testdata.dat
You can open the data file in your editor and determine the expected output of the program. Compare the expected output to the actual program output.
Close the program and data file once you have the correct output.
Submit lab1.c on Canvas
Log off before you leave the lab.