matlab for循環應用(階乘及the day of year)


一、N的階乘

%腳本文件:test.m

%N的階乘 使用舉例

% 定義變量
% ii  ---循環變量,也就是循環次數
% N   ---N的階乘
% N_factorial --計算N的階乘
clc;clear;

%N的階乘,以后封裝為函數
N=5;
N_factorial=1;
for ii = 1:N
 N_factorial =  N_factorial * ii;
end
  fprintf(' %d的階乘結果是:%f\n', ii,N_factorial);

二、the day of year

%腳本文件:date.m

%目標:
%  該程序特定日期在這一年的天數,用到了switch和for結構
% 版本記錄:
% 日期          編者      變化描述
% 2015-10-5 16:泡泡      源代碼
% 定義變量:
%  day      --輸入某一天(dd)
%  month    --輸入某一月 (mm)
%  year     --輸入某一年(yyyy)
%  ii       --循環索引
%  day_of_year  --這一年的天數
%  leap_day     --閏年額外的一天
 clc;clear;
 %獲取輸入的年、月、日
 disp('該程序計算輸入具體的日期的天數');

 str=datestr(now,'yyyy-mm-dd HH:MM:SS');
 fprintf('系統當前時間:%s\n',str);
 year = input('請輸入當前年:');
 month= input('請輸入當前月:');
 day  = input('請輸入當前日:');
 
 %判斷當前年是否是閏年
% if mod(year,400) == 0
% leap_day = 1; % Years divisible by 400 are leap years
% elseif mod(year,100) == 0
% leap_day = 0; % Other centuries are not leap years
% elseif mod(year,4) == 0
% leap_day = 1; % Otherwise every 4th year is a leap year
% else
% leap_day = 0; % Other years are not leap years
% end
%方法二:
leap_day = 0;
if mod(year,100)  == 0
    if mod(year,400) == 0
       leap_day = 1;  
    end
else
    if mod(year,4) == 0
        leap_day = 1; 
    end
end
 %計算當前天在這一年的時間
 
day_of_year = day; %1.當前月份的天數
for ii = 1:month - 1
    % 從一月到上個月總的天數
    switch (ii)
    case {1,3,5,7,8,10,12},
    day_of_year = day_of_year + 31;
    case {4,6,9,11},
    day_of_year = day_of_year + 30;
    case 2,
    day_of_year = day_of_year + 28 + leap_day;
    end
end

%告訴用戶
fprintf('時光荏苒,您輸入的日期 %2d/%2d/%4d是這一年的第 [%d] 天.\n', ...
month, day, year, day_of_year);

效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM