输入值
- 动词,一个与正则表达式匹配的字符串
([a-pr-vyzıöüçğş]*[aeıioöuü][bcçdfgğhj-nprsştvyz]+|([a-pr-vyzıöüçğş]*[aeıioöuü]){2})(mak|mek)
- 复数,真值或假值
- person,值为1、2或3的整数
- 时态,值为1、2或3的整数
输出量
土族动词的共轭形式动词,在人ST / ND / RD人,复数如果复数是TRUE
和单数,如果它不是在
- 如果时态为1,则表示现在;否则为1。
- 如果时态为2,则表示现在。
- 如果时态为3,则表示将来。
规则
土耳其语动词包含三个要素,依次排列:
- 所述干,通过去除形成
mak
或mek
从不定式的端部; 时态的符号,即:
对于简单的礼物:
- -r如果词干以元音结尾;
- -ir根据元音和声规则(请参见下文),如果词干包含多个音节(即元音),或者来自以下不规则动词之一:almak,bilmek,bulmak,durmak,gelmek,görmek,kalmak,olmak, ölmek,sanmak,vermek,varmak,vurmak;
- -如果词干包含一个音节并且未在上面的不规则动词中列出,则按照元音和声规则。
对于连续的现在,-iyor,其中i根据元音和声规则变化。以元音结尾的词干在添加此后缀之前先将其删除,然后该后缀与单词中倒数第二个元音(由正则表达式保证存在)协调。
- 为将来:
- -如果词根以辅音结尾,则根据元音和声规则进行-ecek;
- -如果词根以元音结尾,则按照元音和声规则进行-yecek。
在所有情况下,根据元音和声规则,使用个人后缀来指示操作的执行者:
|Singular|Plural| |---|--------|------| |1st| -im | -iz| |2nd| -sin |-siniz| |3rd| (none) | -ler|
将来时的最后一个k在-im和-iz之前变为ğ,因此例如会屈服。
(almak, TRUE, 1, 3)
alacağız
元音和声规则
土耳其语元音按其在口中的位置分为两组:后面(a ı o u
)和前面(e i ö ü
)。单词的后缀会根据词根的元音更改元音。
上面列出的所有将i作为元音的后缀都改为:
- -ı如果后缀前的最后一个元音为
ı
或a
(这些元音都向后且未四舍五入); - -i如果后缀前的最后一个元音为
i
或e
(这两个元音都在前面且未四舍五入;请在此处注意土耳其语在点缀I和不点缀I之间的区别); - -u如果后缀之前的最后一个元音为
u
或o
(这两个元音都向后舍入并四舍五入);要么 - -ü如果后缀前的最后一个元音是
ü
或ö
(这两个元音都在前面并且是圆角的)。
请注意当前连续后缀-iyor。在i
和谐,但o
不会改变。个人后缀将因此与o
。
上面列出的所有以e为元音的后缀都改为:
- -e如果后缀前的最后一个元音是前元音;要么
- -a如果后缀前的最后一个元音是后元音。
不规则动词
动词gitmek,tatmak,ditmek,gütmek和etmek将最终音调更改为t
以d
元音开头的任何结尾(包括此挑战中的所有结尾)。任何以-etmek结尾的动词同样会将-更改t
为a d
,并为简单的现在附加-er(尽管其他动词不是这样)。
测试用例
gütmek, FALSE, 1, 2 -> güdüyorum
almak, TRUE, 3, 3 -> alacaklar
boğmak, TRUE, 2, 1 -> boğarsınız
ölmek, FALSE, 3, 1 -> ölür
boyamak, TRUE, 1, 2 -> boyuyoruz
affetmek, FALSE, 2, 1 -> affedersin
söylemek, TRUE, 3, 1 -> söylerler
söylemek, FALSE, 3, 2 -> söylüyor
söylemek, FALSE, 1, 3 -> söyleyeceğim
@Arnauld完成。通过这样做,我发现自己在规范中犯了一个错误,该错误已附加到“不规则动词”部分。
—
EMBLEM
由于规范非常复杂,因此可以使用更多的测试用例。
—
戴夫
@Dave我又添加了3个,这使我花了足够长的时间在移动设备上。我将在以后添加更多内容。
—
EMBLEM
-etmek
规则的测试用例吗?