How to make a function that tell us about grades using Matlab

Hi every one; I going to make a function called letter_grade that takes a positive integer called score as its input argument and returns a letter grade according to the following scale: A: 91 and above; B: 81-90; C: 71-80; D: 61-70; F: below 61. Remember that to assign a letter to a variable, you need to put it in single quotes, as in: grade = 'A'. when i run the below codes i got grade 'B' for score 95.which in not correct.Kindly guide me how can i correct this code. Please vote up if this question help!
function grade=letter_grade(n)
if n >= 91 && n>=100
grade='A';
elseif n >= 81 && n>=90
grade='B';
elseif n >= 71 && n>=80
grade='C';
elseif n >= 61 && n>=70
grade='D';
elseif n <61
grade='F';
end
end

댓글 수: 2

Grade B is defined when n is between 81 and 90 both inclusive. if n>81 and n<=90 grade should be B. But in your code you have written the condition as n>=81 and n>=90. The same error is for finding other grades.
@Goshom Brian and Qahar Mustafa: Please do not use flags to post comments. Thanks.

댓글을 달려면 로그인하십시오.

 채택된 답변

Image Analyst
Image Analyst 2015년 5월 26일
Try it this way:
function grade=letter_grade(n)
if n >= 91
grade='A';
elseif n >= 81
grade='B';
elseif n >= 71
grade='C';
elseif n >= 61
grade='D';
else
grade='F';
end
end

댓글 수: 4

how to display the names and roll numbers according to the Grades ?
Try ismember() to get a list of all people that have a certain grade, then use fprintf() or celldisp() to display those people and roll numbers with that grade letter.
Hi there, can you please create the same program by using switch statement?
@Muhammad Aamir Hayat, did you try it yourself first? I imagine you did. Did you get something like this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
for n = 55:10:95
grade=letter_grade(n);
fprintf('A score of %d is an "%s".\n', n, grade);
end
fprintf('Done! Thanks Image Analyst!\n');
%=========================================================================
function grade=letter_grade(n)
n2 = floor( (n-1) / 10);
switch n2
case {9, 10}
grade='A';
case 8
grade='B';
case 7
grade='C';
case 6
grade='D';
otherwise
grade='F';
end
end
A score of 55 is an "F".
A score of 65 is an "D".
A score of 75 is an "C".
A score of 85 is an "B".
A score of 95 is an "A".
Done! Thanks Image Analyst!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

SY
SY 2021년 8월 4일
What's the meaning of this program?
function [Average, StandardDeviation ] = F1_91(Scores)
% Prompt user to input grades(scores)
Scores = input('Enter Grades: ');
%Calculating average of grades
X = mean(Scores)
% Rounding off to nearest integer
Average = round(X)
% Calculating standard deviation of grades
SDD = std(Scores)
% Rounding off to nearest integer
StandardDeviation = round(SDD)
end

댓글 수: 2

It simply computes the rounded standard deviation of a set of rounded numbers. Not sure what you mean by "meaning"? It's probably someone's homework answer.
It is someone's wrong homework answer at that. It should not pass in Scores and then overwrite Scores with the input()

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Graphics Performance에 대해 자세히 알아보기

제품

릴리스

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by