Module:ολογράφως: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Νέα σελίδα: local export = {} divmod = function (num,divider) return math.floor(num / divider), num % divider end function table_shallow_copy(t) local t2 = {} for k,v in pairs(...
(Καμία διαφορά)

Αναθεώρηση της 13:44, 4 Απριλίου 2017

Documentation for this module may be created at Module:ολογράφως/τεκμηρίωση

local export = {}

divmod = function (num,divider)
    return math.floor(num / divider), num % divider
end

function table_shallow_copy(t)
  local t2 = {}
  for k,v in pairs(t) do
    t2[k] = v
  end
  return t2
end

function ReverseTable(t)
    local reversedTable = {}
    local itemCount = #t
    for k, v in ipairs(t) do
        reversedTable[itemCount + 1 - k] = v
    end
    return reversedTable
end

function remove_extra_delim(s, delim)
    local t = {}
    for each in s:gmatch("[^"..delim.."]+") do
        table.insert(t, each)
    end
    return table.concat(t, delim)
end

lektiko = {}
initall = function ()
lektiko['κατάληξη'] = {}
lektiko['κατάληξη'][0] = {'',''}
lektiko['κατάληξη'][1] = {'χιλιάδες','χίλιοι'}
lektiko['κατάληξη'][2] = {'εκατομμύρια','εκατομμύριο'}
lektiko['κατάληξη'][3] = {'δισεκατομμύρια','δισεκατομμύριο'}
lektiko['κατάληξη'][4] = {'τρισεκατομμύρια','τρισεκατομμύριο'}
lektiko['κατάληξη'][5] = {'τετράκις εκατομμύρια','τετράκις εκατομμύριο'}
lektiko['κατάληξη'][6] = {'πεντάκις εκατομμύρια','πεντάκις εκατομμύριο'}
lektiko['κατάληξη'][7] = {'εξάκις εκατομμύρια','εξάκις εκατομμύριο'}
lektiko['κατάληξη'][8] = {'επτάκις εκατομμύρια','επτάκις εκατομμύριο'}

lektiko['σκέτα1_19'] = {}
lektiko['σκέτα1_19'][0]= ''
lektiko['σκέτα1_19'][1]= 'ένας'
lektiko['σκέτα1_19'][2]= 'δύο'
lektiko['σκέτα1_19'][3]= 'τρεις'
lektiko['σκέτα1_19'][4]= 'τέσσερις'
lektiko['σκέτα1_19'][5]= 'πέντε'
lektiko['σκέτα1_19'][6]= 'έξι'
lektiko['σκέτα1_19'][7]= 'επτά'
lektiko['σκέτα1_19'][8]= 'οκτώ'
lektiko['σκέτα1_19'][9]= 'εννέα'
lektiko['σκέτα1_19'][10]= 'δέκα'
lektiko['σκέτα1_19'][11]= 'έντεκα'
lektiko['σκέτα1_19'][12]= 'δώδεκα'
lektiko['σκέτα1_19'][13]= 'δεκατρείς'
lektiko['σκέτα1_19'][14]= 'δεκατέσσερις'
lektiko['σκέτα1_19'][15]= 'δεκαπέντε'
lektiko['σκέτα1_19'][16]= 'δεκαέξι'
lektiko['σκέτα1_19'][17]= 'δεκαεπτά'
lektiko['σκέτα1_19'][18]= 'δεκαοκτώ'
lektiko['σκέτα1_19'][19]= 'δεκαεννέα'

lektiko['σκέτα20_99'] = {}
lektiko['σκέτα20_99'][0] = ''
lektiko['σκέτα20_99'][1] = ''
lektiko['σκέτα20_99'][2] = 'είκοσι'
lektiko['σκέτα20_99'][3] = 'τριάντα'
lektiko['σκέτα20_99'][4] = 'σαράντα'
lektiko['σκέτα20_99'][5] = 'πενήντα'
lektiko['σκέτα20_99'][6] = 'εξήντα'
lektiko['σκέτα20_99'][7] = 'εβδομήντα'
lektiko['σκέτα20_99'][8] = 'ογδόντα'
lektiko['σκέτα20_99'][9] = 'ενενήντα'

lektiko['σκέτα100'] = {}
lektiko['σκέτα100'][0] = ''
lektiko['σκέτα100'][1] = 'εκατόν'
lektiko['σκέτα100'][2] = 'διακόσιοι'
lektiko['σκέτα100'][3] = 'τριακόσιοι'
lektiko['σκέτα100'][4] = 'τετρακόσιοι'
lektiko['σκέτα100'][5] = 'πεντακόσιοι'
lektiko['σκέτα100'][6] = 'εξακόσιοι'
lektiko['σκέτα100'][7] = 'επτακόσιοι'
lektiko['σκέτα100'][8] = 'οκτακόσιοι'
lektiko['σκέτα100'][9] = 'εννιακόσιοι'
----          -----------------------------------
lektiko['χιλιάδες1_19'] = {}
lektiko['χιλιάδες1_19'] = table_shallow_copy(lektiko['σκέτα1_19'])
lektiko['χιλιάδες1_19'][1]= 'μία'

lektiko['χιλιάδες20_99'] = {}
lektiko['χιλιάδες20_99'] = table_shallow_copy(lektiko['σκέτα20_99'])

lektiko['χιλιάδες100'] = {}
lektiko['χιλιάδες100'][0] = ''
lektiko['χιλιάδες100'][1] = 'εκατόν'
lektiko['χιλιάδες100'][2] = 'διακόσιες'
lektiko['χιλιάδες100'][3] = 'τριακόσιες'
lektiko['χιλιάδες100'][4] = 'τετρακόσιες'
lektiko['χιλιάδες100'][5] = 'πεντακόσιες'
lektiko['χιλιάδες100'][6] = 'εξακόσιες'
lektiko['χιλιάδες100'][7] = 'επτακόσιες'
lektiko['χιλιάδες100'][8] = 'οκτακόσιες'
lektiko['χιλιάδες100'][9] = 'εννιακόσιες'

----                -----------------------------------
--lektiko['μύρια1_19'] = {}
lektiko['μύρια1_19'] = table_shallow_copy(lektiko['σκέτα1_19'])

lektiko['μύρια1_19'][1]= 'ένα'
lektiko['μύρια1_19'][2]= 'δύο'
lektiko['μύρια1_19'][3]= 'τρία'
lektiko['μύρια1_19'][4]= 'τέσσερα'
lektiko['μύρια1_19'][13]= 'δεκατρία'
lektiko['μύρια1_19'][14]= 'δεκατέσσερα'

lektiko['μύρια20_99'] = {}
lektiko['μύρια20_99'] = table_shallow_copy(lektiko['σκέτα20_99'])

lektiko['μύρια100'] = {}
lektiko['μύρια100'][0] = ''
lektiko['μύρια100'][1] = 'εκατόν'
lektiko['μύρια100'][2] = 'διακόσια'
lektiko['μύρια100'][3] = 'τριακόσια'
lektiko['μύρια100'][4] = 'τετρακόσια'
lektiko['μύρια100'][5] = 'πεντακόσια'
lektiko['μύρια100'][6] = 'εξακόσια'
lektiko['μύρια100'][7] = 'επτακόσια'
lektiko['μύρια100'][8] = 'οκτακόσια'
lektiko['μύρια100'][9] = 'εννιακόσια'
end
--export[''] = function ()

--end
init_nf  = function()
    lektiko['κατάληξη'][1][2] = "χίλιες"
    lektiko['σκέτα1_19'][1] = "μία"
    lektiko['σκέτα100'][2] = "διακόσιες"
    lektiko['σκέτα100'][3] = "τριακόσιες"
    lektiko['σκέτα100'][4] = "τετρακόσιες"
    lektiko['σκέτα100'][5] = "πεντακόσιες"
    lektiko['σκέτα100'][6] = "εξακόσιες"
    lektiko['σκέτα100'][7] = "επτακόσιες"
    lektiko['σκέτα100'][8] = "οκτακόσιες"
    lektiko['σκέτα100'][9] = "εννιακόσιες"

end
init_nn  = function()
    lektiko['κατάληξη'][1][2] = "χίλια"
    lektiko['σκέτα1_19'][1] = "ένα"
    lektiko['σκέτα1_19'][3] = "τρία"
    lektiko['σκέτα1_19'][4] = "τέσσερα"
    lektiko['σκέτα1_19'][13] = "δεκατρία"
    lektiko['σκέτα1_19'][14] = "δεκατέσσερα"
    lektiko['σκέτα100'][2] = "διακόσια"
    lektiko['σκέτα100'][3] = "τριακόσια"
    lektiko['σκέτα100'][4] = "τετρακόσια"
    lektiko['σκέτα100'][5] = "πεντακόσια"
    lektiko['σκέτα100'][6] = "εξακόσια"
    lektiko['σκέτα100'][7] = "επτακόσια"
    lektiko['σκέτα100'][8] = "οκτακόσια"
    lektiko['σκέτα100'][9] = "εννιακόσια"
end

init_gm  = function()
    lektiko['κατάληξη'][1][1] = "χιλιάδων"
    lektiko['κατάληξη'][2][1] = "εκατομμύριων"
    lektiko['κατάληξη'][3][1] = "δισεκατομμυρίων"
    lektiko['κατάληξη'][4][1] = "τρισεκατομμυρίων"
    lektiko['κατάληξη'][5][1] = "τετράκις εκατομμυρίων"
    lektiko['κατάληξη'][6][1] = "πεντάκις εκατομμυρίων"
    lektiko['κατάληξη'][7][1] = "εξάκις εκατομμυρίων"
    lektiko['κατάληξη'][8][1] = "τετράκις εκατομμυρίων"

    lektiko['κατάληξη'][1][2] = "χίλιων"
    lektiko['κατάληξη'][2][2] = "εκατομμυρίου"
    lektiko['κατάληξη'][3][2] = "δισεκατομμυρίου"
    lektiko['κατάληξη'][4][2] = "τρισεκατομμυρίου"
    lektiko['κατάληξη'][5][2] = "τετράκις εκατομμυρίου"
    lektiko['κατάληξη'][6][2] = "πεντάκις εκατομμυρίου"
    lektiko['κατάληξη'][7][2] = "εξάκις εκατομμυρίου"
    lektiko['κατάληξη'][8][2] = "τετράκις εκατομμυρίου"

    lektiko['σκέτα1_19'][1] = "ενός"
    lektiko['σκέτα1_19'][3] = "τριών"
    lektiko['σκέτα1_19'][4] = "τεσσάρων"
    lektiko['σκέτα1_19'][13] = "δεκατριών"
    lektiko['σκέτα1_19'][14] = "δεκατεσσάρων"
    lektiko['σκέτα100'][2] = "διακοσίων"
    lektiko['σκέτα100'][3] = "τριακοσίων"
    lektiko['σκέτα100'][4] = "τετρακοσίων"
    lektiko['σκέτα100'][5] = "πεντακοσίων"
    lektiko['σκέτα100'][6] = "εξακοσίων"
    lektiko['σκέτα100'][7] = "επτακοσίων"
    lektiko['σκέτα100'][8] = "οκτακοσίων"
    lektiko['σκέτα100'][9] = "εννιακοσίων"

    lektiko['χιλιάδες1_19'][1]= 'μίας'
    lektiko['χιλιάδες1_19'][3]= 'τριών'
    lektiko['χιλιάδες1_19'][4]= 'τεσσάρων'
    lektiko['χιλιάδες1_19'][13]= 'δεκατριών'
    lektiko['χιλιάδες1_19'][14]= 'δεκατεσσάρων'
    local xcounter = 2
    while xcounter <= 9 do
        lektiko['χιλιάδες100'][xcounter] = lektiko['μύρια100'][xcounter]
        lektiko['μύρια100'][xcounter] = lektiko['σκέτα100'][xcounter]
        xcounter = xcounter + 1

    end
    lektiko['μύρια1_19'][1] = "ενός"
    lektiko['μύρια1_19'][3] = "τριών"
    lektiko['μύρια1_19'][4] = "τεσσάρων"
    lektiko['μύρια1_19'][13] = "δεκατριών"
    lektiko['μύρια1_19'][14] = "δεκατεσσάρων"

end

init_gf = function()
    init_gm()
    lektiko['σκέτα1_19'][1] = "μιάς"
end

init_gn = function()
    init_gm()
end

init_am = function()
    lektiko['κατάληξη'][1][2] = "χίλιους"
    lektiko['σκέτα1_19'][1] = "έναν"

    lektiko['σκέτα100'][2] = "διακόσιους"
    lektiko['σκέτα100'][3] = "τριακόσιους"
    lektiko['σκέτα100'][4] = "τετρακόσιους"
    lektiko['σκέτα100'][5] = "πεντακόσιους"
    lektiko['σκέτα100'][6] = "εξακόσιους"
    lektiko['σκέτα100'][7] = "επτακόσιους"
    lektiko['σκέτα100'][8] = "οκτακόσιους"
    lektiko['σκέτα100'][9] = "εννιακόσιους"
end

init_af = function()
    lektiko['κατάληξη'][1][2] = "χίλιες"
    lektiko['σκέτα1_19'][1] = "μία"

    lektiko['σκέτα100'][2] = "διακόσιες"
    lektiko['σκέτα100'][3] = "τριακόσιες"
    lektiko['σκέτα100'][4] = "τετρακόσιες"
    lektiko['σκέτα100'][5] = "πεντακόσιες"
    lektiko['σκέτα100'][6] = "εξακόσιες"
    lektiko['σκέτα100'][7] = "επτακόσιες"
    lektiko['σκέτα100'][8] = "οκτακόσιες"
    lektiko['σκέτα100'][9] = "εννιακόσιες"
end

init_an = function()
    init_nn()
end

initthis = function(sex,case)
    initall()
    if (sex == 2 and case == 1) then init_nf ()
    elseif (sex == 3 and case == 1) then init_nn ()
    elseif (sex == 1 and case == 2) then init_gm ()
    elseif (sex == 2 and case == 2) then init_gf ()
    elseif (sex == 3 and case == 2) then init_gn ()
    elseif (sex == 1 and case == 3) then init_am ()
    elseif (sex == 2 and case == 3) then init_af ()
    elseif (sex == 3 and case == 3) then init_an ()
    else --do nothing else
    end
end

export.test2  =function(numstr, sexstr, casestr)
--    if sex <1 or sex > 3 or case <1 or case >3 then
--    	return error_here("Δεν δόθηκαν σωστά το γένος και η πτώση")	
--	end
    sex = tonumber(sexstr)
    case = tonumber(casestr)
    if (sex ~= 1 or sex ~= 2 or sex ~= 3) then sex = 3 end--ουδέτερο
    if (case ~= 1 or case ~= 2 or case ~= 3) then case = 1 end--ονομαστική
	
    initthis(sex, case)
    num = tonumber(numstr)
    local deksia = {}
    local ycounter = 1
    local rest2, dyada
    local rest, triada = divmod(num,1000)
    if triada == 0 then
        deksia[ycounter] = ''
        
    else
		rest2, dyada = divmod(triada, 100)
	end

    if dyada == 0 then
        deksia[ycounter] = ''
    elseif dyada < 20 then
        deksia[ycounter] = lektiko['σκέτα1_19'][dyada]
    else
        deksia[ycounter] = lektiko['σκέτα1_19'][dyada % 10]
        ycounter = ycounter+1
        deksia[ycounter] = lektiko['σκέτα20_99'][math.floor(dyada / 10)]
        
    end
	if rest2 == 0 then
		--pass
    elseif rest2 == 1 then
        if deksia[ycounter] == '' then
            deksia[ycounter] = 'εκατό ' .. deksia[ycounter]
        else
            deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
        end
    else
        deksia[ycounter] = lektiko['σκέτα100'][rest2] .. ' ' .. deksia[ycounter]	
	end

    if rest > 0 then --χιλιάδες
        ycounter = ycounter+1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)
        if triada == 0 then --έχει μηδενικές χιλιάδες π.χ. 1000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες χιλιάδας έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['χιλιάδες1_19'][1] .. ' ' .. lektiko['κατάληξη'][1][1]
                else
                    deksia[ycounter] = lektiko['κατάληξη'][1][2]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][1][1]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][1][1]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][1][1]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][1][1]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end
    end
    myria=1
    while rest > 0 do
        ycounter = ycounter+1
        myria = myria + 1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)

        if triada == 0 then --έχει μηδενικά "εκατομμύρια" π.χ. 1000000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες από τα αντίστοιχα εκατομμύρια έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['μύρια1_19'][1] .. ' ' .. lektiko['κατάληξη'][myria][1]
                else
                    deksia[ycounter] = lektiko['κατάληξη'][1][1]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][myria][1]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][myria][1]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][myria][1]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][myria][1]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end


    end --do while rest

    --return rest, triada, num, dyada,rest2,deksia[ycounter]
    local theanswer = table.concat(ReverseTable(deksia)," ")
    
    return ycounter,deksia[ycounter], "#" .. remove_extra_delim(theanswer, " ") .. "#"
end

export.test3  =function(numstr, sexstr, casestr)
--    if sex <1 or sex > 3 or case <1 or case >3 then
--    	return error_here("Δεν δόθηκαν σωστά το γένος και η πτώση")	
--	end
    sex = tonumber(sexstr)
    case = tonumber(casestr)
    if not (sex == 1 or sex == 2 or sex == 3) then sex = 3 end--ουδέτερο
    if not (case == 1 or case == 2 or case == 3) then case = 1 end--ονομαστική

    num = tonumber(numstr)	
    initthis(sex, case)
    local deksia = {}
    local ycounter = 1
    local rest2, dyada
    local rest, triada = divmod(num,1000)
    if triada == 0 then
        deksia[ycounter] = ''
        
    else
		rest2, dyada = divmod(triada, 100)
	end

    if dyada == 0 then
        deksia[ycounter] = ''
    elseif dyada < 20 then
        deksia[ycounter] = lektiko['σκέτα1_19'][dyada]
    else
        deksia[ycounter] = lektiko['σκέτα1_19'][dyada % 10]
        ycounter = ycounter+1
        deksia[ycounter] = lektiko['σκέτα20_99'][math.floor(dyada / 10)]
        
    end
	if rest2 == 0 then
		--pass
    elseif rest2 == 1 then
        if deksia[ycounter] == '' then
            deksia[ycounter] = 'εκατό ' .. deksia[ycounter]
        else
            deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
        end
    else
        deksia[ycounter] = lektiko['σκέτα100'][rest2] .. ' ' .. deksia[ycounter]	
	end

    if rest > 0 then --χιλιάδες
        ycounter = ycounter+1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)
        if triada == 0 then --έχει μηδενικές χιλιάδες π.χ. 1000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες χιλιάδας έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['χιλιάδες1_19'][1] .. ' ' .. lektiko['κατάληξη'][1][1]
                else
                    deksia[ycounter] = lektiko['κατάληξη'][1][2]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][1][1]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][1][1]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][1][1]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][1][1]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end
    end
    myria=1
    --while rest > 0 do
        ycounter = ycounter+1
        myria = myria + 1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)

        if triada == 0 then --έχει μηδενικά "εκατομμύρια" π.χ. 1000000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες από τα αντίστοιχα εκατομμύρια έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['μύρια1_19'][1] .. ' ' .. lektiko['κατάληξη'][myria][1]
                else
                    deksia[ycounter] = lektiko['μύρια1_19'][1] .. ' ' .. lektiko['κατάληξη'][myria][2]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][myria][1]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][myria][1]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][myria][1]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][myria][1]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end


    --end --do while rest

    --return rest, triada, num, dyada,rest2,deksia[ycounter]
    local theanswer = table.concat(ReverseTable(deksia)," ")
    
    return ycounter,sex,deksia[ycounter], "#" .. remove_extra_delim(theanswer, " ") .. "#"
end

export.olografos = function (num,sex,case)
    initthis(sex, case)
    local deksia = {}
    local ycounter = 0
    local rest2, dyada
    local rest, triada = divmod(num,1000)
    if triada == 0 then
        deksia[ycounter] = ''
    else
        rest2, dyada = divmod(triada, 100)
        if dyada == 0 then
            deksia[ycounter] = ''
        elseif dyada < 20 then
            deksia[ycounter] = lektiko['σκέτα1_19'][dyada]
        else
            deksia[ycounter] = lektiko['σκέτα1_19'][dyada % 10]
        end
        if rest2 == 0 then

        elseif rest2 == 1 then
            if deksia[ycounter] == '' then
                deksia[ycounter] = 'εκατό ' .. deksia[ycounter]
            else
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else
            deksia[ycounter] = lektiko['σκέτα100'][rest2] .. ' ' .. deksia[ycounter]
        end
    end
    if rest > 0 then --χιλιάδες
        ycounter = ycounter+1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)
        if triada == 0 then --έχει μηδενικές χιλιάδες π.χ. 1000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες χιλιάδας έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['χιλιάδες1_19'][1] .. ' ' .. lektiko['κατάληξη'][1][0]
                else
                    deksia[ycounter] = lektiko['κατάληξη'][1][1]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][1][0]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][1][0]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][1][0]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][1][0]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end
    end
    myria=1
    while rest do
        ycounter = ycounter+1
        myria = myria + 1
        rest2 = 0
        dyada = 0
        rest, triada = divmod(rest, 1000)

        if triada == 0 then --έχει μηδενικά "εκατομμύρια" π.χ. 1000000256
            deksia[ycounter] = ''
        else
            rest2, dyada = divmod(triada, 100)--rest2=πόσες εκατοντάδες από τα αντίστοιχα εκατομμύρια έχει
            if dyada == 0 then
                deksia[ycounter] = ''
            elseif dyada == 1 then --αν τα δύο δεξιά ψηφία είναι 01
                if rest2 > 0 then --αν δεν έχει εκατοντάδα χιλιάδας
                    deksia[ycounter] = lektiko['μύρια1_19'][1] .. ' ' .. lektiko['κατάληξη'][myria][0]
                else
                    deksia[ycounter] = lektiko['κατάληξη'][1][1]
                end
            elseif dyada < 20 then --τα δύο δεξιά ψηφία είναι μεταξύ 2 και 19
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada] .. ' ' .. lektiko['κατάληξη'][1][0]
            else--μεταξύ 20 και 99
                --μονάδες
                deksia[ycounter] = lektiko['χιλιάδες1_19'][dyada % 10] .. ' ' .. lektiko['κατάληξη'][1][0]
                --δεκάδες
                deksia[ycounter] = lektiko['χιλιάδες20_99'][math.floor(dyada / 10)] .. ' ' .. deksia[ycounter]
            end
        end
        if rest2 == 0 then
        --pass
        elseif rest2 == 1 then
            if deksia[ycounter] == '' then --έχει ακριβώς 100 χιλιάδες
                deksia[ycounter] = 'εκατό ' .. lektiko['κατάληξη'][1][0]
            else --είχε και κάποιες χιλιάδες  π.χ. 132
                deksia[ycounter] = 'εκατόν ' .. deksia[ycounter]
            end
        else --έχει παραπάνω από 199 χιλιάδες...
            if deksia[ycounter] == '' then --έχει ακέραιο αριθμό εκατοντάδων χιλιάδων
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. lektiko['κατάληξη'][1][0]
            else --έχει και κάτι ψιλά... που τα βρήκα πριν
                deksia[ycounter] = lektiko['χιλιάδες100'][rest2] .. ' ' .. deksia[ycounter]
            end
        end


    end --do while rest

end

export.testdivmod = function(num,divider)
	return math.floor(num / divider), num % divider	
end


return export