MATLAB编程例子

更新时间:2023-10-16 09:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

选择结构编程练习

1. 身高预测

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。

设faHeight为其父身高,moHeight为其母身高,身高预测公式为

男性成人时身高=(faHeight + moHeight)×0.54cm 女性成人时身高=(faHeight×0.923 + moHeight)/2cm

此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。

编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。

2. 简单的计算器

用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:

操作数1 运算符op 操作数2

计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。

(1)如果要求程序能进行浮点数的算术运算,程序应该如何修改?如何比较实型变量data2和常数0是否相等?

(2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?

(3)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:

Do you want to continue(Y/N or y/n)?

用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。那么,程

序如何修改?

循环结构编程练习

猜数游戏

在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果按下列要求循序渐进地编程实现,会发现其实这个程序是很容易实现的。那么,现在就开始吧,先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,??

程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。

程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。

程序3 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

程序4 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。

1 .猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。 要求:分别用三种语句编写程序。

2 .编写程序验证下列结论:任何一个自然数 n 的立方都等于 n 个连续奇数之和。例如: 1 3 =1 ; 2 3 =3+5 ; 3 3 =7+9+11 。

要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为 0 时止。

函数编程练习

1. 给小学生出加法考试题

编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。

程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。

程序2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。

程序3 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! You have tried three times! Test over!”,程序结束。

程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。

程序5 通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。

【思考题】 如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请读者修改程序,并上机测试程序运行结果。

2.掷骰子游戏

编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。

【思考题】 将游戏规则改为:计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。其余规则相同,然后请读者重新编写该程序。

选择结构编程练习

1.身高预测:

global Heigt A

sex=input('Input you sex(M or F):','s');

faHeight=input('Input you father''s height:'); moHeight=input('Input you mother''s height:');

sports=input('whether you like sports or not(Y or N):','s'); diet=input('whether you have a good diet(Y or N):','s'); if sex=='M'

A=(faHeight+moHeight)*0.54; else

A=(faHeight*0.923+moHeight)/2; end A;

if sports=='Y'

B=A*(1+0.02); else

B=A; end B;

if diet=='Y'

Height=B*(1+0.015); else

Height=B; end Height

Input you sex(M or F):M Input you father's height:160 Input you mother's height:150

whether you like sports or not(Y or N):Y whether you have a good diet(Y or N):Y Height =

173.3092

2.编辑计算器

d1=input('Input the first data:');

op=input('Input the option(+ - *or/):','s'); d2=input('Input the second data:'); switch op case '+'

data=d1+d2; case '+'

data=d1+d2; case '-'

data=d1-d2; case '*'

data=d1*d2; otherwise

data=d1/d2; end data

Input the first data:5

Input the option(+ - *or/):* Input the second data:5

data =

25 (1) Ⅰ. format long

d1=input('Input the first data:');

op=input('Input the option(+ - *or/):','s'); d2=input('Input the second data:'); switch op case '+'

data=d1+d2; case '+'

data=d1+d2; case '-'

data=d1-d2; case '*'

data=d1*d2; otherwise

data=d1/d2; end data

Input the first data:3.2

Input the option(+ - *or/):+ Input the second data:2.3

data =

5.50000000000000 Ⅱ.

d1=input('Input the first data:');

op=input('Input the option(+ - *or/):','s'); d2=input('Input the second data:'); switch op case '+'

data=d1+d2; case '+'

data=d1+d2; case '-'

data=d1-d2; case '*'

data=d1*d2; otherwise

data=d1/d2; end

if d2==0

disp('data2等于0') else

disp('data2不等于0') end data

Input the first data:6

Input the option(+ - *or/):+ Input the second data:0 data2等于0

data =

6 (2)

s=input('please input:','s'); n=size(s,2); s1=[]; for k=1:n

if s(k)~=' '

本文来源:https://www.bwwdw.com/article/f3df.html

Top