一、题目
- (1) 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
- (2) 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
- (3) 定义 10 行 8 列的 Hilbert 矩阵(
)
- (4) 生成100000 以内的斐波那契数列各项,
- (5) 求满足条件
的最小整数
- (6) 输出全部的五位五角星数(例如 54748,
)
- (7) 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
- (8) 编程计算鸡兔同笼(三十五头,九十四足)
- (9) 绘制分段函数
- (10) 读取数据
sd.xlsx
,对 1,2 列每行计算其和,和大于 6 在第 3 列相应行输入字母 A,否则输入字母 B,对 4,5 列每行计算其差,差大于 2 在第 6 列相应行输入字母 AB,否则输入字母 BA,并将操作以后的数据填回sd.xlsx
二、解答
题一
① 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
代码语言:javascript复制function out = getNum(date)
date_str = num2str(date);
d = [strcat(date_str(1:4),'-',date_str(5:6),'-',date_str(7:8))];
d_new = [strcat(date_str(1:4),'-01-01')];
out = daysact(d_new,d);
end
题二
① 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
代码语言:javascript复制function out = getNum(date)
date_str = num2str(date);
d = [strcat(date_str(1:4),'-',date_str(5:6),'-',date_str(7:8))];
out = weekday(d);
end
题三
① 定义 10 行 8 列的 Hilbert 矩阵(
)
代码语言:javascript复制function m = Hilber()
for i=1:10
for j=1:8
a(i,j) = 1/(i j-1);
end
end
m = a;
end
题四
① 生成100000 以内的斐波那契数列各项,
代码语言:javascript复制function fib_arr = fib(k)
num(1) = 1;
num(2) = 1;
for i=3:k
num(i) = num(i-1) num(i-2);
if num(i) >= k
break
end
fib_arr = num(1:end-1);
end
题五
① 求满足条件
的最小整数
代码语言:javascript复制function out = getNum()
num(1) = 1;
for i = 1:1000000
if(num(i) > 10^15)
break
end
num(i 1) = num(i)*i
end
out = num(end-1);
end
题六
① 输出全部的五位五角星数(例如 54748,
)
代码语言:javascript复制function out = getNum()
count = 0;
for i=10000:99999
a = fix(i/10000);
b = fix(rem(i,10000)/1000);
c = fix(rem(i,1000)/100);
d = fix(rem(i,100)/10);
e = fix(rem(i,10)/1);
if(a^5 b^5 c^5 d^5 e^5==i)
count = count 1;
num(count) = i;
end
end
out = num;
end
题七
① 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
代码语言:javascript复制function out = getNum(a,b,c)
if(a b>c && a-b<c)
p = (a b c)/2;
s = (p*(p-a)*(p-b)*(p-c))^(1/2);
end
out = s;
end
题八
① 编程计算鸡兔同笼(三十五头,九十四足)
代码语言:javascript复制function out = getNum()
syms x y;
enq1 = x y == 35;
enq2 = 2*x 4*y == 94;
A = solve(enq1,enq2,x,y);
out = A;
end
题九
① 绘制分段函数
代码语言:javascript复制x=-5:.1:5;
f=zeros(size(x));
for i=1:length(x)
if (x(i)>-5) & (x(i)<0)
f = -x
end
if (x(i)>=0) & (x(i)<=2)
f = x.^2/2
end
if (x(i)>2) & (x(i)<5)
f = 2*sin(pi./x)
end
end
plot(f,x)
题十
① 读取数据 sd.xlsx,并将操作以后的数据填回 sd.xlsx
- 程序1
data1=xlsread('F:sd.xlsx',1,'A1:B191')
for i = 1:length(data1)
if data1(i,1) data1(i,2)>6
xlswrite('F:sd.xlsx','A',1,strcat('C',num2str(i)))
else
xlswrite('F:sd.xlsx','B',1,strcat('C',num2str(i)))
end
end
- 程序二
data2=xlsread('F:sd.xlsx',1,'D1:E191')
for i = 1:length(data2)
if abs(data2(i,1)-data2(i,2))>2
xlswrite('F:sd.xlsx',{'AB'},1,strcat('F',num2str(i)))
else
xlswrite('F:sd.xlsx',{'BA'},1,strcat('F',num2str(i)))
end
end