Eingang
- Verb , eine Zeichenfolge, die dem regulären Ausdruck entspricht
([a-pr-vyzıöüçğş]*[aeıioöuü][bcçdfgğhj-nprsştvyz]+|([a-pr-vyzıöüçğş]*[aeıioöuü]){2})(mak|mek)
- Plural , ein wahrer oder falscher Wert
- Person , eine Ganzzahl mit dem Wert 1, 2 oder 3
- angespannt , eine ganze Zahl mit dem Wert 1, 2 oder 3
Ausgabe
Die konjugierte Form des türkischen Verb Verbs , in Person st / nd / rd Person, Plural , wenn Plural ist TRUE
und Singular , wenn dies nicht der Fall, in
- Wenn angespannt 1 ist , das Präsens;
- Wenn angespannt 2, die weiterhin vorhanden;
- Wenn angespannt 3, die Zukunft.
Regeln
Türkische Verben werden in drei Elementen konjugiert, die in der Reihenfolge sind:
- Der Stamm , gebildet durch Entfernen
mak
oder Entfernenmek
des Infinitivs; Das Zeichen der Zeitform , das ist:
Für das einfache Geschenk:
- -r wenn der Stamm in einem Vokal endet;
- -ir gemäß den Vokalharmonie-Regeln (siehe unten), wenn der Stamm mehr als eine Silbe (dh einen Vokal) enthält oder aus einem der folgenden unregelmäßigen Verben stammt: Almak, Bilmek, Bulmak, Durmak, Gelmek, Görmek, Kalmak, Olmak, ölmek, sanmak, vermek, varmak, vurmak ;
- -er nach Vokalharmonie-Regeln, wenn der Stamm eine Silbe enthält und in den obigen unregelmäßigen Verben nicht aufgeführt ist.
Für die fortdauernde Gegenwart, -iyor , wo sich das i gemäß den Regeln der Vokalharmonie ändert . Stämme, die mit einem Vokal enden, lassen diesen Vokal fallen, bevor sie dieses Suffix hinzufügen, woraufhin das Suffix mit dem vorletzten Vokal im Wort harmoniert (der durch den regulären Ausdruck garantiert existiert).
- Für die Zukunft:
- -ecek nach Vokalharmonie-Regeln, wenn der Stamm in einem Konsonanten endet;
- -yecek nach Vokalharmonie-Regeln, wenn der Stamm in einem Vokal endet.
Das persönliche Suffix , das den Ausführenden der Aktion angibt, in allen Fällen gemäß den Vokalharmonie-Regeln :
|Singular|Plural| |---|--------|------| |1st| -im | -iz| |2nd| -sin |-siniz| |3rd| (none) | -ler|
Das letzte k der Zukunftsform wird ğ vor -im und -iz , würde also zum Beispiel
(almak, TRUE, 1, 3)
nachgebenalacağız
.
Vokalharmonie Regeln
Türkische Vokale werden in zwei Gruppen unterteilt: hinten ( a ı o u
) und vorne ( e i ö ü
), wobei sie im Mund ausgesprochen werden. Die Suffixe eines Wortes ändern die Vokale entsprechend den Vokalen der Wurzel.
Alle oben aufgeführten Suffixe, die i als Vokal haben, verwenden stattdessen:
- -ı wenn der letzte Vokal vor dem Suffix
ı
oder ista
(beide Vokale sind zurück und ungerundet); - -i wenn der letzte Vokal vor dem Suffix
i
oder iste
(beide Vokale sind vorne und ungerundet; beachten Sie hier die türkische Unterscheidung zwischen gepunktetem und punktlosem I ); - -u wenn der letzte Vokal vor dem Suffix
u
oder isto
(beide Vokale sind zurück und gerundet); oder - -ü wenn der letzte Vokal vor dem Suffix
ü
oder istö
(beide Vokale sind vorne und gerundet).
Beachten Sie sorgfältig das vorliegende fortlaufende Suffix -iyor . Das i
harmoniert, aber das o
ändert sich nicht. Die persönlichen Suffixe harmonieren somit mit dem o
.
Alle oben aufgeführten Suffixe, die e als Vokal haben, verwenden stattdessen:
- -e wenn der letzte Vokal vor dem Suffix ein Frontvokal ist; oder
- -a wenn der letzte Vokal vor dem Suffix ein Rückvokal ist.
Unregelmäßige Verben
Die Verben gitmek , tatmak , ditmek , gütmek und etmek Änderung der letzte t
zu einem d
vor allen Endungen , die mit einem Vokal beginnen (die in dieser Herausforderung alle Endungen enthält). Jedes Verb, das mit -etmek endet, ändert ebenfalls das t
in a d
und hängt -er für die einfache Gegenwart an (obwohl dies für die anderen Verben nicht der Fall ist).
Testfälle
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
quelle
-etmek
Regel bereitstellen ?Antworten:
Javascript (ES6),
466456451446 BytesUngofled und kommentiert
Testfälle
quelle
d
-mutation für alle Verben, die mit -etmek enden ? Ich kenne kein JavaScript, aber soweit ich das beurteilen kann, sieht es so aus, als wäre es nur mit den anderen zusammengewürfelt.sed, 583 Bytes
Wie meine Antwort auf die eng verwandte Frage nach dem Dactylic Hexameter übersetzt dies wirklich nur die Regeln, wie sie in reguläre Ausdrücke gegeben sind.
Verwendungszweck:
Nimmt Eingaben in das Formular vor:
Die Testfälle sind also:
Nervenzusammenbruch:
Ergebnisse für Testfälle:
quelle
sed -E ''
, da Sie sed als Sprache und nicht als Bash angegeben haben. Betrachten Sie das Skript daher als sed-Quellcode. Sie könnten es dann wieprintf ...|sed -Ef filename
folgt ausführen: Fügen Sie 1 Byte mehr für das E-Flag hinzu und sparen Sie am Ende 8 Byte. Übrigens wusste ich bis heute nie, dass -E gleich -r ist!