写一个名为under_age的函数,它需要两个正整数标量参数:代表某人年龄的年龄,并限制代表年龄限制。如果此人比年龄限制小,则该函数返回True。如果第二个arg

361次(过去30天)
辛格的阿布
辛格的阿布 2019年3月22日
评论道: 阿姆阿里2021年9月6日8:11
函数too_young = under_age(年龄限制)
限制= 21.
如果年龄< =限制
too_young = true;
elsef.年龄> =限制
too_young = false;
其他的
流(“无效\ n”
结束
14日的评论
ANSHUMAN SARTHAK默赫
ANSHUMAN SARTHAK默赫 2020年10月17日
函数too_young = under_age(年龄限制)
如果nargin == 1
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的too_young = false;
结束
%可能是最短的

登录评论。

接受的答案

约翰D 'Errico
约翰D 'Errico 2019年3月23日
编辑:约翰D 'Errico 2020年11月8日
这不是错误。这是您的代码未能按照您的目标工作的失败。
我说什么来着?到目前为止,大家都说了些什么?您不能像以前那样设置默认值。
即使您传入数字18作为限制,您在内部做的第一件事是将该值重置为21。
相反,您需要考虑如何进行测试,以确定是否提供了限制。
编辑:( 18个月后)
现在已经有了几十个答案,而且都很长,我将展示我将如何写它。
函数Tooyoung = under_age(年龄,限制)
% under_age:在年龄限制下返回true
% usage: tooyoung = under_age(年龄,限制)
%参数:(输入)
%年龄 - 数字。正如书面形式,年龄可以是标量,或任何大小阵列
% limit -可选参数,如果没有提供,默认值是21
%参数:(输出)
% too -一个布尔变量,表示年龄是否低于限制。
%没有进行任何测试以验证年龄或限制(如果提供的是有效的)
%本身老化,或者即使它们是数字。更好的代码
做这些事情。
已提供极限的%检验。如果没有,则默认为21
如果Nargin < 2, limit = 21;结束
%不需要使用if语句。测试本身就是期望的结果。
Tooyoung =年龄< limit;
结束
我的大部分代码实际上都是注释。帮助是非常重要的,因为它允许您在明年忘记代码是如何编写的,或者忘记参数的含义时快速使用代码。
将内部注释看作是对自己的提醒,从现在开始的一年内,当您查看代码时,由于某种原因需要更改代码,或者上帝保佑,您需要调试它。我推荐的目标是每行代码都有一行注释,或者最坏的情况是每行代码中完成的重要事情都有注释。
评论是免费的!由于所有评论,良好的代码应该看起来很好。由于所有评论,我的解决方案代码才冗长。
还有什么?
请记住,白色空间非常重要。它使您的代码易于阅读。
使用智能的、有意义的变量名。好的助记变量名有助于使代码自文档化,并且同样易于阅读。当您扫描代码时,您不希望不断返回并被迫记住变量wxxyy的作用?
正如我所说,更好的代码将包括测试,以验证年龄和限制是否实际上是数字变量。最好的代码是友好的代码。当它失败时,您希望以友好的方式将代码转移到小型,告诉该人被认为是错误的。你不想发生的是代码做了一些螺旋和意外的东西,或者返回一些随机难以理解错误消息。最好的代码可以轻松地使用该代码。
这段代码中的最后一个测试是一个矢量化测试,如果你像这样调用代码:
太年轻=年龄不足([12 5 29 75],21)
tooyoung =
1 1 0 0
它将工作并返回一个结果向量。向量化代码通常是好的代码,因为当用户想在一行中多次使用代码时,它允许用户不被强制使用循环。
最后,我能写出只需要一行代码的代码吗?因此,测试是否提供了限制,并在一行中返回与年龄的比较?可能吧,但那样会变得不必要的复杂,难以阅读和调试。在代码的质量或运行速度方面不会有任何收获。好的代码要简单、易读、易使用、易调试。
5个评论
里克
里克 8月5日
你有没有阅读过文档 输入参数个数 函数来看看它做了什么?它返回你在[put]中提供的参数的n[个数]。如果它小于2,这意味着这个极限没有作为输入参数提供。

登录评论。

更多的答案(22)

Saurabh库马尔
Saurabh库马尔 2019年3月28日
编写一个函数 under_age 它有两个正整数标量参数:
  1. 年龄这代表了某人的年龄,和
  2. 限制这是一个年龄限制。
函数返回 真正的 如果这个人低于年龄限制。如果第二个参数, 限制 ,则默认为21。您不需要检查输入是否为正整数。
函数x = under_age(年龄、限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
x = true;
其他的
x = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
x = true;
其他的
x = false;
结束
结束
7评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年6月20日
Matlab(以及几乎所有编程语言......但不是 所有 )是过程语言,在这些语言中,语句的顺序很重要。
假设你在爬梯子。在大多数情况下,你一次只能向上走一步。现在假设你用这种方式编程,
“将脚移动50厘米,并放宽”
但是当你到达顶峰时怎么样?
“将脚移动50厘米,并放宽”
“如果没有更高的阶梯,就不要走那一步”
太迟了。你已经把重心放在半空中了 之前 检查是否有一些东西可以将其重量放在上面。
相反,你需要一张支票
"如果有更高的横档,将脚移高50厘米,并把重量放在上面"
先检查一下, 之前 依赖于它的存在。
你编码的方式
如果年龄<限制
如果输入参数个数< 2
限制= 21.
结束
结束
这类似于在把你的体重放在应该的位置之前没有检查更高的横档。
===
更好的编程实践是首先检查异常,在进行计算之前检查计算是否有效。
但是,那里有 在某些情况下,如果遇到异常,可以有效地“修补”。例如,更好的编程实践是“1/x如果x不是0,0如果x是0”
y = 0(大小(x));
掩模= x ~= 0;
y(面具)= 1. / x(面具);
这段代码从不做除0的运算。
但如果你是 确定 当你使用IEEE 754时,你可以相信IEEE 754定义了1/x 一些 结果为1/0(而不是崩溃的程序),你可以做一个修补后的版本:
y = 1. / x;
Y (x = 0) = 0;
后来这个问题的修补版本是这样的,
函数年龄不足(年龄,限度)
太_young =年龄<21;
如果输入参数个数> 1
Too_young =年龄<限制;
结束
结束
注意这个变量 限制 ,直到检查确定它存在后才使用。

登录评论。


玛雅ghugretkar
玛雅ghugretkar 2019年6月7日
这也可以……
有点紧凑的方法
函数年龄不足(年龄,限度)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
返回
结束
结束
5个评论
里克
里克 2021年6月3日
帮助输入参数个数
NARGIN函数输入参数个数。在用户定义函数的函数体中,NARGIN返回用于调用该函数的输入参数的数量。如果函数使用参数验证块,那么这个数字中只包含函数调用提供的位置参数。不包括调用方未提供的可选参数。无论是否提供,都不会包含名称-值参数。NARGIN(FUN)返回函数FUN声明的输入数量。如果函数具有可变数量的输入参数,则参数数为负。如果函数使用参数验证块,NARGIN将函数行上声明的位置参数的数量以非负值的形式返回。FUN可以是映射到特定函数的函数句柄,也可以是包含该函数名称的字符向量或字符串标量。参见NARGOUT, VARARGIN, NARGINCHK, INPUTNAME, MFILENAME。 Documentation for nargin doc nargin Other functions named nargin fittype/nargin inline/nargin

登录评论。


Astr
Astr 2019年9月8日
函数年龄不足(年龄,限度)
如果输入参数个数= = 1
限制= 21;
结束
to_young = gt(限制,年龄);

Nijita Kesavan Namboothiri
Nijita Kesavan Namboothiri 2019年6月25日
函数too_young = under_age(年龄限制)
如果(输入参数个数< 2)
限制= 21;
结束
如果(年龄<限制)
too_young = true
其他的
too_young = false
结束
结束
6个评论

登录评论。


Siddharth Joshi.
Siddharth Joshi. 2020年4月23日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
18 too_young = under_age(18日)
too_young = under_age (20)
太_ young =
逻辑
0
太_ young =
逻辑
1


赛语Gorantla
赛语Gorantla 2020年2月1日
编辑:里克 2020年6月17日
函数[too_young] = under_age(年龄,限制)
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
elsef.输入参数个数< 2
如果年龄< = 21
too_young = true;
其他的
too_young = false;
结束
结束

穆罕默德elyoussef
穆罕默德elyoussef 2020年4月4日
函数c = under_age (a, b)
如果输入参数个数< 2
b = 21;
结束
如果b >
c = true;
其他的
c = false;
结束

马哈卡汗
马哈卡汗 2020年4月9日
函数[too_young] = under_age(年龄,限制)
如果(nargin < 2) || is空(limit)
限制= 21;
结束
如果年龄> 21
too_young = false;
elsef.年龄<限制
too_young = true;
elsef.年龄= =
too_young = false;
elsef.年龄< = 21
too_young = true;
elsef.年龄<年龄
too_young = false;
elsef.年龄< = 21
too_young = true;
其他的
too_young = true;
结束
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年4月9日
假设用户通过限制35,例如测试美国总统的测试。并假设年龄在29岁。然后 如果年龄> 21 如果29日> 21 这是真的,所以你声明too_young=false,但显然答案应该是真的:29 <指定的极限。

登录评论。


米尔Mahim
米尔Mahim 2020年5月7日
函数一个= under_age(年龄、限制)
如果输入参数个数< 2
限制= 21;
结束
A =年龄< limit;
结束

Aasma谢赫
Aasma谢赫 2020年5月26日
函数年龄不足(年龄,限度)
如果输入参数个数< 2
限制= 21;
如果(年龄<限制)
too_young = true;
其他的
too_young = false;
结束
elsef.((输入参数个数= = 2)& &(年龄<限制)
too_young = true;
其他的
too_young = false;
结束
结束
复制,粘贴并运行

jaya shankar veeramalla
函数too_young = under_age(年龄限制)
如果(nargin < 2) || is空(limit)
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的年龄> =限制
too_young = false;
结束

AYUSH MISHRA
AYUSH MISHRA 2020年6月4日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
解决方案;
under_age(18岁,18)
ans =
逻辑
0
under_age (20)
ans =
逻辑
1

Keshav Patel.
Keshav Patel. 2020年6月8日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束

saurav女子
saurav女子 2020年6月17日
编辑:里克 2020年6月17日
函数[一]= under_age (n,米)
一个= n < m;
如果= = 1;
流(“真正的”
结束
如果输入参数个数< 2;
m = 21;
结束
结束

阿卡什SHELKE
阿卡什SHELKE 于2020年8月9日
编辑:阿卡什SHELKE 于2020年8月9日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束

穆罕默德·阿克马尔·阿非布丁·普特拉
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
Too_young = 1;
其他的
Too_young = 1 ==2;
结束
结束
3评论

登录评论。


Omkar Gharat
Omkar Gharat 8月11日
函数[too_young] = under_age(年龄、限制);
%Age =输入('输入申请人年龄:')
% limit = input('输入申请人年龄限制')
如果输入参数个数< 2
限制= 21;
结束
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
这是我的代码,它是100%正确的

Khom Raj Thapa Magar
Khom Raj Thapa Magar 在2020年9月6日
在编码时确保缩进是正确的
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果输入参数个数= = 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
调用功能
>> too_young =未满年龄(18,18)
>> too_young =未满年龄(20)
输出:
太_ young =
逻辑
0
太_ young =
逻辑
1

杰西卡Trehan
杰西卡Trehan 2020年9月21日
函数too_young = under_age(年龄限制)
如果输入参数个数< 2
限制= 21;
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
如果nargin == 2
如果年龄<限制
too_young = true;
其他的
too_young = false;
结束
结束
%完美的代码
7评论
里Olha Skurikhina
里Olha Skurikhina 2021年1月11日
谢谢你!这是非常愚蠢的。在这个过程中我已经解决了更困难的问题,但是这个没有解决。这是我的问题,加上如果年龄=限制,它仍然应该返回false,所以'<='是不正确的。

登录评论。


Qasir Iqbal.
Qasir Iqbal. 2021年4月4日
函数too_young = under_age(年龄,限制)
如果nargin < 2
限制= 21;
结束
如果年龄<限制
too_young = true
其他的
太_young = false.
结束

阿姆阿里
阿姆阿里 2021年9月6日6点09分
函数too_young = under_age(年龄、限制);
开关输入参数个数
情况下1
限制= 21;
结束
如果(年龄>);
too_young = true;
其他的
too_young = false;
结束
开关输入参数个数
情况下2
结束
如果限制年龄>;
too_young = true;
其他的
too_young = false;
结束
2的评论

登录评论。

类别

s manbetx 845


释放

R2017b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!