Problem
Write a program with Matlab to return the grade of the student if the marks are given as input.
Solve the above problem using if else and functions.
To know more about grading systems all over the world then you can refer:
1) Grading system by country - wikipedia
2) Grading Numerology by Smith College
Solution
This program is very simple and you will only take the user input as we have done in our previous examples. Please go to Radius of Circle to see many other basic problems simpler than this problem.
I suggest you that you will refer the program section first and try to understand the program and then refer the explanation section to find a detailed explanation of the program. Some of the concepts you need to know in order to solve the above problem are as follows:
1) input function in matlab
2) if else, elseif statements
3) function in Matlab
4) fprintf in Matlab
5) Comments in Matlab
1) input function in matlab
2) if else, elseif statements
3) function in Matlab
4) fprintf in Matlab
5) Comments in Matlab
Program 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | %Program to calculate the letter grades based on the marks marks = input('Enter the value of marks: '); if marks >=80 fprintf('Letter grade secured: "S"\n') elseif marks >=75 && marks <=79 fprintf('Letter grade secured: "A"\n') elseif marks >=70 && marks <=74 fprintf('Letter grade secured: "B"\n') elseif marks>=60 && marks<70 fprintf('Letter grade secured: "C"\n') elseif marks>=50 && marks <60 fprintf('Letter grade secured: "D"\n') elseif marks>=40 && marks <50 fprintf('Letter grade secured: "E"\n') elseif marks<40 fprintf('Letter grade secured: "F"\n') else fprintf('That was not a correct entry!!\n') fprintf('Please try again!\n') end |
Explanation 1
Line 1: This is a matlab comment to tell the other program what this script means or is used for.
Line 3: We are taking the input of the user using the input function and storing the value in 'marks' variable.
Line 5: We are starting the if statement and checking if the value of marks is greater than or equal to 80. If the value is greater than or equal to 80 then the Line 6 is executed and the program comes to halt.
Line 6: we have printed the value of the grade the user has secured in a neat and understandable format.
Line 7&8: Here it is elseif which is similar to if statement in line 5 and line 6 where here it will check if the value is in between 70 and 74 both included.
Line 9-18: Remaining grades are written based in a similar way the Lines 7 and 8 are written. Elseif statements work exactly the way the if statements works but they are executed only after the if statement is false. If if statement is false then they are not executed. In the similar way if a else if statement condition is true then the else if and else statements below it are not executed.
Line 19-22: If all the above conditions are not true i.e if the user enters wrong value then the else statement is executed and user is displayed with the fprintf statements in the line 20 and 21 and the program comes to halt.
Program 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function grade = calculate_grade(marks) %This function will calculate the grade %based on the marks the user has given the input if marks >=80 grade = 'S'; elseif marks >=75 && marks <=79 grade = 'A'; elseif marks >=70 && marks <=74 grade = 'B'; elseif marks>=60 && marks<70 grade = 'C'; elseif marks>=50 && marks <60 grade = 'D'; elseif marks>=40 && marks <50 grade = 'E'; elseif marks<40 grade = 'F'; else grade = 'No grade for wrong entry ;)'; end |
Line 1: I have started the function definition in matlab telling that the return variable will be grade and the name of the function will be calculate_grade. The user will have to give input of marks as parameter to the function.
Line 2-3: They are the matlab comments and also the documentation of the function.
Line 5-21: They are the same as the program 1. But instead of the fprintf statements in the previous example we are simply setting the value of the 'grade' variable to the corresponding grade based on marks.
Input/Output
calculation of grades using Matlab. |
Try it yourself
*1) Write a program so that the user can give real numbers also. But Matlab will round the number and give corresponding grades. Use the round function in matlab to round the numbers.
*2) Write a script that will take the input of marks from the user and use our function calculate_grade which have written before and display the grade in a neat and beautiful format.
Comment your program in the comment box below so that others can get help from that.
**3) Try to write the program without using the elseif and only using if and else statements. Do not do this in real world. But practice the same. Comment your program in the comment box below.
***4) Create a file with marks of your class and iterate through the values of marks using for loop and output the grades using the above method.
Final Note
I have tried to explain everything in this post in such a way that everything is easy to understand but if you have any doubt or couldn't understand anything then please do contact me or comment in the comment box below. I will be happy to help you. You can contact me from here: Contact me.
The above program was high lighted using hilite.me.
Keywords: grades, calculation, marks
* is the difficulty level.