Maps 形式化方法.两套BL和Fiat的汽车价格与价格的关系图
Derek Andrews和Darrel INCE在《VDM的实用形式化方法》第5章中提出了一个问题,我不知道该如何回答,所以这里有一个问题,谢谢大家的帮助 如果地图价格与汽车价格相关,则集合BL包含英国莱兰和菲亚特生产的汽车以及菲亚特生产的汽车。使用本章和集合章节中介绍的地图设施和集合设施,写下以下说明 (d)价格在6000英镑至7000英镑之间的菲亚特汽车数量 这就是我目前的想法 1.获取所有菲亚特的价格,即价格(菲亚特)返回价格图的子集 i、 e.{punto-→ 5500,熊猫-→ 6600} 2.可能是地图上的卡限制价格范围(菲亚特) 但我不确定这是否合法Maps 形式化方法.两套BL和Fiat的汽车价格与价格的关系图,maps,range,formal-languages,formal-methods,vdm++,Maps,Range,Formal Languages,Formal Methods,Vdm++,Derek Andrews和Darrel INCE在《VDM的实用形式化方法》第5章中提出了一个问题,我不知道该如何回答,所以这里有一个问题,谢谢大家的帮助 如果地图价格与汽车价格相关,则集合BL包含英国莱兰和菲亚特生产的汽车以及菲亚特生产的汽车。使用本章和集合章节中介绍的地图设施和集合设施,写下以下说明 (d)价格在6000英镑至7000英镑之间的菲亚特汽车数量 这就是我目前的想法 1.获取所有菲亚特的价格,即价格(菲亚特)返回价格图的子集 i、 e.{punto-→ 5500,熊猫-→ 66
fiat <: price
菲亚特
fiat <: price
fiatDaniel的答案几乎是正确的,只是在末尾的整数范围内缺少了花括号。以下是在VDMJ下测试的示例:
values
price = { <PUNTO> |-> 5500, <PANDA> |-> 6600, <MINI> |-> 9000 };
BL = { <MINI> };
fiat = { <PUNTO>, <PANDA> };
值
价格={|->5500,|->6600,|->9000};
BL={};
菲亚特={,};
然后:
> p fiat <: price
= {<PUNTO> |-> 5500, <PANDA> |-> 6600}
Executed in 0.079 secs.
>
> p (fiat <: price) :> {6000,...,7000}
= {<PANDA> |-> 6600}
Executed in 0.023 secs.
>
> p card dom ((fiat <: price) :> {6000,...,7000})
= 1
Executed in 0.064 secs.
>
>p菲亚特5500,|->6600}
执行时间为0.079秒。
>
>p(法定{6000,…,7000}
= { |-> 6600}
执行时间为0.023秒。
>
>p卡dom((法定{6000,…,7000})
= 1
执行时间为0.064秒。
>
Daniel的答案几乎是正确的,只是在结尾处缺少整数范围的方括号。下面是在VDMJ下测试的示例:
values
price = { <PUNTO> |-> 5500, <PANDA> |-> 6600, <MINI> |-> 9000 };
BL = { <MINI> };
fiat = { <PUNTO>, <PANDA> };
值
价格={|->5500,|->6600,|->9000};
BL={};
菲亚特={,};
然后:
> p fiat <: price
= {<PUNTO> |-> 5500, <PANDA> |-> 6600}
Executed in 0.079 secs.
>
> p (fiat <: price) :> {6000,...,7000}
= {<PANDA> |-> 6600}
Executed in 0.023 secs.
>
> p card dom ((fiat <: price) :> {6000,...,7000})
= 1
Executed in 0.064 secs.
>
>p菲亚特5500,|->6600}
执行时间为0.079秒。
>
>p(法定{6000,…,7000}
= { |-> 6600}
执行时间为0.023秒。
>
>p卡dom((法定{6000,…,7000})
= 1
执行时间为0.064秒。
>
谢谢你的帮助!我发现你也可以使用集合理解,即使用集合构造:{c∈fiat | 6000感谢您的帮助!我发现您也可以使用集合理解来实现此目的,即使用集合构造:{c∈fiat | 6000顺便说一句,如果您试图使用此规范评估“价格(fiat)”,VDMJ会给出以下错误:>p价格(fiat)错误3058:映射应用程序参数是不兼容的映射域类型:(| |)参数:一组(|)顺便说一句,如果您试图评估“价格(fiat)”使用此规范,VDMJ给出以下错误:>p价格(fiat)错误3058:映射应用程序参数是不兼容的映射域类型:(| |)参数:集合((|)