tag:blogger.com,1999:blog-78345458467482875232024-03-05T00:27:22.442-08:00Блог начинающего программиста“Скажи мне и я забуду. Покажи мне и я запомню. Увлеки меня и я научусь”Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-7834545846748287523.post-11554660850423347322013-10-04T11:38:00.003-07:002013-12-05T09:50:49.893-08:00Радио ++<script type="text/javascript"><!--
google_ad_client = "ca-pub-9848354054239658";
/* ИНТЕРЕСНОЕ */
google_ad_slot = "5907581324";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="//pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRpVOrSHDSJMfdv0l5TX3tbvlH-WUB8rwN7JX3WRcXFeF69_feZsQRZiUgl9JFhF1JLxqiy-dXNn6c-Xh_dDVSf9Kmw5loTOkSjto_h8D9NT4vnxSoBVjC8hMFCgztgWQWxXN15sRdWiq/s1600/ic_launcher-web.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRpVOrSHDSJMfdv0l5TX3tbvlH-WUB8rwN7JX3WRcXFeF69_feZsQRZiUgl9JFhF1JLxqiy-dXNn6c-Xh_dDVSf9Kmw5loTOkSjto_h8D9NT4vnxSoBVjC8hMFCgztgWQWxXN15sRdWiq/s320/ic_launcher-web.png" width="320" /></a></div>
<br />
<b>Радио ++</b> позволяет вам слушать онлайн интернет радио на разных устройств под управлением операционной системы Android. В программе очень большие возможности для воспроизведения интернет радио. Вы сможете слушать и добавлять радиостанции разной тематики и направления такие как: Радио Premium, Зайцев.FM , Дорожное Радио, Юмор ФМ, Радио Ваня, Радио Рекорд, Best FM и другие.<br />
<br />
<a name='more'></a><br />
Уникальная система повторного подключения интернет радио позволит вам слушать радио практические не прерывно на низком соединение интернета. Слушайте музыку со всего мира, просто добавляйте любимые радиостанции для доступа в любое время. Энергосберегающая программа с низким потребление интернет трафика.<br />
<br />
<b>Преимущества: </b><br />
- Добавление своих любимых радиостанций<br />
- Настройки повторного соединения<br />
- Таймер сна<br />
- Программа полностью бесплатна<br />
- Поддержка m3u плейлистов (Создание/Открытие)<br />
- Выбор качества радио<br />
- Загрузка плейлистов прямо с программы<br />
<br />
В программе присутствует стандартный список радио которые добавляются автоматически при запуске программы. Пользовательский список позволит вам добавлять огромное количество бесплатного радио со всего мира! Программа может работать с плейлистами для этого вы можете скачать плейлист с радиостанциям прямо с программы или найти их в интернете!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCgqENnedRvdUozoMOyAKJNtkYYPQMdUEEt0h35eWFi1oauuIc-fRQaEtUzfiY20NSc-FbDH5SuqqT9p9CTozu1_0WdSxoPKOuHnuzG3HnPFCXzKKesqrX1AiYslvnFbboww1xXuPGIPwe/s1600/img1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCgqENnedRvdUozoMOyAKJNtkYYPQMdUEEt0h35eWFi1oauuIc-fRQaEtUzfiY20NSc-FbDH5SuqqT9p9CTozu1_0WdSxoPKOuHnuzG3HnPFCXzKKesqrX1AiYslvnFbboww1xXuPGIPwe/s320/img1.png" width="179" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJL8ZAJmjZJZeNr8XujgCIExzdoJXx4IexlyptKxGZB_w9PbDHTYRI6gMxB0i8U-RpUSKSA1HmYqS-Ew-wOhjlx-EGxeEiMHjCgOGxDEwAJO6SVeykF05pkmZf9IaXWzQEyHQGgZORTkAf/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJL8ZAJmjZJZeNr8XujgCIExzdoJXx4IexlyptKxGZB_w9PbDHTYRI6gMxB0i8U-RpUSKSA1HmYqS-Ew-wOhjlx-EGxeEiMHjCgOGxDEwAJO6SVeykF05pkmZf9IaXWzQEyHQGgZORTkAf/s320/img2.png" width="179" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLib953owslsSrKLYov7fhL7XkKdEG1b6tziy3MPSdKiuAYP6jR2DMysQ04I0Cpl97daiDHZdDs1S3yDFffU-OFgT_UqjGDdbhx2QCrOV2O487DvTFbexSzcRX_zBwBosat2WwpjHcqmj/s1600/img3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLib953owslsSrKLYov7fhL7XkKdEG1b6tziy3MPSdKiuAYP6jR2DMysQ04I0Cpl97daiDHZdDs1S3yDFffU-OFgT_UqjGDdbhx2QCrOV2O487DvTFbexSzcRX_zBwBosat2WwpjHcqmj/s320/img3.png" width="179" /></a><br />
<br />
Если вы считайте, что программа нарушает ваши права - пожалуйста сообщите нам!<br />
<br />
<strong class="bbc" style="background-color: rgba(255, 255, 255, 0.85098); color: #3c5562; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px;">Ссылка на Google Play:</strong><span style="background-color: rgba(255, 255, 255, 0.85098); color: #3c5562; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px;"> </span><a class="bbc_url" href="http://play.google.com/store/apps/details?id=plus.nail.radio" rel="nofollow external" style="background-color: rgba(255, 255, 255, 0.85098); color: #0f72da; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px;" title="Ссылка">play.google.com/store/apps/details?id=plus.nail.radio</a><br />
<strong class="bbc" style="background-color: rgba(255, 255, 255, 0.85098); color: #3c5562; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px;">Обсуждение на 4pda: </strong><a class="bbc_url" href="http://4pda.ru/forum/index.php?showtopic=437925" rel="nofollow external" style="background-color: rgba(255, 255, 255, 0.85098); color: #0f72da; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px;" title="Ссылка">4pda.ru/forum/index.php?showtopic=437925</a><br />
<br />
<br /></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-86387695120283618892012-04-27T11:40:00.000-07:002012-04-27T11:41:40.399-07:00Мишка на Scalable Vector Graphics<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Сегодня нужно было нарисовать мишку на <b style="text-align: left;">S</b><span style="text-align: left;">calable </span><b style="text-align: left;">V</b><span style="text-align: left;">ector </span><b style="text-align: left;">G</b><span style="text-align: left;">raphics, в переводе масштабируемая </span><span style="text-align: left;">векторная графика. Что требовалось от меня:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQaZXj9O2_gL5B0r3tpxjsdeXu8JpsMj0dNu4WXaCP1aEAlISHMaVtY97jAaeVpqV9NBZ4rgLmC1CeaN7g3rt8of5asMB-mFoLdczPq2pHTAjIbrnlFZ4DvvQaDnmfWORaLPJlb-B4S6BX/s1600/mishka.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQaZXj9O2_gL5B0r3tpxjsdeXu8JpsMj0dNu4WXaCP1aEAlISHMaVtY97jAaeVpqV9NBZ4rgLmC1CeaN7g3rt8of5asMB-mFoLdczPq2pHTAjIbrnlFZ4DvvQaDnmfWORaLPJlb-B4S6BX/s320/mishka.jpg" width="267" /></a><span style="text-align: left;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: left;"></span></div>
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: left;">
Что получилось:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO_2PUt129lCMN7xtNLhLnoPLxS5n-vrvznlBfEkGGp4jWnzmxPPGr5Ge5kM4peFRr5NWsUlGa_yLnq04zwZpG0t6tlEJMS7MC9cE4aRvl1qlq_kc2dJvOayi93S6VIj9hmqbr5DEWiCho/s1600/mishka1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO_2PUt129lCMN7xtNLhLnoPLxS5n-vrvznlBfEkGGp4jWnzmxPPGr5Ge5kM4peFRr5NWsUlGa_yLnq04zwZpG0t6tlEJMS7MC9cE4aRvl1qlq_kc2dJvOayi93S6VIj9hmqbr5DEWiCho/s320/mishka1.jpg" width="249" /></a></div>
<div class="separator" style="clear: both; text-align: justify;">
А получился вроде симпатичный мишка!! Если кому - то тоже потребовалось порисовать в SVG, и что - то не получается пишите в комментариях, попробую помочь. Вот код, может кому пригодится:
</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div class="separator" style="clear: both;">
<svg width="500" height="500" xmlns="http://www.w3.org/2000/svg" version="1.1"></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="60" cy="225" r="20" fill="white" stroke="black" stroke-width="6" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="210" cy="225" r="20" fill="white" stroke="black" stroke-width="6" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="80" cy="325" r="20" fill="white" stroke="black" stroke-width="6" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="195" cy="325" r="20" fill="white" stroke="black" stroke-width="6" /></div>
<div class="separator" style="clear: both;">
<rect x="70" y="200" width="130" height="130" fill="white" stroke="black" stroke-width="6"/></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="60" cy="225" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="210" cy="225" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="80" cy="325" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="195" cy="325" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="60" cy="85" r="25" fill="white" stroke="black" stroke-width="5" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="200" cy="85" r="25" fill="white" stroke="black" stroke-width="5" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><ellipse cx="135" cy="135" rx="90" ry="65" fill="white" stroke="black" stroke-width="5" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="170" cy="135" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="110" cy="135" r="20" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="110" cy="136" r="10" fill="black" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="163" cy="136" r="10" fill="black" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="135" cy="170" r="35" fill="white" stroke="black" stroke-width="1"/></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="113" cy="137" r="2" fill="white" stroke="white" stroke-width="1"/></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><circle cx="159" cy="137" r="2" fill="white" stroke="white" stroke-width="1"/></div>
<div class="separator" style="clear: both;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><path d="M 120 150 L 150 150 L 135 180 z" fill="white" stroke="black" stroke-width="1" /></div>
<div class="separator" style="clear: both;">
</svg></div>
<div>
<br /></div>
</div>
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com1tag:blogger.com,1999:blog-7834545846748287523.post-15108377555896684152012-04-19T02:56:00.003-07:002012-04-19T03:01:14.799-07:00Программа для построения блок-схем<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: -webkit-auto;">Почти каждый студент проходит то время когда преподаватель требует от вас нарисовать блок-схему. Нeкоторые рисуют в paint, word, <span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;">MS Visio,</span></span> но существует программа которая нарисует блок-схему за вас -<i> FCEditor</i> вот оно чудо <strike>ленивых</strike> студентов. Пробная версия программы <span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">изображает поверх схемы водяные знаки, а полная версия стоит всего 150 рублей. </span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">Скачать и купить можете на <a href="http://fceditor.com/">офф сайт.</a></span><br />
<a name='more'></a></div><div style="text-align: -webkit-auto;"><br />
</div><div style="text-align: left;"><b>Описание FCEditor</b></div><div style="text-align: -webkit-auto;"></div><div style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">FCEditor .NET предназначен для построения блок схемы программ из кода на языках Pascal, Delphi и C#. Полученную схему можно отредактировать, сохранить и экспортировать в графический файл.</div><div style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">Основное отличие FCEditor от похожих программ - автоматическое расположение блоков и подстройка их размеров под содержимое.</div><div style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">Новая версия редактора на основе технологии MS .NET позволяет красиво и быстро преобразовать код в понятную визуальную схему. В планах - вставка формул, картинок, комментариев, свертывание блоков и многое другое.</div><div style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5SJmM7Ny2YUYXARy_9bnoIo76HjlAzFYTm933e-tb0aBbhAN_ln2hAnWv-7SXajRQUYNyUxEYPqMmRBOCSoK99Sz6LvjFgGbqg005OC3k4Mio9eX-Z4R69Fen-jtzRMkpq9xujSDI_xNE/s1600/234234.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5SJmM7Ny2YUYXARy_9bnoIo76HjlAzFYTm933e-tb0aBbhAN_ln2hAnWv-7SXajRQUYNyUxEYPqMmRBOCSoK99Sz6LvjFgGbqg005OC3k4Mio9eX-Z4R69Fen-jtzRMkpq9xujSDI_xNE/s400/234234.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Программа в деле.</td></tr>
</tbody></table><div style="background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 14px;"><br />
</div></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com1tag:blogger.com,1999:blog-7834545846748287523.post-71731439204412384882012-04-18T05:33:00.010-07:002012-04-19T02:21:39.704-07:00Как проверить подключение к интернету<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">Привет! Недавно начал увлекаться программированием под Android. При разработке приложения нужно было проверить подключен ли интернет на устройстве, сейчас покажу пример как можно это проверить. И так установим в манифест два разрешения.<br />
<a name='more'></a><br />
<span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;"><</span><b style="color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">uses-permission</b><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;"> </span><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">android:name="android.permission.INTERNET"> </</span><b style="color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">uses-permission</b><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">> </span><br />
<pre class="brush: js"><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;"><</span><b style="color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">uses-permission </b><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">android:name="android.permission.ACCESS_NETWORK_STATE"> </</span><b style="color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">uses-permission</b><span style="background-color: white; color: #333333; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; text-align: -webkit-auto;">></span>
</pre><br />
Метод для проверки подключения к интеренету.<br />
<pre class="brush: js">import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public boolean isOnline() {
ConnectivityManager c = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo nInfo = c.getActiveNetworkInfo();
if (nInfo != null && nInfo.isConnected()) {
return true;
} else {
return false;
}
}</pre></div>Использование метода: <br />
<pre class="brush: js">public void btn1_OnClick(View v) {
if (isOnline()) {
tv1.setText("Online");
} else {
tv1.setText("Offline");
}
}
</pre>И вот собственно результат..<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPuT1s4LLLNfDzl_5bU3WzjvLUoNF2_FEmdisTiAVRvwz1x3KyGxfzFAx75c0EQsFih2Ll3qXRr0w5kG-gAEQupVPsfvXbymn3h_lcWfUV1sL086NpOhM_KCi2I87vnOA-sovy2Z6RHvMF/s1600/isonline.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPuT1s4LLLNfDzl_5bU3WzjvLUoNF2_FEmdisTiAVRvwz1x3KyGxfzFAx75c0EQsFih2Ll3qXRr0w5kG-gAEQupVPsfvXbymn3h_lcWfUV1sL086NpOhM_KCi2I87vnOA-sovy2Z6RHvMF/s400/isonline.png" width="242" /></a></div><br />
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-65342414251037349532011-08-16T09:39:00.000-07:002011-08-16T09:39:21.329-07:00Delphi Работа с твиттером<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Привет уважаемый читатель моего блога!
Я сегодня расскажу как можно авторизовать в
твиттере и научимся отправить сообщения в твиттер
и читать пользователя. Мы не будем использовать <b> твиттер API</b> а будем работать со страницей m.twitter.com то есть с мобильной версий сайта.
<br />
<a name='more'></a><div align="center">
<span style="font-size: large;">Авторизация</span></div>
Нам понадобится сниффер <b>HTTPFox</b>, я проводил маленький обзор в этой <a href="http://codingpas.blogspot.com/2011/08/http.html">статье</a> там же и лежит ссылка на сниффер. И как раз мы проверим его на практики какой уж он удобный ;-). Заходим в наш браузер, заходим на страничку https://mobile.twitter.com/session/new тут же мы видим формы для заполнения.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5m_4EtAfnWIfmIor7l5VlraAkTmz6lA-IZBxSFjM1ELozn9oGUStBnNZMpj1pZaZ3UTVCKHQy51BqMHWbr5P6aHxm9iqI8peLKufDcXc09I-LH2VLAqMAogxfCj_aI0BFmfLrLCess8C_/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5m_4EtAfnWIfmIor7l5VlraAkTmz6lA-IZBxSFjM1ELozn9oGUStBnNZMpj1pZaZ3UTVCKHQy51BqMHWbr5P6aHxm9iqI8peLKufDcXc09I-LH2VLAqMAogxfCj_aI0BFmfLrLCess8C_/s320/delphi_twitter.png" width="320" /></a></div>
Вот тут же и включаем сниффер, заполняем формы "Имя пользователя и Пароль" и жмем "Войти" и возвращаемся в сниффер на вкладку "POST Data" смотрим какие параметры нужно заполнить.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinGHMFokeunnP7HmBFde7fhHXkJ7pczRlMibYszH6H6jjqUEV8JOOl2hji6G_dWlOBw70H7HWMk-mH6njXbbJDuD-w1NwVPR3RvT68IM8QvQy1kePx2fuEE1U3uzxlV6Hvhav4BGgp3L9n/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinGHMFokeunnP7HmBFde7fhHXkJ7pczRlMibYszH6H6jjqUEV8JOOl2hji6G_dWlOBw70H7HWMk-mH6njXbbJDuD-w1NwVPR3RvT68IM8QvQy1kePx2fuEE1U3uzxlV6Hvhav4BGgp3L9n/s320/delphi_twitter.png" width="320" /></a></div>
Это параметры <b>username</b> - имя пользователя, <b>password</b> - пароль, а параметр <b>authenticity_token</b> его нужно с парсить со странице он постоянно изменяется, не веришь? Это можно проверить, давайте попробуем опять зайти на страницу и войти.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AY-1B9NbvAad9A61KIRnfk4D9AIVZSHIa6I3bSj99oLt7zAnc04ndM1yoLmftBIqcuYngytRgTY0t4SYy5nENUWPEwR14zQRgF0rgVXcR51Gw3cV2RbK68nJixpOPAnpSeUQLqQ3ZnfT/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AY-1B9NbvAad9A61KIRnfk4D9AIVZSHIa6I3bSj99oLt7zAnc04ndM1yoLmftBIqcuYngytRgTY0t4SYy5nENUWPEwR14zQRgF0rgVXcR51Gw3cV2RbK68nJixpOPAnpSeUQLqQ3ZnfT/s320/delphi_twitter.png" width="320" /></a></div>
Вот смотрите сами значения поменялись. Так теперь ищем в коде <a href="https://mobile.twitter.com/session/new">странице</a> значение "<b>authenticity_token</b>" будет разумно воспользоваться поиском.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7re_HQVONFE3z7t0cMVUv2zKVWjakxtEG5NGWAxIoWsXwD4Bln9jWOkntQJ_R4rhFHzs2Uq6vcYdWx8nyFbpXeyrdkUezQRE1nQR3q0vqV7_UBvJ35shT2QbVFhEWOEacuF1lUf9U7GDj/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7re_HQVONFE3z7t0cMVUv2zKVWjakxtEG5NGWAxIoWsXwD4Bln9jWOkntQJ_R4rhFHzs2Uq6vcYdWx8nyFbpXeyrdkUezQRE1nQR3q0vqV7_UBvJ35shT2QbVFhEWOEacuF1lUf9U7GDj/s320/delphi_twitter.png" width="320" /></a></div>
Как вы видите значение "<b>authenticity_token</b>" в коде странице найдено, вот вся строчка кода.
<br />
<pre class="brush: js">&lt;form action="https://mobile.twitter.com/session" method="post"&gt;
&lt;div style="display: inline; margin: 0; padding: 0;"&gt;
&lt;input name="authenticity_token" type="hidden" value="ef37b9fb28969820ad5a" /&gt;&lt;/div&gt;
&lt;/form&gt;
</pre>
Теперь нужно вытащить все что хранится в <b><span class="attribute-name">value</span>=<span class="attribute-value">""</span></b><span class="attribute-value"> то есть то что нам нужно, и после заполнить параметр. Что бы вытащить все что хранится в </span>
<b><span class="attribute-name">value</span>=<span class="attribute-value">""</span></b>
<span class="attribute-value"> мы воспользуемся функциями <b>pos/copy</b> их будет достаточно. </span>
<br />
<pre class="brush: js">var
auth_t: string; // хранится значение authenticity_token
...
procedure TForm5.Button1Click(Sender: TObject);
var
get: String;
begin
get := IdHTTP1.get('https://mobile.twitter.com/session/new');
auth_t := Copy(get, Pos('type="hidden" value="', get) + 21, 20);
// Вытаскиваем значение authenticity_token
end;
</pre>
Значение "<b>authenticity_token</b>" мы получили теперь нужно заполнить поля "Имя пользователя, Пароль" и по пробовать авторизироваться. </div>
<pre class="brush: js">var
auth_t: string; // хранится значение authenticity_token
...
procedure TForm5.Button1Click(Sender: TObject);
var
data: TStringList;
get: String;
begin
get := IdHTTP1.get('https://mobile.twitter.com/session/new');
auth_t := Copy(get, Pos('type="hidden" value="', get) + 21, 20);
// Вытаскиваем значение authenticity_token
data := TStringList.Create;
data.Add('authenticity_token=' + auth_t);
data.Add('username=' + login.Text);
data.Add('password=' + pass.Text);
IdHTTP1.Post('https://mobile.twitter.com/session', data);
// Отправляем все параметры
get := IdHTTP1.get('https://mobile.twitter.com/');
if Pos('Home', get) <> 0 then
begin
ShowMessage('Авторизовались удачно!');
Button1.Enabled := False;
end
else
ShowMessage('Авторизовались не удачно!');
// Проверяем авторизовались или нет
end;
</pre>
Вводим значения в login.text и pass.text и пробуем авторизоваться. У меня все работает!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn5a7plvPy7EQ5WGoahGD1lIwjMcjo_CWOigLRgNLg4iQ-WnpN4EMkTVa8V9F6IXyX27AcGJBowbIZ9c311FrytZORmawmPQiwIEA04ZBXp9Y3rB6v_U9f0mPXaQfGj2TEJE033sX2ugjX/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn5a7plvPy7EQ5WGoahGD1lIwjMcjo_CWOigLRgNLg4iQ-WnpN4EMkTVa8V9F6IXyX27AcGJBowbIZ9c311FrytZORmawmPQiwIEA04ZBXp9Y3rB6v_U9f0mPXaQfGj2TEJE033sX2ugjX/s320/delphi_twitter.png" width="320" /></a></div>
<div align="center">
<span style="font-size: large;">Отправка твита </span></div>
Ну вот пожалуй и все, мы авторизовались. Давайте научимся отправлять сообщение в твиттер. Заходим на страницу твиттера, только уже нужно будет войти в твиттер включаем сниффер пишим сообщение и отправляем. Заходим на вкладку "POST Data" смотрим какие параметры нужно заполнить.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiR1BsYpxg3QDi4smwvsP1IxdkxP1RHECqdZRC14KXY-nJ2ZNcrEGCH4C4vEvGKh8bx4nYAfhQTe6alK4jmUNSfJKteIeom13cdZaftHnwTpDOxaaoQiIeXZ9eEfZFAEpR5gLqimoxxomd/s1600/delphi_twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiR1BsYpxg3QDi4smwvsP1IxdkxP1RHECqdZRC14KXY-nJ2ZNcrEGCH4C4vEvGKh8bx4nYAfhQTe6alK4jmUNSfJKteIeom13cdZaftHnwTpDOxaaoQiIeXZ9eEfZFAEpR5gLqimoxxomd/s400/delphi_twitter.png" width="400" /></a></div>
Параметр <b>authenticity_token</b> у нас уже есть нам нужно только вставить как мы делали с авторизацией, параметр <b>tweet[text]</b> тут хранится текст для отправки сообщения остальные параметры пустые мы их так и оставим.<br />
<br />
<pre class="brush: js">procedure TForm5.Button2Click(Sender: TObject);
var
send: TStringList;
begin
send := TStringList.Create;
send.Add('authenticity_token=' + auth_t);
send.Add('tweet[text]=' + twit.Text);
send.Add('tweet[in_reply_to_status_id]=');
send.Add('tweet[lat]=');
send.Add('tweet[long]=');
send.Add('tweet[place_id]=');
send.Add('tweet[display_coordinates]=');
// Заполнили все поля
idHTTP1.Post('https://mobile.twitter.com/',send);
// Отправляем заполненые параметры
end;</pre>
<pre class="brush: js"></pre>
<div align="center">
<span style="font-size: large;">Фолловинг</span></div>
Вот и все, все очень легко! Сниффер нам очень помогает :) Теперь научимся читать пользователя не буду так же все подробно показывать тут почти тоже самое покажу только код.
<br />
<pre class="brush: js">procedure TForm3.Button5Click(Sender: TObject);
var
follow: TStringList;
begin
follow := TStringList.Create;
follow.Add('authenticity_token=' + auth_t);
follow.Add('last_url/=' + name.Text);
// Заполнили все поля
idHTTP1.Post('https://mobile.twitter.com/'+ name.Text +'/follow',follow);
// Отправляем заполненые параметры, то есть фолловим!
end;
</pre>
Далее можете сами уже улучшать вашу программу. Ну вот и все написал долгожданную статью которую хотел написать очень давно, оцениваем:)
</div>
Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com5tag:blogger.com,1999:blog-7834545846748287523.post-76075954395257892852011-08-11T12:27:00.000-07:002011-08-11T12:28:10.069-07:00Маленький обзор http сниффера<div dir="ltr" style="text-align: left;" trbidi="on">В данной статье я хочу показать <b>сниффер </b>с котором я более часто работаю. Кто не в курсе сниффер нужен для просмотра/изменения заголовков HTTP запросов. В моем случае сниффер нужен для просмотра параметров POST.<br />
<a name='more'></a><a href="https://addons.mozilla.org/en-US/firefox/addon/httpfox/">HTTPFox</a> - Плагин для Firefox, на мой взгляд очень удобный без всяких лишних фантиков. Как установиться плагин я думаю знайте.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbWhgBCbpPyeRGRRxnxB3RMRvmV1tDgqFv3ulgCfjM4_iXgoyFTBbbhkuvYWWsB7b_1hRMMaF9mFySoaN8Yzd_D12d0qRnH8i5oR9_fBr7dZAs6P1krrm9injCa6gfwCvmW_n3sXyGA8l/s1600/httpfox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbWhgBCbpPyeRGRRxnxB3RMRvmV1tDgqFv3ulgCfjM4_iXgoyFTBbbhkuvYWWsB7b_1hRMMaF9mFySoaN8Yzd_D12d0qRnH8i5oR9_fBr7dZAs6P1krrm9injCa6gfwCvmW_n3sXyGA8l/s400/httpfox.png" width="400" /></a> </div>Открываем <b>"Инструменты - HttpFox - Toggle HttpFox"</b> и появляется окно в браузере.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW3M9iciaE3g1Ta6uZkUFDXzEJUn-T_6wGq60lnwtQXkmXeHQTL-8CkBlOB4TlkbdEVQoqZKIEx3yQYJadEE-rck1U9677h9Geln7tr1eLaRuoCIl0fkQqyer8m6gEuSZdAemv-ZWkUqEU/s1600/httpfox2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW3M9iciaE3g1Ta6uZkUFDXzEJUn-T_6wGq60lnwtQXkmXeHQTL-8CkBlOB4TlkbdEVQoqZKIEx3yQYJadEE-rck1U9677h9Geln7tr1eLaRuoCIl0fkQqyer8m6gEuSZdAemv-ZWkUqEU/s400/httpfox2.png" width="400" /></a></div> Открываем <b>"Инструменты - HttpFox - Open In Own Window" </b>и логируется уже все в отдельном окне.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEbCtEUAlvpTV48qC1s0jbknZbFmQUnWYhAjIHdmO9DXTJQA1Khg1njrTtYXYHlnWgHlakt0wFTB046iNzqSp_nWLNe_eOWn4c3Gdnss5wLjj0RNgBZgEUEM_gP2fttnk7i43mtA4zTlS-/s1600/httpfox3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEbCtEUAlvpTV48qC1s0jbknZbFmQUnWYhAjIHdmO9DXTJQA1Khg1njrTtYXYHlnWgHlakt0wFTB046iNzqSp_nWLNe_eOWn4c3Gdnss5wLjj0RNgBZgEUEM_gP2fttnk7i43mtA4zTlS-/s400/httpfox3.png" width="400" /></a></div>Плагин вполне очень удобный и справляется со своей задачей очень хорошо. Большой <b> </b>за удобство :) А каким сниффером пользуешься ты?</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com4tag:blogger.com,1999:blog-7834545846748287523.post-53423095864769540332011-07-12T13:22:00.000-07:002011-07-12T13:23:06.666-07:00Компонент TICQClientКомпонент для работы с ICQ. Скачать. <a href="http://ticqclient.tsar-ioann.ru/">Оф. Сайт.</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcpqo2jhJG1hgnSFz4C_taTkMK53H5eGI20X01dRfwakei9VeHU8qyIMb_fwX5qy2F-ZWWLSO2sKJf4DW5d0B4YRXS5_Q9Oc3FZl7tSRK_8sbBcIVfyTgbSWHeq7PDPhgA7HVgrMV7K5h2/s1600/icqclient1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcpqo2jhJG1hgnSFz4C_taTkMK53H5eGI20X01dRfwakei9VeHU8qyIMb_fwX5qy2F-ZWWLSO2sKJf4DW5d0B4YRXS5_Q9Oc3FZl7tSRK_8sbBcIVfyTgbSWHeq7PDPhgA7HVgrMV7K5h2/s400/icqclient1.png" width="178" /></a></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.comtag:blogger.com,1999:blog-7834545846748287523.post-63344675079647195332011-07-08T06:49:00.000-07:002011-07-08T06:50:13.988-07:00Сервис твайтНе давно начал пользоваться сервисом <a href="http://www.twite.ru/ref-144400093">твайт</a> и я хочу сказать пару слов о нем. <span style="mso-spacerun: yes;"> </span>Этот сервис дает нам возможность размещать рекламные сообщения в <span lang="EN-US" style="mso-ansi-language: EN-US;">twitter</span>’<span lang="EN-US" style="mso-ansi-language: EN-US;">e</span> и получать за это деньги. Есть возможность фолловить за деньги – и это проходит автоматически. Так же нам дают возможность продавать лайки, лайки – это способ оценки материала в<span style="mso-spacerun: yes;"> </span>Facebook. Давайте познакомимся с ним по ближе. Заходим на <a href="http://www.twite.ru/ref-144400093">сайт</a> . Жмем кнопочку <i style="mso-bidi-font-style: normal;">“Войти и начать зарабатывать” </i><span style="mso-spacerun: yes;"> </span>выбераем “Твиттер” и вводим Имя пользователя и Пароль.<br />
<a name='more'></a><br />
<div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfOzu4dDpbTt-y_CkJRqQzX35A0-YdhHVl4fyGvibJ-E3UbqB6t4FyyMhR9agIDP885Z9m1hdOQss09yb8TuqZZcTdPDuLqbWPVQ7skzVMceDXmOLPsWksHjeM6QhomFR37UqijPh3fhm/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfOzu4dDpbTt-y_CkJRqQzX35A0-YdhHVl4fyGvibJ-E3UbqB6t4FyyMhR9agIDP885Z9m1hdOQss09yb8TuqZZcTdPDuLqbWPVQ7skzVMceDXmOLPsWksHjeM6QhomFR37UqijPh3fhm/s320/1.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjESo38wNuYiMi6yV7hNdlhO4j-PWAIG0wm85w-5ks41_e05GacSkBb6R5q_x7ye55dHRUKuHzS67qzg-MFL-emtwXVhLOXI_k495woPHWrd0Ca8N2cHNx-H64SKcch8kU90MJamEIMUfoJ/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjESo38wNuYiMi6yV7hNdlhO4j-PWAIG0wm85w-5ks41_e05GacSkBb6R5q_x7ye55dHRUKuHzS67qzg-MFL-emtwXVhLOXI_k495woPHWrd0Ca8N2cHNx-H64SKcch8kU90MJamEIMUfoJ/s320/2.png" width="320" /></a> </div><div class="MsoNormal"><br />
После мы переходим на основную панель блоггера. Как и везде есть пару ограничений:<br />
<br />
<ul><li class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">Опубликововать можно не более 10 сообщений в день.</li>
</ul><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"></div><ul><li class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">Рекламных материалов в микроблоге не должна превышать 20%.</li>
</ul><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"></div><ul><li class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">Минимальный вывод средств 300 рублей с учётом 30% комиссии за вывод средств.</li>
</ul><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"> Вот такие вот ограничения. Еще присутствует рейтинг, у каждого блогера свой рейтинг. Рейтинг – зависит от количества фолловеров, друзей, параметра “ listed ”, ретвитов постов блогера и др. Чем выше рейтинг тем больше цена рекламных сообщений, например у меня 3 звездочки.</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk7qJj6AWMI2zQteiCuUqo1UYrIqcQN3mv7vS0ft-cp5cq3VTwgeRhPSpS2JLwgVY8RVcho8HKfZjm9no61sbdlMyRGEeisMC-F-r6KBP9-_kj6XuK-m__ZqJ34YFnzn3TgJPvRXdPR2J7/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk7qJj6AWMI2zQteiCuUqo1UYrIqcQN3mv7vS0ft-cp5cq3VTwgeRhPSpS2JLwgVY8RVcho8HKfZjm9no61sbdlMyRGEeisMC-F-r6KBP9-_kj6XuK-m__ZqJ34YFnzn3TgJPvRXdPR2J7/s1600/3.png" /></a></div>Цена в среднем колебается 3 – 7 руб за одно сообщение.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwbxJwSjrs7_nZnAH9T4cN0IFYhwUtSkcNqn1ZSjgoQ9Z30attWQywrBXq-kGXQ2rOVDHZuhYoVrFlV4_XTkXFiKJhlEul8H22T31ImBTjDLrpSwKFDQCrTjeLQ1A7TybYHkFpcbt47b2/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="40" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwbxJwSjrs7_nZnAH9T4cN0IFYhwUtSkcNqn1ZSjgoQ9Z30attWQywrBXq-kGXQ2rOVDHZuhYoVrFlV4_XTkXFiKJhlEul8H22T31ImBTjDLrpSwKFDQCrTjeLQ1A7TybYHkFpcbt47b2/s640/4.png" width="640" /></a></div><br />
Давайте разместим это сообщение и попробуем получить деньги. Нажимаем на галочку, размещаем сообщение. И вуаля! Деньги у нас на счету!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACKEn0s8JeD9cfhJEee1xl2LQqCunlGof0sSI1mIKsf2g0AjhWlJLlk4o0lcZOjGA-k3geOMCgAe1fQk3dwnf3UjdYSbUj-Hqe799GpUKEVqykAz4Jmzmk_2qG22vyvEvSKBLqB13yiFu/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="45" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACKEn0s8JeD9cfhJEee1xl2LQqCunlGof0sSI1mIKsf2g0AjhWlJLlk4o0lcZOjGA-k3geOMCgAe1fQk3dwnf3UjdYSbUj-Hqe799GpUKEVqykAz4Jmzmk_2qG22vyvEvSKBLqB13yiFu/s400/6.png" width="400" /></a></div><br />
<span style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%;">Деньги можно перевести на счет рекламодателя и опять же самому на свои заработанные деньги рекламировать свой проект, как это делаю я. Опять же тут присутствует комиссия 30%. Или переводить на свой кошелек. Вывод производится в WebMoney. </span><br />
<span style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%;"> </span> </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQVulvR45t-qQzpPhm3iNp91dVGfk93APkRN3n8oiqjrJxrDQmDI-Lz4bZ5uSCu3d6NUC7oAabqyGJNXVMTu0vLhti1GauNlvAPz5Byl7FUsnf7svKrpWz7bqZYlgGwwgv0LUGGesqQNC/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQVulvR45t-qQzpPhm3iNp91dVGfk93APkRN3n8oiqjrJxrDQmDI-Lz4bZ5uSCu3d6NUC7oAabqyGJNXVMTu0vLhti1GauNlvAPz5Byl7FUsnf7svKrpWz7bqZYlgGwwgv0LUGGesqQNC/s400/5.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<div class="MsoNormal">Если вы имейте хороший аккуант в твиттере вам конечно же легче будет зарабатывать, так как ваш рейтинг будет высок. Чем больше рейтинг тем больше цена. <span style="mso-spacerun: yes;"> </span>Зарабатывать не так уж и трудно, даже иногда интересно :)</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-22518415872469317852011-05-23T11:04:00.000-07:002011-07-06T23:55:14.756-07:00Пишем ICQ Бота-шпаргалку<!--63943678A101CE16799D79B469085B33--><br />
<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">Скоро у меня экзамены - заканчиваю 9 класс. Решил сделать ICQ-бота, который выступит в роли шпаргалки. Вдруг попадется билет, который я не знаю. Все билеты учить, разумеется, лень, а хорошую оценку ой как хочется. Итак, как же будет работать наша программа?<br />
Принцип таков: Мы отправляем номер билета боту, он в соответствии с предварительно составленной «базой» отправляет нам ответ. Как полагается, начнем с интерфейса. Для начала нам потребуется компонент ICQClient. Наверняка у тебя его нет, поэтому скачиваем по этой <a href="http://ticqclient.tsar-ioann.ru/ticqclient_v1_34_1.rar"><span lang="ru-RU">ссылке</span></a>.<br />
<a name='more'></a>Как его установить?<br />
<div style="margin-left: 1.5cm; text-indent: -0.5cm;"><span lang="en-US">1)</span><span lang="en-US"> </span>Открываем <span lang="en-US"><i>TICQClient.dpk</i></span>;</div><div style="margin-left: 1.5cm; text-indent: -0.5cm;"><span lang="en-US">2)</span>Переходим в меню <span lang="en-US"><i>Tools</i></span> <span lang="en-US">-> </span><span lang="en-US"><i>Environment Options</i></span><span lang="en-US"> -> </span><span lang="en-US"><i>Library</i></span><span lang="en-US">;</span></div><div style="margin-left: 1.5cm; text-indent: -0.5cm;">3)Жмем кнопку "..." напротив <span lang="en-US"><i>Library</i></span><i> </i><span lang="en-US"><i>path</i></span>;</div><div style="margin-left: 1.5cm; text-indent: -0.5cm;">4)Добавляем путь к папке, где лежит компонент;</div><div style="margin-left: 1.5cm; text-indent: -0.5cm;">5)Возвращаемся к окну с открытым .<span lang="en-US">dpk</span>, жмем <span lang="en-US"><i>Compile</i></span> и <span lang="en-US"><i>Install</i></span> по очереди;</div><div align="LEFT" lang="ru-RU" style="font-style: normal; font-weight: normal;">На вкладке <span lang="en-US">Samples</span> палитры компонентов должен появится наш компонент.</div><div align="LEFT" lang="ru-RU" style="font-style: normal; font-weight: normal;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMzUrNjs7DqOQ4my0APkAVfCNatcjTwMtITXfv3I2TeAsNdccfv2XBFwbEaYPEgUjdBIlQx9octWzf5zgIMXjZWrWNx7jQEi4tkGHosoAMCdTY3t7bZIvYj3o_cXxWtkq27xLqbCIq4h3o/s1600/ICQClient.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMzUrNjs7DqOQ4my0APkAVfCNatcjTwMtITXfv3I2TeAsNdccfv2XBFwbEaYPEgUjdBIlQx9octWzf5zgIMXjZWrWNx7jQEi4tkGHosoAMCdTY3t7bZIvYj3o_cXxWtkq27xLqbCIq4h3o/s640/ICQClient.png" width="640" /></a></div><div align="LEFT" lang="ru-RU" style="font-style: normal; font-weight: normal;"><br />
</div>Кидаем на форму компоненты:<br />
<ul style="text-align: left;"><li>1 Memo с именем ICQLog;</li>
</ul><ul style="text-align: left;"><li>2 Edit с именами UINEdit и PasswordEdit;</li>
</ul><ul style="text-align: left;"><li>2 Button с «кепшинами» - «Онлайн» и «Оффлайн», и именами OnlineBtn и OfflineBtn соответственно;</li>
</ul><ul style="text-align: left;"><li>1 Label, переименованный в ICQStatus;</li>
</ul><ul style="text-align: left;"><li>1 Timer;</li>
</ul><ul style="text-align: left;"><li>1 ICQClient, переименованный в ICQ;</li>
</ul>При нажатии кнопки «Онлайн» будем подключаться к серверу. Для этого в обработчике кнопки пишем следующее:</div><br />
</div><pre class="brush: js">procedure TForm1.ICQOnlineClick(Sender: TObject);
begin
// Проверяем корректность введеных значений
if (UINEdit.Text = '') or (PasswordEdit.Text = '') then
// если поля пусты, то предупреждаем об этом пользователя
MessageDlg('Поля UIN и Пароль не должны быть пустыми!',mtError,[mbYes],0)
else
// Пытаемся подключиться
begin
ICQ.UIN := StrToInt(UINEdit.Text);
ICQ.Password := PasswordEdit.Text;
ICQ.Login();
ICQLog.Lines.Add('Соединение сервером ICQ... ');
end;
end;
</pre></div><br />
<div align="LEFT" lang="ru-RU" style="line-height: 100%; margin-bottom: 0cm; text-decoration: none;">Тут проверяем корректность введеных значений, если поля введены корректно то подключаемся и пишим в лог (<span lang="en-US">ICQLog</span>) «Соединение сервером ICQ... »</div><div align="LEFT" lang="ru-RU" style="line-height: 100%; margin-bottom: 0cm; text-decoration: none;"><br />
</div><div align="LEFT" lang="ru-RU" style="line-height: 100%; text-decoration: none;">Обработчик нажатия на кнопку «Оффлайн» довольно прост и понятен:</div><div align="LEFT" lang="ru-RU" style="line-height: 100%; text-decoration: none;"><br />
</div></div><pre class="brush: js">procedure TForm1.ICQOflineClick(Sender: TObject);
begin
ICQ.Disconnect;
end;
</pre><br />
<div align="LEFT" lang="ru-RU" style="line-height: 100%; text-decoration: none;"></div><div align="LEFT" lang="ru-RU" style="line-height: 100%; text-decoration: none;"><span lang="en-US">Далее мы проверяем подключились ли мы. Для этого у ICQ создаем обработчик события </span><span lang="en-US"><span style="font-weight: normal;">OnLogin</span></span><span lang="en-US">.</span></div><div align="LEFT" lang="ru-RU" style="line-height: 100%; text-decoration: none;"><br />
</div><pre class="brush: js">procedure TForm1.ICQLogin(Sender: TObject);
begin
if ICQ.LoggedIn then
begin
ICQStatus.Caption := 'Онлайн'; // Меняем «статус» подключения
OnlineBtn.Enabled := False; // Отключаем кнопку Онлайн
OfflineBtn.Enabled := True; // Включаем кнопку Оффлайн
Timer1.Enabled := True; // ...и таймер
end
else
begin // Тут все, практически, наоборот
ICQStatus.Caption := 'Оффлайн';
OnlineBtn.Enabled := True;
OfflineBtn.Enabled := False;
Timer1.Enabled := False;
end;
end;
</pre></div><br />
<div align="LEFT" lang="ru-RU" style="line-height: 100%; margin-bottom: 0cm; text-decoration: none;"><br />
</div><div align="LEFT" lang="ru-RU" style="line-height: 100%; margin-bottom: 0cm; text-decoration: none;">Если <span lang="en-US">(ICQ.LoggedIn) </span>равно <span lang="en-US">True </span>мы «Онлайн», <span lang="en-US">False </span>мы «Офлайн».</div><div align="LEFT" lang="ru-RU" style="line-height: 100%; margin-bottom: 0cm; text-decoration: none;"><br />
</div>Для таймера у нас заготовлен такой код:</div><pre class="brush: js">procedure TForm1.Timer1Timer(Sender: TObject);
begin
ICQ.SendKeepAlive; // Даем знать серверу, чтомы все еще Онлайн
if ICQ.LoggedIn then // Дальше ты уже знаешь что происходит :-)
begin
ICQStatus.Caption := 'Онлайн';
OnlineBtn.Enabled := False;
OfflineBtn.Enabled := True;
Timer1.Enabled := True;
end
else
OfflineBtn.Enabled := False;
Timer1.Enabled := False;
end;
End;
</pre><br />
SendKeepAlive нужно отсылать на сервер каждые 2 минуты чтобы давать знать что мы еще весим в «Онлайн» <br />
В событие OnError все того же компонента ICQ суём вот такое:<br />
<br />
<pre class="brush: js">procedure TForm1.ICQError(Sender: TObject; ErrorType: TErrorType;
ErrorMsg: String);
begin
ICQLog.Lines.Add('Ошибка при подключении. '); // Логируем событие
Timer1.Enabled := False; // Отключаем таймер
End;
</pre><br />
Вот и дошли до самого главного - событие OnMessageRecv. Оно позволяет получать входящие сообщения. В папке, например, «Информатика» будут хранится *.txt-файлы, которые проименованы по номерам билетов. <br />
Здесь мы обрабатываем входящее сообщение. Отправлять боту мы будем только номер билета. А бот, если существует файл с таким именем (номером вопроса), открывает нужный файл, считывает ответ на вопрос билета и отсылает обратно.<br />
<pre class="brush: js">procedure TForm1.ICQMessageRecv(Sender: TObject; Msg, UIN: String);
var
f: TextFile; // Текстовый файл, который будем открывать
bilet: String; // Содержимое файла
begin
ICQLog.Lines.Add(UIN + ': ' + Msg); // Логируем входящее сообщение
if FileExists('Информатика\' + Msg + '.txt') then
begin // Если существует запрошенный файл...
AssignFile(f,'Информатика\' + Msg + '.txt');
Reset(f); // ...то открываем его для чтения
While not Eof(f) do // И до конца файла
ReadLn(f, bilet); // Считываем каждую строку
ICQ.SendMessage(StrToInt(UIN), bilet); // Посылаем готовое сообщение
ICQLog.Lines.Add(UINEdit.Text + ': ' + bilet); // и снова логируем
CloseFile(f); // Освобождаем файл, т.к. больше он нам не понадобится
end
else // А если запрошенного билета (файла) нет
begin
// Посылаем соответствующее сообщение клиенту
ICQ.SendMessage(StrToInt(UIN),'Такого билета не существует!');
// И логируем
ICQLog.Lines.Add(UIN + ' : Такого билета не существует!');
end;
end;
</pre><br />
Вначале кода мы добавляем в лог уин того кто нам прислал сообщение, и содержимое. Далее мы проверяем на существования файла в папке «Информатике», если файл существует мы связываем переменную «f» с файлом, и открываем файл для чтения.И до конца строкмы добавляем в переменную «bilet» текст и предаем содержимое.Нам не нужно рыться в каком либо коде и изменять переменные где содержится информация о билета, нам придется всего лишь зайди в папку и добавить *.txt файл с номером билета. Программа откроет нужный файл при небходимости и отправит его содержимое.Вот и подходит к концу данная статья, мы рассмотрели компонент ICQClient и научилсь им пользоваться, сделали простенький бот который будет небольшой шпаргалкой на экзамене.</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-35241331057281453622011-05-01T01:29:00.000-07:002011-05-01T01:33:20.292-07:00Delphi 7 Установка RxLib<div dir="ltr" style="text-align: left;" trbidi="on">Что-то не о чем писать в блоге, нет настроения или не охото, не смотря не на что писать все таки нужно не просто так же создал блог. Ну так вот ближе к теме, не давно я столкнулся с маленькой проблемой нужно было кинуть на форму анимированную картинку, стандартных компонентов для этого нету. Но есть компонент <b>RxGIFAnimator </b>как раз он, нам поможет<b>.<a name='more'></a></b><br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi12uX6vNSAfSk4fSyluPTcv2BM3_PqJaVHgfKGiNVBS-zrDXN7C_6xKzjeKVZ3jdxR7xxSXdfmbTO8z0HTYhEdsHLdnsZqdqVuCXymEWV9OUhYqGCHX1pq4GQa4Ebs6k3hzvr06JoUzJad/s1600/RxGIFAnimator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="36" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi12uX6vNSAfSk4fSyluPTcv2BM3_PqJaVHgfKGiNVBS-zrDXN7C_6xKzjeKVZ3jdxR7xxSXdfmbTO8z0HTYhEdsHLdnsZqdqVuCXymEWV9OUhYqGCHX1pq4GQa4Ebs6k3hzvr06JoUzJad/s640/RxGIFAnimator.png" width="640" /></a> </div><br />
<span style="font-size: large;">Установка RxLib, библиотека компонентов</span><br />
<span style="font-size: small;">Качаем <a href="http://www.zalil.ru/30956977">RxLib</a>, и далее идем по инструкции.</span><span style="font-size: small;"> </span><br />
<span style="font-size: small;">1. </span><span style="font-size: small;">Открываем File - Open: "RxCtl7.dpk, RxBde7.dpk, RxDb7.dpk, DCLRX7.dpk, DCLRXDB7.dpk, DCLRXBD7.dpk" В окне выбора Open выделите нужные обьекты, удерживая Crtl.</span><br />
<span style="font-size: small;"> </span><br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisuB5rMjKBhO7SGG31p0Kdfp4f9D2XrakE1hKIQr0V2XJJKyAsd5tOKmkNLqqjadqxmpD06gh8GlKJJgn1Lw3o2WHWTdp4xQnD_hk_MGVnSB_a2iKFZsEYBnXbtyKNiGLgNmxJ-Aoz0STu/s1600/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisuB5rMjKBhO7SGG31p0Kdfp4f9D2XrakE1hKIQr0V2XJJKyAsd5tOKmkNLqqjadqxmpD06gh8GlKJJgn1Lw3o2WHWTdp4xQnD_hk_MGVnSB_a2iKFZsEYBnXbtyKNiGLgNmxJ-Aoz0STu/s400/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B2.png" width="400" /></a></div><br />
2. У вас должно появится такие окна:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4bXbByggCJGPbH01NYzYR_W3blaG36kjrBskZyo6uRDYmfDoEG0SV3z8A_q59JfL6Pfb_pHsNdkAhFVkK2X-zdlFURFA9SqPGLsglN1TrI2iOOfGHlvoJm1Byhg3NoLZhvt_F5bSVuyj/s1600/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4bXbByggCJGPbH01NYzYR_W3blaG36kjrBskZyo6uRDYmfDoEG0SV3z8A_q59JfL6Pfb_pHsNdkAhFVkK2X-zdlFURFA9SqPGLsglN1TrI2iOOfGHlvoJm1Byhg3NoLZhvt_F5bSVuyj/s400/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B21.png" width="265" /></a> </div><br />
После Project - Compile All Project<br />
3. DCLRX7.dpk [install]<br />
DCLRXDB7.dpk [install]<br />
DCLRXBD7.dpk [install]<br />
Должно появится окно:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5PJFcEd7zXOofDTheUWscTLPfhxjFTA4W8QJ8hmkZbnHxg9xuRIEzpbM0ihu2VtJxyhhhukz-2O_yyiOQx4iB35K5BdgF5-Jvwjxe192FYlOHz9icCrkx5fDi533t1xrqPP_i9-BWE9Se/s1600/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5PJFcEd7zXOofDTheUWscTLPfhxjFTA4W8QJ8hmkZbnHxg9xuRIEzpbM0ihu2VtJxyhhhukz-2O_yyiOQx4iB35K5BdgF5-Jvwjxe192FYlOHz9icCrkx5fDi533t1xrqPP_i9-BWE9Se/s400/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B22.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>И еще добавьте в папку <i>Borland\Delphi7\Lib</i> файлы из папки <i>rxLib\rxLib567\RX\Units</i> формата ***.dcu.<br />
Вот сами компоненты:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTSTPrK5D1dhbEyapwujKYu_OlprHa-r9wuCT-_zxg30HpmQZ7YMRbt5OOIMryXs9b2_rwQYuEtfhKmk4JqgA8cx15bSTuONmKs44-9vXR-DcD6gUWY8-xMVjDvtImI6vYrsDt8ThISW2e/s1600/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="33" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTSTPrK5D1dhbEyapwujKYu_OlprHa-r9wuCT-_zxg30HpmQZ7YMRbt5OOIMryXs9b2_rwQYuEtfhKmk4JqgA8cx15bSTuONmKs44-9vXR-DcD6gUWY8-xMVjDvtImI6vYrsDt8ThISW2e/s640/%25D0%25A3%25D1%2581%25D1%2582%25D0%25B0%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0+RxLib%252C+%25D0%25B1%25D0%25B8%25D0%25B1%25D0%25BB%25D0%25B8%25D0%25BE%25D1%2582%25D0%25B5%25D0%25BA%25D0%25B0+%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D0%25BE%25D0%25BD%25D0%25B5%25D0%25BD%25D1%2582%25D0%25BE%25D0%25B23.png" width="640" /></a></div><br />
<span style="font-size: large;">Расмотрим компонент <b>RxGIFAnimator</b></span><br />
<span style="font-size: small;">Кинем на форму сам компонент:</span><br />
<span style="font-size: small;"> RxGIFAnimator1.Image := 'Image.Gif'; // Адрес изображения</span><br />
<span style="font-size: small;"> RxGIFAnimator1.Animate := True; // Воспроизводится анимация</span><br />
<span style="font-size: small;">Ну вот пожалуй и все, анимация воспроизводится то что нам и нужно!! </span></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com3tag:blogger.com,1999:blog-7834545846748287523.post-28957042877354139002011-04-17T03:02:00.000-07:002011-04-24T00:58:32.851-07:00Работа с файлообменником Часть 2<div dir="ltr" style="text-align: left;" trbidi="on"><div class="MsoNormal">В <a href="http://codingpas.blogspot.com/2011/04/blog-post.html">предыдущий статье</a>, когда мы загружали файл вы наверное замечали что форма зависала. Что бы избавится от этой проблемы, мы добавим к программе многопоточность. Давайте сначала сделаем дизайн, а потом преступим к кодингу.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK-W4xLWFdPToQzhYU9zG5459V4Jf-nzf68mJ8wH8qY2ihM9PjwBz-Vigf5XMbMXx8DnIvaGcAIZP_6DPM3hZJt78iB8TnWBSVM5-1uoh29IaISbVWD7zRtdhmkIYurWJwFKHZlsAVJjoj/s1600/Rabota_s_fajjloobmennikom_Chast_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK-W4xLWFdPToQzhYU9zG5459V4Jf-nzf68mJ8wH8qY2ihM9PjwBz-Vigf5XMbMXx8DnIvaGcAIZP_6DPM3hZJt78iB8TnWBSVM5-1uoh29IaISbVWD7zRtdhmkIYurWJwFKHZlsAVJjoj/s1600/Rabota_s_fajjloobmennikom_Chast_2.jpg" /></a></div><a name='more'></a>Дизайн не многим отличается от предыдущего, но мы добавили компонент Gauge он будет отображать прогресс(%) и добавили информацию сколько закачено и, размера файла. Кнопка Скопировать <span lang="EN-US" style="mso-ansi-language: EN-US;">URL</span><span style="mso-spacerun: yes;"> </span>наверняка вам уже понятно что тут подразумевается(копирование ссылки на файл).<br />
<div class="MsoNormal"><br />
</div><div class="MsoNormal"></div><div class="MsoNormal">Создайте новый проект, далее создайте объект потока File - New - Other - Thread Object объект потока назовем <span lang="EN-US" style="mso-ansi-language: EN-US;">NewThread</span>. Теперь посмотрим на код созданного потока.</div><div class="MsoNormal"><br />
<pre class="brush: js">unit Unit2;
interface
uses
Classes;
type
NewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure NewThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ NewThread }
procedure NewThread.Execute;
begin
{ Place thread code here }
end;
end.</pre><pre class="brush: js"> </pre></div></div><div class="MsoNormal">В процедуре <span lang="EN-US" style="mso-ansi-language: EN-US;">Execute</span><span lang="EN-US"> </span>должен быть написан наш код который мы хотим добавить в многопоточность. У меня получился такой код:</div><div class="MsoNormal"><pre class="brush: js">procedure NewThread.Execute;
var
Data: TIdMultiPartFormDataStream; // Сюда будут загружаться данные, которые нужно заполнить
Http: TidHTTP;
begin
// Денамически создаем компонент IdHTTP
Http := TIdHttp.Create(Nil);
Http.HandleRedirects := True;
Http.Request.Referer := 'http://realfile.ru/';
Http.Request.UserAgent := 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.7.62 Version/11.01';
Http.OnWork := HttpWork;
Http.OnWorkBegin := HttpWorkBegin;
Http.OnWorkEnd := HttpWorkEnd;
// Добавили события к созданому денамическому компоненту idHTTP
Data := TIdMultiPartFormDataStream.Create;
Data.AddFile('file', Form1.FilePath.Text, 'multipart/form-data'); // Заполняем файлом
Data.AddFormField('descr', form1.FileDescr.Text); // Описание
Data.AddFormField('password', form1.password.Text); // Пароль
S := Http.Post('http://realfile.ru/', Data); // ссылка и отправляем пос запрос
S := Copy(S, Pos('value="',S)+7, Pos('" size="36">',S) - Pos('value="',S)-7);
Synchronize(ShowUrl);//Чтобы передавать какие то значения в процедуру, она должна вводится методом Synchronize
Data.Free; // Удалаем переменную, (освобождаем память)
end;
</pre><br />
Код немного различается от предыдущего. Мы создали динамически компонент idHTTP и создали к нему события, но нужно прописать процедуры событий, и добавить в uses модули.<br />
<br />
</div><pre class="brush: js">uses
Classes, IdMultiPartFormData,IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, SysUtils;
type
NewThread = class(TThread)
private
S: String; // Тут будет результат отправки запроса
protected
procedure Execute; override;
procedure ShowUrl;
procedure HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
procedure HTTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
procedure HTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
end;
</pre><br />
Мы добавили переменную S в раздел private для того что бы можно было работать с ней в дальнейшем, так как у нас процедура ShowUrl передает результат на основную форму(программу). Процедура ShowUrl выглядит так:<br />
<br />
<pre class="brush: js">procedure NewThread.ShowUrl;
begin
Form1.Url.Text := S;
end;
</pre><br />
Основу программы мы сделали, нам осталось добавить (сколько программа загрузила КБ, сколько всего КБ). В процедурах HTTPWorkBegin, HTTPWork, HTTPWorkEnd. Напишим следуещий код:<br />
<br />
<pre class="brush: js">procedure NewThread.HTTPWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
Form1.Gauge1.Progress := AWorkCount; // Сколько уже загрузили КБ
form1.Label5.Caption := 'Закачено: ' + IntToStr(AWorkCount div 1024) + ' КБ';
end;
procedure NewThread.HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
Form1.Gauge1.MaxValue := AWorkCountMax; // Получаем размер загружаемого файла, и добавляем в максимальное значения Gauge1
form1.Label6.Caption := ' из ' +IntToStr(AWorkCountMax div 1024)+ ' КБ';
end;
procedure NewThread.HTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
form1.Caption := 'Загрузка завершена!';
end;</pre><br />
Вроде все, код для многопоточности мы написали:<br />
<br />
<pre class="brush: js">unit Unit2;
interface
uses
Classes, IdMultiPartFormData,IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, SysUtils;
type
NewThread = class(TThread)
private
S: String; // Тут будет результат отправки запроса
protected
procedure Execute; override;
procedure ShowUrl;
procedure HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
procedure HTTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
procedure HTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
end;
implementation
uses Unit1;
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure NewThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ NewThread }
procedureNewThread.Execute;
var
Data: TIdMultiPartFormDataStream; // Сюда будут загружаться данные, которые нужно заполнить
Http: TidHTTP;
begin
Http := TIdHttp.Create(Nil);
Http.HandleRedirects := True;
Http.Request.Referer := 'http://realfile.ru/';
Http.Request.UserAgent := 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.7.62 Version/11.01';
Http.OnWork := HttpWork;
Http.OnWorkBegin := HttpWorkBegin;
Http.OnWorkEnd := HttpWorkEnd;
// Добавили события к созданому денамическому компоненту idHTTP
Data := TIdMultiPartFormDataStream.Create;
Data.AddFile('file', Form1.FilePath.Text, 'multipart/form-data'); // Заполняем файлом
Data.AddFormField('descr', form1.FileDescr.Text); // Описание
Data.AddFormField('password', form1.password.Text); // Пароль
S := Http.Post('http://realfile.ru/', Data); // ссылка и отправляем пос запрос
S := Copy(S, Pos('value="',S)+7, Pos('" size="36">',S) - Pos('value="',S)-7);
Synchronize(ShowUrl);//Чтобы передавать какие то значения в процедуру, она должна вводится методом Synchronize
Data.Free; // Удалаем переменную, (освобождаем память)
end;
procedure NewThread.HTTPWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
Form1.Gauge1.Progress := AWorkCount;
form1.Label5.Caption := 'Скачано: ' + IntToStr(AWorkCount div 1024) + ' КБ';
end;
procedure NewThread.HTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
Form1.Gauge1.MaxValue := AWorkCountMax;
form1.Label6.Caption := ' из ' +IntToStr(AWorkCountMax div 1024)+ ' КБ';
end;
procedure NewThread.HTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
form1.Caption := 'Загрузка завершена!';
end;
procedure NewThread.ShowUrl;
begin
Form1.Url.Text := S;
end;
end.
</pre><br />
Переходим на основную форму, на кнопку 'Загрузить' пишем следующий код:<br />
<br />
<pre class="brush: js">Var
Potok: NewThread;
begin
Potok := NewThread.Create(True); // Создаем поток
Potok.Resume; // Запускаем
Potok.Priority := tpLower; // Приоритет низкий
end;</pre><br />
<br />
Кнопка Копировать URL:<br />
<br />
<pre class="brush: js">ClipBoard.SetTextBuf(PChar(Url.Text));
</pre><br />
Не забываем добавить в uses модуль, ClipBrd.<br />
Ну вот и пожалуй все, не буду описывать кнопку выбрать и т.п так как в предыдущий статьи это было описано! Еще не подписался на <a href="http://feeds.feedburner.com/blogspot/codingpas">RSS feed</a>? Подпишись, и всегда будете в курсе!<br />
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-1986678950304138952011-04-10T00:05:00.000-07:002011-04-10T07:41:28.539-07:00Работа с файлообменником<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">Сегодняшняя статья будет на тему ‘Работа с файлообменником’, для начала покажу как будет выглядеть наша программа.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzfsay2szWC3Tw8iJ8UFJx6ouG55l5n7Wshjx0dO_pyJJY5uIA6LK1Q4oiu6mdP-82XFg5nVUB39wTnoZUmE_GERwQU1L0K4m_DGTnfmJTuQOvc4ZhD7uL3ci7ryH8qidw72EG_mXiOmG5/s1600/FileObmen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzfsay2szWC3Tw8iJ8UFJx6ouG55l5n7Wshjx0dO_pyJJY5uIA6LK1Q4oiu6mdP-82XFg5nVUB39wTnoZUmE_GERwQU1L0K4m_DGTnfmJTuQOvc4ZhD7uL3ci7ryH8qidw72EG_mXiOmG5/s1600/FileObmen.png" /></a></div><a name='more'></a><br />
Вот такой будет интерфейс. Кинем на форму компоненты:<br />
<ul style="text-align: left;"><li>GroupBox</li>
<li>Edit – 4 шт</li>
<li>Label – 4 шт</li>
<li>Button – 2 шт</li>
<li>IdHTTP</li>
<li>OpenDialog</li>
<li>uses IdMultipartFormData;</li>
</ul><div class="MsoNormal">Забыл сказать с каким файлообменником мы будем работать, так вот он <span lang="EN-US" style="mso-ansi-language: EN-US;">RealFile</span>.<span lang="EN-US" style="mso-ansi-language: EN-US;">ru</span>. Кому лень заходить, выкладываю скриншот, ну тут уже видно<span style="mso-spacerun: yes;"> </span>что нужно заполнить поля, сам файл который нужно загрузить и по желанию, описание и пароль.<br />
</div><div class="MsoNormal"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSi_xkN_iUrEpeUTxxqiv7Y9cia_HwcBhC6ac8sVHgS6qTbgzUeiiTY4l7dZva3d_98Xn2xLlylBKMDNJaqTRA_Aywf21AS_jqBdztrgYGVj5v0HezfCktgDI0l52gW8vTso8EPSaFbpMf/s1600/FileObmen1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSi_xkN_iUrEpeUTxxqiv7Y9cia_HwcBhC6ac8sVHgS6qTbgzUeiiTY4l7dZva3d_98Xn2xLlylBKMDNJaqTRA_Aywf21AS_jqBdztrgYGVj5v0HezfCktgDI0l52gW8vTso8EPSaFbpMf/s400/FileObmen1.png" width="400" /></a></div></div><br />
<div class="MsoNormal">Включаем ‘сниффер’ и смотрим какие данные отправляет страничка и куда.<br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZQkj4BM49lU8BepI80yG87ie8dG9ELgxXqu-mA90jD3Uy4UofiZFilLqSNJn4XeYUVHQEPblxN6mlABQefTBHp5PEMgIId88lU9DwVIuK6cKyKa-G0YJgnwpIx7Fp_CK78flfIzWo-cA/s1600/FileObmenSnif+1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZQkj4BM49lU8BepI80yG87ie8dG9ELgxXqu-mA90jD3Uy4UofiZFilLqSNJn4XeYUVHQEPblxN6mlABQefTBHp5PEMgIId88lU9DwVIuK6cKyKa-G0YJgnwpIx7Fp_CK78flfIzWo-cA/s400/FileObmenSnif+1.gif" width="400" /></a></div></div><br />
<ol style="text-align: left;"><li> <div class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">File</span> – файл.</div></li>
<li><span lang="EN-US" style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%;">Descry</span><span style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%;"> – описание.</span></li>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Password</span> – пароль.<span style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%;"> </span></li>
</ol><div style="text-align: left;"></div><div class="MsoNormal">Теперь мы узнали какие поля нужно заполнить, перейдем к кодингу. </div><div class="MsoNormal">В кнопке ‘Загрузить!’, в событии <span lang="EN-US" style="mso-ansi-language: EN-US;">OnClick</span> пишим:</div><br />
<pre class="brush: js">var
Data: TIdMultiPartFormDataStream; // Загружаются данные, которые нужно заполнить и чем заполнить
S: String; // Результат отправки Post запроса
begin
Data := TIdMultiPartFormDataStream.Create;
Data.AddFile('file', FilePath.Text, 'multipart/form-data'); // Заполняем файлом
Data.AddFormField('descr', FileDescr.Text); // Описание
Data.AddFormField('password', password.Text); // Пароль
S := Idhttp1.Post('http://realfile.ru/', Data); // Отправляем Post запрос, результат записываем в переменную S
FileUrl.Text := Copy(S, Pos('value="',S)+7, Pos('" size="36">',S) - Pos('value="',S)-7); // Парсим ссылку на залитый файл
Data.Free; // Удаляем переменную
end;</pre></div></div>Ну вот и все. Заполнили все поля, отправили Post запрос с данными которые нужно заполнить получили результат, спарсили ссылку на файл. <a href="http://realfile.ru/488402">Скачать проект.</a> </div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com2tag:blogger.com,1999:blog-7834545846748287523.post-17706780078870518452011-04-01T13:55:00.000-07:002011-04-02T02:48:45.177-07:00Опрос программистов. Часть 1<div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc4PzAa-JbI856IbT_MAiw9L8L3LRIU0qiKmYZhx6BpGE8RqM4_bZvv34xcbKARyJgCUDc0xRkhnYUDDcPzDZYjXFWMC_I3fDBeTqU_iLp-F637hpLLkPp28yUfhs4TA9C9kFCUMgcKHKQ/s1600/opros.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc4PzAa-JbI856IbT_MAiw9L8L3LRIU0qiKmYZhx6BpGE8RqM4_bZvv34xcbKARyJgCUDc0xRkhnYUDDcPzDZYjXFWMC_I3fDBeTqU_iLp-F637hpLLkPp28yUfhs4TA9C9kFCUMgcKHKQ/s1600/opros.jpg" /></a></div><b><span style="font-size: large;">З</span></b>драствуй уважаемый читатель! Наконец то я закончил свой опрос, откликнулись 15 программистов и на это им большое спасибо! Участвуют мои знакомые, друзья и сообщество <a href="http://www.vr-online.ru/">vr-online</a>. Опрос будет состоять из 5 вопросов, которые будут содержать:<br />
<ul style="text-align: left;"><li style="text-align: left;">Как вы начинали программировать?</li>
<li style="text-align: left;">На каком языке начинали? </li>
<li style="text-align: left;">Ваши советы новичкам? </li>
<li style="text-align: left;">Какой язык вы считаете лучшим для обучения?</li>
<li style="text-align: left;">Какую литературу вы читали? Какую посоветуйте, для обучения? </li>
</ul><div style="text-align: left;">Для чего сделал этот опрос? Наверное для того что бы просто услышать как, начинали другие, и взять полезное из уст программистов, если еще ты новичок в этой сфере для тебя будет более полезно.<br />
<br />
<a name='more'></a><br />
<br />
<b><span style="font-size: large;">Д</span></b>авайте начнем! На верху ответов, у нас будет ник того кто отвечал. Начнем с первого, был "hX", пожалуй начнем с него...<br />
<br />
<div align="center"><b><span style="font-size: large;">hX</span></b></div><ol style="text-align: left;"><li>Начал заниматься программированием с 10 лет наверное. Просто появился интерес, купил книгу, и понравилось. А с тех пор, как дома появился Интернет, стало намного проще учить что-то новое.</li>
<li>С языка Pascal (хотя сейчас не считаю его лучшим языком для обучения).</li>
<li>Я бы хотел, что не следует относится к программированию как к работе. Оно, можно сказать, в душе, ведь это так круто - дать компьютеру любую задачу, и он её выполнит. </li>
<li>Python - мой любимый, кстати, язык. Он прост и современен: на нём написано много программ и модулей, он активно развивается и применяется, в нём есть принципы современного программирования. </li>
<li>Читал литературу Фаронова по паскалю, Павловскую по c++. Советовал бы читать официальную документацию языка (PEPs или MSDN, например) - ведь её пишут его создатели, лучше всего в нём разбирающиеся. </li>
</ol><div align="center"><b><span style="font-size: large;">LeoN</span></b></div><ol style="text-align: left;"><li class="MsoNormal"><span style="font-family: inherit;">Начинал я с поступления в вуз, до этого не программировал, но вследствие того что моя будущая профессиональная деятельность связана с программированием приходилось что то где то узнавать читать учить много, и течением времени начало все получаться.</span></li>
<span style="font-family: inherit;"> </span>
<li class="MsoNormal"><span style="font-size: small;"><span style="font-family: inherit;">Начинал с Турбо Паскаля 7.0. Алгоритмы логика математические вычисления, все это применяется в среде программирования. </span></span></li>
<span style="font-family: inherit;"> </span>
<li class="MsoNormal"><span style="font-size: small;"><span style="font-family: inherit;">Хотел бы посоветовать новичкам чтобы они так же начали с Турбо Паскаля либо бейсика, читали литературу по части программирования и больше, больше практики.</span></span></li>
<span style="font-family: inherit;"> </span>
<li class="MsoNormal"><span style="font-size: small;"><span style="font-family: inherit;">Паскаль ABC на мой взгляд лучший для обучения новичкам, и вообще в целях понимания. </span></span></li>
<span style="font-family: inherit;"> </span>
<li class="MsoNormal"><span style="font-size: small;"><span style="font-family: inherit;">В основном я учился по лекциям, а так же читал много всего читал из интернета с разных источников сейчас уже всего не вспомнишь. Литературу я посоветую такую: С.Окулов Основы программирования, Иванова Г.С Основы программирования. </span></span></li>
</ol><div align="center" class="MsoNormal"><span style="font-size: large;"><b>]/[ /\ |-() }{ @</b></span><br />
<ol><li align="left"><span style="font-size: small;">Начинал как и все, наверное, в школе. Классе в 8-9 на информатике. Решал, как мне тогда казалось, бесполезные математические задачи, не имеющие никакого отношения к "настоящему" программированию. Но именно эти задачи помогали освоить язык алгоритмов, что оказалось очень важным. </span></li>
<li align="left"><span style="font-size: small;">Первый язык програмирования с которым познакомился - Бэйсик. В рамках школьной программы мало что объясняли поэтому приходилось искать литературу самому. Первая программа (на Qbasic'e, как ни странно) написанная самостоятельно решала квадратные уравнения. Сейчас кажется ничего сложного, но тогда был очень доволен. Вообщем, так и заинтересовался программированием.</span></li>
<li align="left"><span style="font-size: small;">Начинающим могу посоветовать в первую очередь определиться с языком программирования. Подобрать литературу по выбранному языку. Не стоит браться сразу за ассемблер или за С++. Эти языки большой популярностью пользуются среди "новичков". Думаю потому, что большинство вирусов, "програм для взлома", "хакерских утилит" написано как раз на них. Многих поэтому и привлекает программирование. </span></li>
<li align="left"><span style="font-size: small;">Начинать я советую с того же паскаля. Несложный синтаксис, большое количество доступной литеатуры. Дальше в перспективе Object Pascal (т.е. Delphi). </span></li>
<li align="left"><span style="font-size: small;">Для себя я литературу искал в интернете. Может электронная литератра это не так удобно, зато практично. В первую очередь потому, что её там полно в общем доступе, можно выбрать то, что тебе подходит. Не понравилась книга - удалил, нашел следующую. Единственное, что могу посоветовать: не пользуйтесь книгами из серии "...для Чайников", от них вреда иногда больше чем пользы. </span><span style="font-size: small;"></span></li>
</ol><div align="center" style="text-align: left;"><div align="center"><span style="font-size: large;"><b> Va-Bank</b></span><span style="font-size: large;"><b> </b></span></div><ol style="text-align: left;"><li align="left"><span style="font-size: small;">Поступил в колледж. Там на втором курсе были допотопные компы. Проходили GWBasic. Я ничего в этом не понимал. Причем даже понимать не хотел. Но потом мне купили компьютер на процессоре 386SX (40 МГерц как сейчас помню ). Вот тогда я загорелся программированием на QBasic. В связи с этим проблем в колледже с компами и GWBasic'ом, как вы сами понимаете, проблем больше не возникало. Потом на информатике я сидел и ковырялся в системе, когда остальные слушали препода. Времена менялись. Я решил перейти на Visual Basic. Что-то пытался делать, но тут я понял, что возможности его очень сильно ограничены. Эта была версия 4.0. Сейчас наверняка много чего можно будет сделать на этом языке. Устроился на работу. Напарник мне посоветовал Delphi. На тот момент 7 версия делфи была самая последняя Он меня уламывал полгода. Потом дал книжку. Не помню как называется. Она тоненькая была, больше на справочник походила, там примеры были аля как при наведении курсора мышки на кнопку, заставить ее бегать. Тупо считай переписывал код, хотя что-то в голове оставалось. Самое главное отличие для меня это было наличие begin ... end, ну и синтаксис конечно. И вот я на одном сайте добыл электронную версию Библии делфи С этого пошло и поехало. Комп конечно дома уже был другой. В общем "официально" я начал изучать и программировать на делфи в 2004 году. По сей день я кого-то учу, а у кого-то (даже у тех кого учу) сам учусь и узнаю что-то новое для себя. Как говорится чем дальше в лес, тем больше дров Сайт тот уже не существует. Я перешел на VR, искал достойную замену. Но это другая история... </span></li>
<li align="left"><span style="font-size: small;">GWBasic, QBasic, Visual Basic, Delphi (параллельно VBA) - в порядке изучения.</span></li>
<li align="left"><span style="font-size: small;">Читать литературу конечно же. Мне иногда задают такие вопросы... Я начинаю объяснять, но меня не понимают. И я посылаю читать матчасть. В общем чтобы практиковаться, нужно иметь хотя бы общее представление о том, что делаешь. Литература (учебники, мануалы, статьи на сайте...) по-моему мнению на первом месте, потом практика по пройденному материалу.</span></li>
<li align="left"><span style="font-size: small;">Сейчас Delphi. Но я очень хочу изучить C#. Руки не доходят.</span></li>
<li align="left"><span style="font-size: small;">Начинал с библии делфи, потом DelphiWorld. До сих пор у меня на компе, бывает захожу и подсматриваю. Но статьи на сайтах считаю на данный момент самым лучшим мануалом. А если еще прикреплены исходники и лучше с комментариями... Просто вкусняшка :-D</span></li>
</ol><div align="center"><b><span style="font-size: large;">raxp</span></b></div><ol style="text-align: left;"><li align="left"><span style="font-size: small;">Поступил в колледж. Там на втором курсе были допотопные компы. Проходили QBasic. Я ничего в этом не понимал. . Купил на стипендию МК-61 (был такой программируемый советский бульбулятор, в аудиториях еще увеличенные его копии стояли), ваял на нем, как бы это сейчас назвать - скрипты что-ли ...а у некоторых "крутых перцев" был бульбулятор (модель не помню) даже с "флешкой". Потом универ, началась практика, на папиной работе договорились, чтоб имел доступ в местный ВЦ. Заинтересованность сохранилась. Писал на листиках программы, компьютера личного не было, вплоть до момента пока не ушел с первой работы (долг по зарплате вернули </span><span style="font-size: small;"> :-D</span><span style="font-size: small;">), учился и параллельно работал.</span></li>
<li align="left"><span style="font-size: small;">QBASIC, Паскаль, FoxPro ...Delphi познал на заводе (начал с игрушки, работающей с простейшей БД, считаю - это лучшим вариантом заинтересовать), потом ушел на фирму, углубился в Си под МК, FBD под SCADA, VHDL под ПЛИС.</span></li>
<li align="left"><span style="font-size: small;">Большинство всего до нас уже придумано, уметь пользоваться поиском самому, уметь находить нужное не только в литературе.</span></li>
<li align="left"><span style="font-size: small;">Паскаль был для меня проще, а лучшего языка - нет. Какой нравиться - такой учите, главное - не останавливаться на достигнутом.</span></li>
<li align="left"><span style="font-size: small;">Вообще, первая купленная мной книжка была - книжка Архангельского по Delphi. Однако на тот момент шерстил и форум "Королевство Delphi", наткнулся и на Delphi-world. Совет: если вы работаете с аппаратурой (железом), читайте спецификации (да, да, в мануалах можно найти и примеры API под железо ), а значит - учите английский.</span></li>
</ol><div align="center"><b><span style="font-size: large;">sd</span></b></div><ol align="left" style="text-align: left;"><li><span style="font-size: small;">В 10ом классе в лицее у нас было программирование. Изучали Turbo Pascal. Тогда для меня очень бесило "синее окошко", понимать ничего не пытался, т.к. до массивов все итак было понятно. Когда начали массивы - я подумал, что бред все это и забил. Потом перешли на консольные приложения delphi, но лучше от этого не стало =). На летних каникулах, перед 11 классом я как-то осознал, что всю жизнь играть в WoW нельзя, и деньги мне за это платить никто не будет. Решил, что надо учиться. Начал с delphi, только используя GUI. Писал всякий бред, даже не писал, а находил в Сети какие-то простенькие статьи по delphi и переписывал с них код. Ну так и началось...уже к концу августа я понимал, что пишу, зачем пишу и что еще написать, чтобы было лучше. В 11 классе у меня проблем с программированием не было. Я сдал все работы, которые надо было сдать в течение года за четверть и был счастлив. Потом, не помню почему, я решил, что Pascal - дохлый бесперспективный язык, и начал изучать C++. Понакачал с Интернета каких-то книжек и пытался что-то сделать и ничего не понимал как и чем. Потом наткнулся на Borland C++ Builder и начал писать там. Начало было таким же как и с Delphi, потом все стало отлично. Скачала отличную (для начинающих) книгу по BCB и начал заново учить по ней. Потом перешел на чистый С++ (консольные приложения + MVS). Скачал еще одну отличную книгу по С++ и начал читать ее. В общем к первому курсу я хорошо знал базу С++ и проблем с программированием в универе у меня не было. Недавно решил изучать Java. Скачал книгу и прочитал там первые 7 глав, а потом записался на курсы для начинающих. Благодаря моим знаниям по С++ основы Java не оказались трудными. Далее планирую изучать Java и С++ дальше. </span></li>
<li><span style="font-size: small;">Pascal, но считаю, что нормально начала программировать на C++.</span></li>
<li><span style="font-size: small;">Пытаться во всем разобраться самому. Терпение и труд все перетрут. Тем более, что сейчас в Интернете полно информации.</span></li>
<li><span style="font-size: small;">Наверное Pascal. Хотя не важно на чем начинать. Главное что бы было желание и умение думать.</span></li>
<li align="left"><span style="font-size: small;">"Либерти.C++ за 21 день" - я считаю, что это просто отличная книга для начала изучения. Все подробно расписано, после каждого раздела есть вопросы и упражнения. Потом можно почитать "Г. Шилдт. Самоучитель С++" - тоже отличная книга, но ее стоит читать обладая базовыми знаниями языка.<br />
По Java я бы посоветовал "Философия Java". Хотя отзывы об этой книге разные, мне она все же понравилась. Так же хорошая книга "П. Ноутон и Г.Шилдт. Полное руководство Java", но, как мне показалось, если бы я не знал С++, то было бы тяжело понять, про что пишут в этой книге. Ну и плюс ко всему Интернет.</span></li>
</ol><div align="center"><b><span style="font-size: large;">AltaVista</span></b></div><ol align="left" style="text-align: left;"><li><span style="font-size: small;">В очень раннем возрасте ко мне попал ноутбук, я тогда совсем малыш был, т.е. даже не подросток. На нем я научился работать в Paint Brush. Но как только я на нем смог воссоздать (на сколько это позволял паинт) значок из фильма Мортал Комбат (там дракон нарисован, кто помнит), я понял что мне надо больше. И вот тогда я и понял что хочу быть программистом (конечно я такого слова не знал, я просто знал что есть люди которые могут создавать программы, потом мне брат объяснил что такие люди это программисты). </span></li>
<li><span style="font-size: small;">Записывался на курсы по работе с офисными пакетами Ворд, Эксель. А потом записался на программирование на Turbo Pascal. Помимо того что давали на курсах читал и работал с книгой от издательства "питер", там есть серии книги "КомпАС", это была мега книга, все доступно и понятно! Тогда я еще не разбирался в языках программирования и для меня паскаль был единственным в своем роде. На нем я сидел очень долго! Прям очень очень долго!<br />
В итоге в паскале я насоздавал кучу модулей позволяющих рисовать на черном фоне как окна, кнопки, так и некоторые другие элементы управления. Чтобы сделать кнопки и окна типа объемными я высматривал как они отрисованны в виндоусе и все это копировал. Кнопки реагировали на нажатие мышки и т.д. т.е. был полноценный интерфейс.<br />
Но потом я понял что мне этого мало, и надо пересаживаться на что то посерьезней. Купил книгу по делфи (В.В. Фарнов Delphi 6), прочел и освоил за две недели! Без преувеличения. Просто работая в паскале и дойдя до предела, я как раз таки и понимал чего мне не хватает, чего не хватает самому паскалю, поэтому все то что было в делфи для меня было вполне логичным и ожиданным. Я так сказать именно все так себе и представлял. Потому и переход на делфи занял две недели (т.е. я просто две недели читал книгу).</span><span style="font-size: small;"> </span></li>
<li><span style="font-size: small;"> Ставить задачи и решать их. Т.е. как ставить задачи? Придумай себе ту программу которая тебе нужна, так как ее проще будет делать, потому как тебе поможет энтузиазм. Я сам для себя писал очень много программ. И записные книжки, и информаторы, и базы телефонов переносил из телефонного справочника в электронный формат в свою программу и т.д. И даже игры писал. Словом надо ставить себе те цели которые будет интересно выполнять и которые ты не бросишь на пол пути.</span></li>
<li><span style="font-size: small;">Нет лучшего языка для обучения. Везде надо стараться, практиковаться, изучать. По херу на каком языке. Но если бы я мог вернуться в прошлое, то выбрал бы не турбо паскаль, а языки С. Не потому что дефли хуже, я на нее не могу грешить так как она меня кормит, поит, дом построила, отдыхать позволяет, словом я с помощью делфи очень хорошо зарабатывал и зарабатываю, а просто потомц что на С очень много примеров кода на железо. Я сталкивался с такими железяками, и не умение читать код на С, очень плохо сказывался на моей работе, приходилось выкручиваться кое как. Но в идеале надо знать и тот и другой.</span></li>
<li><span style="font-size: small;"> Ну по делфи я привел в тексте выше.<br />
<br />
А вообще еще дам рекомендации, прям такие которые жизненны. Вот как уже отмечал raxp это английский. Т.е. записаться на курсы и стремиться уметь читать, писать и свободно говорить на английском, на это ни каких денег жалеть не надо. Английский нужен не только для программирования, он просто нужен оп жизни. Я помню как школьные знания не раз приносили мне не солидную прибыль, но если бы я знал его, и умел хотя бы свободно разговаривать, то имел бы работу за границей, в очень престижном, в главное высокооплачиваемом месте!<br />
Так что учить английский по любому, можно русский не знать и писать не грамотно, можно не знать кто такой Лермонтов, а вот английский кровь из жопы, но НАДО!<br />
И второй совет житейский, всегда помни ради чего ты все это делаешь, ради чего ты изучаешь программирование, да и не только программирование, любая профессия, мы это делаем ради денег! Не надо продавать себя дешево. Программист способен упростить работу предприятия в двое, а то и более!<br />
Просто некоторые работодатели, говорят мол на кой хер платить программисту столько денег, он один хер типа два дня поработал, а потом не хера не делает. Это bлядь полная херня! Никогда не ведитесь на такой повод. То что шкодит программист и то что делает его программа в автоматическом режиме у работников в ручном режиме могут уйти недели, а то и месяца! Т.е. надо смотреть не по тому сколько программист в день сидит за компом, а на то сколько всего делается с помощью тех программ которые он делает!<br />
Еще совет - если у тебя заказывают программу, то требуй с них ТЗ. Иначе потом тебя заебут - "сделай нам это, сделай нам то". А так ты покажешь ТЗ и скажешь что все что в нем указано то и сделано, а остальные переделки за деньги! И составляй договор, никаких дружеских вариантов, только договор! Пусть самый простой. Но в нем должно быть указано сумма за работу, ее сроки, наказание в случае не исполнения программы в срок (этот пункт можешь не указывать в договоре, не опытные заказчики сами забывают поставить этот пункт, а тебе ни к чему самому проявлять инициативу в данном случае). Запомни - договор и ТЗ это твоя гарантия, и защита, твоя библия, твоя грааль и панацея от всех болезней! Да и когда требуешь договор и ТЗ клиент сразу смотрит на тебя как на профессионала. <br />
Будь в курсе новых технологий. Не обязательно их знать и изучать от и до. Надо просто быть в курсе что такие то и такие то технологии существуют. Это надо для того что бы если тебе поставили задачу, то мог сразу вспомнить что ее решить можно одним из новых удобных вариантов технологического решения. Это сильно упростит жизнь.<br />
Подытожим<br />
1. Английский<br />
2. Продать себя и свои умения как можно дороже.<br />
3. Составлять договора, требовать ТЗ!<br />
4. Не быть мудаком по жизни, но и не позволяй чтобы на тебе катались! (это относиться к любому человеку )<br />
5. Отдыхай. Не жмоть денег на хороший отдых, т.е. не надо конечно прожигать все деньги за раз, но работать как лошадь и не отдыхать тоже не следует, все в меру.<br />
6. Будь позитивен! )<br />
7. Не держи зла.<br />
8. Не дружи с теми кто огорчает тебя чаще, чем приносит радость.<br />
9. Анализируй ошибки (тогда в будущем ты сможешь делать более продвинутые ошибки из которых трудно будет найти выход ) )<br />
10. <b>Выбери себе нищего на той улице по которой ходишь чаще всего и отдавай ему сколько не жалко денег, каждый раз когда его видишь.</b><br />
11. Дари радость и не жди в ответ спасибо.<br />
12. Не закрывай на зло глаза.<br />
13. Не бросай в беде никого!<br />
14. Найди себе врага которым ты мог бы гордиться!<br />
15. Не спи с кем попало без г*ндона.<br />
16. и т.д.<br />
17. и т.п.<br />
Короче как я и писал раньше просто не будь мудаком по жизни!<br />
Это только кажется что это не относится к программированию, но программист это способ мышления, это жизнь!</span></li>
</ol><div align="center"><span style="font-size: large;"><b>milice</b></span></div><ol align="left" style="text-align: left;"><li><span style="font-size: small;"> В школе на уроках информатики.</span></li>
<li><span style="font-size: small;">В школе программировали на советском алгоритмическом языке (АЛГОЛ по моему ...) + блок схемы, вообще ничего не было понятно ну и оценки за лабы то 2 то 3.</span></li>
<li><span style="font-size: small;"> </span><span style="font-size: small;">Читать, ОЧЕНЬ МНОГО читать всякие умные книжки, ну и практика нужна конечно. </span></li>
<li><span style="font-size: small;">В институте начинали с Turbo Pascal 7.0 ну мне нравилось и я считаю что лучше с него начинать, в МИНОБРе не дураки сидят рабочие программы для обучения создают... а потом Delphi. Хотел бы еще C++ и Java изучить но руки не доходят, ну и в принципе пока и не надо, Delphi за глаза хватает.</span></li>
<li><span style="font-size: small;">Архангельский А.Я. вроде не плохо пишет.</span><span style="font-size: small;"> </span></li>
</ol><div align="center"><span style="font-size: large;"><b>aka_GRAD</b></span></div><ol style="text-align: left;"><li align="left"><span style="font-size: small;">А мне 8 классе брат компьютер подарил. До этого я пару раз садился за комп в школе и все. На компьютере игры играть не возможно было так, как драйвера не были установлены. В компьютер была записана игра Call of Duty 2, но я ни как ни старался не мог запустить ее. Единственным что оставалось это рисовать и печатать. В течении пол месяца я научился печатать вслепую. И наконец то я смог установить драйвера от видюхи и Ура!!! игра заработала. Поиграл я ее и в течении 2-х дней прошел. Потом интерес к играм пропал. В один день поехал я с братом на базар Photoshop покупать (это я тогда слышал про эту мега программу) и там я увидел диск программирование, на котором были почти все известные языки. </span></li>
<li align="left"><span style="font-size: small;">Но мне знакомый был QBasic (о ней слышал в школе), купили его и начал Бейсик изучать. И в один день я встретил бывшего препода по информатике и начал задавать ему вопросы про Бэйсик, он посоветовал мне оставить Бейсик и перейти на Делфи (заметьте не на паскаль, а на делфи). Только потом я узнал что надо было сначала изучить ПАСКАЛЬ. Так пошло поехало я начал изучать делфи.</span></li>
<li align="left"><span style="font-size: small;">Отсутствует. </span></li>
<li align="left"><span style="font-size: small;">Отсутствует.</span></li>
<li align="left"><span style="font-size: small;">Первая книжка была "Самоучитель по Delphi 7". Потом в инете нашел книгу Delphi глазами хакера я был восторге от этой книги. Потом уже Библию дельфи тоже прочитал (Жалко что Библию дельфи я прочитал после Delphi глазами хакера, а надо было наоборот).<br />
- Щас уже хочу переходить на C#.<br />
- Библия дельфи очень хорошая книга.</span></li>
</ol><div align="center"><span style="font-size: large;"><b>Кирилл Щербатов</b></span></div><ol align="left" style="text-align: left;"><li><span style="font-size: small;">Помню как сейчас. На уроке информатики в 2 четверти 6 класса сидели с товарищем за одним компом, на рабочем столе увидели ярлык на интерпретатор... Товарищ сказал, что мол это круто, и мы такое только в конце года изучать будем... Открыли последнюю страницу учебника... До конца урока сделали "звёздное небо" - вручную (без цикла) поставленные 10 разноцветных точек... Ну дальше с графикой игрались, графити там всякие разные выводили... Учитель нас поддерживал, к концу четверти предложила перейти на Flash... Без литературы, без всего... Сначала всякой хренью страдали, но потом разобрались с простейшим Action Script(ом)... (Мол есть два фрейма, оба остановленны, и при нажатии на кнопку первого вклучается второй) За весенние каникулы сделал свою первую чентырёхуровневую игру (Ничего серьёзного, мол если нажать туда, запускается та анимация и т.п. Но смысл в ней был). В конце года получил кипу отксеренных листов про Паскаль. Взявшись за это дело, я мало что понимал... Но потом случилось озарение: я разобрался, что к чему, и уже на практике написал свою тестовую оболочку... Седьмой класс был просто экспериментами с Паскалем (Мечтал сделать СРЕДУ РАЗРАБОТКИ ТЕСТОВ, работающую, разумеется, с файлами), пустыми пробами пера в Delphi (Я делал программы из примеров, но не понимал их работы). На следующий год (8 класс) мне волею судьбы попалась электронная первая версия "Библии Delphi". Вот тут-то я и поразмыслил что к чему. К февралю 3 четверти сделал конкурсную работу на "Созвездие", где позже занял 4 место... Начало 9 класса (этого года) прошло в поисках реализации нужных мне идей: я создавал отдельно работающие программы (для воспроизведения видео и т.п.), чей код я в дальнейшем использовал в своей конкурсной работе этого года. Но ещё один IT-прорыв произошёл после регионального этапа олимпиады (в конце января). </span></li>
<li><span style="font-size: small;">Первым языком программирования у меня был QBasic.</span></li>
<li><span style="font-size: small;">Отсутствует.</span></li>
<li><span style="font-size: small;">Отсутствует.</span><span style="font-size: small;"> </span></li>
<li align="left"><span style="font-size: small;">Тогда-то я поднялся ещё на одну ступеньку (а может и на две). В любом случае, мой мозг теперь, ранее отрицающий существование DirectX и Windows API, готов к перевариванию информации по этой теме, а скорее даже не готов, а жаждет её.<br />
(На самом деле книг по Delphi я читал гораздо больше ("Delphi глазами хакера", "DirectX и Delphi. Искусство программирования", "Delphi 6. Учебный курс", "Программирование в Delphi 7", "Библия Delphi" (2 издание)), но повлияло сильно на меня именно ПЕРВОЕ издание "Библии...")<br />
(Очередное дополнение) Ещё в пятом классе я научился делать анимацию в презентациях (это было афигеть как круто) и с помощью Total Commander открывал архивы JAR (ява игр) и менял текстуры на чужеродные (менял текстуры в рамках одного производителя).</span></li>
</ol><div align="center"><b><span style="font-size: large;">Fairhawk</span></b></div><ol style="text-align: left;"><li align="left"><b><span style="font-size: large;"> </span></b><span style="font-size: small;">Сначало кодил скрипты для игры TES 4: Oblivion, это был вообще мой первый опыт в программирование потом друг дал delphi..</span></li>
<li align="left"><span style="font-size: small;">Delphi</span></li>
<li align="left"><span style="font-size: small;">Читать, не много отдыхать, реализовывать прочитанное на примерах, найти то, что действительно интересно и т.п ИМХО конечно у каждого свой подход.</span></li>
<li align="left"><span style="font-size: small;">Сначало паскаль. Он легкий, дает более или менее нормальное представление о программировании.</span></li>
<li align="left"><span style="font-size: small;">Не помню, но много всего.</span></li>
</ol><div align="center"><b><span style="font-size: small;"> </span><span style="font-size: large;">WhiteP</span></b></div><ol style="text-align: left;"><li align="left"><span style="font-size: small;">Тяга к прекрасному у меня от рождения . Поначалу в компьютерах интересовали только игры (начиная со Спектрума в детстве). Потом заинтересовало внутреннее устройство ящика, именуемого системным блоком. Почитал книг, разобрал, посмотрел. После того как разобрался с этим немного - стало интересно как работают и устроены собственно программы. Поступил после школы на специальность "Информационные системы". Там давали Delphi в основном, но у меня с ним как-то сразу не очень заладилось. Психологический барьер, так сказать. Когда не понятно как оно там реализовано - не очень интересно и понятно. В итоге пока все изучали Delphi, я приналег на архитектуру ЭВМ и ассемблер. Разобравшись до определенного уровня взялся за Си, а после и за Си++. </span></li>
<li align="left"><span style="font-size: small;">Формально - на Delphi. Фактически - на ассемблере.</span></li>
<li align="left"><span style="font-size: small;">Да в принципе все уже посоветовали. Единственное, могу добавить - подналечь на математику. Мож кто-то скажет, что она нафиг не нужна и почти никогда не пригождается, но тем не менее, она формирует нужное программисту мышление (абстрактное и алгоритмическое). Того же Кнута (коего советовали выше) без твердых знаний математики (комбинаторики, дискретки, теорвера, теории чисел, немного матана...) осмысленно и эффективно читать оочень непросто (во всяком случае выполнить большую часть упражнений не удастся, я думаю).</span></li>
<li align="left"><span style="font-size: small;">Зависит от склада ума, я считаю. Одним проще идти "снизу-вверх", другим наоборот. Но Си как раз то, что находится посередине .</span></li>
<li align="left"><span style="font-size: small;">По Си - конечно K&R (это классика). После нее и нескольких написанных простых программ можно почитать Хэзфилда "Исскусство программирования на С" ("С Unleashed").<br />
По Си++ - Брюс Эккель "Философия С++" и, конечно, Страуструп. Вообще по Си++ очень много толковых книг...<br />
По асму - Кип Ирвайн (Ирвинг) "Язык ассемблера для процессоров Intel", Юров "Assembler. Учебник для вузов" и попутно мануалы от Intel. Неплохих книг по асму тоже море.<br />
По алгоритмам - для начала Ахо, Хопкрофт, Ульман "Структуры данных и алгоритмы", потом Кормена "Алгоритмы. Построение и анализ".<br />
По архитектуре ЭВМ - уже упомянутые выше мануалы от Intel, Таненбаум "Архитектура компьютера", Хамахер "Организация ЭВМ", Барри Брэй "Микропроцессоры Intel. Архитектура, программирование и интерфейсы".</span></li>
</ol><div align="center"><b><span style="font-size: large;">krabche</span></b></div><ol align="left" style="text-align: left;"><li><span style="font-size: small;">Классе в 8 записался на какие-то курсы по умнее чем компьютер для домохозяек. Там были базовые знание, скоропечатание, офис и входил небольшой курс Паскаля, с него и начал. Как то заинтересовался. Потом было немного Делфи. Сейчас С/С++. </span></li>
<li><span style="font-size: small;">На Паскале.</span></li>
<li><span style="font-size: small;">Во первых это должно вас интересовать. Искать информацию самому, не ждать пока кто-то что-то объяснит. По началу пытаться изменять что-то в готовых примерах перепечатанных из книг или интернета и смотреть, что будет. Сам так часто делал.</span></li>
<li><span style="font-size: small;">Паскаль, или можно Си. Думаю не стоит начинать с C# или Java.</span></li>
<li><span style="font-size: small;"> Все известные книги по С/С++ Страуструп, Маейрс, Шилдт. Еще после освоения базовых знаний нужно почитать что-то по алгоритмам. Например, Кнута или других авторов - имена не помню. </span></li>
</ol><div align="center"><span style="font-size: small;"> </span><span style="font-size: large;"><b>Kastor</b></span></div><ol align="left" style="text-align: left;"><li>Я первые программки тоже на Бейсике писал. Правда это был Турбо Бейсик, причем на ноутбуке дяди, у которого экран был черно-белым. Потом он мне подарил МК-85. Этакий КПК советский. На нем тоже писал (а больше просто списывал) программы на бейсике с одного журнала-книжечки выпущенной специально для него. Кстати, я этот МК-85 и книжечку отправил Spider_Net'y для Хабаровского компьютерного музея. Может, если у Игоря появится время, он отнесет его в музей и сделает заметку с фоткой <br />
Позже, я поспорил с одноклассником, что напишу прогу на бейсике не хуже, чем его брат на делфи. И я понял как был не прав. Появилась "Библия Делфи", начал вникать в этот язык. А после первого курса, мой одногруппник мне на день рождения подарил "С++ за 21 день". Я тогда подумал, что название у книги дурацкое и следовательно сама она, тоже. Но как же я был не прав! Это был один из лучших подарков. Теперь вот я больше С++ начал интересоваться.</li>
</ol><div align="center"><span style="font-size: large;"><b>Limonell </b></span></div><ol align="left" style="text-align: left;"><li><span style="font-size: large;"> </span><span style="font-size: small;">Я программировать начал только в институте, до этого были попытки, но базовых знаний не хватало, и потому я ничего не мог понять. Лет в 16 купил книжку по Делфи от Бобровскго, но опять же, знаний не хватало, потому пришлось её отложить до лучших времён.<br />
В институте, на втором курсе нам С++ преподавали, но что-то не пошло у меня с ним, или же просто литературы я не мог подобрать нормальной под него, потому с 3го курса было решено серьёзно взяться за программирование на Delphi. Тут то я как раз и познакомился с Библией Делфи от Фленова. По началу всё же было не просто, но желание научиться программированию взяло своё, чему я только рад. <br />
Не могу сказать, что я супер программер, но мне этих знаний хватает чтобы уверенно себя чувствовать в решении элементарных лаб/курсовых, либо же каких то иных задач.</span></li>
</ol><div style="text-align: left;"><span style="font-size: small;"> </span><span style="font-size: large;"><br />
</span></div><div align="center" style="text-align: left;"><b><span style="font-size: large;">З</span></b>аключение<br />
Начинают все почти одинаково, и хотел бы сказать от себя, то что нужно уделять по больше внимания Матиматике. Ведь Матиматика для программиста очень важна, в каком то смысле слова программирование это та же матиматика... Ну вот пожалуй и все надеюсь опрос не прошел беследно для вас, и хотел сказать большое спасибо кто участвовал в опросе!!!</div><div align="center" style="text-align: left;"><b><span style="font-size: large;"></span></b></div></div></div></div></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com5tag:blogger.com,1999:blog-7834545846748287523.post-36191271477313480192011-03-30T06:36:00.000-07:002011-04-02T03:25:33.395-07:00Pascal (Паскаль) Random<div dir="ltr" style="text-align: left;" trbidi="on">Я хочу рассказать о функции <i>Random</i> как вы уже поняли по названию статьи. Название говорит само за себя, что бы получить какое - то рандомное число...<br />
<div>Вот не большой пример:</div><div style="text-align: left;"><br />
<pre class="brush: js">var
i, s: Integer;
begin
randomize;
for i := 1 to 10 do
begin
s := random(10);
write(' ',s);
end;
end.</pre><br />
<a name='more'></a>Процедура <i>Randomize</i> нужна для того что бы числа не повторялась и при каждой компиляции кода будут разные значения. Немного из хелпа Паскаля.<br />
<br />
<ul style="text-align: left;"><li><code><b><b>procedure</b></b> Randomize(seed: integer); </code><br />
Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.</li>
<li><code><b>function</b> Random(maxValue: integer): integer; </code><br />
Возвращает случайное целое в диапазоне от 0 до maxValue-1 </li>
</ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2xRS8wtiYBO0TAVY2pc2leVltD6AQTTLNOqmUv06eXs0Ayug4W1E-VeJO8ZXwN7yHRh8sI_A8UGewXG-BzefYfwmKqCxC20UrGDKgd0Pe9Cr9vgHxwKXaAu4LWC_5JsYV6TepOdiGf09U/s1600/Pascal-random.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2xRS8wtiYBO0TAVY2pc2leVltD6AQTTLNOqmUv06eXs0Ayug4W1E-VeJO8ZXwN7yHRh8sI_A8UGewXG-BzefYfwmKqCxC20UrGDKgd0Pe9Cr9vgHxwKXaAu4LWC_5JsYV6TepOdiGf09U/s1600/Pascal-random.gif" /></a></div><br />
Что бы с генерировать к примеру от 22 до 64:<br />
<br />
</div><div style="text-align: left;"><pre class="brush: js">var
i, s: Integer;
begin
randomize;
for i := 1 to 64 do
begin
s := random(43)+22;
write(' ',s);
end;
end.</pre><br />
43 = 0..42<br />
0 + 22 ... 42+22 = 22..64<br />
Еще пример, от 100 до 200<br />
<pre class="brush: js">var
i, s: Integer;
begin
randomize;
for i := 1 to 64 do
begin
s := random(101)+100;
write(' ',s);
end;
end.
</pre>101 = 0..100<br />
0 + 100 ... 101 + 100 = 100 ... 200</div></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-21255074237861724382011-03-28T03:52:00.000-07:002011-03-30T00:49:18.225-07:00Паскаль Логика. Логические операции<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Сегодня разберем что такое <b>логика</b> и какие <b>операции</b> существуют. В паскале, переменные логического типа описываются зарезервированным словом <b>Boolean</b>. Значение логического типа может принимать <b>False(Ложь) = 0</b> и <b>True(Истина) = 1</b>.</span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><a name='more'></a><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;"><b>Логическое умножение (Конъюнкция)</b></span> </div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Образованное в результате логического умножения (конъюнкции) истинно тогда, когда истины все входящие в него высказывания. And - логическое <И>.</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 113.6pt; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;"><tbody>
<tr style="height: 20.1pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="border: solid windowtext 1.0pt; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">A</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">B</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">T = A and B</span></div></td> </tr>
<tr style="height: 20.1pt; mso-yfti-irow: 1;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 20.1pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 18.9pt; mso-yfti-irow: 2;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 18.9pt; mso-yfti-irow: 3;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 18.9pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 21.35pt; mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 21.35pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 21.35pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 21.35pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 66.1pt;" valign="top" width="88"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
</tbody></table><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">То есть просто умножаем (1 * 0 = 0, 1 * 1 = 1, и т.д.) не забываем что <b>0 = False а 1 = True.</b></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Логическое умножением означает не только And но и еще ^, &, *.</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><b><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Логическое сложение (Дизъюнкция)</span></b></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Образованно в результате логического сложения (дизъюнкции) истинно тогда или только когда, когда истинно хотя бы одно из входящих в него высказываний. Or (||, +, |, ) - логическое <Или>.</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 104.2pt; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;"><tbody>
<tr style="height: 22.05pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="border: solid windowtext 1.0pt; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.65pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">A</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">B</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">T = A Or B</span></div></td> </tr>
<tr style="height: 23.2pt; mso-yfti-irow: 1;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.65pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 22.05pt; mso-yfti-irow: 2;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.65pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 22.05pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
<tr style="height: 23.2pt; mso-yfti-irow: 3;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.65pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
<tr style="height: 23.2pt; mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 77.65pt;" valign="top" width="104"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 23.2pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 70.1pt;" valign="top" width="93"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
</tbody></table><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;"> Можно просто прибавлять (0 + 0 = 0, 1 + 0 = 1, и т.д.).</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><b><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Логическое отрицание (Инверсия)</span></b></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span style="color: black; font-family: "Times New Roman", "serif"; font-size: 12pt;">Присоединяется частица "НЕ (Not)". Логическое отрицание делает истинное высказывание ложным, а ложное истинно, то есть наоборот... </span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: 127.05pt; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;"><tbody>
<tr style="height: 15.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="border: solid windowtext 1.0pt; height: 15.8pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.65pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">A</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 15.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.7pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">T = Not A</span></div></td> </tr>
<tr style="height: 15.8pt; mso-yfti-irow: 1;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.8pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.65pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.7pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 15.8pt; mso-yfti-irow: 2; mso-yfti-lastrow: yes;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.8pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.65pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 62.7pt;" valign="top" width="84"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
</tbody></table><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><b><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Логическое следование (Импликация)</span></b></div><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Ложно тогда или только тогда, когда из истинной предпосылки (первого высказывания) следует ложный вывод (второе высказывание) “Если </span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">A</span><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">, то </span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">B</span><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">”</span></div><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; margin-left: 65.45pt; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;"><tbody>
<tr style="height: 15.45pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td style="border: solid windowtext 1.0pt; height: 15.45pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">A</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 15.45pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">B</span></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; height: 15.45pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">T = A -) B</span></div></td> </tr>
<tr style="height: 14.55pt; mso-yfti-irow: 1;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
<tr style="height: 14.55pt; mso-yfti-irow: 2;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> </tr>
<tr style="height: 15.45pt; mso-yfti-irow: 3;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.45pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">0</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.45pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.45pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> </tr>
<tr style="height: 14.55pt; mso-yfti-irow: 4; mso-yfti-lastrow: yes;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 98.2pt;" valign="top" width="131"><div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">1</span></div></td></tr>
</tbody></table></div><br />
<br />
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com1tag:blogger.com,1999:blog-7834545846748287523.post-44280330736033477622011-03-17T07:09:00.000-07:002011-03-17T07:15:04.763-07:00Рекомендации по прочтению книг<div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Видел не раз на форумах такие темы как<span style="mso-spacerun: yes;"> </span>“ По рекомендуйте книгу по программированию ”, но вот я и решил сделать пост по рекомендации книг. Ну, так пожалуй начнем!</span><br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><br />
</div><ul type="disc"><li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Первую книгу, которую я прочитал, была “ <i>Турбо-Паскаль Самоучитель для школьников, студентов и начинающих</i> ” Автор: С.Н.Лукин, книга хороша реально для новичков, в то время когда я ее читал, я был просто ноль и при чтении книги было практически все понятно - то есть разжевано все прекрасно, автору большое спасибо! </span></li>
</ul><ul type="disc"><li class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;"> “ <i>Самоучитель Паскаль и Дельфи</i> ” Автор: Владимир Попов, тоже вполне все понятно очень понравилось, как объясняется, работа с файлами. </span></li>
<li class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">“</span><i><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;"> Алгоритмы и программы на <span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Turbo</span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;"> </span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Pascal</span><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">. Учебный курс</span></i><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;"> ” Автор: Ю.Федоренко, тут уже идет чуть глубже изучение основ. </span></li>
<li class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Чуть не забыл про книгу “ </span><i><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Delphi</span><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;"> 7, 2-е издание. Наиболее полное руководство в подлиннике </span></i><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">” Автор: Анатолий Хомоненко, Владимир Гофман, Евгений Мещеряков. Эта книга идет, скорее всего как справочник, книга не плохая. Описывается про компоненты, основы, база данных, работой с электронной почтой и </span><span lang="EN-US" style="font-family: "Times New Roman", "serif"; font-size: 12pt;">web</span><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">-документами.</span></li>
</ul><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 18.0pt; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman", "serif"; font-size: 12pt;">Ну вот и все, вот эти книги я рекомендую вам прочитать! Удачного прочтения!</span></div></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-27924280029909620362011-02-18T07:03:00.000-08:002011-02-18T07:26:42.991-08:00Парсинг<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">Мне в голову пришла мысль спарсить анекдоты с <a href="http://www.anekdot.ru/a/an1102/j110218;100.html">сайта</a>. Что бы вытащить несколько анекдотов будем работать с циклом, и удалять старый анекдот парсить новый и до тех пор, пока не закончится строка.<br />
<div>Заходим на <a href="http://www.anekdot.ru/a/an1102/j110218;100.html">страницу</a>, смотрим между какими тегами будем парсить. </div><div style="text-align: left;"><ol style="text-align: left;"><li><span class="Apple-style-span" style="color: #881280; font-family: monospace; white-space: pre-wrap;"><u><div <span class="webkit-html-attribute-name">class</span>="<span class="webkit-html-attribute-value">text</span>"></u></span></li>
<li><span class="Apple-style-span" style="color: #881280; font-family: monospace; white-space: pre-wrap;"><u><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none;"><table <span class="webkit-html-attribute-name">class</span>="<span class="webkit-html-attribute-value">votingbox</span>" <span class="webkit-html-attribute-name">border</span>="<span class="webkit-html-attribute-value">0</span>"></span></u></span></li>
</ol><span class="Apple-style-span" style="font-family: monospace;"><span class="Apple-style-span"><span class="Apple-style-span" style="font-family: "Times New Roman"; white-space: normal;"> </span></span></span>Так мы нашли теги от куда мы будем брать наш текст, теперь напишем сам код.<br />
Создадим функцию, назовем ParsingAnegdot объявим переменную GetTex в нее будет входит сам html код странице, результат будет типа String.</div><div style="text-align: left;"><span class="Apple-style-span" style="font-family: monospace; white-space: pre;"></span></div></div><pre class="brush: js">function TForm1.ParsingAnegdot(GetText: String): String;
begin
end;
</pre>Теперь нам осталось описать функцию чем мы сейчас и займемся.<br />
<a name='more'></a> Объявим переменную Str тип String, там будет хранится результат(анекдота). Переменные p1,p2 тип Integer, будет хранится позиция тегов.<br />
<br />
</div><pre class="brush: js">function TForm1.ParsingAnegdot(GetText: String): String;
var
str: String; // Результат
p1,p2: Integer; // Позиции поиска, Pos
begin
repeat
p1 := Pos('<div class="text">' ,GetText) + 18; // Позиция тега 1
p2 := Pos('<table class="votingbox" border="0">', GetText); // Позиция тега 2
Str := Copy(GetText,p1, p2 - Pos('<div class="text">' ,GetText) - 18 ); // Вытаскиваем под тегами, сам Анекдот
Memo1.Lines.Add(Str); // Добавляем анекдот с новой строки
Str := ''; // Обнуляем результат
Delete(GetText,1,p2); // Удалеем с начала html кода, до конца позиции анегдота
until Pos('<table class="votingbox" border="0">', GetText) = 0; // Ищим до тех пор пока теги найдены.
// Удаляем все не нужные теги.
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<br />', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '</div>', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<br />', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<div class="site">', ' ');
// Удаляем все не нужные теги.
end;
</pre></div>Функцию написана, надеюсь все понятно. Теперь на форму добавим компонент Memo, Кнопку Button, пожалуй все. Чуть не забыл компоненты IdHTTP1 и IdAntiFreeze1.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaDBzVK0-73U-eivm6gAqJRmouLnCUrrRTPlFWqDIDFcDIhPhZXh40D-decP7SVdV-5Adi-aF2vyrQ60zHX6GnKlRgq8NCzxN7aDYAyhyphenhyphenoCB9fS7nz_f0xhhErpgQqWxZhRJK8LqBUGUYo/s1600/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B33242.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaDBzVK0-73U-eivm6gAqJRmouLnCUrrRTPlFWqDIDFcDIhPhZXh40D-decP7SVdV-5Adi-aF2vyrQ60zHX6GnKlRgq8NCzxN7aDYAyhyphenhyphenoCB9fS7nz_f0xhhErpgQqWxZhRJK8LqBUGUYo/s320/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B33242.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div> Вот такая вот программка получилась у нас. Полный код будет таков:</div><pre class="brush: js">unit CLXMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StrUtils;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Memo1: TMemo;
IdHTTP1: TIdHTTP;
IdAntiFreeze1: TIdAntiFreeze;
procedure Button1Click(Sender: TObject);
function ParsingAnegdot(GetText: String): String;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
GetText: String;
begin
GetText := IdHttp1.Get('http://www.anekdot.ru/a/an1102/j110218;100.html');
ParsingAnegdot(GetText);
end;
function TForm1.ParsingAnegdot(GetText: String): String;
var
str: String; // Результат
p1,p2: Integer; // Позиции поиска, Pos
begin
repeat
p1 := Pos('<div class="text">' ,GetText) + 18; // Позиция тега 1
p2 := Pos('<table class="votingbox" border="0">', GetText); // Позиция тега 2
Str := Copy(GetText,p1, p2 - Pos('<div class="text">' ,GetText) - 18 ); // Вытаскиваем под тегами, сам Анекдот
Memo1.Lines.Add(Str); // Добавляем анекдот с новой строки
Str := ''; // Обнуляем результат
Delete(GetText,1,p2); // Удалеем с начала html кода, до конца позиции анегдота
until Pos('<table class="votingbox" border="0">', GetText) = 0; // Ищим до тех пор пока теги найдены.
// Удаляем все не нужные теги.
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<br />', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '</div>', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<br />', ' ');
Memo1.Lines.Text := AnsiReplaceText(Memo1.Lines.Text, '<div class="site">', ' ');
// Удаляем все не нужные теги.
end;
end.
</pre></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-89913006603500817662011-02-10T13:02:00.000-08:002011-02-10T13:21:05.280-08:00Задачи и их решения.<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">В этом посте я буду кидать различные задачки, не буду плодить много постов так что буду просто редактировать и добавлять..<br />
<a name='more'></a><br />
<b>Задача №1</b><br />
Найти сколько раз каждый элемент встречается в массиве, дополнительных массивов не создавать. </div><pre class="brush:html">Program zad1;
var
m: Array [1..10] of Integer;
i,j,Count: Byte;
begin
WriteLn('| Массив |');
Randomize;
for i := 1 to 10 do // Присваиваем каждый элемент массива рандомное число и выводим на экран.
begin
m[i] := Random(10)-5;
Write(m[i],' ');
end;
Writeln;
for j := 1 to 10 do // Сравнение элементов массива.
begin
Count := 0;
for i := 1 to 10 do
begin
if m[j] = m[i] then // Сравнение массива j со всеми элементами массива
begin
Inc(Count); // Если элемент равен то прибавляем +1.
end;
end;
WriteLn('Элемент: ',m[j],' встречался ',count,' раз.');
end;
end.
</pre></div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-60697715767330798572011-02-08T10:50:00.000-08:002011-02-09T12:11:34.606-08:00Pascal. Множества<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDPp587PR_YjQ2sUbEE4HPttxSCw-IVrGTfx7j0oXXg4dWHCzHGVMZmPGnmedpQ_yyRC36BdJnWQ7YxjJe36tgULhOF-THVoJj6K0NCDM5mTlK-PnlJXyNPZIqeIBwL8Wqk_FCo0wf0Td/s1600/Pascal_%25D0%259C%25D0%25BD%25D0%25BE%25D0%25B6%25D0%25B5%25D1%2581%25D1%2582%25D0%25B2%25D0%25B0.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDPp587PR_YjQ2sUbEE4HPttxSCw-IVrGTfx7j0oXXg4dWHCzHGVMZmPGnmedpQ_yyRC36BdJnWQ7YxjJe36tgULhOF-THVoJj6K0NCDM5mTlK-PnlJXyNPZIqeIBwL8Wqk_FCo0wf0Td/s1600/Pascal_%25D0%259C%25D0%25BD%25D0%25BE%25D0%25B6%25D0%25B5%25D1%2581%25D1%2582%25D0%25B2%25D0%25B0.jpg" /></a></div><span style="font-family: inherit;">Каждый из объектов <b>множества</b> имеет какую то взаимосвязь. Выражения указываются в квадратные скобки, например ['a'..'z'] [1,3,4,5]. Множество на Pascal объявляется так <b>set of - множество из</b>. </span><br />
<br />
<a name='more'></a><br />
</div><br />
<pre class="brush: js">var
s: Set of 0..9; // Множество может принимать значение от 0 до 9
m: Set of 'a'..'z'; // множество принимает символы от a до z
t: Set of Char; // может принимать любое символьное значение</pre><b>Операции над множествами. </b><br />
Операция <b>in</b> для проверки вхождения в множество, проверяет входит ли значение в множество.</div></div><br />
<pre class="brush: js">Var
a: Set of 1..5;
b: integer;
begin
a := [1..5];
WriteLn('Vvedite znashenie b =');
ReadLn(b);
if b in a then WriteLn('True - vhodit') else WriteLn('False - ne vxodit');
end.
</pre>Операция '='. Если значение равно то результат принимает True если не равно False. </div><br />
<pre class="brush: js">Var
s,b: Set of 'a'..'z';
j: Boolean; // Результат
begin
s := ['a','g','c'];
b := ['a','c','g'];
j := s = b; // Сравниваем значения s и b.
WriteLn(j);
end. </pre></div><br />
Пересечение множеств (*). Если значения двух множеств пересекаются, то результатом будет их пересечения.</div><br />
<pre class="brush: js">Var
s,b,j: Set of 1..100;
begin
s := [1,4,5,2,5];
b := [1..100];
j := s * b;
end.</pre>Операция (-). Разность множеств. Допустим что у нас [1,5,7,3] - [4,1,7,3,5] то результат будет то что не входит, то есть это 4.</div><br />
<pre class="brush: js">var
s,b,rezult: Set of Byte;
begin
s := [1,2,3,4,5];
b := [5,4,3,2];
rezult := s - b; // Результат '1'.
end.
</pre></div>Операция (+) объединения.<br />
<pre class="brush: js">Var
s,b,j: Set of 1..9;
begin
s := [1,2,3,4,5];
b := [6,7,8,9];
j := s + b; // Результат 1,2,3,4,5,6,7,8,9
end.</pre></div>Еще есть операции такие как:<br />
<> - не равно. ['a','f','g'] <> ['a','f','j'] = True<br />
<= - меньше или равно. ['b','g'] <= ['b','c','v'] = True<br />
>= - больше или равно ['s','b'] >= ['f'] даст False<br />
<b>Операции '<' и '>'</b> не допустимы!<br />
<br />
Еще есть две процедуры для множеств:<br />
Include(s,i) - Включает новый элемент I в множество S<br />
Exclude(s,i) - Исключает элемент I из множества S</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com1tag:blogger.com,1999:blog-7834545846748287523.post-75867004293917147252011-02-03T06:54:00.000-08:002011-02-03T06:56:38.537-08:00Зависание get запроса<div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBq3lI7sUw1PsnzGPA-q1-wC0xYvkkam8tnHZ7JsnwFaDK26-WNLG-nmxQs74Sz-wf5C6wWpuoQHn3CPY0cDXsLKwot3sRe_7t7GxIsqOx0MoBDNfGC8O-LZIDHZEh1i6mdPajDbdyNYtD/s1600/%25D0%25B7%25D0%25B0%25D0%25B2%25D0%25B8%25D1%2581%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5_get_%25D0%25B7%25D0%25B0%25D0%25BF%25D1%2580%25D0%25BE%25D1%2581%25D0%25B0.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBq3lI7sUw1PsnzGPA-q1-wC0xYvkkam8tnHZ7JsnwFaDK26-WNLG-nmxQs74Sz-wf5C6wWpuoQHn3CPY0cDXsLKwot3sRe_7t7GxIsqOx0MoBDNfGC8O-LZIDHZEh1i6mdPajDbdyNYtD/s320/%25D0%25B7%25D0%25B0%25D0%25B2%25D0%25B8%25D1%2581%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5_get_%25D0%25B7%25D0%25B0%25D0%25BF%25D1%2580%25D0%25BE%25D1%2581%25D0%25B0.jpg" width="210" /></a></div>Как убрать зависание get запроса?<br />
В некоторых случаях компонент <b>IdAntiFreeze </b>убирает зависание get запроса, компонент находится на вкладке <b>Indy Misc</b>. Нужно просто добавить компонент.<br />
<a name='more'></a><br />
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com0tag:blogger.com,1999:blog-7834545846748287523.post-39302886015561052722011-02-02T05:31:00.000-08:002011-02-03T06:55:52.797-08:00Парсинг HTML<div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrXUDpbgs8otkwM6hhQCze2NWUfvGk87CLsy9A5h-UsCBF0UX25A8hfbvByS42eBfEEjb_UmCSKF36phekRVPhWIX85j95EzQOnzi7NG0OXWbsWHBP6LoRf6L9-T5X-Y08EnW1acoDP0Ld/s1600/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B3_%25D0%25BD%25D0%25B0_Delphi.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrXUDpbgs8otkwM6hhQCze2NWUfvGk87CLsy9A5h-UsCBF0UX25A8hfbvByS42eBfEEjb_UmCSKF36phekRVPhWIX85j95EzQOnzi7NG0OXWbsWHBP6LoRf6L9-T5X-Y08EnW1acoDP0Ld/s200/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B3_%25D0%25BD%25D0%25B0_Delphi.png" width="200" /></a></div>Как спарсить текст со страницы? Парсить будем стандартными функциями copy,pos. Сделаем get запрос, что бы получить html код страницы и начнем "парсить".<br />
<a name='more'></a>1. Добавьте компонент IdHTTP1 с вкладки Indy Clients. Отправим get запрос с помощью компонента.<br />
Memo1.Text := idHttp1.Get('http://bash.org.ru/quote/11');<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBEjvgCVzMqM7F2Ce9vymE5r6hCr277UH-nbpRTozQQctSNiinVT6VQphEdnkgSf41qxAslcRT5EnRv5M9CzGUldEeT-e1ysrnNuMY-ssLoQxW4PVmpGtiK9UNXY6dPc0rup_A0IcC9xE2/s1600/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B3_%25D0%25BD%25D0%25B0_Delphi_Get_%25D0%25B7%25D0%25B0%25D0%25BF%25D1%2580%25D0%25BE%25D1%2581.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBEjvgCVzMqM7F2Ce9vymE5r6hCr277UH-nbpRTozQQctSNiinVT6VQphEdnkgSf41qxAslcRT5EnRv5M9CzGUldEeT-e1ysrnNuMY-ssLoQxW4PVmpGtiK9UNXY6dPc0rup_A0IcC9xE2/s1600/%25D0%259F%25D0%25B0%25D1%2580%25D1%2581%25D0%25B8%25D0%25BD%25D0%25B3_%25D0%25BD%25D0%25B0_Delphi_Get_%25D0%25B7%25D0%25B0%25D0%25BF%25D1%2580%25D0%25BE%25D1%2581.png" /></a></div><br />
<br />
2. Начинаем "парсить", для начала вытащим слово 'Войти',<br />
<a href="http://mail.yandex.ru"onclick="c(this,17,1080)">Войти&nbsp;в&nbsp;почту</a> .<br />
Начинаем с позиции ' <i>)"></i> ' до ' <i>&nbsp</i> '. Получается такой код:<br />
<br />
<pre class="brush:html">var
Str: String; \\ в переменной str будет хранится результат
begin
str := Copy(memo1.Lines.Text,Pos(' )"> ',memo1.Lines.Text) + 3, pos(' ',memo1.Lines.Text) - pos(')">',memo1.Lines.Text) - 3 );
ShowMessage(Str); // выводим на экран сообщение.
</pre><br />
3. Приведу еще пример:<br />
Нужно вытащить текст Студия Артемия Лебедева.<br />
<a href="http://www.artlebedev.ru"onclick="c(this,17,1084)">Студия Артемия&nbsp;Лебедева</a></p></td><br />
Но у нас будем ответ, типо 'Студия Артемия&nbsp;Лебедева' а нужно 'Студия Артемия Лебедева'<br />
Есть функция AnsiReplaceStr(Str, Text, Text1: String) - замена выражения Text на Text1 в строке str.<br />
То есть функцию напишем так Str:=AnsiReplaceStr(Str, '&nbsp;',' '); и у нас получается:<br />
<pre class="brush:html">procedure TForm1.Button2Click(Sender: TObject);
var
Str: String;
begin
str := Copy(memo1.Lines.Text,Pos('84)">',memo1.Lines.Text) + 5, pos('</a>
',memo1.Lines.Text) - pos('84)">',memo1.Lines.Text) - 5 );
Str:=AnsiReplaceStr(Str, ' ',' ');
ShowMessage(Str);
end; end.
</pre>На сегодня все, надеюсь статья вам помогла освоить мой пример парсинга.<br />
</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com5tag:blogger.com,1999:blog-7834545846748287523.post-11002081061124543372011-01-25T08:13:00.000-08:002011-02-03T06:35:41.213-08:00Сортировка пузырьком паскаль<div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGMsOC1fSUGUf7N-Sz_rYVklR0s62VSFyPUz3BHfo6K1-vIKq7eSGk8KJKxie8nOvdA9C3kHVu9UeXimCbwVa3Z7MODrr5va7zbZGapj_vKmEDPHoi7-YQ4BJeowU0J_YdqmxD7pPqNF7L/s1600/%25D0%25A1%25D0%25BE%25D1%2580%25D1%2582%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0_%25D0%25BF%25D1%2583%25D0%25B7%25D1%258B%25D1%2580%25D1%258C%25D0%25BA%25D0%25BE%25D0%25BC_%25D0%25BF%25D0%25B0%25D1%2581%25D0%25BA%25D0%25B0%25D0%25BB%25D1%258C.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGMsOC1fSUGUf7N-Sz_rYVklR0s62VSFyPUz3BHfo6K1-vIKq7eSGk8KJKxie8nOvdA9C3kHVu9UeXimCbwVa3Z7MODrr5va7zbZGapj_vKmEDPHoi7-YQ4BJeowU0J_YdqmxD7pPqNF7L/s320/%25D0%25A1%25D0%25BE%25D1%2580%25D1%2582%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0_%25D0%25BF%25D1%2583%25D0%25B7%25D1%258B%25D1%2580%25D1%258C%25D0%25BA%25D0%25BE%25D0%25BC_%25D0%25BF%25D0%25B0%25D1%2581%25D0%25BA%25D0%25B0%25D0%25BB%25D1%258C.jpg" width="263" /></a></div>Здравствуйте читатели моего блога, наверное их еще нет... Но еще все впереди, надеюсь...<br />
Сегодня я расскажу о сортировке массива методом пузырька. Для начала покажу вам алгоритм сортировки.<br />
<br />
<a name='more'></a><br />
<br />
Вход: массив A, состоящий из элементов A[1], A[2], ..., A[n-1], A[n]<br />
<br />
t := истина<br />
цикл пока t:<br />
t := ложь<br />
цикл для j = 1, 2, ..., n − 1:<br />
если A[j] > A[j+1], то:<br />
обменять местами элементы A[j] и A[j+1]<br />
<div style="text-align: left;"> t := истина </div><div style="text-align: left;"><br />
</div><div style="text-align: left;">Вот собственно алгоритм сортировки, псевдокод. <a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%BE%D0%BC">Алгоритм в википедии.</a></div><br />
Теперь напишим функцию на паскале сортировки.<br />
<br />
2. Функция сортировки.<br />
<br />
<pre class="brush:html">Function sort(a: Massiv): Integer; \\ Функция. Название функции sort
var
i,j,s: Integer; \\ Обьявление переменных.
begin
for i := 1 to 5 do \\ Цикл.
begin
ReadLn(a[i]); \\ Заполнение цикла.
end;
for j := 1 to 5-1 do \\ Цикл j
for i := 1 to 5-j do \\ Цикл i
if a[i] > a[i+1] then \\ Сравнение массива
begin
s := a[i]; \\ Присваивание переменной s массив
a[i] := a[i+1];
a[i+1] := s;
end;
For i := 1 to 5 do
begin
WriteLn('|',a[i],'|');
end;
end; \\ Конец.
</pre>Функцию мы написали. Теперь нужно написать программу, и использовать эту функцию.<br />
<br />
3. Полная программа, сортировки массива. Функцией.<br />
<pre class="brush:html">Program SortirovkaMetodomPuzirika;
Type Massiv = Array[1..5] of Integer;
Var
i: Integer;
a: Massiv;
Function sort(a: Massiv): Integer;
var
i,j,s: Integer;
begin
for i := 1 to 5 do
begin
ReadLn(a[i]);
end;
for j := 1 to 5-1 do
for i := 1 to 5-j do
if a[i] > a[i+1] then
begin
s := a[i];
a[i] := a[i+1];
a[i+1] := s;
end;
For i := 1 to 5 do
begin
WriteLn('|',a[i],'|');
end;
end;
begin \\ Идет блок программы
Sort(a); \\ Использование функции
end.
</pre>Вот и вся программа сегодня мы научились сортировать массив методом пузырька.</div>Nailhttp://www.blogger.com/profile/10042699053291048218noreply@blogger.com1