¿Is this program correct and well written?

Hello everyone, I need some help, I've just written the following code but I don't know if this is written correctly according to the text. I hope you can see if there are mistakes.
Sorry, english is not my native language.
TEXT:
A computer provider offers 10% discount, if the product costs $ 1 million or more. Also, independently offers a 5% discount if the brand is ABACO. Determine how much will pay a client for purchasing a computer, including tax.
TAX=Product Price * 0.16
CODE:
clear all
clc
M = input('Enter de computer''s brand: ', 's');
P = input('Enter the computer''s price: ');
TAX = P*0.16;
ABACO = 0.05;
if M==ABACO;
PA=P-(P*ABACO)+TAX;
fprintf('The purchase price is %d.\n',PA)
elseif M~=ABACO;
PB=P+TAX;
fprintf('The purchase price is %d.\n',PB)
elseif P>=1000000;
PC=P-(P*0.1)+TAX;
fprintf('The purchase price is %d.\n',PC)
end
Thanks.

10 件のコメント

Arthur
Arthur 2012 年 11 月 20 日
Any reason to assume that's not correct? Does it work?
José-Luis
José-Luis 2012 年 11 月 20 日
編集済み: José-Luis 2012 年 11 月 21 日
This is homework. Your program is incorrect. Here is a pointer:
M == ABACO
makes no sense, you are comparing a string to a scalar. While that might have its uses, I am pretty sure that is not what you intended to do. You might want to look into strcmp
Ilham Hardy
Ilham Hardy 2012 年 11 月 20 日
And there should be PD. If ABACO and P>=1e6
another hint:
doc strcmpi
Jan
Jan 2012 年 11 月 20 日
Do not "clear all", when you want to "clear variables". Removing all loaded functions from the memory is a brute waste of time.
Jimmy
Jimmy 2012 年 11 月 20 日
Thanks everybody, I just did this with strcmpi and it works.
Sean de Wolski
Sean de Wolski 2012 年 11 月 20 日
And using input will get old after about two iterations. Either use a function to accept inputs or use an inputdlg.
Jimmy
Jimmy 2012 年 11 月 20 日
How can I implement inputdlg into this code?
Evan
Evan 2012 年 11 月 20 日
編集済み: Evan 2012 年 11 月 20 日
Replace the calls to "input" with "inputdlg."
You could make things simpler by getting both inputs from the same dialog box. Just pass a cell array that contains your two fields to inputdlg, like so:
D = inputdlg({'Enter de computer''s brand:','Enter the computer''s price:'});
The data will be returned as a cell array of strings, so you'll have to get it in the form you're using:
M = D{1};
P = str2double(D{2});
To learn more about input dialog boxes:
help inputdlg
Jimmy
Jimmy 2012 年 11 月 21 日
Awesome Evan, thanks.
Evan
Evan 2012 年 11 月 21 日
No prob. :)

サインインしてコメントする。

 採用された回答

Image Analyst
Image Analyst 2012 年 11 月 21 日

0 投票

I can see you're eventually going to need to know this FAQ entry: http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F because you're comparing floating point numbers.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeVariables についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by