<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#34;Клуб программистов&#34; – материалы по Delphi и С++</title>
	<atom:link href="http://www.programmersclub.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programmersclub.ru</link>
	<description>Сайт клуба программистов</description>
	<lastBuildDate>Sat, 04 Feb 2012 14:24:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Исходник программы &#171;азбука Морзе&#187;</title>
		<link>http://www.programmersclub.ru/%d0%98%d1%81%d1%85%d0%be%d0%b4%d0%bd%d0%b8%d0%ba-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b0%d0%b7%d0%b1%d1%83%d0%ba%d0%b0-%d0%9c%d0%be%d1%80%d0%b7%d0%b5/</link>
		<comments>http://www.programmersclub.ru/%d0%98%d1%81%d1%85%d0%be%d0%b4%d0%bd%d0%b8%d0%ba-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b0%d0%b7%d0%b1%d1%83%d0%ba%d0%b0-%d0%9c%d0%be%d1%80%d0%b7%d0%b5/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 14:24:21 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Исходники]]></category>
		<category><![CDATA[азбука Морзе]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4582</guid>
		<description><![CDATA[raxp метод воспроизведения: Вложения mz_res.zip (236.5 Кб) Виртуальные приборы. Синтезатор азбуки Морзе (Минск).pdf (264.8 Кб) тема на форуме]]></description>
			<content:encoded><![CDATA[<p><span id="more-4582"></span><strong>raxp</strong><br />
метод воспроизведения:</p>
<pre><code>var i: integer = 0;</p>
<p>procedure TForm1.Image1Click(Sender: TObject);<br />
begin<br />
 TIMER1.Enabled:= TRUE<br />
end;</p>
<p>procedure TForm1.Timer1Timer(Sender: TObject);<br />
begin<br />
 gen1.ResetAM;<br />
 gen1.Prepare;<br />
 gen1.Frequency:= 500;</p>
<p> INC(I); if i> length(slovo) then begin<br />
   timer1.Enabled:= false;<br />
   i:= 0<br />
 end;</p>
<p> if slovo<em></em>= '.' then begin gen1.Duration:=100;  gen1.Play end;<br />
 if slovo<em></em>= '-' then begin gen1.Duration:= timer1.Interval; gen1.Play end<br />
end;</code></pre>
<legend>Вложения</legend>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td><img class="inlineimg" src="http://programmersforum.ru/images/1070/attach/zip.gif" alt="Тип файла: zip" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
<td><a href="http://programmersforum.ru/attachment.php?attachmentid=45404&amp;d=1323974287" target="_blank">mz_res.zip</a> (236.5 Кб)</td>
</tr>
<tr>
<td><img class="inlineimg" src="http://programmersforum.ru/images/1070/attach/pdf.gif" alt="Тип файла: pdf" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
<td><a href="http://programmersforum.ru/attachment.php?attachmentid=45405&amp;d=1323974287" target="_blank">Виртуальные приборы. Синтезатор азбуки Морзе (Минск).pdf</a> (264.8 Кб)</td>
</tr>
</table>
<p><a href="http://programmersforum.ru/showthread.php?t=178924">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%98%d1%81%d1%85%d0%be%d0%b4%d0%bd%d0%b8%d0%ba-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b0%d0%b7%d0%b1%d1%83%d0%ba%d0%b0-%d0%9c%d0%be%d1%80%d0%b7%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Рассылка. Выпуск 139</title>
		<link>http://www.programmersclub.ru/n139/</link>
		<comments>http://www.programmersclub.ru/n139/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:36:39 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Рассылка]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4580</guid>
		<description><![CDATA[От ведущего. Добрый день, дорогие читатели. Читайте в сегодняшнем номере рассылки обзор интересных тем за неделю на форуме программистов. Как в коснольном приложении открыть диалог сохранения? Диалог сохранения или открытия тоже? Тема на форуме Поддержка drag and drop для Tlistview? пишу маленькую программу с использованием Tlistview не подскажете как обработать сообщение WM_DROPFILES только для Tlistview [...]]]></description>
			<content:encoded><![CDATA[<p style="color: red"><img class="alignleft size-full wp-image-555" src="http://programmersclub.ru/wp-content/uploads/2010/03/redaktor.jpg" alt="redaktor" width="108" height="114" /><strong> От ведущего.</strong></p>
<p>Добрый день, дорогие читатели. Читайте в сегодняшнем номере рассылки обзор интересных тем за неделю на форуме программистов.</p>
<div style="clear: both;"></div>
<p><span id="more-4580"></span></p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%9A%D0%B0%D0%BA-%D0%B2-%D0%BA%D0%BE%D1%81%D0%BD%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D0%B4/" title="Перейти по ссылке" target="_blank">Как в коснольном приложении открыть диалог сохранения? </a></b></span><br />
Диалог сохранения или открытия тоже?<br />
<a href="http://programmersforum.ru/showthread.php?t=179504" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0-drag-and-drop-%D0%B4%D0%BB%D1%8F-tlistview/" title="Перейти по ссылке" target="_blank">Поддержка drag and drop для Tlistview? </a></b></span><br />
пишу маленькую программу с использованием Tlistview не подскажете как обработать сообщение WM_DROPFILES только для Tlistview ,а не для всей формы или как сделать поддержку drag and drop для Tlistview?<br />
<a href="http://programmersforum.ru/showthread.php?t=179742" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B-%D0%B1%D0%B4-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B5%D1%80%D0%B0%D0%B9%D1%82%D0%B5%D1%80%D0%B0/" title="Перейти по ссылке" target="_blank">Создание структуры бд для рерайтера </a></b></span><br />
Гораздо лучше использовать файл базы со своей структурой. У меня структура такая:<br />
<a href="http://programmersforum.ru/showthread.php?t=108844&#038;page=2" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC%D0%BE%D0%B5-%D1%81%D0%BB%D0%BE%D0%B2%D0%BE-%D0%B2-memo/" title="Перейти по ссылке" target="_blank">Получить набираемое слово в memo </a></b></span><br />
<a href="http://programmersforum.ru/showthread.php?t=108844" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-stringgrid1-%D0%B2-%D0%B4%D0%B2%D1%83%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B9-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2/" title="Перейти по ссылке" target="_blank">Записать StringGrid1 в двумерный массив </a></b></span><br />
<a href="http://programmersforum.ru/showthread.php?t=164203" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D1%81%D1%83%D0%BC%D0%BC%D1%83-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8/" title="Перейти по ссылке" target="_blank">Вычислить контрольную сумму строки </a></b></span><br />
Вычислить контрольную сумму строки «58 00 A0 90 CB B7 A6 02 04 4D BC A2 80 60 8C 9A 00 D0 33 5F 5B 54 AF 6A D3″, являющуюся инверсией XORа всех байт.<br />
<a href="http://programmersforum.ru/showthread.php?t=164203" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BA%D0%B5%D1%80-%D0%B1%D0%BE%D1%82%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BA%D0%B5%D1%80-%D1%80%D1%83%D0%BC%D0%BE%D0%B2/" title="Перейти по ссылке" target="_blank">Программный подсчёт комбинаций и вероятностей в покере, создание покер бота </a></b></span><br />
На <a href="http://programmersforum.ru/">форуме</a> уже ни одна тема была по созданию <a href="http://programmersforum.ru/showthread.php?t=43960">бота для покер рума</a>, также в разделе <a href="http://programmersforum.ru/forumdisplay.php?f=4">win api на форуме</a> &#8211;  <a href="http://programmersforum.ru/showthread.php?t=78626 ">Работа с покер-румом</a>. И даже выкладывались наработки, например, <a href="http://programmersforum.ru/showthread.php?t=112587">покера с костями</a>. Все актуальные и более релевантные темы можно посмотреть через google &#8211; <a href="http://www.google.ru/search?&amp;q=site:programmersforum.ru+%D0%BF%D0%BE%D0%BA%D0%B5%D1%80">site:programmersforum.ru покер</a>. Всё это и многое другое, например &#8211; <a href="http://demo.russiancasino.com/games/slot/rus.html">игровые автоматы</a>, делается для многих и многих онлайн казино на просторах интернета.<br />
<a href="http://programmersforum.ru/showthread.php?t=134967" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0-%D0%B2-%D0%B0%D1%80%D0%BC%D0%B8%D0%B8/" title="Перейти по ссылке" target="_blank">Завтра отменят службу в армии. А вы еще служите или служили. вам обидно будет? </a></b></span><br />
Очередная армейская тема всплыла на форуме, потому я решил создать опрос. В развитых странах уже давно отменили службу в армии. Вот другого президента переизберем и может новый президент или следующий за ним отменит службу в армии. Или может Путин решить стать Линкольном и отменит завтра службу в армии. Вам будет обидно?<br />
<a href="http://programmersforum.ru/showthread.php?t=185909" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%98%D1%81%D0%BA%D0%B0%D0%B6%D0%B0%D1%82%D1%8C-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC%D0%BE%D0%B5-%D1%81-%D0%B2%D0%B5%D0%B1-%D0%BA%D0%B0%D0%BC/" title="Перейти по ссылке" target="_blank">Искажать видео записываемое с веб камеры </a></b></span><br />
Искажения типа «выпуклая линза». Как это сделать – ума не приложу. Для записи видео используется TVideoGrabber, если что. Как вообще происходит процесс искажения? Что для этого стоит использовать? Есть какие нибудь идеи?<br />
<a href="http://programmersforum.ru/showthread.php?t=185705" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%9A%D0%B0%D0%BA-%D0%BB%D1%83%D1%87%D1%88%D0%B5-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/" title="Перейти по ссылке" target="_blank">Как лучше авторизовать пользователя </a></b></span><br />
Всем привет. Хотелось бы поговорить об авторизации пользователя.<br />
Как известно в хорошей системе пользователи разделены на системных (редакторов, админов, суперадминов) и обычных пользователей.</p>
<p>Собственно вопрос такой :<br />
Что лучше авторизация посредством .htaccess и .htpswd ? Или же стандратно посредством формы и полей логин пароль?<br />
Напомню, что разговор о веб приложение на рнр</p>
<p>И опять же, если выбрать первый вариант, то как поймать данные об авторизованном пользователе для системы рнр скриптов.<br />
<a href="http://programmersforum.ru/showthread.php?t=185665" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%9F%D1%80%D0%B8%D1%81%D0%B2%D0%BE%D0%B8%D1%82%D1%8C-%D1%82%D0%B5%D0%BA%D1%81%D1%82-%D0%B2-edit-%D0%B2-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B4%D0%B5%D0%BD/" title="Перейти по ссылке" target="_blank">Присвоить текст в edit в определенный день </a></b></span><br />
меня не интересует как присвоить свойству caption текст из edit. мне надо, что бы это присваивание было только в указанный день, именно в тот день, который я указал в Edit2.<br />
<a href="http://programmersforum.ru/showthread.php?t=179982" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><span style="color: #0000ff"><br />
<b><a href="http://www.programmersclub.ru/%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83-%D0%B8%D0%B7-stringgrid-%D0%B2-excel/" title="Перейти по ссылке" target="_blank">Как добавить таблицу из StringGrid в excel? </a></b></span><br />
<a href="http://programmersforum.ru/showthread.php?t=179865" title="Перейти по ссылке" target="_blank">Тема на форуме</a>
</p>
<p><a href="http://programmersclub.ru/n139/">Читать этот номер в клубе.</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/n139/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как в коснольном приложении открыть диалог сохранения?</title>
		<link>http://www.programmersclub.ru/%d0%9a%d0%b0%d0%ba-%d0%b2-%d0%ba%d0%be%d1%81%d0%bd%d0%be%d0%bb%d1%8c%d0%bd%d0%be%d0%bc-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b8-%d0%be%d1%82%d0%ba%d1%80%d1%8b%d1%82%d1%8c-%d0%b4/</link>
		<comments>http://www.programmersclub.ru/%d0%9a%d0%b0%d0%ba-%d0%b2-%d0%ba%d0%be%d1%81%d0%bd%d0%be%d0%bb%d1%8c%d0%bd%d0%be%d0%bc-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b8-%d0%be%d1%82%d0%ba%d1%80%d1%8b%d1%82%d1%8c-%d0%b4/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:25:49 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[TopenDialog]]></category>
		<category><![CDATA[TSaveDialog]]></category>
		<category><![CDATA[диалог]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4577</guid>
		<description><![CDATA[Диалог сохранения или открытия тоже? 3D Hunter по теме: используй класс TOpenDialog/TSaveDialog. С TSaveDialog работать аналогично. тема на форуме]]></description>
			<content:encoded><![CDATA[<p>Диалог сохранения или открытия тоже?<span id="more-4577"></span></p>
<p><strong>3D Hunter</strong><br />
по теме: используй класс TOpenDialog/TSaveDialog.</p>
<pre><code>program Project1;</p>
<p>{$APPTYPE CONSOLE}</p>
<p>uses<br />
  SysUtils, dialogs;</p>
<p>var<br />
  od:TOpenDialog;<br />
begin<br />
  try<br />
    try<br />
      od:=TOpenDialog.Create(nil);<br />
      if od.Execute(0) then ShowMessage(od.FileName);<br />
    finally<br />
      FreeAndNil(od);<br />
    end;<br />
  except<br />
    on E: Exception do<br />
      Writeln(E.ClassName, ': ', E.Message);<br />
  end;<br />
end.</code></pre>
<p>С TSaveDialog работать аналогично.</p>
<p><a href="http://programmersforum.ru/showthread.php?t=179504">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%9a%d0%b0%d0%ba-%d0%b2-%d0%ba%d0%be%d1%81%d0%bd%d0%be%d0%bb%d1%8c%d0%bd%d0%be%d0%bc-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b8-%d0%be%d1%82%d0%ba%d1%80%d1%8b%d1%82%d1%8c-%d0%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Поддержка drag and drop для Tlistview?</title>
		<link>http://www.programmersclub.ru/%d0%9f%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0-drag-and-drop-%d0%b4%d0%bb%d1%8f-tlistview/</link>
		<comments>http://www.programmersclub.ru/%d0%9f%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0-drag-and-drop-%d0%b4%d0%bb%d1%8f-tlistview/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:19:14 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[drag and drop]]></category>
		<category><![CDATA[tlistview]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4575</guid>
		<description><![CDATA[пишу маленькую программу с использованием Tlistview не подскажете как обработать сообщение WM_DROPFILES только для Tlistview ,а не для всей формы или как сделать поддержку drag and drop для Tlistview? вот пример grafgrial тема на форуме]]></description>
			<content:encoded><![CDATA[<p>пишу маленькую программу с использованием Tlistview не подскажете как обработать сообщение WM_DROPFILES только для Tlistview ,а не для всей формы или как сделать поддержку drag and drop для Tlistview?<span id="more-4575"></span></p>
<p>вот пример<br />
<strong>grafgrial</strong><br />
<pre><code>procedure TForm1.DropFiles(var msg: TMessage);<br />
var<br />
  i, count  : integer;<br />
  dropFileName : array [0..511] of Char;<br />
  MAXFILENAME: integer;<br />
begin<br />
  MAXFILENAME := 511;<br />
  count := DragQueryFile(msg.WParam, $FFFFFFFF, dropFileName, MAXFILENAME);<br />
  for i := 0 to count - 1 do<br />
  begin<br />
    DragQueryFile(msg.WParam, i, dropFileName, MAXFILENAME);<br />
    Memo1.Lines.Add(dropFileName);<br />
  end;<br />
  DragFinish(msg.WParam);<br />
end;</p>
<p>procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
DragAcceptFiles(ListView1.Handle, True);<br />
end;</code></pre></p>
<p><a href="http://programmersforum.ru/showthread.php?t=179742">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%9f%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0-drag-and-drop-%d0%b4%d0%bb%d1%8f-tlistview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание структуры бд для рерайтера</title>
		<link>http://www.programmersclub.ru/%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d1%8b-%d0%b1%d0%b4-%d0%b4%d0%bb%d1%8f-%d1%80%d0%b5%d1%80%d0%b0%d0%b9%d1%82%d0%b5%d1%80%d0%b0/</link>
		<comments>http://www.programmersclub.ru/%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d1%8b-%d0%b1%d0%b4-%d0%b4%d0%bb%d1%8f-%d1%80%d0%b5%d1%80%d0%b0%d0%b9%d1%82%d0%b5%d1%80%d0%b0/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:16:25 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[рерайт]]></category>
		<category><![CDATA[рерайтер]]></category>
		<category><![CDATA[синонимайзер]]></category>
		<category><![CDATA[синонимы]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4573</guid>
		<description><![CDATA[Neeter Гораздо лучше использовать файл базы со своей структурой. У меня структура такая: Если рерайтер (я создаю именно рерайтер, а не простой синонимайзер) найдет в тексте слово &#171;чуток&#187;, то он его заменит на &#171;немного&#187;, &#171;чуточку&#187;, &#171;чуть-чуть&#187;, &#171;малость&#187; или &#171;слегка&#187;. И не надо для каждого слова писать отдельную строчку, а тем более группу. Главная сложность &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-4573"></span><strong>Neeter</strong><br />
Гораздо лучше использовать файл базы со своей структурой. У меня структура такая:<br />
<pre><code>%<br />
немного|чуточку|чуток|чуть-чуть|малость|слегка<br />
поправить|отредактировать|изменить</code></pre></p>
<p>Если рерайтер (я создаю именно рерайтер, а не простой синонимайзер) найдет в тексте слово &laquo;чуток&raquo;, то он его заменит на &laquo;немного&raquo;, &laquo;чуточку&raquo;, &laquo;чуть-чуть&raquo;, &laquo;малость&raquo; или &laquo;слегка&raquo;. И не надо для каждого слова писать отдельную строчку, а тем более группу.</p>
<p>Главная сложность &#8211; создать интерпретатор для такой структуры файлов. Ведь рерайтер &#8211; это не просто замена одиночных слов на их синонимы. Вот, например, я создал и обработку конструкций &laquo;который&raquo;:</p>
<pre><code>$noun:subject , котор@ -- Эт@ $noun:derivative<br />
* $noun:object , котор@ $verb -- * $noun , $participle:derivative-verb</code></pre>
<p>Не буду объяснять, что значат эти строчки, могу только сказать, что здесь происходит замена конструкции &laquo;который&raquo; на причастный оборот. Например, предложение: &laquo;Человек, который любит подумать&raquo;, заменится на: &laquo;Человек, любящий подумать&raquo;.</p>
<p>Но вы уж тут сами разбирайтесь с такими сложными обработками. Я приведу код только синонимизации (потому что код рерайтера я никому не отдам&#8230;  ).</p>
<p>После вырезки некоторых строчек кода, управляющих обработкой формул типа &laquo;который&raquo;, получилось вот это:</p>
<pre><code>//Анализ формулы -- это вы можете спокойно убрать, так же как и знак "%" из базы синонимов<br />
function TFormMain.FormulaAnalyse(Formula: string): TVarStr;<br />
var i: integer;<br />
begin<br />
 SetLength(Result, 0);<br />
 SetLength(Result, 1);</p>
<p> for i := 1 to Length(Formula) do<br />
 begin<br />
  if Formula<em></em> = ' ' then<br />
  begin<br />
   SetLength(Result, Length(Result) + 1);<br />
   Continue;<br />
  end;</p>
<p>  Result[Length(Result)-1] := Result[Length(Result)-1] + Formula<em></em>;<br />
 end;<br />
end;</p>
<p>//Это просто проверка символа на причастность к алфавиту <img src='http://www.programmersclub.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  т.е. буква ли это<br />
function TFormMain.InAlphabet(Symbol: char; upper: boolean): boolean;<br />
var i: integer;<br />
begin<br />
 Result := false;<br />
 for i := 0 to 32 do<br />
  if upper then<br />
  begin<br />
   if AnsiUpperCase(Alphabet<em></em>) = Symbol then<br />
   begin<br />
    Result := true; Exit;<br />
   end;<br />
  end else<br />
  begin<br />
   if Alphabet<em></em> = Symbol then //На всякий случай: Alphabet - это массив из литер<br />
   begin<br />
    Result := true; Exit;<br />
   end;<br />
  end;<br />
end;</p>
<p>//Сама процедура генерации синонимизированного текста<br />
procedure TFormMain.SentencesGenerate;<br />
var<br />
 i, j, o, y, u: integer;<br />
 AnalyseFile: TStrings;<br />
 Formula: string;<br />
 FormComp: TVarStr;<br />
 SentComp: TVarStr;<br />
 Synonims: TVarStr;<br />
 s: string;<br />
 c: char;<br />
 n: integer;<br />
 check_f: boolean;<br />
label l;<br />
begin<br />
 AnalyseFile := TStringList.Create;<br />
 try<br />
  AnalyseFile.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Data\Syn_Words.txt');<br />
  Formula := AnalyseFile[0];</p>
<p>  FormComp := FormulaAnalyse(Formula);</p>
<p>  for i := 0 to Length(Sentences) - 1 do<br />
  begin<br />
   SentComp := SentenceAnalyse(Sentences<em></em>);</p>
<p>   for j := 0 to Length(FormComp) - 1 do<br />
   begin<br />
    if FormComp[j] = '%' then<br />
    begin<br />
     for o := 0 to Length(SentComp) - 1 do<br />
     begin<br />
      s := '';</p>
<p>      for y := 1 to AnalyseFile.Count - 1 do<br />
      begin<br />
       Synonims := SynonimsAnalyse(AnalyseFile[y]);<br />
       for u := 0 to Length(Synonims) - 1 do<br />
       begin<br />
        if Synonims<span style="text-decoration:underline"></span> = SentComp[o] then<br />
        begin<br />
         l: n := Random(Length(Synonims));</p>
<p>         if Synonims[n] = SentComp[o] then goto l<br />
         else s := Synonims[n];<br />
         Break;<br />
        end;<br />
       end;<br />
      end;</p>
<p>      if s <> '' then memGen.Text := memGen.Text + ' ' + s<br />
      else begin<br />
       if Length(SentComp[o]) = 1 then<br />
       begin<br />
        c := SentComp[o][1];<br />
        if (not InAlphabet(c, False)) and (not InAlphabet(c, true)) then<br />
         memGen.Text := memGen.Text + SentComp[o]<br />
        else memGen.Text := memGen.Text + ' ' + SentComp[o];<br />
       end<br />
       else memGen.Text := memGen.Text + ' ' + SentComp[o];<br />
      end;<br />
     end;<br />
    end;<br />
   end;<br />
  end;</p>
<p>  memGen.Text := Trim(memGen.Text);<br />
 finally<br />
  AnalyseFile.Free;<br />
  SetLength(FormComp, 0);<br />
  SetLength(SentComp, 0);<br />
  SetLength(Synonims, 0);<br />
 end;<br />
end;</p>
<p>//Анализ предложения; идет разбивка на слова и пунктуационные знаки<br />
function TFormMain.SentenceAnalyse(Sentence: string): TVarStr;<br />
var i: integer;<br />
begin<br />
 SetLength(Result, 0);<br />
 SetLength(Result, 1);</p>
<p> for i := 1 to Length(Sentence) do<br />
 begin<br />
  if Sentence<em></em> = ' ' then<br />
  begin<br />
   SetLength(Result, Length(Result) + 1);<br />
   Continue;<br />
  end;</p>
<p>  if (not InAlphabet(Sentence<em></em>, false)) and (not InAlphabet(Sentence<em></em>, true)) then<br />
  begin<br />
   SetLength(Result, Length(Result) + 1);<br />
   Result[Length(Result)-1] := Sentence<em></em>;<br />
   SetLength(Result, Length(Result) + 1);<br />
   Continue;<br />
  end;</p>
<p>  Result[Length(Result)-1] := Result[Length(Result)-1] + Sentence<em></em>;<br />
 end;<br />
end;</p>
<p>//Анализ базы синонимов; идет разбивка на слова-синонимы<br />
function TFormMain.SynonimsAnalyse(Synonims: string): TVarStr;<br />
var i: integer;<br />
begin<br />
 SetLength(Result, 0);<br />
 SetLength(Result, 1);<br />
 for i := 1 to Length(Synonims) do<br />
 begin<br />
  if Synonims<em></em> = '|' then<br />
  begin<br />
   SetLength(Result, Length(Result) + 1);<br />
   Continue;<br />
  end;</p>
<p>  Result[Length(Result)-1] := Result[Length(Result)-1] + Synonims<em></em>;<br />
 end;<br />
end;</p>
<p>//Анализ текста; идет разбивка на предложения<br />
procedure TFormMain.TextAnalysis;<br />
var<br />
 i: integer;<br />
 NewSentence: boolean;<br />
begin<br />
 memText.Text := Trim(memText.Text);</p>
<p> NewSentence := true;<br />
 SetLength(Sentences, 0);<br />
 for i := 1 to Length(memText.Text) do<br />
 begin<br />
  if NewSentence then SetLength(Sentences, Length(Sentences) + 1);<br />
  Sentences[Length(Sentences)-1] := Sentences[Length(Sentences)-1] + memText.Text<em></em>;<br />
  if (memText.Text<em></em> = '.') and ((i = Length(memText.Text)) or (InAlphabet(memText.Text<em></em>, true))) then<br />
   NewSentence := true<br />
  else NewSentence := false;<br />
 end;<br />
end;</p>
<p>//При нажатии на кнопку генерации синонимизированного текста.<br />
procedure TFormMain.bt_GenerateClick(Sender: TObject);<br />
begin<br />
 memGen.Clear;</p>
<p> TextAnalysis;<br />
 SentencesGenerate;<br />
end;</code></pre>
<p>Код меняйте под свои нужды. Но вопросов по его работе задавать не стоит. Отвечать не буду. Во всем можете разобраться сами.</p>
<p>Прикреплю вам испытательный полигон для опытов.</p>
<p>P.S. Генерация происходит при нажатии второй &laquo;безкартиночной&raquo; кнопки на toolbar&#8217;е</p>
<legend>Вложения</legend>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td><img class="inlineimg" src="http://programmersforum.ru/images/1070/attach/rar.gif" alt="Тип файла: rar" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
<td><a href="http://programmersforum.ru/attachment.php?attachmentid=28288&amp;d=1280568737">Syn.rar</a> (219.2 Кб)</td>
</tr>
</table>
<p><a href="http://programmersforum.ru/showthread.php?t=108844&#038;page=2">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d1%8b-%d0%b1%d0%b4-%d0%b4%d0%bb%d1%8f-%d1%80%d0%b5%d1%80%d0%b0%d0%b9%d1%82%d0%b5%d1%80%d0%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получить набираемое слово в memo</title>
		<link>http://www.programmersclub.ru/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c-%d0%bd%d0%b0%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc%d0%be%d0%b5-%d1%81%d0%bb%d0%be%d0%b2%d0%be-%d0%b2-memo/</link>
		<comments>http://www.programmersclub.ru/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c-%d0%bd%d0%b0%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc%d0%be%d0%b5-%d1%81%d0%bb%d0%be%d0%b2%d0%be-%d0%b2-memo/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:12:22 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[получить слово]]></category>
		<category><![CDATA[слово]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4571</guid>
		<description><![CDATA[psycho-coder Вложения imlist.rar (169.5 Кб) тема на форуме]]></description>
			<content:encoded><![CDATA[<p><span id="more-4571"></span><strong>psycho-coder</strong><br />
<pre><code>procedure TForm1.Memo1Change(Sender: TObject);<br />
begin<br />
  if Tag > 0 then<br />
  begin<br />
    Memo1.SelStart := Tag;<br />
    Memo1.SelLength := Abs(Length(Memo1.Text) - Tag);<br />
    Label2.Caption := Memo1.SelText;<br />
    Memo1.SelStart := Length(Memo1.Text);<br />
  end;<br />
end;</p>
<p>procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);<br />
begin<br />
  if Key = #32 then Tag := Memo1.SelStart;<br />
end;</code></pre></p>
<legend>Вложения</legend>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td><img class="inlineimg" src="http://programmersforum.ru/images/1070/attach/rar.gif" alt="Тип файла: rar" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
<td><a href="http://programmersforum.ru/attachment.php?attachmentid=28274&amp;d=1280520947">imlist.rar</a> (169.5 Кб)</td>
</tr>
</table>
<p><a href="http://programmersforum.ru/showthread.php?t=108844">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c-%d0%bd%d0%b0%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc%d0%be%d0%b5-%d1%81%d0%bb%d0%be%d0%b2%d0%be-%d0%b2-memo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Записать StringGrid1 в двумерный массив</title>
		<link>http://www.programmersclub.ru/%d0%97%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d1%82%d1%8c-stringgrid1-%d0%b2-%d0%b4%d0%b2%d1%83%d0%bc%d0%b5%d1%80%d0%bd%d1%8b%d0%b9-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2/</link>
		<comments>http://www.programmersclub.ru/%d0%97%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d1%82%d1%8c-stringgrid1-%d0%b2-%d0%b4%d0%b2%d1%83%d0%bc%d0%b5%d1%80%d0%bd%d1%8b%d0%b9-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 21:49:59 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[StringGrid]]></category>
		<category><![CDATA[заполнить массив]]></category>
		<category><![CDATA[массив]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4564</guid>
		<description><![CDATA[Serge_Bliznykov ну, если с заполнением StringGrida проблем нет (все ячейки корректно заполнены) и нет зафиксированных столбцов/строк (с заголовками), то так: тема на форуме]]></description>
			<content:encoded><![CDATA[<p><span id="more-4564"></span><strong>Serge_Bliznykov</strong><br />
ну, если с заполнением StringGrida проблем нет (все ячейки корректно заполнены)<br />
и нет зафиксированных столбцов/строк (с заголовками), то так:</p>
<pre><code>for i:=0 to StringGrid1.RowCount - 1 do<br />
   for j:=0 to StringGrid1.ColCount - 1 do<br />
      A<em></em> := StrToFloat( StringGrid1.Cells[ j, i ];</code></pre>
<p><a href="http://programmersforum.ru/showthread.php?t=164203">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%97%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d1%82%d1%8c-stringgrid1-%d0%b2-%d0%b4%d0%b2%d1%83%d0%bc%d0%b5%d1%80%d0%bd%d1%8b%d0%b9-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вычислить контрольную сумму строки</title>
		<link>http://www.programmersclub.ru/%d0%92%d1%8b%d1%87%d0%b8%d1%81%d0%bb%d0%b8%d1%82%d1%8c-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d1%81%d1%83%d0%bc%d0%bc%d1%83-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%b8/</link>
		<comments>http://www.programmersclub.ru/%d0%92%d1%8b%d1%87%d0%b8%d1%81%d0%bb%d0%b8%d1%82%d1%8c-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d1%81%d1%83%d0%bc%d0%bc%d1%83-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%b8/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 21:48:07 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[xor]]></category>
		<category><![CDATA[хэш]]></category>
		<category><![CDATA[хэш строки]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4562</guid>
		<description><![CDATA[Вычислить контрольную сумму строки &#171;58 00 A0 90 CB B7 A6 02 04 4D BC A2 80 60 8C 9A 00 D0 33 5F 5B 54 AF 6A D3&#8243;, являющуюся инверсией XORа всех байт. Serge_Bliznykov примерно так: тема на форуме]]></description>
			<content:encoded><![CDATA[<p>Вычислить контрольную сумму строки &laquo;58 00 A0 90 CB B7 A6 02 04 4D BC A2 80 60 8C 9A 00 D0 33 5F 5B 54 AF 6A D3&#8243;, являющуюся инверсией XORа всех байт.<span id="more-4562"></span></p>
<p><strong>Serge_Bliznykov</strong><br />
примерно так:<br />
<pre><code> ks := Stroka[1];<br />
  for i:=2 to Length(Stroka) do<br />
    ks := ks xor Stroka<em></em>;</p>
<p>  ks := Not ks; {инверсия результата}</code></pre></p>
<p><a href="http://programmersforum.ru/showthread.php?t=164203">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d0%92%d1%8b%d1%87%d0%b8%d1%81%d0%bb%d0%b8%d1%82%d1%8c-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d1%81%d1%83%d0%bc%d0%bc%d1%83-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Программный подсчёт комбинаций  и вероятностей в покере, создание покер бота</title>
		<link>http://www.programmersclub.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d0%b1%d0%be%d1%82%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d1%80%d1%83%d0%bc%d0%be%d0%b2/</link>
		<comments>http://www.programmersclub.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d0%b1%d0%be%d1%82%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d1%80%d1%83%d0%bc%d0%be%d0%b2/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 16:47:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[c/c++]]></category>
		<category><![CDATA[Общалка]]></category>
		<category><![CDATA[колода карт]]></category>
		<category><![CDATA[комбинции]]></category>
		<category><![CDATA[покер]]></category>
		<category><![CDATA[покер бот]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=3794</guid>
		<description><![CDATA[Как создать покер рум, как сделать для него бота, начало работы над этим рассмотрим в этом посте. На форуме уже ни одна тема была по созданию бота для покер рума, также в разделе win api на форуме &#8211; Работа с покер-румом. И даже выкладывались наработки, например, покера с костями. Все актуальные и более релевантные темы [...]]]></description>
			<content:encoded><![CDATA[<p>Как создать покер рум, как сделать для него бота, начало работы над этим рассмотрим в этом посте.<br />
<span id="more-3794"></span><br />
На <a href="http://programmersforum.ru/">форуме</a> уже ни одна тема была по созданию <a href="http://programmersforum.ru/showthread.php?t=43960">бота для покер рума</a>, также в разделе <a href="http://programmersforum.ru/forumdisplay.php?f=4">win api на форуме</a> &#8211;  <a href="http://programmersforum.ru/showthread.php?t=78626 ">Работа с покер-румом</a>. И даже выкладывались наработки, например, <a href="http://programmersforum.ru/showthread.php?t=112587">покера с костями</a>. Все актуальные и более релевантные темы можно посмотреть через google &#8211; <a href="http://www.google.ru/search?&amp;q=site:programmersforum.ru+%D0%BF%D0%BE%D0%BA%D0%B5%D1%80">site:programmersforum.ru покер</a>. Всё это и многое другое, например &#8211; <a href="http://demo.russiancasino.com/games/slot/rus.html">игровые автоматы</a>, делается для многих и многих онлайн казино на просторах интернета.</p>
<p>В начале работы с колодой карт в покере, вероятно, сначала стоит рассмотреть все комбинации в покере dixonich предлагает массив cards[52] .</p>
<p><strong>dixonich:</strong></p>
<blockquote><p>собственно есть массив<br />
cards[52] = {21,31,41,&#8230;,144}<br />
последняя цифра &#8211; масть. это колода.<br />
нужно осуществить проверку комбинаций. какие есть варианты, кроме 1000 ифов? ))</p></blockquote>
<p>veniside предлагает решение:</p>
<p><strong>veniside:</strong></p>
<blockquote><p>Вот, меня хватило только до Straight, но идея, думаю, понятна.</p>
<pre><code><br />
struct card {<br />
int v; // 2=2, 3=3, ... 11=J, 12=Q, 13=K, 14=A<br />
int suit; // 1=clubs, 2=spades, 3=hearts, 4=diamonds<br />
};</p>
<p>struct deck {<br />
int count; // number of cards<br />
card set[52]; // cards<br />
};</p>
<p>void sort(deck &amp;d, bool byV)	// bubble sort (by Value or by Suit)<br />
{<br />
bool sorted = false;<br />
while (!sorted) {<br />
//<br />
int i = 0;<br />
sorted = true;<br />
while (i &lt; d.count - 1) { 			// 			bool gt = byV ? d.set<em></em>.v &gt; d.set<em></em>.v : d.set<em></em>.suit &gt; d.set<em></em>.suit;<br />
if (gt) {<br />
//<br />
sorted = false;<br />
card tmp = d.set<em></em>;<br />
d.set<em></em> = d.set<em></em>;<br />
d.set<em></em> = tmp;<br />
}<br />
i++;<br />
}<br />
}<br />
}</p>
<p>int longrun(deck &amp;d, int &amp;second)<br />
{<br />
sort(d, true); // sort by value<br />
//<br />
second = 0;<br />
int first = 1, current = 1;<br />
//<br />
int v = d.set[0].v;<br />
int i = 0;<br />
while (i++ &lt; d.count - 1) { 		// 		if (v == d.set<em></em>.v) current++; 		else { 			// 			if (current &gt; first)<br />
first = current;<br />
if ((current &lt; first) &amp;&amp; (current &gt; second))<br />
second = current;<br />
//<br />
current = 1;<br />
v = d.set<em></em>.v;<br />
}<br />
}<br />
if (current &gt; first)<br />
first = current;<br />
if ((current &lt; first) &amp;&amp; (current &gt; second))<br />
second = current;<br />
//<br />
return first;<br />
}</p>
<p>bool Straight(deck &amp;d, bool Flush)<br />
{<br />
sort(d, true); // sort by value<br />
//<br />
// check if values are increasing &amp; all suits are same<br />
int v = d.set[0].v;<br />
int s = d.set[0].suit;<br />
int i = 0;<br />
while (i++ &lt; d.count - 1) {<br />
//<br />
if ( (d.set<em></em>.v != d.set<em></em>.v + 1) || (Flush &amp; (d.set<em></em>.suit != s)) )<br />
return false;<br />
}<br />
//<br />
return true;<br />
}</p>
<p>bool RoyalFlush(deck &amp;d)<br />
{<br />
if (Straight(d, true))<br />
return (10 == d.set[0].v);<br />
else<br />
return false;<br />
}</p>
<p>bool FourOfAKind(deck &amp;d)<br />
{<br />
int s;<br />
return (4 == longrun(d, s));<br />
}</p>
<p>bool FullHouse(deck &amp;d)<br />
{<br />
int f, s;<br />
f = longrun(d, s);<br />
return ((3 == f) &amp;&amp; (2 == s));<br />
}</p>
<p>bool Flush(deck &amp;d)<br />
{<br />
sort(d, false);	// sort by suit<br />
int s = d.set[0].suit;<br />
int i = 0;<br />
while (i++ &lt; d.count - 1) {<br />
//<br />
if ( d.set<em></em>.suit != s )<br />
return false;<br />
}<br />
return true;<br />
}<br />
</code></pre><br />
Использовать примерно так:</p>
<p><pre><code><br />
deck hand;<br />
hand.count = 5;<br />
hand.set[0].v = 10;<br />
hand.set[0].suit = 1;<br />
hand.set[1].v = 10;<br />
hand.set[1].suit = 2;<br />
hand.set[2].v = 9;<br />
hand.set[2].suit = 1;<br />
hand.set[3].v = 9;<br />
hand.set[3].suit = 3;<br />
hand.set[4].v = 9;<br />
hand.set[4].suit = 2;<br />
//<br />
bool rf = RoyalFlush(hand);		// Royal Flush<br />
bool sf = Straight(hand, true);	// Straight Flush<br />
bool foak = FourOfAKind(hand);	// Four Of A Kind<br />
bool fh = FullHouse(hand);		// FullHouse<br />
bool f = Flush(hand);			// Flush<br />
bool s = Straight(hand, false);	// Straight<br />
</code></pre></blockquote>
<p><a href="http://programmersforum.ru/showthread.php?t=134967">Подробнее в теме на форуме &#8211; Проверка комбинаций в покере.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d0%b1%d0%be%d1%82%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d1%80%d1%83%d0%bc%d0%be%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Завтра отменят службу в армии. А вы еще служите или служили. вам обидно будет?</title>
		<link>http://www.programmersclub.ru/%d1%81%d0%bb%d1%83%d0%b6%d0%b1%d0%b0-%d0%b2-%d0%b0%d1%80%d0%bc%d0%b8%d0%b8/</link>
		<comments>http://www.programmersclub.ru/%d1%81%d0%bb%d1%83%d0%b6%d0%b1%d0%b0-%d0%b2-%d0%b0%d1%80%d0%bc%d0%b8%d0%b8/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 12:10:22 +0000</pubDate>
		<dc:creator>Chas</dc:creator>
				<category><![CDATA[Общалка]]></category>
		<category><![CDATA[армия]]></category>
		<category><![CDATA[служба в армии]]></category>

		<guid isPermaLink="false">http://www.programmersclub.ru/?p=4560</guid>
		<description><![CDATA[Очередная армейская тема всплыла на форуме, потому я решил создать опрос. В развитых странах уже давно отменили службу в армии. Вот другого президента переизберем и может новый президент или следующий за ним отменит службу в армии. Или может Путин решить стать Линкольном и отменит завтра службу в армии. Вам будет обидно? Вадим Мошев Считаю, что [...]]]></description>
			<content:encoded><![CDATA[<p>Очередная армейская тема всплыла на форуме, потому я решил создать опрос. В развитых странах уже давно отменили службу в армии. Вот другого президента переизберем и может новый президент или следующий за ним отменит службу в армии. Или может Путин решить стать Линкольном и отменит завтра службу в армии. Вам будет обидно?<span id="more-4560"></span></p>
<p><strong>Вадим Мошев</strong><br />
Считаю, что служба в армии (если отбросить имеющиеся на данный момент времени неприятности, например, неуставные отношения) всё же нужна. Почему? Это физическое развитие, закалка и подготовка к возможным &laquo;форс-мажорам&raquo;. На мой взгляд, очень странно, что развитые страны отказались от службы в армии. Как же в этом случае тогда противостоять возможным неприятностям, которые без спецподготовки не преодолеть? Я понимаю, что есть спецслужбы (НАПРИМЕР, ОМОН или спецназ), но, ИМХО, никому плохо не будет, если человек, не имеющий отношения к выше оговоренным структурам, будет владеть навыками, позволяющими обезопасить себя и/или окружающих.</p>
<p>В данный момент я не могу говорить о пользе службы для русской молодёжи (хотя положительные моменты были отмечены выше). Возможно, если бы в армии не было неуставных отношений, которые есть в настоящее время, то в большинстве случаев служба бы пошла только на пользу, ИМХО.</p>
<p>Лично моё же мнение о службе такое.<br />
Всё же служба &#8211; это не только отметка в военном билете, но также ещё и несколько &laquo;открытых дверей&raquo; на некоторые места работы (например, в пожарную охрану или в милицию не возьмут даже компьютерным работником, если вы не годны/не служили).<br />
Помимо выше озвученного, это ещё и высокая репутация в глазах других людей (моё мнение!), в частности перед девушками/женщинами. Имхо, у служивших будет больше успеха в общении с девушками/женщинами.</p>
<p>С другой стороны, если говорить о &laquo;защите родины&raquo;, то защищать такую страну, где такое отношение к людям и такая жизнь, совсем не хочется.<br />
Хотя возможно, русских людей именно на то и программируют, чтобы ослабить страну и манипулировать нами было ещё легче. Так что здесь виновата не Россия, а государственно-политический аппарат. Страну, в которой всё хорошо, и защищать приятно.</p>
<p><a href="http://programmersforum.ru/showthread.php?t=185909">тема на форуме</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmersclub.ru/%d1%81%d0%bb%d1%83%d0%b6%d0%b1%d0%b0-%d0%b2-%d0%b0%d1%80%d0%bc%d0%b8%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

