<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://babalena.bbon.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Форум для одногруппников</title>
		<link>https://babalena.bbon.ru/</link>
		<description>Форум для одногруппников</description>
		<language>ru-ru</language>
		<lastBuildDate>Mon, 23 Oct 2023 20:09:15 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Услуги клининга Москва и МО</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=34#p34</link>
			<description>&lt;p&gt;Профессиональные услуги клининга: уборка после ремонта, генеральная, поддерживающая, химчистка мягкой мебели, удаление жировых отложений на кухне парогенератором, мытье окон + альпинист и многое другое. Мы также предлагаем ЭКО-чистку детских игрушек, колясок, комнат и различных предметов.&amp;#160; Заказ по тел. +7 915 204 1047 Наш канал: t.me/wwcleaning Москва и Московская область Услуги клининга офиса, квартиры: грязь, пыль, разводы, зеркала, плитка, цемент, краска, светильники, люстры, свч, холодильник, духовка, плита, варочная панель, вытяжка, розетки, выключатели, керамика, смесители, скотч, мусор, шкафы, сантехника, плинтуса, фартук, столешница, стирка, глажка, пятна, загрязнения, диван, кровать &amp;#9989;Уборка квартиры после ремонта &amp;#9989;Уборка после ремонта цена&amp;#160; &amp;#9989;Уборка после ремонта москва&amp;#160; &amp;#9989;Уборка квартиры после ремонта цена&amp;#160; &amp;#9989;Уборка помещений после ремонта&amp;#160; &amp;#9989;Услуги клининга цены&amp;#160; &amp;#9989;Клининг компания услуги&amp;#160; &amp;#9989;Услуги клининга офиса&amp;#160; &amp;#9989;Химчистка мягкой мебели москва&amp;#160; &amp;#9989;Химчистка мягкой мебели +на дому&amp;#160; &amp;#9989;Химчистка мягкой мебели +и ковров&amp;#160; &amp;#9989;Мытье окон +в москве&amp;#160; &amp;#9989;Мытье окон без разводов&amp;#160; &amp;#9989;Клининг компания услуги&amp;#160; &amp;#9989;ЭКО чистка детских кресел&amp;#160; &amp;#9989;Экологическая очистка детских комнат&amp;#160; &amp;#9989;Услуги клининга квартир&amp;#160; Заказ по тел. +7 915 204 1047 Наш канал: &lt;a href=&quot;https://t.me/wwcleaning&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://t.me/wwcleaning&lt;/a&gt;&amp;#160; &amp;#160;Вотсап: &lt;a href=&quot;https://wa.me/79152041047&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://wa.me/79152041047&lt;/a&gt;&amp;#160; Перейти: &lt;a href=&quot;https://u.to/IFkKIA&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://u.to/IFkKIA&lt;/a&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (qjeghjizmp)</author>
			<pubDate>Mon, 23 Oct 2023 20:09:15 +0300</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=34#p34</guid>
		</item>
		<item>
			<title>Флуд</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=33#p33</link>
			<description>&lt;p&gt;&lt;strong&gt;T A R A N T U L&lt;/strong&gt;&lt;br /&gt;Я тебя понял)) я кстати поменял обложку форума)) теперь по прикольнее выглядит все))&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Реван)</author>
			<pubDate>Sun, 19 Oct 2008 20:59:34 +0400</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=33#p33</guid>
		</item>
		<item>
			<title>история</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=30#p30</link>
			<description>&lt;p&gt;Введение.&lt;br /&gt;Герб и государство - эти два понятия тесно связаны друг с другом. Возникновение государства почти сразу же обуславливается появлением некоего изображения, которое отражает, как правило, внутреннее устройство этого государства, его могущество, территории, входящие в его состав, и т.д. Существуют особые правила составления этого рисунка, которые устанавливает и изучает наука геральдика. В ней существуют два направления - геральдическое и историко-геральдическое. Первое занимается изучением гербов как “рисунков”, по которым можно определить принадлежность хозяина этого рисунка к той или иной фамилии, его происхождение и т.п. Историко-геральдическое направление предполагает собой изучение герба в контексте того или иного исторического процесса. Здесь нельзя ограничивать свои знания лишь правилами составления герба, но и, что немаловажно, необходимо довольно хорошо знать историю того государства или рода, о котором идет речь. Существует множество работ, связанных с этой темой, однако я не нашел работы, в которой бы именно герб Российской империи рассматривался в этом аспекте. В частности современные ученые - геральдики, такие как Георгий Вилинбахов или Владимир Лебедев, в своих трудах касаются этой темы, но это лишь экскурс по отдельным периодам нашей истории, а не по ней в целом. Это и подтолкнуло меня к написанию данной работы.&lt;br /&gt;В ней я попытался, отталкиваясь от событий, которые происходили в русской истории, найти их отражение на гербе России. Так как российская геральдика официально зародилась лишь при Алексее Михайловиче Романове, то рассмотрение российских гербов до него составляет большие трудности. Это заставило меня обратиться к литературе, в которой, как правило, ранние российские гербы рассматриваются субъективно. Поэтому, при описании гербов того времени я опирался на точки зрения того или иного автора.&lt;/p&gt;
						&lt;p&gt;Историю развития российского герба, как и историю России, можно разделить на несколько периодов, и, согласно им, я разбил свою работу на главы, назвав каждую из них по названию периода. Дело в том, что развитие орла, как гербовой эмблемы, началось с Византии, и лишь потом он появился на Руси. Посчитав это довольно важной проблемой, я решил, что историю взаимоотношений между этими странами стоит рассмотреть в отдельной главе. Сразу же после появления орла на Руси началось его становление как государственного герба. Однако герб того времени почти никогда не подчинялся геральдическим правилам. Лишь Петр I установил изображение орла правильным, благодаря чему обширное развитие получила русская геральдика. Именно с него начинается новая веха в истории герба России. Логическим завершением становления государственного герба России явилось появление Большого, Среднего и Малого гербов Российской империи. На нем были отражены символы могущества и единства российского государства. Основными историческими событиями, которые отражаются на государственном гербе, являются изменение границ или заключение мира с каким-нибудь государством. Однако и смена правителей, и их личные привязанности, и их личные качества также сказываются на государственном гербе. Это заметно, например, когда на престол восходит женщина - государственный герб становится более изящным, контуры более плавными и т.д. На Российском гербе это отражалось лишь дважды - при Елизавете Петровне и Екатерине II.&lt;br /&gt;Сам орел, как государственная эмблема, известен с незапамятных времен. Его изображение используется в гербах многих стран мира. Назову лишь некоторые из них: Австрия, Германия, Ирак, Испания, Мексика, Польша, Сирия, США.&lt;br /&gt;Но двуглавый орел сохранился лишь в гербе Албании и Сербии, что подчеркивает их древнее происхождение. Российский же двуглавый орел претерпел множество изменений с момента его появления и становления как элемента государственного герба.&lt;/p&gt;
						&lt;p&gt;Россия и Византия.&lt;br /&gt;Появление двуглавого орла&lt;br /&gt;Гербы в России появились давно, но это были лишь рисунки, которые не подчинялись геральдическим правилам. Из-за отсутствия рыцарства на Руси гербы были мало распространены.&lt;br /&gt;В самом своем начале (вплоть до XVI века) Россия была разрозненным государством, поэтому и речи о государственном гербе России идти не могло. Однако, несмотря на то, что окончательной датой объединения Руси считают XVI век, государственный герб в России появляется уже при Иване III (1462-1505). Именно ему приписывается учреждение государственного герба, как такового. В качестве герба в то время выступала его печать. На ее лицевой стороне изображен всадник, протыкающий копьем змия, на оборотной - двуглавый орел.&lt;br /&gt;Происхождение двуглавого орла уходит своими корнями далеко в прошлое. Первые, известные нам, его изображения, датируются XIII веком до н.э. Это наскальное изображение двуглавого орла, схватившего двух зайцев. Он служил гербом хеттских царей.&lt;br /&gt;Затем двуглавый орел обнаруживается в Мидийском царстве - древней державе, раскинувшейся на территории Передней Азии,- во времена правления мидийского царя Киаксара (625-585 года до н.э.). Шли столетия. И вот мы уже видим двуглавого орла на эмблемах Рима. Здесь он появился при Константине Великом. Им в 326 году двуглавый орел был выбран в качестве своей эмблемы. &lt;br /&gt;После основания новой столицы - Константинополя - в 330 году двуглавый орел стал государственной эмблемой Римской империи.&lt;br /&gt;На Руси двуглавый орел появился после брака Иоанна III Васильевича и Софьи Палеолог, племянницы последнего Византийского императора Константина XII Палеолога. История взаимоотношений Руси и Византии очень глубока и интересна и является темой для отдельной работы. Однако, обратимся вкратце к этому вопросу.&lt;br /&gt;Первые исторические упоминания об отношениях России и Византии датируются 957 годом - годом, когда княгиня Ольга совершила путешествие в Царьград и приняла христианство.&lt;br /&gt;Но далее отношения с Византией у Руси ухудшаются. Так в 969-972 годах между ними развязалась война за Болгарию, которая была завоевана Святославом.&lt;br /&gt;Позднее, в 988 году Владимир Святой крестил Русь. “Принятие Русью христианства из Византии широко открыло двери влиянию византийской культуры, византийских идей и учреждений. Это влияние сказалось существенным образом в области политической. Вместе с христианством стала проникать на Русь струя новых политических понятий и отношений. На киевского князя пришлое духовенство переносило византийское понятие о государе, поставленном от бога не для внешней только защиты страны, но и для установления и поддержания внутреннего общественного порядка...”.&lt;br /&gt;Однако далее исторических подтверждений отношений Руси и Византии не имеется вплоть до 1469 года, когда римский папа Павел II предложил дочь Фомы Палеолога Софью в жены русскому государю Иоанну III Васильевичу, свадьба которых состоялась в 1472 году. Брак этот не привел Москву к религиозному соединению с Римом, но имел важные последствия для возвышения монархической власти в Москве. Как супруг последней византийской царевны, великий князь Московский становится как бы преемником византийского императора, почитавшегося главою всего православного Востока. &lt;br /&gt;По желанию и по советам Софии в Московском Кремле при дворе великого князя стал заводиться пышный, сложный и строгий церемониал по образцам византийского двора. С конца XV века постепенно прекращается господствовавшая ранее простота отношений и непосредственное обращение государя со своими подданными, и он поднимается над ними на недосягаемую высоту. Вместо прежнего простого и “домашнего” титула “великий князь Иван Васильевич” Иван III принимает пышный титул: “Иоанн, Божьею милостью Государь всея Руси и Великий князь Владимирский и Московский и Новгородский и Псковский и Тверской и Югорский и Пермский и Болгарский и иных”. В отношениях с малыми соседними землями появляется уже титул царя всея Руси. Другой титул, принятый московскими государями, “самодержец” представляет собой перевод византийского императорского титула autocrator; титул этот означал первоначально самостоятельного государя, не подчиненного никакой внешней власти, но Иван Грозный придал ему значение абсолютной, неограниченной власти монарха над своими подданными.&lt;br /&gt;С конца XV века на печатях московского государя появляется византийский герб - двуглавый орел (который комбинируется с прежним московским гербом - изображением Георгия Победоносца). Так Русь обозначила свою преемственность от Византии, что является первым отражением ее развития на гербе.&lt;/p&gt;
						&lt;p&gt;Становление Российского герба&lt;br /&gt;от Ивана III до Петра I&lt;br /&gt;Уже в самом начале развития российского герба мы видим его переплетение с историей Руси. Интересен тот факт, что орел на печатях Иоанна III изображался с закрытым клювом и больше походил на орленка, нежели на орла. Если же посмотреть на Россию того периода, то можно увидеть, что она является молодым государством, которое только начинает формироваться как централизованное. Первым достоверным свидетельством использования двуглавого орла в качестве государственной эмблемы является печать &lt;br /&gt;Иоанна III Васильевича на меновой грамоте 1497 с племянниками его, князьями Федором и Иваном&amp;#160; Волоцкими.&lt;br /&gt;В царствование Василия III Иоанновича (1505-1533) двуглавый орел изображается уже с раскрытыми клювами, из которых высовываются язычки. Об этом, например, свидетельствует печать, приложенная в 1523 году к записи государя и великого князя Василия Иоанновича при отбытии его с войском в Казань. Вкратце, если подойти с чисто художественной точки, то можно сказать, что орел начинает злиться. В то же время, рассмотрев Россию того времени, заметим, что она укрепляет свои позиции, становится новым центром православия. Этот факт нашел свое воплощение в теории монаха Филофея ”Москва - III Рим”, известный из послания монаха Василию III.&lt;br /&gt;В царствование Иоанна IV Васильевича (1533-1584) Русь одержала решающие победы над Казанским и Астраханским ханствами, присоединила Сибирь. Рост могущества русского государства отразился и на его гербе. Двуглавый орел на государственной печати увенчан одной короной с восьмиконечным православным крестом над ней. &lt;br /&gt;На лицевой стороне печати на груди орла изображен щит вырезанной, или “германской”, формы с единорогом - личным знаком царя. Дело в том, что все символы, используемые в личной символике Иоанна IV взяты из Псалтыря, что свидетельствует об укоренении христианства на Руси. На оборотной стороне печати, на груди орла - щит с изображением святого Георгия, побивающим змея. Впоследствии эта сторона печати сыграет важную роль в формировании российского герба. Изображение московского герба на груди орла становится традиционным. Однако, в соответствии с древнерусской иконописной традицией святой Георгий обращен в правую от зрителя сторону, что противоречит геральдическим правилам.&lt;br /&gt;21 февраля 1613 года Земский собор избрал на царство Михаила Федоровича Романова. Это положило конец Смутам, которые в период между кончиной Ивана Грозного и восшествием на престол Михаила Романова подорвали дух русского народа и чуть не искоренили русскую государственность. Россия выходила на путь процветания и величия. В этот период орел на гербе “встрепенулся” и впервые распустил крылья, что могло означать “пробуждение” России после длительного сна, и начало новой эры в истории государства. К этому периоду Россия полностью окончила свое объединение и уже сумела стать единым и довольно прочным государством. И этот факт символично отразился в государственном гербе. Над орлом вместо восьмиконечного креста появилась третья корона, что означало Святую Троицу, однако трактовалось многими как символ единства великорусов, малороссов и белорусов.&lt;br /&gt;Алексей Михайлович Романов (1645-1676) сумел завершить русско-польский конфликт, установив Андрусовское перемирие с Польшей (1667), при нем Россия смогла “показать себя” всей Европе. Российское государство занимает довольно значительное место рядом с европейскими государствами. &lt;br /&gt;В период царствования Алексея Романова отмечено также появление нового изображения гербового орла. Это связано с тем, что по просьбе царя, император Священной Римской империи Леопольд I прислал в Москву своего герольдмейстера Лаврентия Хурелевича, который в 1673 году написал сочинение “О родословии российских великих князей и государей, с показанием имевшегося, посредством браков, сродства между Россией и восемью европейскими державами, то есть Цезарем римским, королями английским, датским, гишпанским, польским, португальским и шведским, и с изображением оных королевских гербов, а в середине их великого князя св. Владимира, на конце же портрета царя Алексея Михайловича”. Она явилась отправной точкой для развития российской геральдики. Государственный орел Алексея Михайловича явился прототипом последующих официальных изображений русского гербового орла. У орла высоко подняты вверх и полностью раскрыты крылья, что символизировало собой полное утверждение России, как солидного и мощного государства; главы его венчают три царские короны, на груди помещен щит с московским гербом, в лапах - скипетр и держава. Интересен тот факт, что до появления в лапах орла атрибутов монархической власти когти орла, начиная от орла на мраморной плите Ксиропотамского монастыря в Афоне (Византия. 451-453 годы), постепенно разжимались, как бы в надежде что-нибудь схватить, пока не взяли державу и скипетр, символизировав тем самым утверждение абсолютной монархии на Руси.&lt;br /&gt;В 1667 году при помощи Лаврентия Хурелевича впервые было дано официальное разъяснение российского герба: “Орел двоеглавый есть герб державный Великого Государя, Царя и Великого Князя Алексея Михайловича всея Великия и Малыя и Белыя России самодержца, его Царского Величества Российского царствия, на котором три коруны изображены, знаменующие три великия Казанское, Астраханское, Сибирское славныя царства, покоряющиеся Богом хранимому и высочайшей Его Царского Величества милостивейшаго Государя державе и повелению... на персях изображение наследника; в пазонктех скипетр и яблоко, и являют милостивейшаго Государя, Его Царского Величества Самодержца и Обладателя”. Как видим, описание дает новое толкование элементов гербового орла. Оно продиктовано дипломатическими соображениями и должно свидетельствовать о величии России.&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Российский государственный герб&lt;br /&gt;от Петра I до Александра II&lt;/p&gt;
						&lt;p&gt;В 1682 году на Российский престол взошел Петр I (1682-1725). Россия очень изменилась во времена его правления. Если обобщить, то заслуги этого императора можно свести к тому, что Российская империя стала одной из ведущих держав и стояла выше, чем большинство европейских государств.&lt;br /&gt;Петр был хорошо образованным человеком. Он внес очень большой вклад в российскую геральдику. При нем гербовой орел по геральдическим правилам стал изображаться черным (до него орел, как правило, изображался золотым). На этот факт повлияла Северная война. После нее Россия предстала перед Европой в облике могущественного государства. А, следовательно, и ее герб должен был быть не только “украшением” государственных бумаг и грамот, но и отражать силу русского государства.&lt;br /&gt;В связи с принятием Петром I 22 октября 1721 года императорского титула на гербах взамен царских корон стали изображать императорские. В 1722 году он учредил герольдмейстерскую контору (1722-1796) и должность герольдмейстера.&lt;br /&gt;Государственный герб при Петре I претерпел множество изменений. Помимо изменения цвета орла, на крыльях его впервые стали размещать щиты с гербами Великих княжеств и Царств. На правом крыле (левом от зрителя) были размещены щиты с гербами (сверху вниз): Киевским, Новгородским, Астраханским; на левом крыле: Владимирским, Казанским, Сибирским. Таким образом, при Петре I сложился основной комплекс атрибутов гербового орла. Такое изменение в государственном гербе можно, если подойти с исторической точки зрения, трактовать как символ быстрого и успешного скачка в развитии России. &lt;br /&gt;Однако после выхода России на “бескрайние просторы Сибири и Дальнего Востока” ”двуглавый орел стал символом нераздельности Европейской и Азиатской России, объединенных под одной императорской короной, так как одна коронованная голова смотрит на запад, другая на восток”.&lt;br /&gt;Послепетровская эпоха характеризуется напряженной борьбой на вершине государственной власти, известной как “эпоха дворцовых переворотов”, что в 30-е годы XVIII привело к чрезмерному влиянию в государстве выходцев из Германии, отнюдь не способствовавшие усилению России.&lt;br /&gt;В 1740 год швейцарский гравер Гедлингер, приглашенный Анной Иоанновной в Россию в 1736 году, изготовил государственную печать, которая использовалась до 1856 года и, по существу, закрепила классический облик русского двуглавого орла.&lt;br /&gt;До конца XVIII века коренных изменений в рисунке герба не было, однако заметны специфические черты, соответствующие времени правления императоров и императриц, особенно во времена Елизаветы Петровны и Екатерины Великой. В это время орел больше похож не на орла, а на орлицу. Как ни странно, но во времена Екатерины II государственный герб почти не изменился, хотя, как известно, она провела большое количество реформ в области государственного устройства и образования. Ею государственный Сенат, выродившийся в громоздкое и неповоротливое учреждение, неспособное не только при необходимости заменять монарха (как замышлял Петр I), но и решать текущие вопросы, по проекту Н.И. Панина в 1763 году был разделен на шесть департаментов, каждый из которых имел строго оговоренный круг обязанностей и полномочий. &lt;br /&gt;Также было упразднено гетманство на Украине (1764), что окончательно уничтожило украинскую автономию. &lt;br /&gt;В отношении с церковью она сначала отменила секуляризацию церковных земель, однако потом вновь вернулась к этому вопросу, проведя секуляризацию в 1763-1764 гг. Тем самым духовенство потеряло имущественную самостоятельность и оказалось на содержании государства. Так был завершен процесс превращения духовенства в особый ряд чиновничества.&lt;br /&gt;Взойдя на престол, Павел I (1796-1801) сразу же попытался модифицировать российский герб. Указом от 5 апреля 1797 года двуглавый орел становится неотъемлемой частью герба императорской фамилии.&lt;br /&gt;Так как Павел I был магистром Мальтийского ордена, то это отразилось и на государственном гербе. 10 августа 1799 года был издан указ императора Павла I об изображении двуглавого орла с мальтийским крестом на груди. На верхнем конце этого креста помещалась корона Великого магистра.&lt;br /&gt;Павел I также явился “отцом” Большого российского герба. Его манифестом от 16 декабря 1800 года было дано его полное описание. Большой российский герб должен был символизировать собой внутреннее единство и могущество России. Однако проект Павла I не был реализован.&lt;br /&gt;Александр I (1801-1825), взойдя на престол, отменил мальтийский крест на государственном гербе. Но тут же на двуглавом орле отразилось французское влияние. При Александре I на гербе крылья орла широко раскинуты в сторону, перья опущены вниз. Одна голова более наклонена, чем другая. Вместо традиционных скипетра и державы в лапах орла появляются новые атрибуты: перуны или громовые стрелы, факел, лавровый венок (иногда ветвь), ликторский пучок, перевитый лентами. Подобные орлы характерны для первой четверти XIX века. Правление Николая I (1825-1855) характеризуется твердостью и решительностью. Им все восставшие декабристы были подвергнуты суду - 5 расстреляны, остальные сосланы в Сибирь. &lt;/p&gt;
						&lt;p&gt;После восстания в Польше (1830-1832) Николай I ограничил ее статус, который лишил Польшу государственного управления, сейма, государственного совета и национальных войск. Именно при нем с 1830 года гербовой орел стал окончательно изображаться с поднятыми крыльями, что стало его неотъемлемой признаком до 1917 года. В этом скрыт некий смысл, который символизировал окончательное установление России. В 1829 году Николай I короновался на царство Польское. И с 1832 года герб этого царства помещен на крылья орла, то есть впервые включен в российский герб...&lt;br /&gt;В конце царствования Николая I барон Б. В. Кене, который тогда управлял департаментом герольдии, предпринял попытки придать гербу черты западноевропейской геральдики. В частности изображение орла должно было стать более строгим. Герб Москвы должен был изображаться лишь во французском щите, всадника необходимо было повернуть согласно геральдическим правилам в левую от зрителя сторону. Но его проекты реализованы лишь при Александре II, так как в 1855 году Николай I скончался, не успев реализовать проекты Б.В. Кене.&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Большой, Средний и Малый гербы&lt;br /&gt;Российской империи&lt;/p&gt;
						&lt;p&gt;Большой государственный герб Российской империи введен 11 апреля 1857 года по указу императора Александра II (1855-1881). Идея герба, изложенная еще в манифесте 1800 года императора Павла I, была реализована.&lt;br /&gt;Большой герб России, как и в идеи Павла I, отражает в себе символ единства и могущества России. В нем отражена древняя традиция изображать вокруг двуглавого орла гербы территорий, входящих в состав русского государства. Это сходно с идеей объединений русских княжеств вокруг Москвы.&lt;br /&gt;В центре Большого государственного герба помещен французский щит с золотым полем, на котором изображен двуглавый орел. Сам орел черного цвета, увенчан тремя императорскими коронами, которые соединены голубой лентой: две малых увенчивают голову, большая расположена между головами и возвышается над ними; в лапах скипетр и держава; на груди изображен “герб Московский: в червленом золотыми краями щите святой великомученик и Победоносец Георгий в серебряном вооружении и лазоревой приволке на серебряном коне...”. Щит, на котором изображен орел, сверху увенчан шлемом святого великого князя Александра Невского, вокруг главного щита - цепь и орден святого Андрея Первозванного. По сторонам щита расположены щитодержатели: с правой стороны (с левой от зрителя) - святой Архистратиг Михаил, с левой - Архангел Гавриил. Центральная часть объединяется под сенью большой императорской короны и государственной хоругвью над ней. Слева и справа от государственной хоругви, на одной горизонтальной линии с ней расположены шесть щитов с соединенными гербами княжеств и волостей - три справа и три слева от хоругви, создающие почти целый полукруг. Девять щитов, увенчанных коронами с гербами Великих княжеств и царств и гербом Его Императорского Величества, составляют продолжение и большую часть того круга, который начали соединенные гербы княжеств и волостей. Гербы таковы (против часовой стрелки): Герб Астраханского царства, герб Сибирского царства, Родовой герб Его Императорского Величества, соединенные гербы Великих княжеств, герб Великого княжества Финляндского, герб Херсониса-Таврического (так в книге - В.Л.) , герб Польского царства, герб Казанского царства.&lt;br /&gt;Верхние шесть щитов расположены следующим образом (слева направо): соединенные гербы княжеств и областей Великороссийских, соединенные гербы княжеств и областей Юго-Западных, соединенные гербы Прибалтийских областей и герб Туркестанский.&lt;br /&gt;В тоже время были приняты Средний и Малый государственные гербы. Средний государственный герб представлял собой то же, что и Большой, но без государственных хоругвей и шести гербов над сенью; Малый - то же, что и Средний, но без сени, изображений святых и родового герба Его Императорского Величества.&lt;br /&gt;Принятый указом Александра III от 3 ноября 1882 года Большой Государственный герб отличался от принятого в 1857 году. Добавлен щит с гербом Туркестана (вошел в состав России в 1867 году), соединены в один щит гербы княжеств Литовских и Белорусских, и т.д.&lt;br /&gt;Большой государственный герб теперь обрамляют лавровые и дубовые ветви. Они символизируют славу, честь, заслуги (лавровые ветви), доблесть, мужество (дубовые ветви).&lt;/p&gt;
						&lt;p&gt;Средствами геральдической символики в Большом государственном гербе отражена “триединая сущность русской идеи: За веру, Царя и Отечество”. Вера выражена в символах русского православия: множество крестов, святой Архистратиг Михаил и святой Архангел Гавриил, девиз “Съ нами Богъ”, восьмиконечный православный крест над государственной хоругвью. Царь, идея самодержца выражена в атрибутах власти - государственные регалии России: большая императорская корона, другие российские исторические короны, скипетр, держава, цепь ордена святого ордена святого Андрея Первозванного. Отечество отражено в гербе Москвы, гербах русских и российских земель, в шлеме святого великого князя Александра Невского. Круговое расположение гербов подчеркивает равенство между ними, а центральное расположение герба Москвы - стремление к единению Руси вокруг Москвы - исторического центра земли русской. Большой государственный герб Российской империи создает монументальный образ великой, единой и неделимой России, каковой она в то время и являлась. Здесь мы и находим еще одну очевидную взаимосвязь геральдики и государственной истории.&lt;/p&gt;
						&lt;p&gt;Заключение&lt;/p&gt;
						&lt;p&gt;В данной работе показан весь путь развития русского государства, начиная от объединения княжеств вокруг Москвы и становления Руси как централизованного государства, роста его территорий за счет присоединяемых земель, таких как Переяславское княжество, Ростовское княжество, Суздальско-Нижегородское, княжество Смоленское, Владимирское, Северные уделы, Казанское княжество, Астраханское царство, Сибирское царство, Украина, Прибалтийские земли, княжества Финляндское и Белорусское, царство Польское, Туркестан и др. Начавшееся развитие Руси, как слабого, малоизвестного государства, продолжалось в течение столетий. Россия превращалась в мощное государство, завоевывала мировой авторитет. И, наконец, Российская империя стала великой державой, готовая соперничать с любым государством.&lt;br /&gt;Как и российское государство, ее герб также менялся с течением времени. Он начинался с “орленка”, однако вскоре начал раскрывать крылья, над его головой появились сначала царские, а затем и императорские короны, в лапах появились атрибуты монархической власти: скипетр и держава, на груди появился герб Москвы, символизирующий ее столичный статус, на крыльях стали появляться гербы царств и великих княжеств, входящих в состав России. И, наконец, были приняты Большой, Средний и Малый гербы Российской империи, которые были составлены согласно всем геральдическим правилам, и должны были символизировать собой единство и могущество России.&lt;br /&gt;В 1917 году орел перестал быть гербом России. Его символика показалась большевикам символом самодержавия. Любопытно, что, выражая уважение к традициям и памяти других народов, советские авторы считали, что русский народ не имеет права на свои исторические, национальные символы. &lt;/p&gt;
						&lt;p&gt;Они не принимали во внимание то, что двуглавый орел был символом русской государственности. Напомню, что с 1917 года советское руководство даже и не ставило вопроса о символе русской государственности. Нам известен герб Российской Федерации, субъектами которой являлись автономные республики и другие национальные образования. В каком качестве входил в эту федерацию русский народ? Каждая из республик, субъектов Российской Федерации, имела свой национальный герб. Где же герб русских?&lt;br /&gt;Знаменательным событием стало то, что 19-21 августа 1991 года была произведена попытка государственного переворота. Вследствие чего в России была свергнута власть коммунистов, и к власти пришли демократы во главе с &lt;br /&gt;Б. Н. Ельциным.&lt;br /&gt;22 августа 1991 года Государственным флагом России становится вновь бело-сине-красный флаг. 30 ноября 1993 года президент России Б. Н. Ельцин подписал указ “О государственном гербе Российской Федерации”. Двуглавый орел вновь стал гербом России.&lt;br /&gt;Его история отражает путь Российской державы, полный величия и драматизма. На протяжении четырех с половиной столетий двуглавый орел неизменно оставался главной эмблемой русского государства, хотя облик его менялся от правителя к правителю.&lt;br /&gt;Перед вами основные вехи в долгой истории обретения русским народом символа своей государственности. Сейчас двуглавый орел, как и прежде, символизирует могущество и единство Российского государства. И будем надеяться, повторив слова Есенина, что “Русь взмахнет крылами”.&lt;/p&gt;
						&lt;p&gt;Приложение к реферату:&lt;br /&gt;Герб Томской области&lt;br /&gt;Дата принятия: 29 мая 1997 года&lt;br /&gt;Описание:&lt;br /&gt;Большой (праздничный) герб Томской области представляет собой французский щит с отношением сторон 9:8, с зеленым полем, в щите скачущий в правую сторону серебряный конь с червлеными (красными) глазами и языком. Щит увенчан большой императорской короной и окружен золотыми дубовыми ветвями, перевитыми лентой, имеющей цвета флага Томской области. На ветвях могут быть расположены изображения гербов муниципальных образований области. Автор герба Томской области - А.Ю.Акимов &lt;br /&gt;&amp;#160; Малый герб Томской области представляет собой французский щит с зеленым полем, в щите скачущий в правую сторону серебряный конь с червлеными (красными) глазами и языком. Щит увенчан большой императорской короной. Допускается изображение малого герба без большой императорской короны. &lt;br /&gt;Томская губерния была образована в 1804 году. Ее герб был утвержден уже 12 марта 1804 года.&amp;#160; Последняя редакция герба датирована 5 июля 1878 года.&amp;#160; В послереволюционное время официальной символики не существовало, но изображение элементов исторического герба использовалось часто, причем в искаженном виде. Только 17 июня 1991 года президиум томского городского Совета народных депутатов утвердил малый герб города Томска (из описания: &amp;quot;в зеленом щите - скачущий серебряный конь&amp;quot;).&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Сергей)</author>
			<pubDate>Wed, 15 Oct 2008 01:52:58 +0400</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=30#p30</guid>
		</item>
		<item>
			<title>TURBO PASCAL 7.0</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=29#p29</link>
			<description>&lt;p&gt;Введение&lt;/p&gt;
						&lt;p&gt;В 1992 году фирма Borland International выпустила два пакета программирования на использовании языка Паскаль, - Borland Pascal 7.0 и Turbo Pascal 7.0.&lt;br /&gt;Пакет Borland Pascal 7.0 учитывает многие новейшие достижения в программировании и практике создания программ и включает в себя три режима работы: в обычном режиме операционной системы MS DOS, в защищенном режиме MS DOS и в среде Windows. Обладая расширенными возможностями, пакет Borland Pascal 7.0 тем не менее требует для использования всех своих возможностей довольно большую память – примерно 30 Мбайт на жестком диске и не менее 2 Мбайт оперативной памяти.&lt;br /&gt;Пакет Turbo Pascal 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту, по-видимому,&amp;#160; целесообразно начать изучение языка и среды именно с этого пакета.&lt;br /&gt;Язык характеризуется расширенными возможностями по сравнению со стандартом, хорошо развитой библиотекой модулей, позволяющих использовать возможности операционной системы, создавать оверлейные структуры, организовывать ввод-вывод, формировать графическое изображение и т.д. &lt;br /&gt;Среда программирования позволяет создавать тексты программ, компилировать их, находить ошибки и оперативно их исправлять, компоновать программы из отдельных частей, включая стандартные модули, отлаживать и выполнять отлаженную программу.&lt;br /&gt;В данной работе будут описаны основные возможности языка, работа в интегрированной среде, набор стандартных модулей. &lt;br /&gt;Паскаль &amp;#61485; замечательный язык программирования, который относительно прост в изучении, довольно ясен и логичен и, будучи первым изучаемым языком программирования, приучает к хорошему стилю. Паскаль воспитывает дисциплину структурного программирования и программирования вообще лучше, чем другие языки программирования, такие, как, например Бейсик.&lt;br /&gt;Паскаль – гибкий и развитый в отношении типов данных язык. Привлекательны его рекурсивные возможности, а также поддержка технологии объектно-ориентрованного программирования.&lt;/p&gt;
						&lt;p&gt;1 Модули&lt;/p&gt;
						&lt;p&gt;Модуль &amp;#61485; это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.&lt;br /&gt;Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться возможностями стандартных модулей, практически неограниченно увеличивать кодовую (содержащую коды команд) часть программы.&lt;br /&gt;Модуль содержит описания типов данных, переменных и других объектов, а также подпрограммы, которые используются в различных программах. Подпрограмму имеет смысл включать в состав модуля в том случае, когда она реализует действие, которое приходится выполнять достаточно часто. Подпрограммы, входящие в модуль, можно написать, отладить и откомпилировать один раз, а использовать многократно.&lt;br /&gt;Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модульного программирования. Важная особенность модулей заключается в том, что компилятор Турбо Паскаля размещает их программный код в отдельном сегменте памяти. Максимальная длина сегмента не может превышать 64 Кбайта, однако количество одновременно используемых модулей ограничивается лишь доступной памятью, что дает возможность создавать весьма крупные программы. &lt;br /&gt;Доступ к описаниям, функциям и процедурам модуля обеспечивает оператор использования Uses, в котором указывается имя модуля. Этот оператор размещается в разделе описаний программы, сразу после заголовка. Если в программе используется не один модуль, а несколько, необходимо указать имена всех модулей, перечислив их через запятую. Исключением является модуль System, ссылка на который необязательна. Этот модуль содержит, в частности, процедуры файлового ввода/вывода, процедуры и функции для работы со строками и некоторые другие.&lt;br /&gt;Модуль начинается заголовком&lt;br /&gt;unit unit_name;&lt;br /&gt;где unit_name – имя модуля, которое выбирается в соответствии с правилами Паскаля. Файл, содержащий модуль, обязан иметь то же имя, что и модуль.&lt;br /&gt;Разберем в качестве примера модуль с описанием гиперболических функций, которых нет в числе встроенных функций языка Паскаль, но эти функции достаточно часто появляются в прикладных задачах, и поэтому имеет смысл включить их в состав библиотечного модуля. Доступ к функциям из этого модуля обеспечивает оператор использования Uses, в котором указывается имя модуля. Итак, сам модуль выглядит следующим образом.&lt;/p&gt;
						&lt;p&gt;{$N+}&lt;br /&gt;unit&amp;#160; &amp;#160; &amp;#160;hyp_fun;&lt;br /&gt;interface &lt;br /&gt;type&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Float = Extended;&lt;br /&gt;function sinh(x: Float): Float;&lt;br /&gt;function cosh(x: Float): Float;&lt;br /&gt;function tanh(x: float): Float;&lt;br /&gt;implementation&lt;br /&gt;var&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;t: Float;&lt;br /&gt;function sinh(x: Float): Float;&lt;br /&gt;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;t := Exp(x);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;sinh := 0.5*(t – 1.0/t);&lt;br /&gt;end;&lt;br /&gt;function cosh(x: Float): Float;&lt;br /&gt;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;t := Exp(x);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;cosh := 0.5*(t + 1.0/t);&lt;br /&gt;end;&lt;br /&gt;function tanh(x: Float): Float;&lt;br /&gt;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;t := Exp(2.0*x);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;tanh := (t – 1.0) / (t + 1.0);&lt;br /&gt;end;&lt;br /&gt;end.&lt;br /&gt;Зарезервированные слова interface и implementation здесь играют важную роль. Каждый модуль имеет части (секции), озаглавленные этими словами. Секция interface (она называется интерфейсной секцией) содержит описания констант, типов, переменных и процедур, доступных из вызывающей программы или модуля. Секция implementation (секция реализации) содержит исходный код программы. Она может также содержать локальные описания, такие как var&amp;#160; t:&amp;#160; Real;&amp;#160; из нашего примера.&lt;br /&gt;Каждый модуль начинается с зарезервированного слова unit и заканчивается словом end, за котором следует точка. Для этого end не требуется соответствующего слова begin, хотя можно и поставить его непосредственно перед end. Оператор type в начале нашего модуля определяет тип Float, который в данном случае эквивалентен типу Extended. Указав, справа от знака равенства любой другой эквивалентный тип, можно изменить точность вычисления гиперболических функций.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.1 Структура модулей&lt;/p&gt;
						&lt;p&gt;Модуль имеет следующую структуру:&lt;/p&gt;
						&lt;p&gt;Unit module_name&lt;br /&gt;Interface&lt;br /&gt;Интерфейсная секция&lt;br /&gt;Implementation&lt;br /&gt;Секция реализации&lt;br /&gt;Секция инициализации&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Рис. 1. Структура модуля&lt;/p&gt;
						&lt;p&gt;Здесь Unit &amp;#61485; зарезервированное слово (единица), начинает заголовок модуля; name&amp;#160; &amp;#61485;&amp;#160; имя модуля (правильный идентификатор). Interface – интерфейсная секция – содержит те описания типов, переменных и других объектов данных, которые можно использовать в других программах или модулях. Секция реализации начинается с зарезервированного слова implementation. Все описания, содержащиеся в секции реализации, являются локальными, их область действия – данный модуль. Здесь же содержаться полные описания функций и процедур модуля. Последняя часть модуля – секция инициализации. Она может быть пустой и содержать только зарезервированное слово end или включать в себя исполняемые операторы, выполняющие необходимые действия по инициализации (например, по присваиванию начальных значений переменным) модуля.&lt;br /&gt;В качестве примера рассмотрим модуль func1 /см. приложение А/, расширяющий вычислительные возможности Турбо Паскаля, так как он содержит функции, отсутствующие в стандартных модулях системы. Среди «стандартных» функций – синус (Sin), косинус (Cos), арктангенс (ArcTan), экспонента (Exp), натуральный логарифм (Ln), квадрат числа (Sqr) и квадратный корень из него (Sqrt). В модуле func1 имеются тангенс (Tan), арксинус (ArcSin) и арккосинус (ArcCos), функции перевода градусной меры в радианную и наоборот (Degrees_to_Radians, Radians_to_Degrees), набор гиперболических функций (Sinh, Cosh, Tanh), а также десятичный логарифм (Log10) и произвольная степень числа (Power).&lt;br /&gt;Напомню математическое определение гиперболических функций:&lt;br /&gt; &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;В нашем примере интерфейсная секция содержит описания вещественного типа float, а также константу Infinity – «бесконечно большое значение». Бесконечность здесь понимается, разумеется, в смысл машинной арифметики, как значение, близкое к максимально допустимому для типа Extended. Далее следуют заголовки функций модуля.&lt;br /&gt;Секция реализации содержит константы, используемые в подпрограммах-функциях. Затем идут полные описания функций. Вычисление тангенса использует «классическое» определение этой функции как отношение синуса к косинусу. Учтено также приближение значения тангенса к бесконечности при определенных значениях аргумента. В этом случае функция возвращает «машинную бесконечность».&lt;br /&gt;При программировании арксинуса и арккосинуса следует учитывать то, что эти функции – многозначные. В нашем случае вычисляется «главное значение», лежащее в интервале [-&amp;#61552;/2, &amp;#61552;/2] (для арксинуса) или [0, &amp;#61552;] (для арккосинуса) радиан. Для этого используются формулы, известные из курса элементарной математики.&lt;br /&gt;При вычислении гиперболических функций учитывается то обстоятельство, что уже при относительно небольших значениях аргумента вычисление экспоненты приводит к арифметическому переполнению. В этом случае функция возвращает «бесконечное» значение.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.2 Заголовок модуля и связь модулей друг с другом&lt;/p&gt;
						&lt;p&gt;Заголовок модуля состоит из зарезервированного слова Unit &amp;#61485;&amp;#160; следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля и возможности подключения средств, облегчающих разработку крупных программ, это имя должно совпадать с именем дискового файла, в который помещается исходный текст модуля. Если, например, имеем заголовок&lt;br /&gt;Unit Global; &lt;br /&gt;то исходный текст соответствующего модуля должен размещаться в дисковом файле GLOBAL.PAS. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением&lt;br /&gt;Uses &amp;lt;сп.модулей&amp;gt; &lt;br /&gt;Здесь Uses - зарезервированное слово (использует);&lt;br /&gt;&amp;lt;сп.модулей&amp;gt; - список модулей, с которыми устанавливается связь; &lt;br /&gt;элементами списка являются имена модулей, отделяемые друг от друга &lt;br /&gt;запятыми, например: &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Uses CRT, Graph, Global:&lt;br /&gt;Если объявление Uses... используется, оно должно открывать раздел описаний основной программы. Модули могут использовать другие - модули. Предложение Uses в модулях может следовать либо сразу за зарезервированным словом Interface, либо сразу за словом Implementation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.3 Интерфейсная часть&lt;/p&gt;
						&lt;p&gt;Через интерфейс осуществляется взаимодействие основной программы с модулем (модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (модулем) при вызове этого модуля.&lt;br /&gt;Интерфейсная часть открывается зарезервированным словом Interface. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок, например:&lt;br /&gt;Unit Cmplx; &lt;br /&gt;Interface &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; type &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;complex = record &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;re, Im : real &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure AddC (x, у : complex; var z : complex);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure MulC (x, у : complex; var z : complex);&lt;br /&gt; Если теперь в основной программе написать предложение&lt;br /&gt;Uses Cmplx;&lt;br /&gt;то в программе станут доступными тип Complex и две процедуры &amp;#61485; AddC и МulC из модуля Cmplx.&lt;br /&gt;Отметим, что объявление подпрограмм в интерфейсной части автоматически сопровождается их компиляцией с использованием дальней; модели памяти. Таким образом, обеспечивается доступ к подпрограммам из основной программы и других модулей.&lt;br /&gt;Следует учесть, что все константы и переменные, объявленные интерфейсной части модуля, равно как и глобальные константы и переменные основной программы, помещаются компилятором Турбо Паскаля в общий сегмент данных (максимальная длина сегмента 65536 байт). Порядок появления различных разделов объявлений и их количество может быть произвольным. Если в интерфейсной части объявляются внешние подпрограммы или подпрограммы в машинных кодах, их тела (т.е. зарезервированное слово External, в первом случае, и машинные коды вместе со словом Inline &amp;#61485; во втором) должны следовать сразу за их заголовками в исполняемой части модуля (не в интерфейсной). В интерфейсной части модулей нельзя использовать опережающее описание.&lt;br /&gt;В интерфейсах различных модулей недопустимо циклическое обращение друг к другу, т.к. компилятор в этом случае не может установить связей.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.4 Исполняемая часть&lt;/p&gt;
						&lt;p&gt;Исполняемая часть включает все подпрограммы модуля. Она может также включать локальные метки, константы, типы и переменные.&lt;br /&gt;&amp;#160; &amp;#160;Исполняемая часть начинается зарезервированным словом Implementation и содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты - вспомогательные типы, константы, переменные и блоки, а также &amp;#61485; метки, если они используются в инициирующей части.&lt;br /&gt;Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части. Но если заголовок подпрограммы приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, он должен совпадать с заголовком, объявленным в интерфейсной части, например:&lt;br /&gt;Unit Cmplx;&lt;br /&gt;Interface&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;type&lt;br /&gt;&amp;#160; &amp;#160; complex = record;&lt;br /&gt;&amp;#160; &amp;#160; re, im: Real;&lt;br /&gt;	end;&lt;br /&gt;Procedure AddC (x, у : complex; var r : complex);&lt;br /&gt;Implementation&lt;br /&gt;Procedure AddC;&lt;br /&gt;begin&lt;br /&gt;	z.re := x.re + y.re;&lt;br /&gt;	z,im := x.Im * y.im;&lt;br /&gt;end;&lt;br /&gt;end.&lt;br /&gt;Локальные переменные и константы, а также все программные коды, порожденные при компиляции модуля, помещаются в общий сегмент памяти. &lt;br /&gt;В отличие от интерфейсов модулей в исполнительных частях модулей допустимо циклическое обращение друг к другу, т.к. все равно взаимодействие осуществляется через интерфейсы, и здесь не возникает проблемы с установлением необходимых связей.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.5 Инициирующая часть&lt;/p&gt;
						&lt;p&gt;В некоторых случаях перед обращением к модулю следует провести его инициализацию (например, установить связь с теми или иными файлами с помощью процедуры Assign, инициализировать какие-то переменные и т.д.). Необходимые действия можно выполнить в секции инициализации модуля. Эта секция начинается словом begin, после которого идут исполняемые операторы, а затем помещается слово end. (с точкой), например:&lt;br /&gt;begin&lt;br /&gt;	Assign (F1, ‘ FILE1.DAT ‘);&lt;br /&gt;end.&lt;br /&gt;В инициирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы, устанавливаться связи с другими ПК по коммуникационным каналам и т.п.:&lt;br /&gt;Unit FileText;&lt;br /&gt;	Interface&lt;br /&gt;Procedure Prlnt (t : string);&lt;br /&gt;Implementation&lt;br /&gt;var f: Text;&lt;br /&gt;const&lt;br /&gt;name = &#039; OUTPUT. TXT &#039;;&lt;br /&gt;Procedure Print;&lt;br /&gt;begin&lt;br /&gt;	WriteLn (f, s);&lt;br /&gt;end;&lt;br /&gt;{Начало инициирующей части:} &lt;br /&gt;begin&lt;br /&gt;	Assign (f, name);&lt;br /&gt;	Rewrite (f); &lt;br /&gt;{Конец инициирующей части:}&lt;br /&gt;end.&lt;br /&gt;Следует иметь в виду, что операторы секции инициализации выполняются единственный раз в момент запуска программы.&lt;br /&gt;Если инициализация модуля не нужна, то в секции помещается лишь слово end.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.6&amp;#160; Компиляция модулей &lt;/p&gt;
						&lt;p&gt;В среде Турбо Паскаля имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. В частности, определены три режима компиляции: COMPILE, МАКЕ и BUILD. Режимы отличаются только способом связи, компилируемого модуля или основной программы с другими модулями, объявленными в предложении USES.&lt;br /&gt;При компиляции модуля или основной программы в режиме COMPILE все упоминающиеся в предложении USES модули должны быть предварительно откомпилированы, и результаты компиляции помещены в одноименные файлы с расширением .TPU. Например, если в программе (модуле) имеется предложение&lt;br /&gt;Uses Global;&lt;br /&gt;то на диске в каталоге, объявленном опцией UNIT DIRECTORIES, уже должен находиться файл GLOBAL.TPU. Файл с расширением TPU (от англ. Turbo Pascal Unit) создается в результате компиляции модуля.&lt;br /&gt;В режиме МАКЕ компилятор проверяет наличие TPU-файлов для каждого объявленного модуля. Если какой-либо из файлов не обнаружен, система пытается отыскать одноименный файл с расширением .PAS, т.е. файл с исходным текстом модуля, и, если .PAS-файл найден, приступает к его компиляции. Кроме того, в этом режиме система следит за возможными изменениями исходного текста любого используемого модуля. Если в PAS-файл (исходный текст модуля) внесены какие-либо изменения, то независимо от того, есть ли уже в каталоге соответствующий TPU-файл или нет, система осуществляет его компиляцию перед компиляцией основной программы. Более того, если изменения внесены в интерфейсную часть модуля, то будут перекомпилированы также и все другие модули, обращающиеся к нему. Режим МАКЕ, таким образом, существенно облегчает процесс разработки крупных программ с множеством модулей: программист избавляется от необходимости следить за соответствием существующих TPU-файлов их исходному тексту, так как система делает это автоматически.&lt;br /&gt;В режиме BUILD существующие TPU-файлы игнорируются, и система пытается отыскать (и компилировать) соответствующий PAS-файл для каждого объявленного в предложении USES модуля. После компиляции в режиме BUILD программист может быть уверен в том, что учтены все сделанные им изменения в любом из модулей.&lt;br /&gt;Подключение модулей к основной программе и их возможная компиляция осуществляются в порядке их объявления в предложении USES. При переходе к очередному модулю система предварительно отыскивает все модули, на которые он ссылается. Ссылки модулей друг на друга могут образовывать древовидную структуру любой сложности, однако запрещается явное или косвенное обращение модуля к самому себе. Например, недопустимы следующие объявления:&lt;/p&gt;
						&lt;p&gt;Unit A; Unit B;&lt;br /&gt;Interface Interface&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Uses S; Uses A;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Implementation Implementation&lt;br /&gt;end.&lt;br /&gt;end.&lt;br /&gt;Это ограничение можно обойти, если «спрятать» предложение USES в исполняемые части зависимых модулей:&lt;br /&gt;Unit A; Unit B;&lt;br /&gt;	Interface Interface&lt;br /&gt;	Implementation Implementation&lt;br /&gt;	Uses B; Uses A;&lt;br /&gt;end.&lt;br /&gt;end.&lt;br /&gt;Дело в том, что Турбо Паскаль разрешает ссылки на частично откомпилированные модули, что приблизительно соответствует опережающему описанию подпрограммы. Если интерфейсные части любых двух модулей независимы (это непременное условие!), Турбо Паскаль сможет идентифицировать все глобальные идентификаторы в каждом из модулей, после чего откомпилирует тела модулей обычным способом. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;1.7&amp;#160; Доступ к объявленным в модуле объектам&lt;/p&gt;
						&lt;p&gt;Пусть, например, мы создаем модуль, реализующий арифметику комплексных чисел (напомню, что такая арифметика ни в стандартном Паскале, ни в Турбо Паскале не предусмотрена). К сожалению, в Турбо Паскале нельзя использовать функции, значения которых имели бы структурированный тип (запись, например), поэтому арифметика комплексных чисел реализуется четырьмя процедурами: &lt;br /&gt;{UNIT Cmplx};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;INTERFACE &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {.............................................}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; type &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;complex = record; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;re, Im : real; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Procedure AddC (x, у : complex: var z: complex); &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Procedure SubC (x, у : complex; var z: complex);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Procedure MulC (x, у : complex; var z: complex); &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Procedure DIvC (x, у : complex; var z: complex); &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;с : complex = (re : 0.1; Im : -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; IMPLEMENTATION &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{..........— . — .......... — -- — ——...... } &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PROCEDURE AddC; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z.re := x.re + y.re; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z. Im := x . im + у. Im; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end {AddC};&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PROCEDURE SubC;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z .re := x.re - y.re;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z . im := x.Im - y. Im;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end {SubC}; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PROCEDURE MulC; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z.re := x.re * y.re - x.im * y.im; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;z.lm := x.re * y.im + x.im * y.re; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;end {MulC}; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;PROCEDURE DivC; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;var zz : real; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; zz :=sqr(y.re) + sqr(y.im);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; z.re := (x.re * y.re + x.im * y.im) / zz; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; z.lm := (x.re * y.im - x.lm * y.re) / zz; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;end {DIvC}:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;END.&lt;br /&gt;Текст этого модуля следует поместить в файл CMPLX.PAS. Его можно&amp;#160; откомпилировать, создав TPU-файл, после чего программе станут доступны процедуры из новой библиотеки.&lt;br /&gt;1.8&amp;#160; Стандартные модули&lt;/p&gt;
						&lt;p&gt;В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций. Этими модулями являются SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3 и GRAPHS. Модули GRAPH, TURBOS и GRAPHS содержатся в одноименных ТPU-файлах, остальные входят в состав библиотечного файла TURBO.TPL. Лишь один модуль SYSTEM подключается к любой программе автоматически, все остальные становятся доступны только после указания их имен в списке, следующем за словом USES. Ниже приводится краткая характеристика стандартных модулей. Модуль SYSTEM &amp;#61485; в него входят все процедуры и функции стандартного Паскаля, а также встроенные процедуры и функции Турбо Паскаля, которые не вошли в другие стандартные модули (например, INC, DEC, GETDIR и т.п.). Как уже отмечалось, модуль SYSTEM подключается к любой программе независимо от того, объявлен ли он в предложении USES или нет, поэтому его глобальные константы, переменные и подпрограммы считаются встроенными в Турбо Паскаль. Модуль PRINTER делает доступным вывод текстов на матричный принтер. В нем определяется файловая переменная LST типа TEXT, которая связывается с логическим устройством PRN. После подключения модуля может быть выполнена, например, такая программа:&lt;br /&gt;Uses Printer; &lt;br /&gt;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; WriteLn (LST, &#039;Турбо Паскаль&#039;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end.&lt;br /&gt;Модуль CRT. В нем сосредоточены процедуры и функции, обеспечивающие управление текстовым режимом работы экрана. С помощью входящих в модуль программ можно перемещать курсор в произвольную позицию экрана, менять цвет выводимых символов и окружающего их фона, создавать окна. Кроме того, в модуль включены также процедуры «слепого» чтения клавиатуры и управления звуком. Модуль GRAPH содержит обширный набор типов, констант, процедур и функций для управления графическим режимом работы экрана. С помощью подпрограмм, входящих в модуль GRAPH, можно создавать разнообразные графические изображения и выводить на экран текстовые надписи стандартными или разработанными программистом шрифтами. Подпрограммы модуля GRAPH после соответствующей настройки могут поддерживать различные типы аппаратных графических средств. Настройка на имеющиеся в распоряжении программиста технические средства графики осуществляется специальными программами - драйверами, которые не входят в библиотечный файл GRAPH.TPU, но поставляются вместе с ним. Модуль DOS. В модуле собраны процедуры и функции, открывающие доступ программам к средствам дисковой операционной системы MS DOS. Модуль OVERLAY. Он необходим при разработке громоздких программ с перекрытиями. Как уже говорилось, Турбо Паскаль обеспечивает создание программ, длина которых ограничивается лишь доступной оперативной памятью ПК. Для большинства IBM-совместимых ПК доступная программе память составляет около 580 Кбайт (без инструментальных оболочек типа Norton Commander и без самой системы Турбо Паскаль). Память такого размера достаточна для большинства применений, тем не менее, использование программ с перекрытиями снимает это ограничение. Два библиотечных модуля TURBO3 и GRAPH3 введены для совместимости с ранней версией 3.0 системы Турбо Паскаль. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;2&amp;#160; Объекты &lt;/p&gt;
						&lt;p&gt;Базовым в объектно-ориентированном программировании является понятие объекта. Объект имеет определённые свойства. Состояние объекта задаётся значениями его признаков. Объект «знает», как решить определённые задачи, то есть располагает методами решения. Программа, написанная с использованием ООП, состоит из объектов, которые могут взаимодействовать между собой.&lt;br /&gt;Ранее отмечалось, что программная реализация объекта представляет собой объединение данных и процедур их обработки. В Турбо Паскале имеется тип object, который можно считать обобщением структурного типа record. Переменные объектного типа называются экземплярами объекта. Здесь требуется уточнение – экземпляр лишь формально можно назвать переменной. Его описание даётся в предложении описания переменных, но в действительности экземпляр – нечто большее, чем обычная переменная. &lt;br /&gt;В отличии от типа «запись», объектный тип содержит не только поля, описывающие данные, но также процедуры и функции, описания которых содержатся в описании объекта. Эти процедуры и функции называются методами. В описании объекта фактически содержатся лишь шаблоны обращений к методам, которые необходимы компилятору для проверки соответствия количества параметров и их типов при обращении к методам. Вот пример описания объекта:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; type&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Location = object &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; X, Y: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; procedure Init (InitX, Inity: Integer);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; function GetX: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; function GetY: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; end;&lt;br /&gt;Здесь описывается объект, который может использоваться в дальнейшем, скажем, в графическом режиме и который предназначен для определения положения на экране произвольного графического элемента. Объект описывается с помощью зарезервированных слов object…end, между которыми находятся описания полей и методов. В нашем примере объект содержит два поля для хранения значений графических координат, а также описания процедуры и двух функций – это методы данного объекта. Процедура предназначена для задания первоначального положения объекта, а функции – для считывания его координат.&lt;br /&gt;Зарезервированное слово private позволяет ограничить доступ к полям объекта. В следующем примере доступ к переменным X и Y возможен только через методы объектного типа Location:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; type&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Location = object &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;procedure Init (InitX, Inity: Integer);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;function GetX: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;function GetY: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;private&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;X, Y: integer;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end;&lt;br /&gt;В секции private могут находится и методы объекта.&lt;br /&gt;Полное описание методов, то есть описание их реализации, должно находится после описания объекта. Имена методов составные и складываются из имени объекта и имени метода, разделённых точкой:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; procedure Location. Init (InitX, Inity: Integer);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; X : = InitX;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Y : = InitY;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; fuction Location. GetX: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;GetX : = X;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;end;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; fuction Location. GetY: Integer;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;GetY : = Y;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;end;&lt;br /&gt;После того как объект описан, в программе можно использовать его экземпляры, то есть переменные указанного объектного типа:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; var&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; GrMarket : Location; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;2.1&amp;#160; Основные принципы ООП&lt;/p&gt;
						&lt;p&gt;Элементы объектно-ориентированного программирования появились в начале 70-х в языке моделирования Симула, затем получили своё развитие, и в настоящее время ООП принадлежит к числу ведущих технологий программирования. В Турбо Паскале поддержка этой технологии появилась, начиная с версии 5.5 (1989 год).&lt;br /&gt;Основная цель ООП, как и большинства других подходов к программированию, - повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем.&lt;br /&gt;Появление объектно-ориентированного программирования было связанно с тем наблюдением, что компьютерные программы представляют собой описание действий, выполняемых над различными объектами. В роли последних могут выступать, например, графические объекты, записи в базах данных или совокупности числовых значений. В традиционных методах программирования изменение данных или правил и методов их обработки часто приводило к необходимости значительного изменения программ. Всякое существенное изменение программы – это большая неприятность для программиста, так как при этом увеличивается вероятность ошибок, вследствие чего возрастает время, необходимое для «доводки» программы. Использование ООП позволяет выйти из такой ситуации с минимальными потерями, сводя необходимую модификацию программы к её расширению и дополнению. Сразу замечу, что ООП не является панацеей от всех программистских бед, но его ценность как передовой технологии программирования несомненна. Изучение идей и методов объектно-ориентированного&amp;#160; программирования – не очень простая задача, однако освоение ООП может существенно упростить разработку и отладку сложных программ.&lt;br /&gt;Мы уже привыкли использовать в своих программах процедуры и функции для программирования тех сложных действий по обработке данных, которые приходится выполнять многократно. Использование подпрограмм в своё время было важным шагом на пути к увеличению эффективности программирования. Подпрограмма может иметь формальные параметры, которые при обращении к ней заменяются фактическими параметрами. В этом случае есть опасность вызова подпрограммы с неправильными данными, что может привести к сбою программы и её аварийному завершению&amp;#160; при выполнении. Поэтому естественным обобщением традиционного подхода к программированию является объединение данных и подпрограмм (процедур и функций), предназначенных для их обработки.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;2.2&amp;#160; Инкапсуляция&lt;/p&gt;
						&lt;p&gt;В Турбо Паскале средства объектно-ориентированного программирования связаны с тремя зарезервированными словами: OBJECT CONSTRUCTOR и DESTRUCTOR и двумя стандартными директивами: PRIVATE и VIRTUAL.&amp;#160; &amp;#160;&lt;br /&gt;Зарезервированное слово OBJECT используется для описания объекта. Описание объекта должно помещаться в разделе описания типов, например: &lt;br /&gt;type &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Tpoint = object &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; X,Y: Integer;&amp;#160; {Координаты точки}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Color:word; {Цвет точки) &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Visible: Boolean; {Признак светимости} &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure Setlocation (NewX, NewY: integer);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{Задает новое положение, точки на экране} &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure SetCoforfNewColor: word); {Устанавливает цвет точки}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure SetVislble(VIS: Boolean);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{Выводит или гасит точку) &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Procedure GetLocatIon(var Xloc, YLoc:integer);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{Возвращает координаты точки}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Function GetColor: word;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {Возвращает цвет точки)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Function GetVislble: Boolean;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; {Возвращает признак светимости точки} &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; end; {Конец описания объекта ТРOINT)&lt;br /&gt;&amp;#160; &amp;#160;В этом примере описывается объект TPOINT, представляющий собой данные и методы (процедуры и функции), необходимые для работы с графическими точками на экране ПК. Заметим, что инкапсулированные объект процедуры и функции называются методами. Как видим, каждая точка характеризуется некоторым набором данных (своими координатами X и У, цветом COLOR и признаком светимости VISIBLE). Над этими данными определены все необходимые алгоритмические действия. С помощью этих переменных можно осуществлять все предусмотренные, в объекте действия, например, для переменных типа TPOINT можно высветить или погасим, любую точку, переместить ее по экрану, изменить цвет.&lt;br /&gt;Нетрудно заметить, что описание объекта и использование объектных переменных во многом похоже на описание и использование записей: инкапсулированные в объекте данные и методы становятся доступны с помощью оператора присоединения WITH или с помощью составных&lt;br /&gt;имен, например:&lt;br /&gt;if Point.GetVisible then Polnt.SetVisible(False); &lt;br /&gt;При описании объекта вначале, описываются все инкапсулированные в нем данные, а затем - методы доступа к этим данным. В качестве методов используются процедуры и функции, а также конструкторы и деструкторы.&lt;br /&gt;&amp;#160; &amp;#160;Таким образом, указание методов при описании объекта подобно их опережающему описанию. Поскольку данные и методы инкапсулированы в одном объекте, все данные автоматически становятся глобальными, по отношению к любым методам и могут использоваться в них произвольным образом. Точнее говоря, любой метод объекта работает с невидимым оператором WITH, обеспечивающим ему доступ ко всем полям (как мы увидим далее, поля могут следовать в объявлении типа и после объявления метода и в этом смысле не являться для него глобальными). При обращении к методу ему передается особый идентификатор SELF, представляющий собой обобщенное имя экземпляра объекта.&amp;#160; &amp;#160; Любой метод может использовать идентификатор SELF, чтобы явно указать на принадлежащий объекту метод или поле. Например:&lt;br /&gt;type ТСоо = record&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;X.Y: integer; &lt;br /&gt;end; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;TPoint = object&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;X,Y: integer;&lt;br /&gt;Procedure lnit(Coo: TCoo);&lt;br /&gt;end;&lt;br /&gt;Procedure TPofntfCoo: TCoo):&lt;br /&gt;begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; with Coo do&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; begin&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Self.X := X; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Self.Y := Y; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; end;&lt;br /&gt;end; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;2.3&amp;#160; Наследование&lt;/p&gt;
						&lt;p&gt;Любой объект может быть объявлен потомком ранее описанного объекта. В этом случае он наследует все данные и методы объекта-родителя и может дополнять их своими данными и методами. При объявлении объекта-потомка за словом OBJECT в круглых скобках указывается имя объекта-родителя. У объекта может быть сколько угодно потомков, но только один родитель. При объявлении объекта-потомка TUNE перечислены лишь те данные и методы, которых недостает в объекте-родителе TPOINT, остальные TLINE автоматически наследует от своего родителя.&lt;br /&gt;Таким образом, описание объекта-потомка TLINE эквивалентно такому описанию объекта TLINE_ANOTHER:&lt;br /&gt;type&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; TLine_Another = object&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; X, Y Integer; {Координаты начала линии} &lt;br /&gt;Color word; {Цвет линии)&lt;br /&gt;Visible Boolean; (Признак светимости)&lt;br /&gt;XE.YE: Integer; {Координаты второго конца)&lt;br /&gt;Procedure SetLocation(NewX, NewY: integer);&lt;br /&gt;{Задает новое положение начала линии) &lt;br /&gt;Procedure SetColor(NewColor: word);&lt;br /&gt;{Устанавливает цвет линии) &lt;br /&gt;Procedure SetVIsible(Vis: Boolean);&lt;br /&gt;{Выводит или гасит линию}&lt;br /&gt;Procedure GetLocation(var XLoc, YLoc: integer);&lt;br /&gt;{Возвращает координаты начала линии}&lt;br /&gt;Function GetColor: word;&lt;br /&gt;{возвращает цвет линии}&lt;br /&gt;Function GetVisible: Boolean;&lt;br /&gt;{Возвращает признак светимости линии}&lt;br /&gt;Procedure SetLIneLocationfxl.X1,Y1,x2 ,y2: integer);&lt;br /&gt;{Задает новое положение линии на экране}&lt;br /&gt;Procedure GetLineLocatlon(var x11,y1l,x2l,y2l):integer);&lt;br /&gt;{Возвращает координаты линии} &lt;br /&gt;Procedure SetLineVJsible(vis: Boolean);&lt;br /&gt;{Выводит или гасит линию)}&lt;br /&gt;end; {Конец описания объекта TLIne_Another}&lt;br /&gt;Из этого примера видно главное преимущество наследования: при описании объекта-потомка вам нет необходимости заново описывать уж существующие в объекте-родителе поля и методы. Потомок просто&amp;#160; использует их нужным образом для реализации требуемых от него действий все, в чем нуждается потомок, &amp;#61485; это описать специфичные для него поля методы, недостающие в объекте-родителе.&lt;br /&gt;Наследование распространяется на любые объекты, в том числе и объекты-потомки: если в качестве родителя указано имя объекта, который сам по себе является потомком, новый объект наследует все свойства своего родителя и все свойства своих прародителей. Таким образом, наследование обеспечивает создание дерева родственных объектов.&lt;br /&gt;Как и любое другое дерево, дерево объектов имеет «корень» &amp;#61485; объект являющийся прародителем всех других объектов иерархии, и «ветви» порожденные от него потомки. По мере передвижения от корня к ветвям и перехода с ветви на ветвь объекты разрастаются в своих размерах, присоединяя к себе все новые и новые поля и методы. Если иерархия объектов хорошо продумана, на каждом ее уровне к объекту-родителю добавляются только необходимые поля и методы, поэтому в таком разрастании на самом деле нет ничего плохого. Более того, компоновщик Турбо Паскаля тщательно проверит откомпилированную программу и удалит из нее все лишнее - в том числе в исполняемую программу (ЕХЕ-файл) не будут включены методы, которые по каким-либо причинам не используются в программе.&lt;br /&gt;Механизм наследования &amp;#61485; это, пожалуй, самое мощное свойство ООП. Без наследования объекты превращаются в простую комбинацию данных и подпрограмм, не дающую качественных преимуществ по сравнению с традиционными для Паскаля процедурами и модулями. Наоборот, механизм наследования позволяет строить библиотеку по принципу «от простого - к сложному». Вводя с помощью наследования новый объект в свою библиотеку, программист в максимальной степени использует уже созданные (и, возможно, отлаженные) ранее объекты. Такой принцип конструирования программ называется восходящим программированием. В отличие от нисходящего программирования, он не дает возможности поэтапного создания программы. Мелкие детали реализации объектов заслоняют собою генеральный алгоритм, поэтому при использовании ООП рекомендуется сочетание подходов: методами нисходящего программирования генеральный алгоритм расчленяется на ряд относительно крупных и законченных в смысловом отношении фрагментов (модулей), а реализация этих фрагментов может основываться на объектно-ориентированном программировании.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;2.4&amp;#160; Полиморфизм&lt;/p&gt;
						&lt;p&gt;Объект-потомок может не только дополнять поля и методы родителя, но и заменять методы родителя на новые (заменять поля родителя нельзя!). Например, вместо правила SETLINEVISIBLE мы могли бы в объекте TLINE объявить правило SETVISIBLE, которое в этом случае перекроет (заменит собой) одноименное правило объекта-родителя TPOINT. В результате, к разным родственным объектам TPOINT и TUNE можно было бы применять одноименные правила SETVISIBLE, обеспечивающие сходные в смысловом отношении действия - показать или сделать невидимым графический объект. Свойства, позволяющее называть разные алгоритмические действия одним именем, называется полиморфизмом.&lt;br /&gt;В Турбо Паскале существует возможность связывания данных с методами на этапе исполнения программы - такое связывание называется поздним. При позднем связывании в описании объекта соответствующий метод дополняется стандартной директивой VIRTUAL. Такие методы называются виртуальными. В отличие от этого методы, с которыми осуществлено раннее связывание (на этапе компиляции), называются статическими.&lt;br /&gt;Появление директивы VIRTUAL в объявлении метода как бы предупреждает компилятор: «Пока ты не знаешь, что я хочу. Придет время -запроси образец!». Встретившись с таким объявлением, компилятор не будет устанавливать связь объекта с методом. Вместо этого он создаст специальную таблицу, которая называется таблицей виртуальных методов (ТВМ). В этой таблице хранятся адреса точек входа всех виртуальных методов. Для каждого типа объекта создается своя ТВМ и каждый экземпляр объекта пользуется этой единственной для объектов данного типа таблицей. ТВМ обеспечивает работающую программу механизмом связывания объекта с полями. Фактическое связывание осуществляется с помощью обращения к конструктору - специальному методу, который во всем подобен обычной процедуре, но в заголовке вместо PROCEDURE содержит зарезервированное слово CONSTRUCTOR. В момент обращения к конструктору в специальное поле объекта заносится адрес нужной ТВМ, в результате чего все виртуальные методы (в том числе и унаследованные от родителей!) получают доступ к нужным полям.&lt;br /&gt;Конструктор может не обращаться к виртуальному методу и даже вообще быть пустым, т.е. не иметь никаких исполняемых операторов (как в нашем примере), тем не менее, объект будет инициализирован правильно. Дело в том, что заголовок CONSTRUCTOR предписывает компилятору создать специальный набор машинных инструкций, который инициализирует ТВМ и исполняется в момент обращения к конструктору до выполнения его (конструктора) содержательной части. В объекте может быть сколько угодно конструкторов, но ни один из них не может быть виртуальным.&lt;br /&gt;Выбор того, каким именно - статическим или виртуальным - должен быть метод, зависит от специфики задачи и Ваших вкусов. Однако следует помнить, что статический метод никогда не может быть перекрыт виртуальным и наоборот. Список формальных параметров статического метода может отличаться от списка в перекрываемом методе, а для виртуальных методов оба списка должны быть идентичны. И, наконец, виртуальные объекты занимают несколько большую память (за счет ТВМ) и вызов виртуальных методов исполняется чуть медленнее, чем вызов статических. Тем не менее, всегда, когда это возможно, следует отдавать предпочтение виртуальным методам, т.к. они придают программе дополнительную гибкость. Всегда может оказаться, что рано или поздно мы или кто-то из пользователей нашей библиотеки захочет модифицировать ту или иную ее функции. В этом случае перекрытие виртуальных методов позволит предельно упростить задачу. Отметим, что стандартная функция Турбо Паскаля TypeOf(TObj) возвращает ссылку на ТВМ для объекта типа TObj. Эту ссылку можно использовать, например, для проверки того, с каким именно объектом работает в данный момент виртуальный метод:&lt;br /&gt;If TypeOf(Self) - TypeOf(TA) then ... &lt;br /&gt;И еще одно замечание. Между экземплярами родственных объектов возможен обмен информацией с помощью операторов присваивания. Например, если PoinTl и Point2 - экземпляры объекта TPOINT, то допустимо присваивание &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Point1 := Point2;&lt;br /&gt;или &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PoinT2 := Point1;&lt;br /&gt;Присваивания разрешены и между экземплярами родственных объектов разных уровней иерархии, однако в этом случае экземпляру объекта-родителя можно присвоить экземпляр потомка, но не наоборот! Например, разрешается присваивание&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Point := Line;&lt;br /&gt;но недопустимо&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Line := Point; &lt;br /&gt;если LINE - потомок POINT. Это происходит по той причине, что потомок содержит все поля родителя, поэтому при присваивании потомка родителю эти поля получат правильные значения. Обратное же присваивание оставит без изменения «лишние» поля потомка, что является недопустимым.&lt;br /&gt;При использовании виртуальных правил следует остерегаться присваивания между экземплярами объектов, во всяком случае, необходимо помнить, что простое присваивание не заменяет собой инициацию виртуального объекта. Если, например, LINE и POINT - виртуальные объекты, то присваивание&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;POINT:= Line;&lt;br /&gt;не инициирует объект POINT, даже если объект LINE был перед этим инициирован. После такого присваивания необходим вызов конструктора объекта POINT перед обращением к любому виртуальному методу этого объекта.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Заключение&lt;/p&gt;
						&lt;p&gt;Мы завершаем рассмотрение основ программирования на Турбо Паскале. Среди них вычисления и обработка информации, использование объектно-ориентированного программирования – словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.&lt;br /&gt;Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем,&amp;#160; в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Сергей)</author>
			<pubDate>Wed, 15 Oct 2008 01:43:35 +0400</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=29#p29</guid>
		</item>
		<item>
			<title>Баба Лена</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=25#p25</link>
			<description>&lt;p&gt;&lt;strong&gt;EXTREMAL&lt;/strong&gt;&lt;br /&gt;Тогды спокойной ночи тебе))&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Реван)</author>
			<pubDate>Mon, 13 Oct 2008 02:11:18 +0400</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=25#p25</guid>
		</item>
		<item>
			<title>HTML-Учебник</title>
			<link>https://babalena.bbon.ru/viewtopic.php?pid=20#p20</link>
			<description>&lt;p&gt;Вообщем сейчас HTML проходим. если кому чего не понятно - вот ссылка - качаем первый учебник! Очень хороший! Все понятно описано, даже тем кому влом учить - все понятно..&lt;br /&gt;&lt;a href=&quot;http://javascripthelp.narod.ru/books_for_webmaster.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://javascripthelp.narod.ru/books_for_webmaster.html&lt;/a&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Реван)</author>
			<pubDate>Mon, 13 Oct 2008 01:57:04 +0400</pubDate>
			<guid>https://babalena.bbon.ru/viewtopic.php?pid=20#p20</guid>
		</item>
	</channel>
</rss>
