Cetak konjugasi penuh kata kerja Perancis

9

Diberikan string yang diakhiri dengan "er", "ir", atau "re" ("infinitive"), menampilkan konjugasi penuh dari string sebagai kata kerja Prancis dalam tujuh bentuk kata sederhana. Untuk setiap bentuk (dalam urutan yang diberikan di bawah), buat setiap kata ganti subjek dalam urutan berikut: je , tu , il , elle , nous , vous , ils , elles ; diikuti oleh spasi, kata kerja dikonjugasikan sesuai dengan kata ganti itu, dan baris baru. Jika kata kerjanya dimulai dengan vokal ( aeiou) atau h, je menjadi j ' dan spasi dihilangkan.

Dalam semua contoh, saya akan menggunakan kata kerja reguler exister , invertir , dan rendre untuk menunjukkan. Bahasa Prancis memiliki banyak sekali kata kerja tidak beraturan, yang akan kita abaikan untuk membuat spesifikasi dan tantangan lebih mudah.

Tenses

Kala Kini

Hapus er / ir / re dari infinitive dan tambahkan akhiran berikut:

  • er : j'exist e , tu ada es , il ada e , elle ada e , nous ada ons , vous ada ez , ils ada ent , elles ada ent .
  • ir : j'invert adalah , tu invert adalah , il invert itu , elle invert itu , nous invert issons , vous invert issez , ILS invert issent .
  • re : je rend s , tu rend s , il rend, elle rend (no endings), nous rend ons , vous rend ez , ils ent ent , elles rend ent .

Tidak sempurna

Hapus er / ir / re dari infinitive dan tambahkan akhiran berikut:

  • er dan re : j'exist ais , tu ada ais , il ada ait , elle ada ait , nous ada ion , vous ada iez , ils ada ils aient , elles ada aient .
  • ir : j'invert issais , tu invert issais , il invert issait , elle invert issait , nous invert issions , vous invert issiez , ils invert issaient .

Masa lalu yang sederhana

Hapus er / ir / re dari infinitive dan tambahkan akhiran berikut:

  • er : j'exist ai , tu ada sebagai , il ada seorang , elle ada seorang , yang ada nous Ames , yang ada vous Ates , ILS ada erent , elles ada erent .
  • ir dan re : je rend is , tu rend is , il rend it , elle rend it , nous rend îmes , vous rend îtes , ils rend irent , elles rend irent .

Masa depan

Untuk semua kata kerja, tambahkan akhiran ini langsung ke infinitif (meskipun kata kerja ulang drop e ):

  • jiinvertir ai , tu invertir sebagai , il invertir a , elle invertir a , nous invertir on , vous invertir ez , ils invertir ont , elles invertir ont .

Bersyarat

Untuk semua kata kerja, tambahkan akhiran ini langsung ke infinitif (meskipun kata kerja ulang drop e ):

  • j'invertir ais , tu invertir ais , il invertir ait , elle invertir ait , invertir nous ion , vous invertir ieZ , ILS invertir aient , elles invertir aient * .

Subjektif sekarang

Hapus er / ir / re dari infinitive dan tambahkan akhiran berikut:

  • er dan re : j'exist e , tu ada es , il ada e , elle ada e , ada ion , Anda ada iez , ils ada ent , elles ada ent .
  • ir : j'invert isse , tu invert isses , il invert isse , elle invert isse , nous invert issi , vous invert issiez , ils invert issen , elles invert issent .

Subjektif tidak sempurna

Hapus er / ir / re dari infinitive dan tambahkan akhiran berikut:

  • er : j'exist Asse , tu yang ada keledai , il yang ada di , elle yang ada di , yang ada nous assions , vous yang ada assiez , ILS ada persetujuan , elles ada persetujuan .
  • ir dan re : je rend isse , tu rend isses , il rend itu , elle rend itu , rend nous issions , vous rend issiez , ILS rend issent , elles rend issent .

Output sampel

Untuk kata kerja eraller ,, output Anda harus:

j'alle
tu alles
il alle
elle alle
nous allons
vous allez
ils allent
elles allent
j'allais
tu allais
il allait
elle allait
nous allions
vous alliez
ils allaient
elles allaient
j'allai
tu allas
il alla
elle alla
nous allâmes
vous allâtes
ils allèrent
elles allèrent
j'allerai
tu alleras
il allera
elle allera
nous allerons
vous allerez
ils alleront
elles alleront
j'allerais
tu allerais
il allerait
elle allerait
nous allerions
vous alleriez
ils alleraient
elles alleraient
j'alle
tu alles
il alle
elle alle
nous allions
vous alliez
ils allent
elles allent
j'allasse
tu allasses
il allât
elle allât
nous allassions
vous allassiez
ils allassent
elles allassent

Untuk kata kerja iravoir ,, output Anda harus:

j'avois
tu avois
il avoit
elle avoit
nous avoissons
vous avoissez
ils avoissent
elles avoissent
j'avoissais
tu avoissais
il avoissait
elle avoissait
nous avoissions
vous avoissiez
ils avoissaient
elles avoissaient
j'avois
tu avois
il avoit
elle avoit
nous avoîmes
vous avoîtes
ils avoirent
elles avoirent
j'avoirai
tu avoiras
il avoira
elle avoira
nous avoirons
vous avoirez
ils avoiront
elles avoiront
j'avoirais
tu avoirais
il avoirait
elle avoirait
nous avoirions
vous avoiriez
ils avoiraient
elles avoiraient
j'avoisse
tu avoisses
il avoisse
elle avoisse
nous avoissions
vous avoissiez
ils avoissent
elles avoissent
j'avoisse
tu avoisses
il avoît
elle avoît
nous avoissions
vous avoissiez
ils avoissent
elles avoissent

Untuk kata kerja ulangfaire ,, output Anda harus:

je fais
tu fais
il fai
elle fai
nous faions
vous faiez
ils faient
elles faient
je faiais
tu faiais
il faiait
elle faiait
nous faiions
vous faiiez
ils faiaient
elles faiaient
je faiis
tu faiis
il faiit
elle faiit
nous faiîmes
vous faiîtes
ils faiirent
elles faiirent
je fairai
tu fairas
il faira
elle faira
nous fairons
vous fairez
ils fairont
elles fairont
je fairais
tu fairais
il fairait
elle fairait
nous fairions
vous fairiez
ils fairaient
elles fairaient
je faie
tu faies
il faie
elle faie
nous faiions
vous faiiez
ils faient
elles faient
je faiisse
tu faiisses
il faiît
elle faiît
nous faiissions
vous faiissiez
ils faiissent
elles faiissent

(Ini bukan konjugasi sebenarnya dari kata kerja di atas. Pada kenyataannya mereka sangat tidak teratur.)

Ini golf kode. Pengajuan terpendek menang.

Ungu P
sumber
3
Saya pikir menggunakan manger, finirdan (entre)prendresebagai contoh harus lebih baik, terasa seperti Anda sengaja mengambil kata kerja tidak beraturan :)
jonatjano
4
@jonatjano (entre)prendrejuga tidak teratur. Jadi mungkin entendresebaliknya. (Tapi saya setuju bahwa contoh-contoh saat ini terlihat mengerikan jika Anda mengenal bahasa Prancis.)
Arnauld
3
@Arnauld Saya kebetulan Prancis dan benar-benar sakit :) dan ya saya lupa (entre)prendreapakah irregullar entendrebenar-benar lebih baik
jonatjano
3
@KevinCruijssen Saya akan membiarkan OP memutuskan tetapi sebagai penutur asli bahasa Perancis, saya pasti akan mengatakan je yoyote daripada j'yoyote (meskipun beberapa situs menyarankan yang terakhir).
Arnauld
2
Saya tidak berpikir bahwa @ Shaggy menyiratkan bahwa ada masalah dengan spesifikasi, tetapi hanya masalah dengan kasus uji - karena ada sedikit gunanya menerapkan aturan reguler ke kata kerja tidak beraturan.
Arnauld

Jawaban:

2

Arang , 488 276 byte

F⪪§⪪”}∨>↓⁷8lυW!M\ηX↨%]ν÷g×D\﹪3}Þ1Xζ÷S¹.m×K⦄}.}◧TI¡νυOA×∨´TE…8λ→Y×⁶⁰⟦αLi↓↶⎚⦃ω>◧‴κv≦|≕…K⊕Yλ⎇&✳⍘ςθA⪪@₂)¦Hg@»‽H2.⁵÷-⁸n¬u⊘¡″βEN≡x↔÷Wyⅈ(J\`﹪◨⁸||kU_ ←%Zσ¤«⊟Q§!χ⁰⸿¤:\`α´↖±↔5À⊗I¡o⊞⁵cp✳ιg«“/_$↖↧↧⪫,↗A”¶¶⌕er§θ±²¶F⁶F⎇›№aehiou§θ⁰κ⟦j'⟧⁺⪪§⪪”↶↥ζ⊟pW↔,⦄≡WA→÷⪫$Aⅉ⟦v⎇” 궦 «λ…θ⁻Lθ²⭆§⪪ι κ§⁺âèîμ⌕AEIμ⸿

Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:

F⪪§⪪”...”¶¶⌕er§θ±²¶

String terkompresi yang sangat panjang dibagi menjadi beberapa paragraf, setiap paragraf mewakili akhiran untuk akhiran kata kerja tertentu. Akhiran yang tepat dipilih tergantung pada huruf terakhir kedua dalam kata kerja. Paragraf ini dibagi menjadi beberapa baris yang mewakili akhir untuk setiap tegang secara bergantian. Bentuk kata kemudian dilingkarkan.

F⁶

Lingkari ketiga orang dan bentuk jamak mereka.

F⎇›№aehiou§θ⁰κ⟦j'⟧⁺⪪§⪪”↶↥ζ⊟pW↔,⦄≡WA→÷⪫$Aⅉ⟦v⎇” 궦 «

Lingkari kata ganti untuk orang-orang tersebut (orang ketiga memiliki dua jenis kelamin), tetapi selubung khusus ["j'"]jika perlu.

λ

Cetak kata ganti.

…θ⁻Lθ²

Cetak batang kata kerja.

⭆§⪪ι κ§⁺âèîμ⌕AEIμ

Cetak akhiran, tapi menerjemahkan AEIke âèîsebagai Arang tidak bisa kompres huruf beraksen.

⸿

Mulai baris baru.

Neil
sumber
5

JavaScript (ES6),  507  504 byte

Mengembalikan array dari 7 bentuk kata, di mana setiap bentuk adalah array dari 8 bentuk.

(v,[a,b]=v.split(/(..)$/),g=b>'r'?2:b<'i')=>[...S='0123456'].map(x=>'je/tu/il/elle/nous/vous/ils/elles'.split`/`.map((s,n)=>(!n*/^[aehiou]/.test(a)?"j'":s+' ')+a+(x>2&x<5?g>1?'r':b:'')+[...S+'789ABCD'].reduce((p,c)=>(l=p.split(c)).join(l.pop()),'55e91D4D3D7/s//9eC0s00tBai72AA/âm5âtes/èr1/îm5îtes8r72AA9oC/55e8483/7DeDeDeB76e65ât6i46i367DeD5îtB7D8ssCn2s22t848327BDi4Di3DA/a9/4/3/8/i7en6Ass5e/4on3ez2Ai178s88t0Dai').split`/`[(n-=n>2,n-=n>5)+('0x'+'102433656777888A99CBC'[x*3+g])*6]+['sst'[~-n/2]]))

Cobalah online! (verba biasa)

Cobalah online! (Bencana tata bahasa menggunakan kata kerja tidak beraturan yang disarankan dalam tantangan)

Arnauld
sumber
3

Retina , 2051 1891 byte (UTF-8)

(.+)er$
je $1e0tu $1es0il $1e0elle $1e0nous $1ons0vous $1ez0ils $1ent0elles $1ent0je $1ais0tu $1ais0il $1ait0elle $1ait0nous $1ions0vous $1iez0ils $1aient0elles $1aient0je $1ai0tu $1as0il $1a0elle $1a0nous $1âmes0vous $1âtes0ils $1èrent0elles $1èrent0je $1erai0tu $1eras0il $1era0elle $1era0nous $1erons0vous $1erez0ils $1eront0elles $1eront0je $1erais0tu $1erais0il $1erait0elle $1erait0nous $1erions0vous $1eriez0ils $1eraient0elles $1eraient0je $1e0tu $1es0il $1e0elle $1e0nous $1ions0vous $1iez0ils $1ent0elles $1ent0je $1asse0tu $1asses0il $1ât0elle $1ât0nous $1assions0vous $1assiez0ils $1assent0elles $1assent
(.+i)r$
je $1s0tu $1s0il $1t0elle $1t0nous $1ssons0vous $1ssez0ils $1ssent0elles $1ssent0je $1ssais0tu $1ssais0il $1ssait0elle $1ssait0nous $1ssions0vous $1ssiez0ils $1ssaient0elles $1ssaient0je $1s0tu $1s0il $1t0elle $1t0nous avoîmes0vous avoîtes0ils $1rent0elles $1rent0je $1rai0tu $1ras0il $1ra0elle $1ra0nous $1rons0vous $1rez0ils $1ront0elles $1ront0je $1rais0tu $1rais0il $1rait0elle $1rait0nous $1rions0vous $1riez0ils $1raient0elles $1raient0je $1sse0tu $1sses0il $1sse0elle $1sse0nous $1ssions0vous $1ssiez0ils $1ssent0elles $1ssent0je $1sse0tu $1sses0il avoît0elle avoît0nous $1ssions0vous $1ssiez0ils $1ssent0elles $1ssent
(.+)re$
je $1s0tu $1s0il fai0elle fai0nous $1ons0vous $1ez0ils $1ent0elles $1ent0je $1ais0tu $1ais0il $1ait0elle $1ait0nous $1ions0vous $1iez0ils $1aient0elles $1aient0je $1is0tu $1is0il $1it0elle $1it0nous $1îmes0vous $1îtes0ils $1irent0elles $1irent0je $1rai0tu $1ras0il $1ra0elle $1ra0nous $1rons0vous $1rez0ils $1ront0elles $1ront0je $1rais0tu $1rais0il $1rait0elle $1rait0nous $1rions0vous $1riez0ils $1raient0elles $1raient0je $1e0tu $1es0il $1e0elle $1e0nous $1ions0vous $1iez0ils $1ent0elles $1ent0je $1isse0tu $1isses0il $1ît0elle $1ît0nous $1issions0vous $1issiez0ils $1issent0elles $1issent
je ([aeiouh].+)
j'$1
S`0

Untuk implementasi titik. Akan mencoba golf turun dari sini.

Cobalah online.

Penjelasan:

Tangani semua kata yang berakhir dengan er, dengan 0pemisah garis:

(.+)er$
je $1e0tu $1es0il $1e0elle $1e0nous $1ons0vous $1ez0ils $1ent0elles $1ent0je $1ais0tu $1ais0il $1ait0elle $1ait0nous $1ions0vous $1iez0ils $1aient0elles $1aient0je $1ai0tu $1as0il $1a0elle $1a0nous $1âmes0vous $1âtes0ils $1èrent0elles $1èrent0je $1erai0tu $1eras0il $1era0elle $1era0nous $1erons0vous $1erez0ils $1eront0elles $1eront0je $1erais0tu $1erais0il $1erait0elle $1erait0nous $1erions0vous $1eriez0ils $1eraient0elles $1eraient0je $1e0tu $1es0il $1e0elle $1e0nous $1ions0vous $1iez0ils $1ent0elles $1ent0je $1asse0tu $1asses0il $1ât0elle $1ât0nous $1assions0vous $1assiez0ils $1assent0elles $1assent

Tangani semua kata yang berakhir dengan ir, dengan 0sebagai pemisah baris:

(.+i)r$
je $1s0tu $1s0il $1t0elle $1t0nous $1ssons0vous $1ssez0ils $1ssent0elles $1ssent0je $1ssais0tu $1ssais0il $1ssait0elle $1ssait0nous $1ssions0vous $1ssiez0ils $1ssaient0elles $1ssaient0je $1s0tu $1s0il $1t0elle $1t0nous avoîmes0vous avoîtes0ils $1rent0elles $1rent0je $1rai0tu $1ras0il $1ra0elle $1ra0nous $1rons0vous $1rez0ils $1ront0elles $1ront0je $1rais0tu $1rais0il $1rait0elle $1rait0nous $1rions0vous $1riez0ils $1raient0elles $1raient0je $1sse0tu $1sses0il $1sse0elle $1sse0nous $1ssions0vous $1ssiez0ils $1ssent0elles $1ssent0je $1sse0tu $1sses0il avoît0elle avoît0nous $1ssions0vous $1ssiez0ils $1ssent0elles $1ssent

Tangani semua kata yang berakhir dengan re, dengan 0sebagai pemisah baris:

(.+)re$
je $1s0tu $1s0il fai0elle fai0nous $1ons0vous $1ez0ils $1ent0elles $1ent0je $1ais0tu $1ais0il $1ait0elle $1ait0nous $1ions0vous $1iez0ils $1aient0elles $1aient0je $1is0tu $1is0il $1it0elle $1it0nous $1îmes0vous $1îtes0ils $1irent0elles $1irent0je $1rai0tu $1ras0il $1ra0elle $1ra0nous $1rons0vous $1rez0ils $1ront0elles $1ront0je $1rais0tu $1rais0il $1rait0elle $1rait0nous $1rions0vous $1riez0ils $1raient0elles $1raient0je $1e0tu $1es0il $1e0elle $1e0nous $1ions0vous $1iez0ils $1ent0elles $1ent0je $1isse0tu $1isses0il $1ît0elle $1ît0nous $1issions0vous $1issiez0ils $1issent0elles $1issent

Ganti semua jediikuti oleh vokal atau 'h' dengan j':

je ([aeiouh].+)
j'$1

Dan akhirnya terpecah menjadi nol, yang pada dasarnya menggantikan semua 0s dengan baris baru:

S`0

Setelah itu hasilnya adalah output secara implisit.

Kevin Cruijssen
sumber