Altgriechische Zahlwörter

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Altgriechische Zahlwörter

      Hi,
      Ich schreibe zur zeit für meinen chemieunterricht ein Programm. Was genau es tut tut hier nichts zu sache.
      Jedenfalls bräuchte ich (Für Nomenklaturen) einen Code, der mir Derative Altgriechische Zahlwörter ausgibt.
      Das heißt soviel wie: du tippst "17" er sagt "heptakaideka".

      ich habe dazu eine kleine übersichtstabelle gefunden die mir zumindest bei den ersten paar zahlen hilft:


      Und hier noch ein paar Artikel zum Thema:
      [url]http://de.wikipedia.org/wiki/Griechische_Zahlw%C3%B6rter
      [/url] (Spalte: Derative)
      [url]http://www.foundalis.com/lan/grknum.htm
      [/url]
      [url]http://www.biosphaere.info/biosphaere/index.php?artnr=000229
      [/url]

      Ich hatte nie Altgriechisch in der schule und bin am verzweifeln! ich schaffs einfach nicht einen einfachen code zu schreiben, der mir die zahlwörter zumindest von 1 - 999 ausgibt!!
      Bin für jede Hilfe unendlich dankbar!
    • Ich kann zwar kein griechisch, aber sieh dir mal folgenden Ansatz an:

      Spoiler anzeigen

      GML-Quellcode

      1. num = argument0;
      2. n[1] = "mono";
      3. n[2] = "di";
      4. n[3] = "tri";
      5. n[4] = "tetra";
      6. n[5] = "penta";
      7. n[6] = "hexa";
      8. n[7] = "hepta";
      9. n[8] = "okta";
      10. n[9] = "ennea";
      11. n[10] = "deka";
      12. n[11] = "undeka";
      13. n[12] = "dodeka";
      14. n[20] = "eikosa";
      15. n[21] = "heneikosa";
      16. n[22] = "dokosa";
      17. //Wenn Zahl zwischen 1 und 13
      18. if (num > 0 && num < 13)
      19. {
      20. return n[num];
      21. }
      22. //Wenn Zahl zwischen 12 und 20
      23. if (num > 12 && num < 20)
      24. {
      25. return string(n[num-10]+"deka");
      26. }
      27. //Wenn Zahl zwischen 22 und 30
      28. if (num > 22 && num < 30)
      29. {
      30. return string(n[num-20]+"kosa");
      31. }
      32. //.....
      33. //Wenn Sonderfall
      34. return n[num];
      Alles anzeigen


      //edit: Oh, du willst die Zahlen bis 999. Das kann lange dauern... :P
    • Ok fertig. das hat eeeeeeeeeeeeeeeeeeewig gedauert. es müssten jetzt so ziemlich alle ausnahmen und so weiter drinnen sein. kann zaahlen von 1 - 9999 umrechnen.
      ist aber in c# falls es jemad verwenden will :D:D wohl ehen nicht naja:
      Spoiler anzeigen

      GML-Quellcode

      1. public static string GreekNumeral(int number)
      2. {
      3. // 2 6 3 -> 362
      4. // do hexa-conta tri-cta
      5. //Außnahmen
      6. if (number == 1)
      7. return "mono";
      8. if (number == 2)
      9. return "di";
      10. if (number == 11)
      11. return "undeca";
      12. if (number == 12)
      13. return "dodeca";
      14. if (number == 20)
      15. return "icosa";
      16. if (number == 21)
      17. return "henicosa";
      18. if (number == 22)
      19. return "docosa";
      20. string[] Num1 = new string[9];
      21. Num1[0] = "hen";
      22. Num1[1] = "do";
      23. Num1[2] = "tri";
      24. Num1[3] = "tetra";
      25. Num1[4] = "penta";
      26. Num1[5] = "hexa";
      27. Num1[6] = "hepta";
      28. Num1[7] = "octa";
      29. Num1[8] = "nona";
      30. int numlen = number.ToString().Length;
      31. if (numlen > 4 || number <= 0)
      32. return "[" + number + "]";
      33. string s = "";
      34. if (numlen >= 1)
      35. {
      36. int einser = Convert.ToInt32(number.ToString()[numlen-1] + "");
      37. if (einser != 0)
      38. s += Num1[einser-1];
      39. }
      40. if (numlen >= 2)
      41. {
      42. int zehner = Convert.ToInt32(number.ToString()[numlen - 2] + "");
      43. string s1, s2;
      44. if (zehner == 1 || zehner == 0)
      45. s1 = "";
      46. else
      47. s1 = Num1[zehner - 1];
      48. if (zehner == 0)
      49. s2 = "";
      50. else if (zehner == 2)
      51. s2 = "cosa";
      52. else if (zehner == 1)
      53. s2 = "deca";
      54. else
      55. s2 = "conta";
      56. s += s1 + s2;
      57. }
      58. if (numlen >= 3)
      59. {
      60. int hunderter = Convert.ToInt32(number.ToString()[numlen-3] + "");
      61. string s1, s2;
      62. if (hunderter == 1 || hunderter == 0)
      63. s1 = "";
      64. else
      65. s1 = Num1[hunderter - 1];
      66. if (hunderter == 0)
      67. s2 = "";
      68. else if (hunderter > 1)
      69. s2 = "cta";
      70. else
      71. s2 = "hecta";
      72. s += s1 + s2;
      73. }
      74. if (numlen >= 4)
      75. {
      76. int tausender = Convert.ToInt32(number.ToString()[numlen-4] + "");
      77. string s1, s2 = "lia";
      78. if (tausender == 1)
      79. s1 = "ki";
      80. else
      81. s1 = Num1[tausender - 1];
      82. s += s1 + s2;
      83. }
      84. return s;
      85. }
      Alles anzeigen