私は MATLAB が初めてで (プログラミングは初めてではありません)、私のエンジニアリング クラスでは、if/elseif/else とループの基本を教えているだけです。さて、宿題がありますが、それを理解できないのが恥ずかしいです。どこかでシンプルさが欠けているに違いありません。
購入したボルト、ナット、ワッシャーの数をユーザーに尋ね、合計を計算して出力するプログラムを作成します。これで問題ありません。この部分は完了しました。
ここがちょっとややこしいところ…
追加機能として、プログラムは順序をチェックします。正しい注文には、少なくともボルトと同じ数のナットと、少なくともボルトの 2 倍のワッシャーが必要です。そうでない場合、注文はエラーになります。これらは、プログラムがチェックする唯一の 2 つのエラーです: ナットが少なすぎることとワッシャーが少なすぎることです。エラーの場合、プログラムは「順序を確認してください: ナットが少なすぎます」または「順序を確認してください: ワッシャーが少なすぎます」を適切に出力します。注文に両方のエラーがある場合は、両方のエラー メッセージが出力されます。エラーがない場合、プログラムは「Order is OK.」と出力します。紛らわしい部分 ---> if -elseif-elseステートメントの 1 つのセットだけでこれを実現できます。
両方が true の場合、このプログラムで 1 つの if-elseif-else ステートメントで両方を出力するにはどうすればよいですか?
これが私のコードです:
% Get the amount each part
bolts = input('Enter the number of bolts: ');
nuts = input('Enter the number of nuts: ');
washers = input('Enter the number of washers: ');
% Check for the correct amount of nuts, bolts, and washers
if bolts ~= nuts
disp('Check order: too few nuts');
elseif bolts * 2 ~= washers
disp('Check order: too few washers');
else
disp('Order is OK.');
end
% Calculate the cost of each of the parts
costOfBolts = bolts * .05;
costOfNuts = nuts * .03;
costOfWashers = washers * .01;
% Calculate the total cost of all parts
totalCost = costOfBolts + costOfNuts + costOfWashers;
% Print the total cost of all the parts
fprintf('Total cost: %.2f\n', totalCost);