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

<channel>
	<title>Образовательный блог - всё для учебы</title>
	<atom:link href="http://all4study.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://all4study.ru</link>
	<description>Научные статьи для Вашей учебы на all4study.ru!</description>
	<lastBuildDate>Mon, 14 May 2012 20:02:50 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Конденсационные ЭГД-генераторы заряженного аэрозоля</title>
		<link>http://all4study.ru/elektrotexnologiya/kondensacionnye-egd-generatory-zaryazhennogo-aerozolya.html</link>
		<comments>http://all4study.ru/elektrotexnologiya/kondensacionnye-egd-generatory-zaryazhennogo-aerozolya.html#comments</comments>
		<pubDate>Mon, 14 May 2012 09:23:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Электротехнология]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2970</guid>
		<description><![CDATA[Работу устройства поясним, используя рисунок из предыдущего поста. В качестве рабочей среды применяется водяной пар, который поступает в сходящееся коническое сопло слева. При движении в сходящемся коническом сопле скорость его движения возрастает, а давление и температура падают. Режим подбирается таким, чтобы перед входом в цилиндрическую часть сопла пар переходил в насыщенное состояние, и в результате [...]]]></description>
			<content:encoded><![CDATA[<p>Работу устройства поясним, используя рисунок из <a href="http://all4study.ru/elektrotexnologiya/aerozolnye-elektro-gazodinamicheskie-ustrojstva.html">предыдущего поста</a>. В качестве рабочей среды применяется водяной пар, который поступает в сходящееся коническое сопло слева. При движении в сходящемся коническом сопле скорость его движения возрастает, а давление и температура падают. Режим подбирается таким, чтобы перед входом в цилиндрическую часть сопла пар переходил в насыщенное состояние, и в результате конденсации образовывались капли воды.</p>
<p>Зарядка обеспечивается за счет коронного разряда между иглой 2 и кольцевым электродом 3 при подаче постоянного напряжения на иглу. Положительные ионы во внешней области коронного разряда осаждаются на каплях и на выходе цилиндрической части устройства формируется поток заряженного аэрозоля.</p>
<p>Правая часть сопловой системы профилируется таким образом, чтобы избежать накопления объемного заряда на выходе (скорость потока должна быть больше 15÷20 м/с) и обеспечить отсутствия разрядов между струей заряженного аэрозоля и заземленными частями оборудования вблизи выхода генератора.</p>
<p>Основной характеристикой генераторов заряженного аэрозоля является ток выноса, который измеряется в цепи сетчатого коллектора, размещенного на выходе генератора. Современные генераторы обеспечивают ток выноса до 200 мкА.</p>
<h2>ЭГД-генераторы</h2>
<p>Схема простейшего варианта ЭГД-генератора представлена на рис. 1. Это устройство служит для преобразования энергии газового потока в электрическую энергию. Работает устройство следующим образом.</p>
<p>Высокоскоростной газовый поток (V<sub>пот</sub> ≥ 50 м/с) содержащий мелко дисперсные частицы (2а ≈ 0,1÷0,7 мкм) поступает в зарядное устройство, образованное коронирующим (сетка с иглами) и заземленным (сетка) электродами. Частица заряжается во внешней зоне коронного разряда. Если на электрод 3 (рис. 1) подано постоянное напряжение положительной полярности, то частицы приобретают положительный заряд.</p>
<p>Далее заряженные частицы с потоком поступают в рабочий промежуток между электродами 4 и 5. Коллектор 5 состоит из параллельных рядов металлической сетки для того, чтобы заряженные частицы, сталкиваясь с поверхностью коллектора, отдавали ему свой заряд.</p>
<p>Таким образом на коллекторе накапливается заряд Q<sub>к</sub> и он приобретает потенциал U<sub>к</sub> относительно заземленных электродов. Если R<sub>н</sub> представляет собой сопротивление нагрузки, то под действием напряжения U<sub>к</sub> через него будет протекать ток.<br />
<center><img width=320 alt="Схема ЭГД-генератора" src=http://all4study.ru/img/el/142.jpg><br />
Рис.1. Схема ЭГД-генератора<br />
1 &#8211; канал с диэлектрическими стенками;<br />
2 &#8211; газовый поток;<br />
3 &#8211; коронирующий электрод зарядного<br />
устройства;<br />
4 &#8211; заземленный электрод-сетка;<br />
5 &#8211; коллектор; R<sub>н</sub> – нагрузка.</center></p>
<p>В рабочем промежутке на частицы действует электрическая сила F<sub>q</sub>=Eq, обусловленная напряжением на коллекторе, и противоположно действующая гидродинамическая сила, увлекающая частицы с потоком. Накопление заряда на коллекторе и, следовательно, увеличение напряжения U<sub>кол</sub> будет происходить до тех пор, пока газодинамическая сила будет превосходить тормозящую электрическую силу. Другой возможный предельный случай определяется пробоем из-за увеличения напряженности в рабочем промежутке.</p>
<p>В качестве характерных параметров ЭГД-генераторов можно указать напряжение на коллекторе ≈100 кВ и ток в цепи нагрузки ≈100 мкА при напряжении на зарядном устройстве ≈10 кВ и примерно том же значении тока. Таким образом, выигрыш в получаемой мощности соответствует соотношению между напряжением на коллекторе и напряжением на зарядном устройстве.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/elektrotexnologiya/kondensacionnye-egd-generatory-zaryazhennogo-aerozolya.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Целые числа, сравнения &#8211; дискретная математика</title>
		<link>http://all4study.ru/matematika/celye-chisla-sravneniya-diskretnaya-matematika.html</link>
		<comments>http://all4study.ru/matematika/celye-chisla-sravneniya-diskretnaya-matematika.html#comments</comments>
		<pubDate>Mon, 14 May 2012 09:10:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Математика]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2964</guid>
		<description><![CDATA[Z = {&#8230;, -3, -2, -1, 0, 1, 2, 3, &#8230;}, N={0,1,2,3,&#8230;}, N+ = {1,2,3,&#8230;} Теорема (деления целых чисел): Пусть b∈N+. Пусть всякое a∈Z единственным образом представимо в виде a=b*q+r, 0≤b, где b – делитель, q – частное, r – остаток. Теорема: Для всяких целых a≥1, h≥r, при некотором S≥0 существует единственное представление a в [...]]]></description>
			<content:encoded><![CDATA[<p>Z = {&#8230;, -3, -2, -1, 0, 1, 2, 3, &#8230;}, N={0,1,2,3,&#8230;}, N<sub>+</sub> = {1,2,3,&#8230;}<br />
<strong>Теорема</strong> (деления целых чисел): Пусть b∈N<sub>+</sub>. Пусть всякое a∈Z единственным образом представимо в виде a=b*q+r, 0≤b, где b – делитель, q – частное, r – остаток.</p>
<p>Теорема: Для всяких целых a≥1, h≥r, при некотором S≥0 существует единственное представление a в виде a=a<sub>S</sub>h<sup>S</sup> + a<sub>S-1</sub>h<sup>S-1</sup> + &#8230; + a<sub>1</sub>h<sup>1</sup> + a<sub>0</sub>, где 0≤a<sub>i</sub>≤h-1 (i=0,1,&#8230;,S-1), 1≤a<sub>S</sub>≤h-1.</p>
<p><strong>Замечание</strong>: Представление a=a<sub>S</sub>h<sup>S</sup> + a<sub>S-1</sub>h<sup>S-1</sup> + &#8230; + a<sub>1</sub>h<sup>1</sup> + a<sub>0</sub> есть представление целого числа a в h- ичной системе счисления.<br />
a=(a<sub>S</sub>,a<sub>S-1</sub>, &#8230;, a<sub>1</sub>, a<sub>0</sub>)</p>
<p><strong>Определение</strong>: Натуральное число   простое, если   делится только на 1 и на само себя.</p>
<p><strong>Замечание</strong>: Существует бесконечно много простых чисел.</p>
<p><strong>Теорема</strong> (Основная теорема арифметики): Всякое целое число, большее 1, можно единственным образом представить в виде произведения простых множителей (с точностью до их порядка).</p>
<p><strong>Замечание</strong>: по теореме о факторизации a=p<sub>1</sub><sup>a1</sup>*p<sub>2</sub><sup>a2</sup>*&#8230;*p<sub>k</sub><sup>ak</sup> &#8211; каноническая факторизация (p<sub>1</sub> &lt; p<sub>2</sub>&lt;&#8230;&lt;p<sub>k</sub>). Иногда в каноническую факторизацию включают отсутствующий множитель в нулевой степени для всех простых чисел от «2» до «p<sub>k</sub>».</p>
<p>Факторизация простых чисел считается технически трудно осуществимой. Например, число b -120 десятичных знаков для факторизации потребует миллионы лет компьютерного времени.</p>
<p><strong>Определение</strong>: Общий делитель ОД (a,b,&#8230;,l) для a,b,&#8230;,l делит все эти числа. Наибольший общий делитель НОД (a,b,&#8230;,l) есть максимум из всех общих делителей для a,b,&#8230;,l.<br />
НОД (0,0,&#8230;,0)=0.</p>
<p><strong>Теорема</strong>: Если a>1, b>1 и их одиночные факторизации a=p<sub>1</sub><sup>a1</sup>*p<sub>2</sub><sup>a2</sup>*&#8230;*p<sub>S</sub><sup>aS</sup>, b=p<sub>1</sub><sup>a1</sup>*p<sub>2</sub><sup>a2</sup>*&#8230;*p<sub>S</sub><sup>aS</sup>, где p<sub>1</sub>,p<sub>2</sub>,&#8230;,p<sub>s</sub> есть все различные простые делители для a и b, то НОД(a,b)=p<sub>1</sub><sup>min(a1,b1)</sup>*p<sub>2</sub><sup>min(a2,b2)</sup>*&#8230;*p<sub>S</sub><sup>min(aS,bS)</sup>.</p>
<p><strong>Замечание</strong>: Теорема переносится на несколько чисел.<br />
Теорема: ∀a<sub>1</sub>,&#8230;,a<sub>n</sub>∈Z, ∃λ<sub>1</sub>, &#8230;, λ<sub>n</sub>∈Z такие, что НОД (a<sub>1</sub>,&#8230;,a<sub>n</sub>)=∑λ<sub>i</sub>*a<sub>i</sub>.</p>
<p><strong>Замечание</strong>: ∀a<sub>1</sub>, a<sub>2</sub>∈Z, ∃λ<sub>1</sub>, λ<sub>2</sub>∈Z такие, что НОД (a<sub>1</sub>,a<sub>2</sub>)=λ<sub>1</sub>*a<sub>1</sub> + λ<sub>2</sub>a<sub>2</sub>.</p>
<p>Существует расширенный алгоритм Евклида для вычисления λ<sub>1</sub> и λ<sub>2</sub>.</p>
<p><strong>Определение</strong>: Общее кратное ОК (a,b,&#8230;,l) чисел a,b,&#8230;,l есть всякое число, кратное каждому из чисел a,b,&#8230;,l, т.е. число, делящееся на каждое из a,b,&#8230;,l. Наименьшее общее кратное НОК (a,b,&#8230;,l) есть минимум из всех общих кратных для a,b,&#8230;,l.</p>
<p>Теорема: Если a=p<sub>1</sub><sup>a1</sup>*p<sub>2</sub><sup>a2</sup>*&#8230;*p<sub>S</sub><sup>aS</sup> и b=p<sub>1</sub><sup>a1</sup>*p<sub>2</sub><sup>a2</sup>*&#8230;*p<sub>S</sub><sup>aS</sup> есть канонические факторизации для a и b, где p<sub>1</sub>,p<sub>2</sub>,&#8230;,p<sub>s</sub> есть все различные простые делители для a и b, то НОК(a,b) = p<sub>1</sub><sup>max(a1,b1)</sup>*p<sub>2</sub><sup>max(a2,b2)</sup>*&#8230;*p<sub>S</sub><sup>max(aS,bS)</sup>.</p>
<p><strong>Замечание</strong>: [a<sub>1</sub>,...,a<sub>n</sub>] = a<sub>1</sub>,&#8230;,a<sub>n</sub>/(a<sub>1</sub>,&#8230;,a<sub>n</sub>).</p>
<p><strong>Определение</strong>: Функция Эйлера a и φ(a), которые взаимно просты с a.</p>
<p><strong>Замечание</strong>: Целые a и b взаимно просты если НОД(a,b)=1.</p>
<p><strong>Определение</strong>: Целые числа a и b сравнимы по mod m (a≡b(mod m)), если (a-b):m.</p>
<p><strong>Теорема</strong>: Следующие утверждения эквивалентны:<br />
1) (a≡b(mod m)).<br />
2) (a-b):m.<br />
3) Остатки от деления a и b на m одинаковы, т.е. a и b при делении на   дают один и тот же остаток.</p>
<p><strong>Замечание</strong>: Отношение сравнения целых чисел есть отношения эквивалентности.</p>
<p><strong>Определение</strong>: Класс вычетов по mod m есть множество всех чисел, сравнимых между собой по mod m.</p>
<p><strong>Замечание</strong>: Класс C<sub>r</sub> = {a = m*q + r: q∈Z, 0≤z≤m-1}.</p>
<p><strong>Определение</strong>: Вычет по mod m есть любое число из класса вычетов по mod m.<br />
Пусть m=5.<br />
&#8230;-10,-5,0,5,10,&#8230; класс C<sub>0</sub><br />
&#8230;-9,-4,1,6,11,&#8230; класс C<sub>1</sub><br />
&#8230;&#8230;<br />
&#8230;-6,-1,4,9,14,&#8230; класс C<sub>4</sub></p>
<p>Полная система вычетов есть любой набор вычетов по одному из каждого класса.<br />
Наименьшая неотрицательная полная система вычетов Z<sub>m</sub> = {0,1,..,m-1}.</p>
<p><strong>Теорема</strong>: Если НОД(a,m) и x пробегает полную систему вычетов для Z<sub>m</sub>.</p>
<p><strong>Замечание</strong>: Можно ввести операции над классами вычетов, связав их с операциями в Z<sub>m</sub>.<br />
a + b(mod m) = rest(a+b, m)<br />
a * b(mod m) = rest(a*b, m)<br />
где операция rest &#8211; остаток. Это модульные операции.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/matematika/celye-chisla-sravneniya-diskretnaya-matematika.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Методика создания клиента в Delphi</title>
		<link>http://all4study.ru/oot/metodika-sozdaniya-klienta-v-delphi.html</link>
		<comments>http://all4study.ru/oot/metodika-sozdaniya-klienta-v-delphi.html#comments</comments>
		<pubDate>Sun, 13 May 2012 14:47:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Объектно-ориентированные технологии]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2961</guid>
		<description><![CDATA[а) Для взаимодействия с СОМ-сервером целесообразно создать: ♦ Проект, например, с именем ComTest.Dpr. ♦ Блок с описанием интерфейса. Он может быть полностью аналогичен файлу, созданному при проектировании сервера и просто скопирован. ♦ Блок с экранной формой, например, с именем ComForm. В этом блоке следует подключить блок с интерфейсом IntfCom и включить константу с GUID класса [...]]]></description>
			<content:encoded><![CDATA[<p>а) Для взаимодействия с СОМ-сервером целесообразно создать:<br />
♦ Проект, например, с именем ComTest.Dpr.<br />
♦ Блок с описанием интерфейса. Он может быть полностью аналогичен файлу, созданному при проектировании сервера и просто скопирован.<br />
♦ Блок с экранной формой, например, с именем ComForm. В этом блоке следует подключить блок с интерфейсом IntfCom и включить константу с GUID класса Class_Sum:</p>
<blockquote><p>Unit ComForm;<br />
Uses.., ComObj, IntfCom; Const<br />
Class_Sum:TGUID=&#8217;{EODBF9F4-2C63-HD6-8E8F-00608C93D419}&#8217;;</p></blockquote>
<p>б) В блоке с экранной формой следует описать переменную интерфейсного типа, например, в разделе Private класса TForm1.</p>
<blockquote><p>Private<br />
pSum: ISum; // Указатель (ссылка) на интерфейс</p></blockquote>
<p>в) Для создания объекта и запроса на услуги объекта (вызова методов) можно включить следующую строку кода:</p>
<blockquote><p>Procedure TForm1.ButtonlCIick(Sender: TObject);<br />
Var I: Integer;<br />
Begin<br />
pSum:=CreateComObject(Class_Sum) As ISum;// Получаем ссылку</p></blockquote>
<p>д) Особенность работы с сервером с несколькими объектами. Отличия в реализации клиента заключаются в том, что в блок с экранной формой СоmForm необходимо включить:<br />
♦ в объявление класса формы &#8211; переменные-ссылки на каждый дополни<br />
тельный интерфейс, аналогично pSum.<br />
♦ типизированные константы, аналогичные Class_Sum.<br />
♦ реализации процедур вызова всех дополнительных объектов, аналогичные TForm1.ButtonlClick.</p>
<p>е) Особенность работы с объектом, реализующим несколько интерфейсов. В блок с экранной формой ComFonn необходимо включить:<br />
♦ в объявление класса формы &#8211; переменные-ссылки на каждый дополни<br />
тельный интерфейс, аналогично pSum.<br />
♦ реализации процедур вызова всех дополнительных объектов, в которых, однако, получение ссылки (назовем ее pFac) на необходимый интерфейс (назовем его IFac) должно выглядеть примерно следующим образом:</p>
<blockquote><p>pSum:=CreateComObject(Class_Sum) As ISum;<br />
 pSum.QueryInterface(IFac, pFac);</p></blockquote>
<p>Или, после получения указателя pSum на интерфейс ISum: </p>
<blockquote><p>pFac:=pSum As IFac;</p></blockquote>
<p>Далее можно вызывать методы интерфейса IFac.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/oot/metodika-sozdaniya-klienta-v-delphi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CGI (Common Gateway Interface)</title>
		<link>http://all4study.ru/sql/cgi-common-gateway-interface.html</link>
		<comments>http://all4study.ru/sql/cgi-common-gateway-interface.html#comments</comments>
		<pubDate>Sun, 13 May 2012 14:26:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2955</guid>
		<description><![CDATA[1) Общие сведения о CGI С 1993 года CGI является очень часто используемой технологией создания трехзвенных клиент/серверных приложений в Интернет. CGI-приложение совместно с Web-сервером выполняют роль сервера приложений в трехзвенной архитектура клиент/сервер. CGI – набор правил (спецификация), согласно которым пользовательские программы, запускаемые на Web-сервера, могут возвращать данные клиенту в виду HTML-документа. CGI – это консольное [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1) Общие сведения о CGI</strong><br />
С 1993 года CGI является очень часто используемой технологией создания трехзвенных клиент/серверных приложений в Интернет. CGI-приложение совместно с Web-сервером выполняют роль сервера приложений в трехзвенной архитектура клиент/сервер. CGI – набор правил (спецификация), согласно которым пользовательские программы, запускаемые на Web-сервера, могут возвращать данные клиенту в виду HTML-документа. CGI – это консольное приложение, загружаемое в ответ на запрос клиента на выборку или обновление данных, функционирующее как отдельный однопоточный процесс под управлением Web-сервера и выгружаемое сразу после завершения работы. WinCGI – Windows реализация CGI.</p>
<p><center><img width=550 alt="Общая структура взаимодействия web-клиента с СУБД и БД по CGI" src=http://all4study.ru/img/bd/43.jpg></center></p>
<p><strong>2) Варианты реализации</strong><br />
Программа, запускаемая Web-сервером в соответствии со спецификацией CGI, называется CGI-скриптом. Она может быть написана на любом языке программирование (С, Basic, Pascal и т.п.) или на командной языке (языки shell, perl и т.п.), допускающем создание исполняемых модулей. CGI-скрипт исполняет роль посредника между Web-сервером и другими серверами, например, сервером БД, и поэтому часто называется шлюзом. CGI-программы по умолчанию размещаются в каталоге C:\InetPub\Scripts|Cgi-bin, но можно создавать и свой виртуальный каталог.</p>
<p><strong>3) Способы взаимодействия CGI и WEB-сервера</strong><br />
В спецификации CGI предусмотрено несколько способов взаимодействия CGI-программы и Web-сервера, отличающиеся вариантом обмена данными между сервером и программой.<br />
• Передача параметров в командной строке (например, с помощью дескриптором ISINDEX, помещаемого в раздел &lt;HEAD> HTML-документа, или FORM-URLENCODED).<br />
• Передача значений переменных окружения (их более 17 штук).<br />
• Передача данных через стандартный входной поток (STDIN, STDOUT).</p>
<p>Запрос типа ISINDEX – это запрос вида: http://site.ru/somthig-cgi/cgi-script?слово1+слово2+слово3<br />
Главным здесь является список слов после символа «?». Слова перечисляются через символ «+» и для кириллицы не кодируются в шестнадцатеричные последовательности. Последовательность слов после символа «?» будет размещена в переменной окружения QUERY_STRING.</p>
<p>Запрос типа FORM-URLENCODED – это запрос вида: http://site.ru/something-cgi/cgi-script?field=word1&#038;field2=word2<br />
Данные формы записываются в виде пар «имя_поля-значение», которые разделены символом «&#038;».</p>
<p>Переменные окружения, которые не зависят от типа запроса:<br />
<strong>SERVER_SOFTWARE</strong> – показывает название и версию http-сервера в формате: название/версия.<br />
<strong>SERVER_NAME</strong> – показывает доменное имя сервера.<br />
<strong>SERVER_ADDR</strong> – показывает IP сервера.<br />
<strong>SERVER_ADMIN</strong> – e-mail администратора web-сервера.<br />
<strong>GATEWAY_INTERFACE</strong> – версия CGI на момент компиляции httpd демона в формате: CGI/версия<br />
<strong>DATE_GMT</strong> – текущая дата и время во временной зоне GMT.<br />
<strong>DATE_LOCAL</strong> – текущие дата и врем во временной зоне сервера.<br />
<strong>DOCUMENT_ROOT</strong> – путь к главному каталогу web-сервера.<br />
Переменные окружения, которые зависят от типа запроса:<br />
<strong>SERVER_PROTOCOL</strong> – протокол, по которому был получен запрос.<br />
<strong>SERVER_PORT</strong> – порт, на который был получен запрос.<br />
<strong>REQUEST_METHOD</strong> – тип запроса: POST, GET и так далее.<br />
<strong>REQUEST_URL</strong> – страница, отправившая запрос.<br />
<strong>SCRIPT_NAME</strong> – URL скрипта без имени сервера.<br />
SCRIPT_FILENAME – полное имя файла скрипта на диске.<br />
<strong>QUERY_STRING</strong> – информация, содержащаяся в командной строке вызова скрипта (после ? в URL’е).<br />
<strong>CONTENT_TYPE</strong> – MIME-тип данных, передаваемых скрипту.<br />
<strong>CONTENE_LENGTH</strong> – длина передаваемых данных.</p>
<h2>Поток стандартного вывода:</h2>
<p>Ввод данных в скрипт через поток стандартного ввода осуществляется только при использовании метода доступа к ресурсу (к скрипту) POST. При этом в переменную окружения CONTENT_LENGTH помещается число символов, которое необходимо считать из потока стандартного ввода скрипта, а в переменную окружения CONTENT_TYPE помещается тип кодирования данных, которые считывают из потока стандартного ввода. При посимвольном считывании в С можно применить, например, такой фрагмент кода:</p>
<blockquote><p>int n;<br />
char *buf;<br />
n=atoi(getenv(*CONTENT_LENGTH*));<br />
buf=(char *)malloc(n+1);<br />
memset(buf, ‘\000’,n+1);<br />
for (i=0; iBR> {buf[i]=getchar()}<br />
…<br />
free(buf);</p></blockquote>
<p><strong>4) Методы передачи данных</strong><br />
a) Метод GET выполняет передачу данных CGI-программе через переменные окружения (среды), которые фактически добавляются к URL через разделительный знак ?.</p>
<p>Прежде всего, для этих целей используется переменная query_string – длинная строка, состоящая из пар имя = значение, отделяемых друг от друга символом амперсанда &#8211; &#038;. Получается быстро, однако объем передаваемых данных не превышает 256÷1024 байт в зависимости от типа Web-сервера.</p>
<p>b) Метод POST выполняет передачу данных через стандартный поток ввода stdin (Ini-файл для WinCGI). Фактически данные добавляются к телу HTML-запроса. Количество передаваемых байт указывается в переменной среды content_length. Это более медленный способ передачи данных, но объем передаваемых данных не ограничен.</p>
<p>c) Параметр HREF тэга A<br />
Помимо методов GET и POST тэга <FORM>, можно вызвать CGI-программу через параметр HREF тэга ссылки &lt;A>. Параметры передаются после имени файла за знаком ?.<br />
&lt;A HREF=”http://myserver/cgi-bin/mycgi.exe”><br />
Передача данных аналогична использованию метода GET.</p>
<p><strong>5) Диаграмма последовательностей</strong><br />
<center><img width=550 alt="Общая структура взаимодействия web-клиента с СУБД и БД по CGI" src=http://all4study.ru/img/bd/44.jpg></center><br />
<u>Действие 1</u>: Пользователь просматривает HTML-документ и встречает ссылку на страницу, содержащую форму (используется тэг &lt;FORM>), предназначенную, например, для запроса к БД. Пользователь вводит в полях ввода на форме требуемые данные и нажимает на кнопку SUBMIT (отправить) или графическую кнопку IMAGE. HTML-тэг &lt;FORM> имеет два обязательных атрибута: METHOD и ACTION. Атрибут ACTION определяет URL, в качестве которого должно быть имя CGI-программы, обычно размещаемой в каталоге. Атрибут METHOD, обычно принимающий значение GET или POST, определяет механизм передачи данных серверу.<br />
<FORM METHOD=”POST” ACTION=”http://myserver/cgi-bin/mycgi.exe”></p>
<p><u>Действие 2</u>: Web-браузер собирает введенные на форме данные, определяет способ передачи данных в зависимости от указанного метода (GET или POST) и передает вызов Web-серверу.</p>
<p><u>Действие 3</u>: Web-сервер получает вызов через сокетное соединение. Сервер разбирает сообщение на части и определяет, что это метод POST или GET. Далее запускается CGI-взаимодействие.</p>
<p><u>Действие 4</u>: Web-сервер задает переменны окружения (в ОС MS-DOS они задаются командой Set). Переменные окружения (environment variable) играют роль доски объявлений при обмене данными между Web-сервером и CGI-программой. Обычно используют следующие переменные: server_name, request_method, path_info, script_name, content_type, content_length и ряд других. Когда CGI-программа вызывается посредством формы (наиболее распространенный вариант), браузер передает серверу длинную строку, в начале которой указан полный путь до CGI-программы. Далее следуют другие данные, называемые данными пути, и передаются CGI-программе через переменную окружения path_info: http://myserver/cgi-bin/mycgi.exe/showrecord?recNo=20 где: showrecord? – данные пути, recNo=20 – строка запроса.</p>
<p><u>Действие 5</u>: Web-сервер запускает CGI-программу, располагаемую по умолчанию в каталоге C:\InetPub\scripts|cgi-bin. Однако можно создавать и свои виртуальные каталоги.</p>
<p><u>Действие 6</u>: CGI-программа анализирует переменные окружения и определяет, что отвечает на POST. В языке С доступ к переменным окружения получают с помощью функции getenv().</p>
<p><u>Действие 7</u>: CGI-программа получает тело сообщения через стандартный поток ввода (stdin). Переменная окружения content_length сообщает, сколько данных находится в сообщении. В языке С можно воспользоваться функциями fread или scanf для чтения данных из потока.</p>
<p><u>Действие 8</u>: CGI-программа выполняет некоторые действия, например, запрос к БД.</p>
<p><u>Действие 9</u>: CGI-программа вне зависимости от метода GET или POST возвращает результат всегда через стандартный поток выхода (stdout). В языке С используются функции printf или fwrite.</p>
<p><u>Действие 10</u>: Web-сервер возвращает результат Web-браузеру.</p>
<p><strong>6) Особенности доступа</strong><br />
• Доступ к БД из CGI может быть выполнен с помощью программного интерфейса ODBC или объектных интерфейсов OLE DB или ADO. В Delphi используется BDE.<br />
• Безопасность доступа обеспечивается использованием протоколов SSL (Secure Sockets Layer), S-HTTP (Secure HTTP), брандмауэров.<br />
• Для обеспечения большей интерактивности CGI-программы на некоторых Web-серверах можно применять файлы magic cookies или просто cookies, обозначающие серверные данные, сохраненные на клиенте.<br />
• Некоторые серверы могут производить синтаксический анализ отправляемого браузеру HTML-документа и предоставляют набор команд для вставки внутрь комментариев: текущий даты, времени, сведения о последнем изменении документа и ряд других. Это называется серверной вставкой SSI – Server-Side Include.</p>
<h2>7) Достоинства CGI</h2>
<p>• Языковая независимость, заключающаяся в возможности написания CGI-программ на любом языке программирования или командном языке. Так командный язык Perl обеспечивает кроссплатформенность CGI (PCGI).<br />
• Процессорная независимость, заключающаяся в том, что при запуске CGI-программы порождается отдельный от Web-сервера процесс и в случае ошибки она не может «сломать» Web-сервер.<br />
• Открытость стандарта.<br />
• Архитектурная независимость от реализации сервера, т.е. его можно использовать на любом сервере.<br />
• Прозрачность использования.</p>
<h2>8) Недостатки CGI</h2>
<p>• Большие временные затраты, обусловленные запуском отдельного однопоточного процесса для каждого клиентского запроса, заканчивающегося по его окончании. Это приводит к невысокому быстродействию. Есть разработка FastCGI, но она не очень широко поддерживается.<br />
• Трудно «вести» БД, поскольку для каждого запроса запускается отдельный процесс, т.е. требуется новое подключение.<br />
• CGI ограничен по способности функционирования, поскольку спецификация предусматривает только простую ответную роль программы при генерации результата на запрос пользователя.<br />
• CGI неудобен тем, что жестко привязан к Web-страницам.</p>
<p><strong>9) Создание CGI в Delphi</strong><br />
• Подход Delphi для создания CGI<br />
CGI и WinCGI-приложения в Delphi относятся к классу TCGIApplication. Генерируемый мастером код приложений CGI и WinCGI практически одинаков и отличаются только строкой директивы компилятора: {$APPTYPE CONSOLE|GUI}. Для создания CGI-приложения следует из главного меню Delphi 5÷7 выполнить команды: File\New.</p>
<p>В открывшемся многостраничном окне New Items репозитория объектов Delphi следует выбрать страницу Business и активизировать пиктограмму DB Web Application Wizard. Далее отвечать на вопросы.</p>
<p>• Структурная схема модуля CGI на Delphi<br />
<center><img width=550 alt="Общая структура взаимодействия web-клиента с СУБД и БД по CGI" src=http://all4study.ru/img/bd/45.jpg></center><br />
• Обзор принципов реализации CGI на Delphi<br />
WebDispatcher с помощью объекта WebRequest анализирует поступающие запросы и выбирает нужный объект Action, который передает запрос на сервер БД. Соответствующий Producer является генератором контента HTML-кода, который переправляется через объект WebResponse на Web-сервер и далее клиенту. В объектах Producer доступны тэги вида &lt;# …..>, позволяющие взаимодействовать коду на Pascal и коду на HTML. Для Web-браузера эти тэги не имеют смысла, однако помогают подставлять данные из БД внутрь страниц на HTML.</p>
<p><strong>• Пример программы CGI</strong></p>
<blockquote><p>Program MyCGI;<br />
{$APPTYPE CONSOLE} // {$APPTYPE GUI} – для WinCGI<br />
Uses Webbroker, HTTPApp, CGIApp, Unit1 In ‘Unit1.Pas’ {WebVodule1: TWebModule}<br />
{$R*.RES}<br />
Begin<br />
	Application.Initialize;<br />
	Application.CreateForm(TWebModule1: WebModule1);<br />
	Application.Run;<br />
End.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/sql/cgi-common-gateway-interface.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Реализация базы данных в Delphi</title>
		<link>http://all4study.ru/bd/realizaciya-bazy-dannyx-v-delphi.html</link>
		<comments>http://all4study.ru/bd/realizaciya-bazy-dannyx-v-delphi.html#comments</comments>
		<pubDate>Sat, 12 May 2012 15:01:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Базы данных]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2951</guid>
		<description><![CDATA[Базы данных в Delphi реализуют с помощью компоненты Database Desktop. Ее можно вызывать как прямо из Delphi (пункт меню Tools, затем Database Desktop), так и непосредственно из операционной системы. Database Desktop является типичным представителем MDI – приложения: его меню изменяется в зависимости от выполняемой работы. Database Desktop позволяет создать базы данных по форматам данных многих [...]]]></description>
			<content:encoded><![CDATA[<p>Базы данных в Delphi реализуют с помощью компоненты Database Desktop. Ее можно вызывать как прямо из Delphi (пункт меню Tools, затем Database Desktop), так и непосредственно из операционной системы. Database Desktop является типичным представителем MDI – приложения: его меню изменяется в зависимости от выполняемой работы. Database Desktop позволяет создать базы данных по форматам данных многих СУБД, мы будем работать с Paradox 7.0 (файлы данных *.db). После вхождения в Database Desktop выбираем из меню File – New – Table. Далее предлагают выбрать СУБД, выберем Paradox 7.0. Откроется таблица для определения структуры первого файла. Если  следовать приведенным  рекомендациям, то  можно получить  таблицу следующей структуры (рис. 1).<br />
<span id="more-2951"></span><br />
<center><img width=550 alt="Определение структуры базы данных" src=http://all4study.ru/img/bd/42.jpg><br />
Рис. 1. Определение структуры базы данных</center></p>
<p>Создаем файл DAT1.db. В графу “Field Name” занесем имя поля, нажатием на “Enter” переходим к следующей графе “Type”. Имеется выпадающий перечень типов данных, который появляется при нажатии на клавишу пробел. Лучше не набирать тип данных на клавиатуре, а выбрать из перечня. Длина поля (Size) требуется лишь для данных, имеющих нестандартную длину. В нашем примере – только для символьных строк. Paradox 7.0 допускает использовать в качестве имен полей строки длиной до 25 символов, разрешены и пробелы в именах. Настоятельно не рекомендуется использовать в именах пробелы, потому что это сильно затрудняет обработку файла в некоторых случаях. В правой части экрана имеются поля для уточнения свойств создаваемого файла “Table Properties”. </p>
<p>По умолчанию показано свойство “Validity Checks” – допустимые значения:<br />
<strong>Required Field</strong> – если отметить его, то в этом поле файла всегда должно быть значение, пустое поле не допускается;<br />
<strong>Minimum value</strong> – можно задать нижнюю границу значения для этого поля;<br />
<strong>Maximum value</strong> – можно задать верхнюю границу;<br />
<strong>Default value</strong> – значение по умолчанию: если для многих записей поле имеет постоянное значение, то его занесение в это свойство позволяет уменьшить объем ввода.</p>
<p>Рассмотрим подробнее типы данных в Paradox 7.0.<br />
<strong>Alpha</strong> – символьные строки длиной 1 – 255 символов, допускают все операции сравнения;<br />
<strong>Number</strong> – для вещественных чисел;<br />
<strong>Short</strong> – для целых чисел, длиной 2 байта;<br />
<strong>Long Integer</strong> – для целых чисел длиной 4 байта;<br />
<strong>Logical</strong> – аналог типу Boolean в Pascal‘е;<br />
<strong>Date</strong> – для хранения дат, даты должны быть представлены в формате месяц/день/год, в таком же формате можно задавать минимальные и максимальные значения;<br />
<strong>Time</strong> – время.</p>
<p>Таким  образом, строка за строкой, заполним таблицу, задавая структуру создаваемого файла. Из задач, перечисленных выше, остались нерассмотренными две: определение ключа и вторичного индекса. Для определения ключа достаточно поставить * в колонку Key в строке(ах) ключевого поля. Для создания вторичного индекса обратимся к свойствам таблицы. Из перечня возможных свойств выбираем Secondary Indexes (вторичный индекс). Нажмем на кнопку Define. В ответ откроется перечень полей данного файла, из которых и выбираем поле (поля) для вторичного индек-са. В нашем примере ограничимся индексацией по полю SPEC. Database Desktop спросит еще имя индекса, желательны имена следующего вида имя_поля_IND, что позволяет легко отличить имена индексов от других. </p>
<p>После завершения формирования структуры файла необходимо его сначала сохранить, после этого можно начинать ввод и редактирование данных. Чтобы облегчить сохранение и повторное открытие  файлов данных целесообразно сначала определить рабочий и личный директории: это делается путем выбора из пункта меню File пунктов Working Directory и Private Directory. При нажатии на традиционную кнопку Save As откроется знакомое диалоговое окно Windows для сохранения. Для ввода и редактирования данных надо нажать на клавишу F9 или выбрать из меню Table пункт Edit Data. Если  необходимо внести изменения в структуру файла (в том числе изменить границы допустимых значений или индексы), то выберите из меню Table пункт Restructure.</p>
<p>Для ввода данных откроется таблица определенной нами структуры и можно начинать ввод и редактирование данных. При попытке ввести в какое-то поле значение, которое не принадлежит области допустимых значений, оно просто не будет принято, специальное предупреждение при этом не выдается. После завершения ввода (редактирования) закроем файл. Обратим внимание на то, что один и тот же файл не может быть одновременно открыт в Database Desktop и Delphi.</p>
<p>Создадим второй файл DAT2.db со следующей структуры<br />
<center><br />
<table>
<tr>
<td>№</td>
<td>Содержание поля</td>
<td>Имя поля</td>
<td>Тип данных, длина</td>
<td>Диапазон значений</td>
<td>Индексы</td>
</tr>
<tr>
<td>1</td>
<td>Номер специальности</td>
<td>SPEC</td>
<td>Короткое целое – 2</td>
<td></td>
<td>Ключ</td>
</tr>
<tr>
<td>2</td>
<td>Номер специальности</td>
<td>NAZV_SPEC</td>
<td>Символ – 18</td>
<td></td>
<td></td>
</tr>
</table>
<p></center>							</p>
<p>Объединим таблицы по полю SPEC. Условия для соединения выполнены: данные в полях обеих таблиц имеют одинаковый тип и длину, в  таблице DAT1.db имеется вторичный индекс по этому полю, в DAT2.db  это поле ключевое. Соединение файлов можно выполнять как в Database Desktop, так и в Delphi во время разработки приложений (вторичный индекс обязателен). Более предпочтительным является второй вариант – он обладает большей гибкостью, особенно если файлов много и их можно по-разному  объединить. Созданные при проектировании базы данных соединения не могут быть пересмотрены во время разработки приложений. Напомним, что до выполнения соединения надо определить характер отношения между участвующими полями (1:1; 1:M или N:M). При (1:1) соединение симметричное и неважно, из какого файла его создавать. При (1:M) необходимо соединение выполнять из файла детализации, отношение (N:M) не допускается, оно должно предварительно быть  сведено к (1:M). </p>
<p>Для соединения в Database Desktop откроем файл детализации (в нашем случае DAT1.db), главный файл (DAT2.db) не должен быть в это время открыт. Войдем в режим реструктуризации, из списка свойств файла выберем Referential Integrity, затем  Define и пред нами откроется таблица установления соединения: в левом столбце перечислены поля файла DAT1, а в правом – перечень файлов из рабочего директория. Выберем сначала поле из левого столбца, а затем имя файла из правого. Получим соединение между выделенным полем и ключевым полем файла. Другие виды соединений (по индексированным неключевым полям) в этом режиме не предусмотрены. Соединение завершается присвоением ему имени и сохранением.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/bd/realizaciya-bazy-dannyx-v-delphi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Общие принципы процесса ионной имплантации</title>
		<link>http://all4study.ru/fizika/obshhie-principy-processa-ionnoj-implantacii.html</link>
		<comments>http://all4study.ru/fizika/obshhie-principy-processa-ionnoj-implantacii.html#comments</comments>
		<pubDate>Sat, 12 May 2012 14:55:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Физика]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2948</guid>
		<description><![CDATA[Ионной имплантацией называют процесс внедрения ускоренных в электромагнитном поле ионов в пластину полупроводника. Глубина проникновения легирующей примеси при этом зависит от типа бомбардирующих ионов, их энергии и кристаллической структуры мишени. Процесс внедрения ионов в мишень обычно приводит к образованию нарушений кристаллической структуры полупроводниковой пластины, которые затем частично устраняются во время отжига. Высокая доза имплантируемых ионов [...]]]></description>
			<content:encoded><![CDATA[<p>Ионной имплантацией называют процесс внедрения ускоренных в электромагнитном поле ионов в пластину полупроводника. Глубина проникновения легирующей примеси при этом зависит от типа бомбардирующих ионов, их энергии и кристаллической структуры мишени. Процесс внедрения ионов в мишень обычно приводит к образованию нарушений кристаллической структуры полупроводниковой пластины, которые затем частично устраняются во время отжига.</p>
<p>Высокая доза имплантируемых ионов может привести к сильному повреждению приповерхностного слоя и образованию в результате последующего отжига мелкозернистых поликристаллических слоев. Тем не менее метод позволяет формировать легированные области в полупроводнике с концентрацией примесей до 10<sup>21</sup> см<sup>-1</sup>. Возможность легкого управления профилем легирования внедренных ионов по глубине определяет основное преимущество метода ионной имплантации. Длина пробега внедренных в пластину ионов связана с их энергией и не превышает 1 мкм.</p>
<p><center><img width=550 alt="Схема установки ионного легирования" src=http://all4study.ru/img/fiz/1151.jpg><br />
Рис. 1. Схема установки ионного легирования: 1—ионный источник; 2 — вытягивающий электрод; 3 — фокусирующая система с ускорителем; 4—система коррекции электронного пучка; 5—диафрагмы для пропускания сфокусированного пучка; 6 — электромагнитный сепаратор; 8—система электромагнитного сканирования пучка ионов; 9—облучаемый образец; 10—держатель;11—высоковольтный ускоритель; 12—предварительный ускоритель</center></p>
<p>Технология ионной имплантации позволяет получать тонкие легированные слои с точностью залегания по глубине порядка 0,02 мкм, а также управлять их концентрацией, начиная с диапазона 10<sup>14</sup>—10<sup>16</sup> см<sup>-3</sup>. Другим преимуществом процесса ионного легирования является возможность формирования практически любого профиля распределения примеси с помощью варьирования энергии и дозы вводимых ионов. Энергия бомбардируемых ионов находится обычно в диапазоне от десятков килоэлектронвольт.до единиц мегаэлектронвольт. На рис. 1 представлена схема установки ионного легирования. В ионном источнике происходит ионизация паров или газа, содержащих атомы примеси. Вытянутый из источника, сфокусированный и ускоренный ионный пучок разделяется по массе ионов в электромагнитном сепараторе. Перед попаданием на поверхность пластины он расфокусируется до требуемых размеров элементов ИС и сканируется по ее поверхности с помощью электромагнитной отклоняющей системы 8.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/fizika/obshhie-principy-processa-ionnoj-implantacii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Аэрозольные электро-газодинамические устройства</title>
		<link>http://all4study.ru/elektrotexnologiya/aerozolnye-elektro-gazodinamicheskie-ustrojstva.html</link>
		<comments>http://all4study.ru/elektrotexnologiya/aerozolnye-elektro-gazodinamicheskie-ustrojstva.html#comments</comments>
		<pubDate>Sat, 12 May 2012 14:49:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Электротехнология]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2945</guid>
		<description><![CDATA[В аэрозольных электрогазодинамических устройствах имеет место одновременное движение заряженных жидких или твердых частиц малого размера в электрическом поле и под действием потока газа или воздуха. Отличительной чертой этих устройств является то, что роль газового потока не сводится только к пассивному переносу частиц. Более того, взаимодействия заряженных движущихся в электрическом поле частиц с потоком приводит к [...]]]></description>
			<content:encoded><![CDATA[<p>В аэрозольных электрогазодинамических устройствах имеет место одновременное движение заряженных жидких или твердых частиц малого размера в электрическом поле и под действием потока газа или воздуха. Отличительной чертой этих устройств является то, что роль газового потока не сводится только к пассивному переносу частиц. Более того, взаимодействия заряженных движущихся в электрическом поле частиц с потоком приводит к существенному изменению газодинамических характеристик самих потоков: скорости, давления, температуры. Это связано с отбором или вводом дополнительной энергии в поток.</p>
<p>Основным элементом электрогазодинамического устройства является профилированный газодинамический канал с диэлектрическими стенками (рис. 1). Профиль канала рассчитывается таким образом, чтобы получить наиболее благоприятное для работы устройства распределение скорости и давления в потоке по длине. Например, в наиболее узкой части канала получается наибольшая скорость. Для того, чтобы обеспечить при возрастании скорости переход через звуковой барьер, используется сопло специальной формы &#8211; сопло Лаваля &#8211; состоящее из сочетания сходящихся &#8211; расходящихся конических частей.<br />
<center><img width=500 alt="Общая схема электрогазодинамического устройства" src=http://all4study.ru/img/el/141.jpg><br />
Рис. 1 . Общая схема электрогазодинамического устройства<br />
1 – профилированное сопло; 2,3,4 – электроды;<br />
5 – частицы аэрозоля.</center></p>
<p>Вторым важным элементом устройства является ряд электродов, кольцевых или в виде игл и сеток, которые соединены с источником высокого напряжения или подключены к нагрузке (рис. 1, электроды 2, 3, 4). В зависимости от назначения количество электродов, их расположение и форма могут быть самыми различными. Под действием напряжения, приложенного к электродам или зарядов, накопленных на них, в устройстве создаются электрические поля, совпадающие или противоположные по направлению газовому потоку.</p>
<p>Поток газа содержит частицы определенного размера и концентрации. Эти частицы вводятся в поток специальным устройством &#8211; распылителем порошкового материала или жидкости. Второй вариант, когда в электрогазодинамических устройствах конденсационного типа частицы получаются в результате процессов конденсации пересыщенного пара, если, например, используется влажный воздух или водяной пар.</p>
<p>Аналогичные условия имеют место в отношении зарядки частиц. Заряд частицам сообщается либо предварительно за пределами устройства или они заряжаются тем или иным способом внутри сопла.</p>
<p>В рассматриваемых устройствах целесообразно использовать частицы размером 0,3÷0,7 мкм, так как частицы подобного размера обладают минимальной подвижностью в электрическом поле. Минимальная подвижность частиц является условием для наиболее интенсивного обмена энергией между частицами и потоком.</p>
<p>Действительно, при использовании в качестве заряженных частиц ионов, подвижность которых в электрическом поле на несколько порядков выше, приводит к проскальзыванию и неполному увлечению их потоком и, как результат, недостаточно эффективному обмену энергией между частицами и потоком.</p>
<p>На основе процессов конденсации с последующим укрупнению частиц в условиях пересыщения могут быть получены частицы размером, примерно соответствующим минимуму подвижности.</p>
<p>Характерными представителями рассматриваемых устройств являются конденсационные ЭГД-генераторы заряженного аэрозоля, ЭГД-генераторы (источники электроэнергии), ЭГД-компрессоры (для перекачки газа или жидкости).</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/elektrotexnologiya/aerozolnye-elektro-gazodinamicheskie-ustrojstva.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конгруенции и фактор-алгебры, теоремы о гомоморфизме</title>
		<link>http://all4study.ru/matematika/kongruencii-i-faktor-algebry-teoremy-o-gomomorfizme.html</link>
		<comments>http://all4study.ru/matematika/kongruencii-i-faktor-algebry-teoremy-o-gomomorfizme.html#comments</comments>
		<pubDate>Fri, 11 May 2012 14:33:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Математика]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2941</guid>
		<description><![CDATA[Пусть φ: A→B есть функция и φ(A)=B . Отображение φ: A→B порождает разбиение множества А на классы, ядерная эквивалентность, для которого σφ обладает тем свойствам, что a1σφa2↔φ(a1)=φ(a2) ∀a1, a2∈A. Пусть A/σ = {Ab; b∈B} есть множество классов эквивалентности (фактор- множество по эквивалентности σ), тогда отображение h: A/σ → B взаимнооднозначно, тогда отображение p:A → A/σ [...]]]></description>
			<content:encoded><![CDATA[<p>Пусть φ: A→B есть функция и φ(A)=B . Отображение φ: A→B порождает разбиение множества А на классы, ядерная эквивалентность, для которого σ<sub>φ</sub> обладает тем свойствам, что a<sub>1</sub>σ<sub>φ</sub>a<sub>2</sub>↔φ(a<sub>1</sub>)=φ(a<sub>2</sub>) ∀a<sub>1</sub>, a<sub>2</sub>∈A. Пусть A/σ = {A<sub>b</sub>; b∈B} есть множество классов эквивалентности   (фактор- множество по эквивалентности σ), тогда отображение h: A/σ → B взаимнооднозначно, тогда отображение p:A → A/σ с p(a) = A<sub>φ(a)</sub> есть каноническое отображение. Тогда φ = h*p есть каноническое представление функции φ. Пусть [a]<sub>σ</sub> есть класс эквивалентности, содержащий элемент a из A, тогда p(a)=[a]<sub>σ</sub>=A<sub>φ(a)</sub>, h([a]<sub>σ</sub>) = φ(a). Пусть записи (a,a&#8217;)∈σ, aσa&#8217;, a~a&#8217;(σ), a~a&#8217; означают, что элементы a и a&#8217; эквивалентны.<br />
<center><img width=300 src=http://all4study.ru/img/mat/13.jpg></center></p>
<p><strong>Определение</strong>: Функция f<sup>n</sup> из A<sup>n</sup> → A сохраняет n – арное отношение ρ⊆A<sup>m</sup>, определенное на множестве A, если для ∀n наборов<br />
(a<sub>11</sub>,&#8230;,a<sub>1m</sub>)∈ρ<br />
(a<sub>21</sub>,&#8230;,a<sub>2m</sub>)∈ρ<br />
&#8230;<br />
(a<sub>n1</sub>,&#8230;,a<sub>nm</sub>)∈ρ<br />
(где столбец (a<sub>11</sub>,&#8230;,a<sub>n1</sub>)=a<sub>1</sub> и т.д. для других столбцов) набор (f(a<sup>1</sup>), &#8230;, f(a<sup>n</sup>))∈ρ.</p>
<p><strong>Замечание</strong>: Функция f<sup>p</sup>: A<sup>n</sup>→A сохраняет отношение эквивалентности σ, определенное на A, если для ∀-эквивалентностей a<sub>1</sub>~a<sub>1</sub>&#8216;, a<sub>2</sub>~a<sub>2</sub>&#8216;, &#8230;, a<sub>n</sub>~a<sub>n</sub>&#8216; будет: f(a<sub>1</sub>, &#8230;, a<sub>n</sub>) ~ f(a<sub>1</sub>&#8216;,..,a<sub>n</sub>&#8216;).<br />
И потому [f(a<sub>1</sub>,..,a<sub>n</sub>)]<sub>σ</sub>=[f(a'<sub>1</sub>,..,a'<sub>n</sub>)]<sub>σ</sub>.</p>
<p><strong>Определение</strong>: Эквивалентность σ, определенная на множестве A универсальной алгебры U<sub>A</sub> называется устойчивой эквивалентностью на U<sub>A</sub>, если всякая функция из Ω<sub>A</sub> сохраняет отношение σ. Пусть устойчивая эквивалентность σ задана на алгебре U<sub>A</sub> = (A, Ω<sub>A</sub> = {f<sub>i</sub><sup>ni</sup>: i = 1,2,&#8230;}) . Пусть есть n- местная функция f<sup>n</sup>∈Ω<sub>A</sub>, определим A/σ одного типа с U<sub>A</sub> алгебру U<sub>A/σ</sub> = (A/σ, Ω<sub>A/σ</sub> = {F<sub>i</sub><sup>ni</sup>: i=1,2,&#8230;}) положим F([a<sub>1</sub>]<sub>σ</sub>,..,a<sub>n</sub>]<sub>σ</sub>) = [f(a<sub>1</sub>,..,a<sub>n</sub>)] ∀F<sup>n</sup>∈Ω<sub>A/σ</sub> соответствующей операции f<sup>n</sup>∈Ω<sub>A/σ</sub>.</p>
<p><strong>Определение</strong>: Алгебра U<sub>A/σ</sub> называется фактор – алгеброй алгебры U<sub>A</sub> по устойчивой эквивалентности σ.</p>
<p><strong>Теорема</strong> (основная о гомоморфизмах): Каноническое отображение p: A→A/σ с p(a)=[a]<sub>σ</sub> алгебры U<sub>A</sub> в фактор – алгебру U<sub>A/σ</sub> есть гомоморфизм, для которого устойчивая эквивалентность σ есть ядерная эквивалентность.</p>
<p><strong>Замечание</strong>: Множество всех гомоморфных образов алгебры U<sub>A</sub> имеет мощность множества всех устойчивых эквивалентностей σ, определенных на U<sub>A</sub> и потому множество гомоморфумных образов алгебры U<sub>A</sub> в алгебру U<sub>B</sub> с точностью до изоморфизма исчерпывается множеством всех фактор – алгебр алгебры U<sub>A</sub> по различным устойчивым эквивалентностям.</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/matematika/kongruencii-i-faktor-algebry-teoremy-o-gomomorfizme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Функции для создания (активизации) СОМ объектов в Delphi</title>
		<link>http://all4study.ru/oot/funkcii-dlya-sozdaniya-aktivizacii-som-obektov-v-delphi.html</link>
		<comments>http://all4study.ru/oot/funkcii-dlya-sozdaniya-aktivizacii-som-obektov-v-delphi.html#comments</comments>
		<pubDate>Fri, 11 May 2012 14:02:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Объектно-ориентированные технологии]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2938</guid>
		<description><![CDATA[Способы активизации СОМ-объектов клиентом В Delphi предусмотрено несколько способов для активизации СОМ-объекта клиентом: • Для создания одного экземпляра объекта можно использовать функцию API CoCreatelnstance: OIeCheck(CoCreateInstance(Clsid, // CLSID объекта требуемого класса Nil, // Нужно для агрегирования (не используем) I, // Тип сервера (1, 4, 16 удаленный) IID, // Идентификатор требуемого интерфейса рСоm)); // Указатель на запрашиваемый [...]]]></description>
			<content:encoded><![CDATA[<p>Способы активизации СОМ-объектов клиентом</p>
<p>В Delphi предусмотрено несколько способов для активизации СОМ-объекта клиентом:<br />
• Для создания одного экземпляра объекта можно использовать функцию API CoCreatelnstance:<br />
OIeCheck(CoCreateInstance(Clsid,  // CLSID объекта требуемого класса<br />
Nil,   // Нужно для агрегирования (не используем)<br />
I, // Тип сервера (1, 4, 16   удаленный)<br />
IID, // Идентификатор требуемого интерфейса<br />
рСоm)); // Указатель на запрашиваемый интерфейс</p>
<p>• Для создания одного экземпляра объекта можно также использовать функцию Delphi &#8211; CreateComObject(Const Clsid: TGUID): IUnknown:</p>
<blockquote><p>pSum:=CreateComObject(Class_Sum) As ISum;</p></blockquote>
<p>Эта функция фактически инкапсулирует функцию CoCreatelnstance, поэтому выполняет все необходимые действия, возлагаемые на эту функцию, но всегда возвращает указатель только на интерфейс IUnknown. Для получения указателя на требуемый интерфейс следует воспользоваться безопасным приведением типа с помощью оператора As.</p>
<p>• Если СОМ-объект создавался с использованием библиотеки типов, то в тексте библиотеки типов автоматически будет объявлен еще один класс -CoClass (Component Class), включающий два классовых метода: Create и СгеateRemote. Реализации этих методов фактически инкапсулируют функции Delphi по созданию локального и удаленного объекта. В частности, Create инкапсулирует функцию CreateComObject. Полное имя CoClass состоит из имени класса объекта и префикса Со.</p>
<p>В этом случае СОМ-объект может быть создан следующим образом:<br />
pSum:=CoSum.Create;	// Sum &#8211; имя класса<br />
• Для создания нескольких объектов следует воспользоваться фабрикой классов и функцией API CoGetClassObject:</p>
<blockquote><p>Var  pClFr: IClassFactory;<br />
Const IID_ IClassFactory: ТIID)=&#39;{00000001-0000-0000-СООО-000000000046}&#39;;<br />
 Begin<br />
CoGetClassObject(Class_Sum, 1, Nil, IID_ICIassFactory, pClFr);/получ. Указат. на фабр.<br />
 pClFr.CreateInstance(Nil, ISum, pSum);</p></blockquote>
<p>• Если Clsid класса объекта не известен, то можно воспользоваться<br />
функцией Delphi ProglDToClassID и программным идентификатором:</p>
<blockquote><p>Var Clid: TGUID; Begin<br />
ClId:=ProgIDToClassID(&#39;ComDLL.Sum&#39;); // ComDLL.Sum &#8211; программное имя. CoGetClassObject(ClId, 1, Nil, IID_ICIassFactory, pClFr);<br />
pClFr.CreateInstance(Nil, ISum, pSum);</p></blockquote>
<h2>Регистрация и удаление СОМ-сервера из реестра</h2>
<p>а) Системный реестр. Данные о каждом СОМ-сервере находятся в двух разделах системного реестра, доступ к которому предоставляется после активизации утилиты RegEdit:<br />
HKEY_CLASSES_ROOT и<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Classes<br />
Прежде всего, в каждом из разделов системного реестра размещаются секции, названия которых совпадают с именем сервера и именем фабрики класса. Если сервер имеет несколько фабрик класса, то для каждой из них создается своя секция. В подразделе Clsid находится GUID класса</p>
<p>Далее в реестре размещается путь и имя СОМ-сервера.<br />
б) Для регистрации СОМ-серверов предусмотрено несколько способов:<br />
• Run\Register ActiveX Server<br />
• Внешние серверы саморегистрируются после первого запуска. Можно запустить приложение на соответствующем компьютере с ключом:<br />
&lt;имя сервера&gt; /regserver<br />
• Регистрацию сервера в реестре можно произвести и с помощью утилиты RegSvr32.Exe:<br />
C:\Wmdows\System\RegSvr32 &lt;путь&gt;\&lt;MyServ.Dll&gt;<br />
• Для регистрации может быть создан REG-файл.<br />
Кроме того, можно создать *.Bat-файл, с помощью которого можно произвести регистрацию. Пусть имя файла &#8211; Reg.Bat и его содержимое имеет следующий вид:<br />
RegEdit /S MyReg.Reg<br />
• Внутренний сервер можно зарегистрировать и из программы клиента с помощью процедуры: RegisterComServer(Const DLLName: String);</p>
<p>в) Для удаления сервера также предусмотрено несколько вариантов:<br />
• Удалить сведения из реестра о внутреннем сервере, созданном с помощью Delphi, можно с помощью команды системного меню Delphi:<br />
Run\UnRegister ActiveX Server<br />
• Можно удалить сведения из реестра о внешнем сервере, запустив приложение на соответствующем компьютере с ключом:<br />
&lt;имя сервера&gt; /unregserver<br />
• Удалить сервер можно также и с помощью утилиты RegSvr32.Exe:<br />
C:\Windows\System\RegSvr32 /u &lt;wymb&gt;\&lt;MyAuto.Ocx&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/oot/funkcii-dlya-sozdaniya-aktivizacii-som-obektov-v-delphi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Особенности работы СУБД в WEB</title>
		<link>http://all4study.ru/sql/osobennosti-raboty-subd-v-web.html</link>
		<comments>http://all4study.ru/sql/osobennosti-raboty-subd-v-web.html#comments</comments>
		<pubDate>Fri, 11 May 2012 13:55:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://all4study.ru/?p=2935</guid>
		<description><![CDATA[Возможность доступа к БД с помощью Web существенно изменила стратегии доступа к данным из-за того, что: • Количество пользователей может не только существенно варьироваться, но и изменяться без предупреждения. В обычных клиент/серверных приложениях администраторы могут контролировать число пользователей и возможность их доступа к данным. • Пользователей физически невозможно определить, они могут, не закрыв одного приложения, [...]]]></description>
			<content:encoded><![CDATA[<p>Возможность доступа к БД с помощью Web существенно изменила стратегии доступа к данным из-за того, что:<br />
• Количество пользователей может не только существенно варьироваться, но и изменяться без предупреждения. В обычных клиент/серверных приложениях администраторы могут контролировать число пользователей и возможность их доступа к данным.</p>
<p>• Пользователей физически невозможно определить, они могут, не закрыв одного приложения, подключиться к другому, что не гарантирует правильного отключения от приложения.</p>
<p>• В клиент-серверных приложениях при изменении данных несколькими пользователями используются блокировки на уровне записи (пессимистический параллелизм). В Web-приложениях применяется принцип оптимистического параллелизма, предполагающего фактически монопольный доступ для каждого пользователя.</p>
<p>• Посредником, реализующим доступ от клиента к БД, выступает специальная программа – Web-сервер, обеспечивающая функционирование пользовательского приложения, выполняющего непосредственный запрос к данным и возврат ответа в виде HTML-документа.</p>
<h2>Доступ к БД на стороне сервера</h2>
<p><strong>Структурная схема доступа</strong><br />
<center><img width=550 alt="Структурная схема доступа к базе данных" src=http://all4study.ru/img/bd/41.jpg></center></p>
<h3>WEB сервер</h3>
<p>Фактически Web-сервер включает несколько других серверов, реализующих необходимые протоколы.</p>
<p>Так IIS (Internet Information Services) включает серверы:<br />
• HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста<br />
• FTP (File Transfer Protocol) – протокол передачи файлов<br />
• NNTP (Network News Transfer Protocol) – сетевой протокол передачи новостей<br />
• SMTP (Simple Mail Transfer Protocol) – простой протокол передачи почты</p>
<h3>Механизм доступа</h3>
<p>Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:<br />
• Поддержки диалоговых форм на уровне гипертекстового документа (язык HTML – Hypertext markup Language). С каждым документом связан URL (Uniform Recourse Locator), для доступа к которым используется объектно-ориентированный протокол HTTP (Hypertext Transfer Protocol), предложенный в 1990 году.<br />
• Возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера.</p>
<h3>HTTP протокол</h3>
<p>Для поддержки HTTP-протокола в составе Web-сервера имеется HTTP-сервер. HTTP-клиент/серверное взаимодействие состоит из одного обмена запрос/ответ. Это краткая транзакция между клиентом и сервером. Фактически HTTP – это PRC (Remote Procedure Call) в Web поверх TCP/IP. HTTP не имеет состояния, не помнит предыдущих состояний и обладает важным свойством передавать самоописывающиеся данные.</p>
<h3>HTTP запрос</h3>
<p><strong>1) Структура запроса</strong><br />
HTTP-запрос состоит из:<br />
• Строки запроса (request line)<br />
• Одного или нескольких необязательных полей заголовка (request header fields)<br />
• Необязательного тела (entity body)</p>
<p><strong>2) Строка запроса</strong><br />
Строка запроса состоит из трех текстовых частей, разделенных пробелами.<br />
Первая часть определяет метод (команду), который будет применен к серверному ресурсу. Наиболее общий метод – это GET, который просит сервер послать копию ресурса клиенту.<br />
Вторая часть определяет имя целевого ресурса – URL, состоящего из протокола и имени домена сервера.<br />
Третья часть определяет версию протокола, используемого клиента, например, HTTP/1.0.</p>
<p><strong>3) Поле заголовка</strong><br />
Поле заголовка запроса передает дополнительные данные о запросе и самом клиенте серверу. Каждое поле заголовка состоит из имени с последующим двоеточием и значения поля.</p>
<p><strong>4) Тело запроса и пример</strong><br />
Тело запроса используется клиентом для передачи данных серверу.<br />
GET /path/file.html HTTP/1.0 //метод, ресурс и протокол<br />
Accept: text/html //клиент может работать с текстом<br />
Accept: audio/x //клиент может работать с аудиоданными<br />
User-agent: MacWeb //имя реализации клиента<br />
Название MIME-типа	Тип данных<br />
application/msword	Файл Microsoft Word<br />
application/pdf	Документ Acrobat Reader<br />
application/x-javascript	JavaScript-модуль<br />
application/x-shockwave-flash	Flash-ролик<br />
audio/mpeg	Звук в формате MPEG (MP3, например)<br />
audio/x-pn-realaudio	Потоковые аудиоданные в формате Realaudio<br />
image/bmp	Точечный рисунок<br />
image/gif	GIF-изображение<br />
mage/jpeg	JPEG-изображение</p>
<h3>HTTP ответ</h3>
<p><strong>1) Структура ответа</strong><br />
HTTP-ответ состоит из:<br />
• Строки заголовка (статуса) ответа<br />
• Одной или нескольких необязательных полей ответа<br />
• Необязательного тела ответа</p>
<p><strong>2) Строка заголовка</strong> (статус ответа)<br />
Строка заголовка ответа возвращает версию HTTP, статус ответа и объяснение возвращенного статуса.<br />
Версия-HTTP SP Статус-Код SP Фраза-Объяснение</p>
<p><strong>3) Поля заголовка</strong><br />
Поля заголовка ответа возвращают сведения, описывающие атрибуты сервера и возвращенный HTML-документ для клиента и включает имя, двоеточие и значение.</p>
<blockquote><p>Public | Retry-After | Server | WWW-Authenticate | extension-header</p></blockquote>
<p><strong>4) Тело ответа и пример</strong><br />
Тело ответа содержит собственно HTML-документ, запрашиваемый клиентом.<br />
HTTP/1.0 200 OK //код 200 – ответ успешный<br />
Server: NCSA/1.3 //имя сервера<br />
Mime_version: 1.0 //Mime версии 1.0<br />
Context_type: text/html //возвращается текст<br />
Context_length: 2000 //возвращается 2000 байт<br />
&lt;HTML><br />
… //тело ответа<br />
&lt;/HTML></p>
<p><strong>5) Коды ответов</strong><br />
1xx – не используется, 2xx – успешно, 3xx – переадресация, 4xx – ошибка клиента, 5xx – ошибка сервера.</p>
<blockquote><p>Статус-Код = “200”; OK<br />
=”201” ; Created<br />
=”202” ; Accepted<br />
=”203” ; Provisional Information<br />
=”204” ; No Context<br />
=”300” ; Multiple Choices<br />
=”301” ; Moved Permanently<br />
=”302” ; Moved Temporarily<br />
=”303” ; Method<br />
=”304” ; Not Modified<br />
=”400” ; Bad Request<br />
=”401” ; Unauthorized<br />
=”402” ; Payment Required<br />
=”403” ; Forbidden<br />
=”404” ; Not Found<br />
=”405” ; Method Not Allowed<br />
=”404” ; None Acceptable<br />
=”407” ; Proxy Authentication Required<br />
=”408” ; Request Timeout<br />
=”409” ; Conflict<br />
=”410” ; Gone<br />
=”502” ; Internal Server Error<br />
=”501” ; Not Implemented<br />
=”502” ; Bad Gateway<br />
=”503” ; Service Unavailable<br />
=”504” ; Gateway Timeout</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://all4study.ru/sql/osobennosti-raboty-subd-v-web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

