<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Склонение слова в зависимости от числа]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11312</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11312&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Склонение слова в зависимости от числа».]]></description>
		<lastBuildDate>Thu, 11 Feb 2016 18:01:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101025#p101025</link>
			<description><![CDATA[<p>Да, словарь будет. Простите за то что сразу неверно изложил свои мысли. И огромное спасибо за помощь!</p>]]></description>
			<author><![CDATA[null@example.com (tuma4ok)]]></author>
			<pubDate>Thu, 11 Feb 2016 18:01:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101025#p101025</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101016#p101016</link>
			<description><![CDATA[<p>Значит &quot;словарь&quot; всё-таки будет, но число слов невелико.<br />Я как-то так себе представляю:</p><div class="codebox"><pre><code>рубль := [&quot;рубль&quot;,&quot;рубля&quot;,&quot;рублей&quot;]
доллар := [&quot;доллар&quot;,&quot;доллара&quot;,&quot;долларов&quot;]
фунт := [&quot;фунт&quot;,&quot;фунта&quot;,&quot;фунтов&quot;]

number := 100500
MsgBox, % &quot;Ваша зарплата&quot; &quot; &quot; number &quot; &quot; NumberEnd(number, рубль)
Return

NumberEnd(number, titles)
{
StringRight, x, number, 1
end := x=1 ? 1 : x&gt;=2 &amp;&amp; x&lt;=4 ? 2 : (x&gt;=5 &amp;&amp; x&lt;=9) || x=0 ? 3 :
StringRight, x, number, 2
If (x&gt;=11) &amp;&amp; (x&lt;=14)
end := 3
Return titles[end]
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 11 Feb 2016 12:26:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101016#p101016</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101003#p101003</link>
			<description><![CDATA[<div class="codebox"><pre><code>MsgBox % NumberEnd(21, [&quot;лодка&quot;,&quot;лодки&quot;,&quot;лодок&quot;])
 
NumberEnd(n, words) { 
	return words[mod(n, 100) &gt; 4 &amp;&amp; mod(n, 100) &lt; 20 ? 3 
		: mod(n, 10) = 0 ? 3 : mod(n, 10) = 1 ? 1 
		: mod(n, 10) &lt; 5 ? 2 : 3] 
}</code></pre></div><p>Или аналог php:<br /></p><div class="codebox"><pre><code>
NumberEnd(n, words) {
    return words[(m := mod(n, 100)) &gt; 4 &amp;&amp; m &lt; 20 ? 3 
			: [3, 1, 2, 2, 2, 3][(m := mod(m, 10) + 1) &gt; 6 ? 6 : m]] 
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 10 Feb 2016 21:21:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101003#p101003</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101002#p101002</link>
			<description><![CDATA[<p>Прилагаю функцию написанную на PHP.<br /></p><div class="codebox"><pre><code>
function NumberEnd($number, $titles) {
    $cases = array (2, 0, 1, 1, 1, 2);
    return $titles[ ($number%100&gt;4 &amp;&amp; $number%100&lt;20)? 2 : $cases[min($number%10, 5)] ];
}
</code></pre></div><p>В первом параметре <strong>$number</strong> задается число к которому склоняем.<br />Во втором параметре <strong>$titles</strong> задается массив со словами. (Как я писал выше. Пример: палец, пальца, пальцев)<br />В этой строке: <br /></p><div class="codebox"><pre><code>$cases = array (2, 0, 1, 1, 1, 2);</code></pre></div><p>Как я понял выбирается падеж. (Начала массива не с 1, а с 0)</p><p>Данная строка получает остаток от деления (символ % делит и возвращает остаток от деления)<br /></p><div class="codebox"><pre><code>$number%100</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (tuma4ok)]]></author>
			<pubDate>Wed, 10 Feb 2016 17:55:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101002#p101002</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101001#p101001</link>
			<description><![CDATA[<p><strong>ypppu</strong>, Я же говорил, окончания дописываются. Для винта берем основу за &quot;винт&quot;, для заяц - &quot;за&quot;, для пальца - &quot;пал&quot;. Или же можно задать эти значения, то есть они передаются в массиве в функцию. Они должны быть в следующем порядке: заяц, зайца, зайцев; винт, винта, винтов; палец, пальца, пальцев.</p>]]></description>
			<author><![CDATA[null@example.com (tuma4ok)]]></author>
			<pubDate>Wed, 10 Feb 2016 17:47:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101001#p101001</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100994#p100994</link>
			<description><![CDATA[<p>Как скрипт может знать правила для всех слов? Словарь писать?<br /></p><div class="quotebox"><blockquote><p>винт - винта<br />заяц - зайца<br />палец - пальца</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 10 Feb 2016 14:29:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100994#p100994</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100993#p100993</link>
			<description><![CDATA[<p>Да, про 21 лодку я ступил. Но это не главное, такое возможно. На PHP у меня есть эта функция и она работает корректно. А вот на AutoHotkey не могу найти, а очень нужно.<br />Нужно для всех слов. В функцию будет передаваться массив с окончаниями. Например запрос функции должен выглядеть так:<br /></p><div class="codebox"><pre><code>
EndWord(&quot;лодк&quot;, Array(&quot;а&quot;,&quot;и&quot;,&quot;ок&quot;), 2)
</code></pre></div><p><strong>лодк</strong> - начало слова к которому потом добавится окончание.<br /><strong>Array(&quot;а&quot;,&quot;и&quot;,&quot;ок&quot;)</strong> - перечень последовательных окончаний.<br /><strong>2</strong> - к какому числу нужно склонить.</p>]]></description>
			<author><![CDATA[null@example.com (tuma4ok)]]></author>
			<pubDate>Wed, 10 Feb 2016 14:19:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100993#p100993</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100992#p100992</link>
			<description><![CDATA[<p>Хм, а разве такое возможно? Или нужно конкретно для лодки?<br />P. S.: 21 лод<span class="bbu">ка</span>.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 10 Feb 2016 13:42:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100992#p100992</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Склонение слова в зависимости от числа]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=100991#p100991</link>
			<description><![CDATA[<p>Здравствуйте. У меня возник вопрос как просклонять слово в зависимости от его количества. Например:<br /></p><div class="quotebox"><blockquote><p>1 лодка<br />2 лодки<br />5 лодок<br />11 лодок<br />21 лодка</p></blockquote></div><p>Пробовал переписать функцию с PHP на AutoHotKey, но к сожалению ничего не вышло. Надеюсь на вашу сообразительность, ум и помощь.<br />Заранее спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (tuma4ok)]]></author>
			<pubDate>Wed, 10 Feb 2016 13:12:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=100991#p100991</guid>
		</item>
	</channel>
</rss>
