Skip to main content

Allot a grade for quiz using Matlab

Problem

Write a program with Matlab to return the grade of the student if the marks are given as input.

Letter GradeMarks
S 80
A75 - 79
B 70 - 74
C60 - 69
D 50 - 59
E 40 - 49
F 39
Assume that the institution follows the above system for its grading and assume that the user will give only rounded number.
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

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
I have saved this program as: grades_if_else.m on my local computer.

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
I have saved this program as calculate_grade.m on my local computer.

Explanation 2

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

grades calculation using if else and functions using Matlab
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. 

Popular posts from this blog

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He