Dne 15-Nov-00 ob  20:06:24 je Andra` Tori mislil(a),da mora napisati:
> 
> Tole forwardam ker men ni nic jasn, v  textu nastopa tudi omenjanje
> slovenske mnozine... bi kdo pogruntal zakaj se gre 
> 
Ocitno gre za (poskus) prevod(a) nekega programa v razne slovanske jezike, pri
tem pa se je izkazalo, da je tvorjenje množine precej bolj zapleteno kot pri
drugih jezikih in za nameček odvisno še od števila objektov. V angleščini in
pri še marsikaterem neslovanskem jeziku bi moral imeti v slovarju zgolj obliko
za ednino in množino, pravilno obliko pa bi preprosto določil z:

if (n==1)
  uporabi_ednino( );
 else
  uporabi_mnozino( );

Kot rečeno, pa je pri slovanskih jezikih to nekoliko bolj zapleteno, saj moraš
imeti v slovarju več oblik za množino (to je verjetno nplurals). Za omenjene
slovanske jezike bo morda veljalo že napisano pravilo, ne bom pa tega trdil,
ker jih ne poznam, bom pa z besedami opisal pravilo za slovenščino:

- najprej določiš nn=n%100 (ostanek po deljenju s 100)
- če nn==1 uporabiš ednino (tudi "v bus se je zbasal 101 potnik" je pravilno)
- če nn==2 uporabiš DVOJINO, ki jo, kakor smo se učili, poleg slovenščine menda
pozna samo še lužiška srbščina (govori se v vzhodni Nemčiji v bližini tromeje s
Češko in Poljsko), češčina pa, kolikor vem in kakro je narobe omenjeno, ne.
"Tekmo sta si ogledala 1702 gledalca"
- če nn==3 || nn==4 uporabiš tisto množino, ki se ponavadi uporablja, če
natančno število objektov ni navedeno: "V tunelu so zgoreli 203 (dvosto trije)
ali celo 304 (tristo štirje) smučarji", isto bi bilo, če ne bi navedel števila
smučarjev.
-- če nn>4 uporabiš drugo množino, ki je kar enaka rodilniku množine: "v
letalski nesreči je umrlo vseh 412 (štiristo dvanajst) potnikov" 

Malo bolj lahko zapleteš, če se n konča z 0:
-- če n>0, potem isto kot nn>4: "ustrelili so 10 talcev"
-- če pa n==0, pa ponavadi uporabiš še nikalnico in namesto same številke
uporabiš nič, nihče itn. "Nihče ni bil poškodovan" se sliši neprimerno lepše
kot "poškodovanih je bilo 0 osebkov"

Ta pravila je sedaj potrebno prevesti v tisti C-jevski if, potem pa upoštevati
še sklanjatve, kar pa verjetno sodi že na področje umetne inteligence.


Omenjeno je tudi tvorjenje vrstilnih števnikov, ki je kar enako kot pri češčini
in slovaščini, torej 1., 2., 3., 4., 5., ... 15378.,....
kar pomeni, da za številom preprosto napišeš še piko in to je to.

--------
Windows is an exellent way to decrease the value of your computer.
But Moore's law does the same thing - for free !!!
--------

Jernej

Одговори путем е-поште