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);

效果:

posted @ 2015-10-05 17:11  平常心,平常心  阅读(4086)  评论(1编辑  收藏  举报