zoukankan      html  css  js  c++  java
  • matlab练习3

    13. 已知y=f(40)/(f(30)+f(20)) ①当f(n)=n+10ln(n^2+5)时,y的值是多少。②当f(n)=1×2+2×3+3×4+...+n×(n+1)时,y的值是多少。

    f=@(n)n+10*log(n^2+5);
    y=f(40)/(f(30)+f(20))
    

    熟悉匿名函数的使用。

    function[s]=Untitled(n)
    s=0;
    for i=1:n
        f=i*(i+1);
        s=s+f;
    end
    

    命令窗口输入Untitled(40)/(Untitled(30)+Untitled(20))

    14. 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

    x=input('number(end:0): ');
    xsum=0;
    n=0;
    while x~=0
        xsum=xsum+x;
        n=n+1;
        x=input('number(end:0): ');
    end
    if n>0  %加了n>0的约束条件
    xmean=xsum/n
    xsum
    end
    

    了解思路,增加约束条件。看了一眼答案。

    15. 用筛选法求某自然数范围内的全部素数。

    素数:除1和它本身外不能被其它数整除的数。

    筛选法求素数的基本思想:要找出2~m之间的全部素数,首先先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已经被划去,再找5的倍数(不包括5),...,直到再划去不超过sqrt(m)的倍数,剩下的数就都是素数了。

    不晓得怎么编,看答案。

    m=input('m=');
    p=1:m;
    p(1)=0;
    for i=2:sqrt(m)
        for j=2*i:i:m
            p(j)=0;
        end
    end
    n=find(p~=0);
    p(n)
    

     16. 斐波拉契数列定义如下:f1=1,f2=1,fn=fn-1+fn-2 (n>2)

    编写递归调用函数求斐波拉契数列的第n项,然后调用该函数验证斐波拉契数列的如下性质:f1^2+f2^2+...+fn^2=fn×fn+1

    编写函数:

    function[y]=ffib(n)
    if n>2
    y=ffib(n-1)+ffib(n-2);
    else y=1;
    end
    y;
    

    编写测试文件

    F=[];
    for i=1:20
        F=[F,ffib(i)*ffib(i)];
    end
    sum(F)
    ffib(20)*ffib(21)
    

    17.利用函数的递归调用,求n!

    function[y]=multix(n)
    if n>1
        y=n*multix(n-1);
    else
        y=1;
    end
    y
    

    18.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price表示):

    price<200 无折扣 200<=price<500 3%折扣 500<=price<1000 5%折扣 1000<=price<2500 8%折扣 2500<=price<5000 10%折扣 5000<=price 14%折扣

    输入所售商品的价格,求其实际销售价格。

    clear
    clc
    c=input('the price of goood: ');
    switch c
        case num2cell(0:199) 
            y=c;
        case num2cell(200:499) 
            y=0.97*c;
        case num2cell(500:999) 
            y=0.95*c;
        case num2cell(1000:2499) 
            y=0.92*c;
        case num2cell(2500:4999) 
            y=0.9*c;
        otherwise 
            y=0.86*c;
    end
    fprintf('after discount:%d
    ',y)
    

    19.编写一个学生成绩管理的程序。

    A.构造一个学生结构,包括学生的学号,姓名,课程名称(限五门),考试成绩和平均值等域。

    B.从键盘上,连续输入N个学生的情况,分别将这些学生的情况填入到相应的域,若域中没有值即为空或0并计算平均成绩写入到平均值域。

    C.根据平均值排序,并输出学生的姓名、学号和平均成绩。

    clear
    clc
    str1=' ';
    str2=' ';
    str3=' ';
    ave=0;
    n=input('please input students number:');
    val=cell(n,2);a=zeros(n,1);
    student=struct('Name',str1,'No',str2,'Scores',val,'Ave',ave);
    for i=1:n
        str1 = input('Name:','s');
    str2 = input('No.:');
    
    val = input('please input five Curriculums and Scores:{''a'',23;''b'',24;''c'',25;''d'',26;''e'',27}');
    for k=1:n
    a(k,1)=val{k,2};
    end
    % a(1,1)=val{1,2};
    student(i).Name = str1;
    student(i).No = str2;
    student(i).Scores = val;
    student(i).Ave = mean(a);
    end
    for ii= 1:(length(student)-1)
    iptr = ii;
    for jj=ii+1 : length(student)
    if (student(jj).Ave > student(iptr).Ave)
    iptr = jj;
    end
    end
    if ii ~=iptr
    temp = student(ii);
    student(ii) =student(iptr);
    student(iptr) = temp;
    end
    end
    % for ii=1 : length(student)
    % if student(ii).Ave > 80
    % disp(student(ii).Name);
    % disp(student(ii).Ave);
    % end
    % end
    disp(['student name',blanks(6),'student no.',blanks(6),'student average']);disp(' ')
    for ii=1 : length(student)
    disp([student(ii).Name,blanks(20),num2str(student(ii).No),blanks(20),num2str(student(ii).Ave)]);
    end
    

    把答案的代码改了改,感觉自己编根本编不出来啊,哭唧唧。

  • 相关阅读:
    命令行工具解析Crash文件,dSYM文件进行符号化
    我最常用的几个Xcode快键键
    Send push notification on Apple (APNS) on c#.net
    iOS安全笔记
    el captain设置环境变量
    做一个会使用PS的前端开发
    这些HTML、CSS知识点,面试和平时开发都需要 No1-No4
    Node.js
    CSS面试题
    HTML面试题
  • 原文地址:https://www.cnblogs.com/amberwang2018/p/10858774.html
Copyright © 2011-2022 走看看