20 - ideafix.name

advertisement
1. Понятия информатики: сообщение, информация, источник и приемник информации. Сигнал и его
информационные параметры. Формы представления информации (непрерывная, дискретная).
Преобразование сообщений. Теорема отсчетов. Универсальность дискретного представления информации.
Знак, алфавит.
Термин «информация» ассоциируется с понятиями сведения, знания, данные, известие, сообщение, управление
и др. Процессы связанные с информацией - это передача, хранение, поиск.
Материальный объект или среда, которые служат для представления или передачи информации – материальный
носитель.
Материальные носители - бумага, воздух, лазерный диск, электромагнитное поле и пр. При этом хранение
информации связано с некоторой характеристикой носителя, которая не меняется с течением времени, например
намагниченные области поверхности диска или буква на бумаге, а передача информации – наоборот, с
характеристикой, которая изменяется с течением времени, например амплитуда колебаний звуковой волны или
напряжение в проводах. Другими словами, хранение информации связано с фиксацией состояния носителя, а
распространение – с процессом, который протекает в носителе.
Изменение характеристики носителя, которое используется для представления информации, называется
сигналом, а значение этой характеристики, отнесенное к некоторой шкале измерений, называется параметром
сигнала.
Пример: Звук- звуковые волны - высота и громкость звука; изображение – световые волны – частота и амплитуда
световых волн.
Однако одиночный сигнал не может содержать много информации. Поэтому для передачи информации
используется ряд следующих друг за другом сигналов.
Последовательность сигналов называется сообщением.
Таким образом, от источника к приемнику информация передается в виде сообщений.
Сообщение служит переносчиком информации, а информация является содержанием сообщения.
Соответствие между сообщением и содержащейся в нем информацией называется правилом интерпретации
сообщения.
Информационный процесс – это изменение с течением времени содержания информации.
Различных видов информационных процессов оказывается немного:
1. порождение (создание) новой информации;
2. преобразование информации;
3. уничтожение информации;
4. передача информации (распространение в пространстве).
Все события происходят с сообщением, т.е. ее материальной оболочкой. Т.е. возможны лишь два типа процессов:
изменение сообщения с сохранением содержащейся в нем информации и изменение сообщения,
сопровождающееся преобразованием информации.
К процессам первого типа относится передача информации без потерь и обратимая перекодировка; к процессам
второго типа – создание-уничтожение, необратимая перекодировка, передача с потерями, обработка с появлением
новой информации.
Источник информации – это субъект или объект, порождающий информацию и представляющий ее в виде
сообщения.
Приемник информации – это субъект или объект, принимающий сообщение и способный правильно его
интерпретировать.
источники и приемники информации могут быть одушевленными (человек, животные) или неодушевленными
(технические устройства, природные явления).
Для того чтобы объект (или субъект) считался источником информации, он должен создать сообщение.
Приемник: информация может считаться полученной только в том случае, если приемнику известно правило
интерпретации сообщения. Например, слыша речь на незнакомом языке, человек оказывается приемником
сообщения, но не приемником информации.
Промежуточные устройства-преобразователи получили название технические средства связи, а в совокупности с
соединяющей их средой они называются линией связи. К ним относятся телеграф, телефон, радио и телевидение,
компьютерные телекоммуникации и пр. При использовании таких средств возникает необходимость преобразования
сообщения из одного вида в другой без существенной для получателя потери информации. а также увязки скорости
передачи сообщения с возможностями линии связи и приемника. Обе эти проблемы оказываются центральными в
теории информации.
Сигнал называется непрерывным (или аналоговым), если его параметр может принимать любое значение в
пределах некоторого интервала.
Если обозначить Z – значение параметра сигнала, а t – время, то зависимость Z(t) будет непрерывной функцией
Примерами непрерывных сигналов являются речь и музыка, изображение, показание термометра (параметр
сигнала – высота столба спирта или ртути – имеет непрерывный ряд значений) и пр.
Сигнал называется дискретным, если его параметр может принимать конечное число значений в пределах
некоторого интервала.
Дискретные сигналы могут быть описаны дискретным и конечным множеством значений параметров {Z}.
Примерами устройств, использующих дискретные сигналы, являются часы (электронные и механические),
цифровые измерительные приборы, книги, табло и пр.
Дискретным будет считаться сообщение, построенное из дискретных сигналов. Информация не может обладать
свойством дискретности или непрерывности. Принципиальным и важнейшим различием непрерывных и
дискретных сигналов является то, что дискретные сигналы можно обозначить, т.е. приписать каждому из конечного
числа возможных значений сигнала знак, который будет отличать данный сигнал от другого.
Знак – это элемент некоторого конечного1 множества отличных друг от друга сущностей.
(жест, рисунок, буква, сигнал светофора, определенный звук и т.д.) Вся совокупность знаков, используемых для
представления дискретной информации, называется набором знаков. Таким образом, набор есть дискретное
множество знаков.
Набор знаков, в котором установлен порядок их следования, называется алфавитом (совокупность арабских
цифр 0,1…9.)
Понятия знака и алфавита можно отнести только к дискретным сообщениям.
Информационные процессы - преобразование одних сигналов в другие. Поскольку имеются два типа
сообщений, между ними, очевидно, возможны четыре варианта преобразований:
Примерами устройств, в которых осуществляется преобразование типа N1 N2, являются микрофон (звук
преобразуется в электрические сигналы); телекамера (изображение и звук превращаются в электрические сигналы);
Особенностью данного варианта преобразования является то, что оно всегда сопровождается частичной потерей
информации. Эти помехи примешиваются к основному сигналу и искажают его. Ответом на эти сомнения служит
так называемая теорема отсчетов, доказанная в 1933 г. В.А.Котельниковым. Непрерывный сигнал можно
полностью отобразить и точно воссоздать по последовательности измерений или отсчетов величины этого сигнала
через одинаковые интервалы времени, меньшие или равные половине периода максимальной частоты, имеющейся в
сигнале.
Комментарии к теореме:
1Теорема касается только тех линий связи, в которых для передачи используются колебательные или волновые
процессы.
2Любое подобное устройство использует не весь спектр частот колебаний, а лишь какую-то его часть. Согласно
теореме отсчетов определяющим является значение верхней границы частоты – обозначим его υm.
Смысл теоремы в том, что дискретизация не приведет к потере информации и по дискретным сигналам можно
будет полностью восстановить исходный аналоговый сигнал, если развертка по времени выполнена в соответствии
со следующим соотношением:
Можно перефразировать теорему отсчетов: Развертка по времени может быть осуществлена без потери
информации, связанной с особенностями непрерывного (аналогового) сигнала, если шаг развертки не будет
превышать t, определяемый в соответствии с формулой выше.
Преобразование сообщений без потерь информации возможно только в том случае, если хотя бы одно из них
является дискретным. В этом проявляется несимметричность видов сообщений и преимущество дискретной формы.
К другими ее достоинствам следует отнести:
1. высокая помехоустойчивость;
2. простота и, как следствие, надежность и относительная дешевизна устройств по обработке информации;
3. точность обработки информации, которая определяется количеством обрабатывающих элементов и не
зависит от точности их изготовления;
4. универсальность устройств.
Последнее качество – универсальность – оказывается следствием того обстоятельства, что любые дискретные
сообщения, составленные в различных алфавитах, посредством обратимого кодирования можно привести к единому
алфавиту. Это позволяет выделить некоторый алфавит в качестве базового и представлять в нем любую дискретную
информацию. Таким базовым алфавитом является двоичный алфавит, а использующим его универсальным
устройством – компьютер.
Дискретная информация – это информация, прошедшая обработку – отбор, упорядочение, преобразование; она
предназначена для дальнейшего применения человеком или техническим устройством
2. Энтропия и информация. Свойства энтропии. Условная энтропия. Формулы Хартли и Шеннона.
Измерение количества информации.
Начнем с простой ситуации, когда опыт имеет n равновероятных исходов. Очевидно, что
неопределенность каждого из них зависит от n, т.е. мера неопределенности является функцией числа
исходов (f(n))
Можно указать некоторые свойства этой функции:
1. f(1) = 0, поскольку при n = 1 исход опыта не является случайным и, следовательно,
неопределенность отсутствует;
2. f(n) возрастает с ростом n, поскольку чем больше число возможных исходов, тем более
затруднительным становится предсказание результата опыта.
Для определения явного вида функции f(n) рассмотрим два независимых опыта α и β с количествами
равновероятных исходов, соответственно nα, nβ. Пусть имеет место сложный опыт, который состоит в
одновременном выполнении опытов α  β; число возможных его исходов равно nα* nβ, причем, все они
равновероятны. Очевидно, неопределенность исхода такого сложного опыта α и β будет больше
неопределенности опыта α, поскольку к ней добавляется неопределенность β; мера неопределенности
сложного опыта равна f(nα · nβ). С другой стороны, меры неопределенности отдельных α и βсоставляют,
соответственно, f(nα) и f(nβ). В первом случае (сложный опыт) проявляется общая (суммарная)
неопределенность совместных событий, во втором – неопределенность каждого из событий в
отдельности. Однако из независимости α и β следует, что в сложном опыте они никак не могут повлиять
друг на друга и, в частности, αне может оказать воздействия на неопределенность β,и наоборот.
Следовательно, мера суммарной неопределенности должна быть равна сумме мер неопределенности
каждого из опытов, т.е. мера неопределенности аддитивна:
Теперь задумаемся о том, каким может быть явный вид функции f(n), чтобы он удовлетворял свойствам
(1) и (2) и соотношению (2.1)? Легко увидеть, что такому набору свойств удовлетворяет функция log(n),
причем можно доказать, что она единственная из всех существующих классов функций. Таким образом:
за меру неопределенности опыта с n равновероятными исходами можно принять число log(n).
Следует заметить, что выбор основания логарифма в данном случае значения не имеет, поскольку в
силу известной формулы преобразования логарифма от одного основания к другому
logbn = logba · logan
переход к другому основанию состоит во введении одинакового для обеих частей выражения (2.1)
постоянного множителя logba, что равносильно изменению масштаба (т.е. размера единицы) измерения
неопределенности. Поскольку это так, мы имеет возможность выбрать удобное для нас (из каких-то
дополнительных соображений) основание логарифма. Таким удобным основанием оказывается 2,
поскольку в этом случае за единицу измерения принимается неопределенность, содержащаяся в опыте,
имеющем лишь два равновероятных исхода, которые можно обозначить, например, ИСТИНА (True) и
ЛОЖЬ (False) и использовать для анализа таких событий аппарат математической логики.
Единица измерения неопределенности при двух возможных равновероятных исходах опыта называется
бит.
Таким образом, нами установлен явный вид функции, описывающей меру неопределенности опыта,
имеющего n равновероятных исходов: f(n) = log2n
Эта величина получила название энтропия. В дальнейшем будем обозначать ее H.
Поскольку каждый исход случаен, он вносит свой вклад в неопределенность всего опыта, но так как все
n исходов равнозначны, разумно допустить, что и их неопределенности одинаковы. Из свойства
аддитивности неопределенности, а также того, что общая неопределенность равна log2 n, следует, что
неопределенность, вносимая одним исходом составляет
Таким образом, неопределенность, вносимая каждым из равновероятных исходов, равна:H=-plog2p
Обобщая это выражение на ситуацию, когда опыт α имеет n неравновероятных исходов A1, A2…An,
получим
(1.1)
Это энтропия опыта α. Используя формулу для среднего значения дискретных случайных величин
, можно записать:
Н(ά)=<-log2*p(A(ά))>, А(ά) – исходы, возможные в опыте α.
Энтропия является мерой неопределенности опыта, в котором проявляются случайные события, и
равна средней неопределенности всех возможных его исходов.
Свойства энтропии:1. Как следует из (1.1), H = 0 только в двух случаях: (a) какая-либо из р(Aj)=1; все
остальные р(Ai)=0 (i≠j) - реализуется ситуация, когда один из исходов является достоверным (и общий
итог опыта перестает быть случайным); (b) все р(Ai)=0 - никакие из рассматриваемых исходов опыта
невозможны? т.к.:
Во всех остальных случаях H > 0.
2. для двух независимых опытов ά и β
Энтропия сложного опыта, состоящего из нескольких независимых, равна сумме энтропий отдельных
опытов.
При прочих равных условиях наибольшую энтропию имеет опыт с равновероятными исходами.
Условная энтропия: Найдем энтропию сложного опыта α٨β в том случае, если опыты не являются
независимыми, т.е. если на исход β оказывает влияние результат опыта α, т.е. оказывается H(α٨ β )
= H(α), а не сумма энтропии Связь между α на β состоит в том, что какие-то из исходов
могут
оказывать влияние на исходы из
, т.е. некоторые пары событий Ai Bj не являются независимыми.
– вероятность наступления исхода Bj при условии, что в первом опыте имел место исход Ai. Тогда
При подстановке получаем:
В первом слагаемом индекс j имеется только у B; изменив порядок суммирования, получим члены вида:
Однако,
поскольку
образует достоверное событие (какой-либо из исходов опыта β все равно реализуется). Следовательно,
первое слагаемое оказывается равным:
Во втором слагаемом члены вида
имеют смысл энтропии опыта β при условии, что в опыте α реализовался исход Ai – будем называть ее
условной энтропией. Если ввести данное понятие и использовать его обозначение, то второе
слагаемое будет иметь вид:
где
есть средняя условная энтропия опыта β при условии выполнении опыта α. Окончательно
получаем для энтропии сложного опыта:
Полученное выражение представляет собой общее правило нахождения энтропии сложного опыта.
Относительно условной энтропии можно высказать следующие утверждения:
1.Условная энтропия является величиной неотрицательной.
= 0 только в том случае, если любой
исход α полностью определяет исход β , т.е.
В этом случае H (α٨ β) = H (α).
2.Если опыты α и β независимы, то
, причем это оказывается наибольшим значением
условной энтропии.
Другими словами, опыт α не может повысить неопределенность опыта β; он может либо не оказать
никакого влияния (если опыты независимы), либо понизить энтропию β.
Приведенные утверждения можно объединить одним неравенством:
т.е. условная энтропия не превосходит безусловную.
3.
причем равенство реализуется только в том случае, если опыты α и β независимы.
Энтропия и информация:
Разность H(β) и Hα(β), очевидно, показывает, какие новые сведения относительно β мы получаем,
произведя опыт α. Эта величина называется информацией относительно опыта β, содержащейся в
опыте α.
Данное выражение открывает возможность численного измерения количества информации. Из него
легко получить ряд следствий:
Следствие1.Поскольку единицей измерения энтропии является бит, то в этих же единицах может быть
измерено количество информации.
Следствие 2. Пусть опыт α =β, т.е. просто произведен опыт β. Поскольку он несет полную информацию о
себе самом, неопределенность его исхода полностью снимается, т.е.
(β)=0. Тогда I(β,β) = H(β), т.е.
можно считать, что:
энтропия опыта равна той информации, которую мы получаем в результате его осуществления.
Отметим ряд свойств информации:
1.I(α,β) 0, причем I(α,β) = 0 тогда и только тогда, когда опыты ά и β независимы.
2.I(α,β) = I(β, α), т.е. информация симметрична относительно последовательности опытов.
3.Следствие 2 и представление энтропии в виде (1.1) позволяют записать:
т.е. информация опыта равна среднему значению количества информации, содержащейся в каком-либо
одном его исходе.
Количество информации численно равно числу вопросов с равновероятными бинарными вариантами
ответов, которые необходимо задать, чтобы полностью снять неопределенность задачи.
I = log2 n
Это формула Р.Хартли. Она связывает количество равновероятных состояний (n) и количество
информации в сообщении (I), что любое из этих состояний реализовалось. Ее смысл в том, что, если
некоторое множество содержит n элементов и x принадлежит данному множеству, то для его выделения
(однозначной идентификации) среди прочих требуется количество информации, равное log2n .
Частным случаем применения формулы является ситуация, когда n=2k; подставляя это значение в
формулу, получим:
I = k
бит
Информация – это содержание сообщения, понижающего неопределенность некоторого опыта с
неоднозначным исходом; убыль связанной с ним энтропии является количественной мерой информации.
В случае равновероятных исходов информация равна логарифму отношения числа возможных исходов
до и после (получения сообщения).
Ответ на бинарный вопрос может содержать не более 1 бит информации; информация равна 1 бит
только для равновероятных ответов; в остальных случаях она меньше 1 бит.
формула К.Шеннона.
Сообщения, в которых вероятность появления каждого отдельного знака не меняется со временем,
называются шенноновскими, а порождающий их отправитель – шенноновским источником.
если pi – вероятность (относительная частота) знака номер i данного алфавита из N знаков, то среднее
количество информации, приходящейся на один знак, равно:
Это и есть знаменитая формула К.Шеннона
Сообщения, в которых существуют статистические связи (корреляции) между знаками или их
сочетаниями, называются сообщениями с памятью или марковскими сообщениями.
3. Понятие кода, кодирования. Избыточность кода. Первая теорема Шеннона. Постановка задачи
кодирования. Код Хаффмана. Байтовый код.
Условимся называть алфавит, с помощью которого представляется информация до преобразования,
первичным; алфавит конечного представления – вторичным.
Введем ряд с определений:
Код:
1. правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их
сочетаниям другого алфавита.
2. знаки вторичного алфавита, используемые для представления знаков или их сочетаний первичного
алфавита.
Кодирование – перевод информации, представленной посредством первичного алфавита, в
последовательность кодов.
Декодирование – операция, обратная кодированию, т.е. восстановление информации в первичном
алфавите по полученной последовательности кодов.
Операции кодирования и декодирования называются обратимыми, если их последовательное
применение обеспечивает возврат к исходной информации без каких-либо ее потерь.
Примером обратимого кодирования является представление знаков в телеграфном коде и их
восстановление после передачи. Примером кодирования необратимого может служить перевод с одного
естественного языка на другой – обратный перевод, вообще говоря, не восстанавливает исходного
текста. Математическая постановка задачи кодирования. Пусть первичный алфавит A содержит N знаков
со средней информацией на знак, определенной с учетом вероятностей их появления, I 1(A) (нижний индекс
отражает то обстоятельство, что рассматривается первое приближение, а верхний индекс в скобках
указывает алфавит). Вторичный алфавит B пусть содержит M знаков со средней информационной
емкостью I1(B) Пусть также исходное сообщение, представленное в первичном алфавите, содержит n
знаков, а закодированное сообщение – m знаков. Если исходное сообщение содержит I(A) информации, а
закодированное – I(B), то условие обратимости кодирования, т.е. неисчезновения информации при
кодировании, очевидно, может быть записано следующим образом: I(A) ≤ I(B), смысл которого в том, что
операция обратимого кодирования может увеличить количество формальной информации в сообщении,
но не может его уменьшить. Однако каждая из величин в данном неравенстве может быть заменена
произведением числа знаков на среднюю информационную емкость знака, т.е.:
Отношение m/n, очевидно, характеризует среднее число знаков вторичного алфавита, которое
приходится использовать для кодирования одного знака первичного алфавита – будем называть его
длиной кода или длиной кодовой цепочки и обозначим K(B) (верхний индекс указывает алфавит кодов).
В частном случае, когда появление любых знаков вторичного алфавита равновероятно, согласно
формуле Хартли I1(B)=log2M, и тогда:
можно ввести относительную избыточность кода (Q):
Данная величина показывает, насколько операция кодирования увеличила длину исходного
сообщения. Очевидно, чем меньше Q, тем более выгодным оказывается код и более эффективной
операция кодирования. Первая теорема Шеннона: При отсутствии помех передачи всегда возможен
такой вариант кодирования сообщения, при котором среднее число знаков кода, приходящихся на один
знак кодируемого алфавита, будет сколь угодно близко к отношению средних информаций на знак
первичного и вторичного алфавитов
Используя понятие избыточности кода, можно дать более короткую формулировку теоремы:
При отсутствии помех передачи всегда возможен такой вариант кодирования сообщения, при котором
избыточность кода будет сколь угодно близкой к нулю.
При отсутствии помех передачи средняя длина двоичного кода может быть сколь угодно близкой к
средней информации, приходящейся на знак первичного алфавита.
Код Хаффмана Способ оптимального префиксного двоичного кодирования был предложен
Д.Хаффманом. Пусть имеется первичный алфавит A, состоящий из шести знаков a1 …a6 с вероятностями
появления в сообщении, соответственно, 0,3; 0,2; 0,2; 0,15; 0,1; 0,05. Создадим новый вспомогательный
алфавит A1, объединив два знака с наименьшими вероятностями (a5и a6) и заменив их одним знаком
(например, a(1)); вероятность нового знака будет равна сумме вероятностей тех, что в него вошли, т.е.
0,15; остальные знаки исходного алфавита включим в новый без изменений; общее число знаков в новом
алфавите, очевидно, будет на 1 меньше, чем в исходном. Аналогичным образом продолжим создавать
новые алфавиты, пока в последнем не останется два знака; ясно, что число таких шагов будет равно N –
2, где N – число знаков исходного алфавита (в нашем случае N = 6, следовательно, необходимо
построить 4 вспомогательных алфавита). В промежуточных алфавитах каждый раз будем
переупорядочивать знаки по убыванию вероятностей. Всю процедуру построения представим в виде
таблицы:
Теперь в обратном направлении поведем процедуру кодирования. Двум знакам последнего алфавита
присвоим коды 0 и 1 (которому какой – роли не играет; условимся, что верхний знак будет иметь код 0, а
нижний – 1). В нашем примере знак a1(4) алфавита A(4), имеющий вероятность 0,6 , получит код 0, а a2(4) с
вероятностью 0,4 – код 1. В алфавите A(3) знак a1(3) с вероятностью 0,4 сохранит свой код (1); коды знаков
a2(3) и a3(3), объединенных знаком a1(4) с вероятностью 0,6 , будут уже двузначным: их первой цифрой
станет код связанного с ними знака (т.е. 0), а вторая цифра – как условились – у верхнего 0, у нижнего – 1;
таким образом, a2(3) будет иметь код 00, а a3(3) – код 01. Полностью процедура кодирования представлена
в таблице выше. Средняя длина кода при этом оказывается: K(2) = 0,3·2+0,2·2+0,2·2+0,15·3+0,1·4+0,05·4 =
2,45
Для сравнения можно найти I1(A) – она оказывается равной 2,409, что соответствует избыточности кода
Q = 0,0169, т.е. менее 2%.
Код Хаффмана важен в теоретическом отношении, поскольку можно доказать, что он является самым
экономичным из всех возможных, т.е. ни для какого метода алфавитного кодирования длина кода не
может оказаться меньше, чем код Хаффмана. Метод Хаффмана и его модификация – метод адаптивного
кодирования (динамическое кодирование Хаффмана) – нашли широчайшее применение в программахархиваторах, программах резервного копирования файлов и дисков, в системах сжатия информации в
модемах и факсах.
Байтовый код. В этом случае двоичный код первичного алфавита строится цепочками равной длины,
т.е. со всеми знаками связано одинаковое количество информации равное I(А)=log2N. Передавать признак
конца знака не требуется, поэтому для определения длины кодовой цепочки можно воспользоваться
формулой: K(A,2) log2N. Приемное устройство просто отсчитывает оговоренное заранее количество
элементарных сигналов и интерпретирует цепочку (устанавливает, какому знаку она соответствует). При
этом недопустимы сбои. Например, пропуск одного элементарного сигнала приведет к сдвигу всей
кодовой последовательности и неправильной ее интерпретации; решается проблема путем
синхронизации передачи или иными способами. С другой стороны, применение равномерного кода
оказывается одним из средств контроля правильности передачи, поскольку факт поступления лишнего
элементарного сигнала или, наоборот, поступление неполного кода сразу интерпретируется как ошибка.
Важным примером использования равномерного алфавитного кодирования является представление
символьной информации в компьютере. Чтобы определить длину кода, необходимо начать с
установления количество знаков в первичном алфавите. Компьютерный алфавит должен включать:
1.26 2=52 букв латинского алфавита (с учетом прописных и строчных);
2.33 2=66 букв русского алфавита;
3.цифры 0…9 – всего 10;
4.знаки математических операций, знаки препинания, спецсимволы 20.
Получаем, что общее число символов N 148. Теперь можно оценить длину кодовой цепочки: K(2)
log2148 7,21. Поскольку K(2) должно быть целым, очевидно, K(2)= 8. Именно такой способ кодирования
принят в компьютерных системах: любому символу ставится в соответствие цепочка из 8 двоичных
разрядов (8 бит). Такая цепочка получила название байт, а представление таким образом символов –
байтовым кодированием.
Именно байт принят в качестве единицы измерения количества информации в международной системе
единиц СИ. 1 байт = 8 бит. Наряду с байтом для измерения количества информации используются более
крупные производные единицы: 1 Кбайт = 210 байт = 1024 байт, 1 Мбайт = 220 байт = 1024 Кбайт, 1 Гбайт =
230 байт = 1024 Мбайт, 1 Тбайт = 240 байт = 1024 Гбайт
4. Общая схема передачи информации. Канал связи. Характеристики канала: ширина
полосы пропускания, пропускная способность, скорость передачи. Влияние шумов на
пропускную способность канала. Вторая теорема Шеннона. Обеспечение надежности
передачи.
Средства связи – совокупность устройств, обеспечивающих преобразование первичного
сообщения от источника информации в сигналы заданной физической природы, их передачу,
прием и представление в форме удобной потребителю.
Средств связи существует множество: почта, телефон, радио, телевидение, компьютерные сети и пр.
Однако при всем разнообразии их конкретной реализации можно выделить общие элементы:
ИИ выдает информацию в виде первичного сообщения. Кодирование может осуществляться источником
информации. Непосредственная передача осуществляется передатчиком вторичного сообщения (ПрдС).
Он обеспечивает распространение сигналов в канале связи.
Канал связи – это материальная среда, а также физический или иной процесс, посредством
которого осуществляется передача сообщения, т.е. распространение сигналов в пространстве с
течением времени.
Каналы связи в зависимости от характера сигналов, передаваемых по ним подразделяются на дискретные
и аналоговые. Примером дискретного канала является компьютерная сеть; аналогового – телефонная
линия и радиоканал.
Любой канал связи подвержен внутренними процессами (шумами), в результате которых искажаются
передаваемые сигналы и, следовательно, связанная с ними информация. Существует и защита от помех использование специальных методов кодирования информации.
После прохождения вторичного сообщения по каналу связи оно попадает в приемное устройство (ПрмС),
где одновременно преобразуется в форму, необходимую для дальнейшей интерпретации Если перед
передачей применялось кодирование, после приема вторичное сообщение направляется в декодер (ДК) и
лишь затем – к получателю (потребителю) информации (ПрИ).
линия связи – это совокупность средств связи и канала связи, посредством которых
осуществляется передача информации от источника к приемнику.
Интервал частот, используемый данным каналом связи для передачи сигналов, называется
шириной полосы пропускания.
Для построения теории важна не сама ширина полосы пропускания, а максимальное значение частоты из
данной полосы ( ), поскольку именно им определяется длительность элементарного импульса :
C передачей одного импульса связано кол-во информации Is, а передается оно за время t0. Если общее
число различных элементарных сигналов n, а вероятности их появления p(ai) (i = 1… n), то согласно
формуле Шеннона
Однако, как обсуждалось выше, оптимальным будет такой вариант кодирования, при котором появление
всех элементарных сигналов (знаков вторичного алфавита) оказывается равновероятным – в таком случае
Is=Ismax=log2n
Это значение является предельным (наибольшим) для информационного содержания элементарного
сигнала выбранного вторичного алфавита. Поскольку такое количество информации передается за время ,
можно ввести величину, характеризующую предельную интенсивность информационного потока через
канал – пропускную способность канала С:
Если источник выдает L элементарных сигналов в единицу времени, а средняя длина кода
одного знака составляет K(A,a), то, очевидно, отношение L/K(A,a) будет выражать число знаков
первичного алфавита, выдаваемых источником за единицу времени. Если с каждым из них
связано среднее количество информации I(A), то можно найти общее количество информации,
передаваемой источником за единицу времени – эта величина называется скоростью передачи
или энтропией источника (будем обозначать ее J).
Энтропия источника, в отличие от пропускной способности, является характеристикой источника,
а не канала связи.
Размерностью J, как и C, является бит/с. Каково соотношение этих характеристик? Рассмотрим
канал без помех, получим:
Согласно первой теореме Шеннона при любом способе кодирования
хотя может быть сколь угодно близкой к этому значению. Следовательно, всегда J≤ C0, т.е.
скорость передачи информации по каналу связи не может превысить его пропускной
способности. Как показано в теории Шеннона, данное утверждение справедливо как при
отсутствии в канале помех (шумов) (идеальный канал связи), так и при их наличии (реальный
канал связи).
Влияние шумов. Используем для анализа процесса передачи информации по дискретному
каналу с помехами энтропийный подход.
Пусть опыт β состоит в выяснении того, какой сигнал был принят на приемном конце канала;
исходами этого опыта являются сигналы bj, общее число которых равно m. Опыт α состоит в
выяснении того, какой сигнал был послан на вход канала; исходами этого опыта являются
сигналы, образующие алфавит ai; их общее количество равно n. Опыт β несет в себе
информацию относительно опыта α, значение которой согласно равно:
I(β, α) = H(α) – Hβ(α)
Смысл этого выражения в применении к рассматриваемой ситуации в том, что распознанный на
приемном конце сигнал содержит информацию о сигнале, который был отправлен, но, в общем
случае, информацию не полную. Влияние помех в канале таково, что в процессе передачи часть
начальной информации теряется, и исход опыта β не несет полной информации относительно
предшествующего исхода опыта α.
H(α) – энтропия, связанная с определением того, какой сигнал передан, равна:
H() – условная энтропия (энтропия опыта  при условии, что ему предшествовал опыт ).
Окончательно для средней информации на один элементарный сигнал имеем:
Часто бывает удобнее воспользоваться подобным же соотношением, которое получается на
основе равенства:
I() = I() = H() – H()
Проведенные рассуждения приводят к ряду заключений:
1.
Для определения информации сигнала, принятого на приемном конце канала, необходимо
знание априорных и апостериорных вероятностей. И обратное утверждение: знание априорных и
апостериорных вероятностей позволяет установить (вычислить) информацию, связанную с
переданным сигналом.
2.
I() = H() лишь в том случае, когда исход опыта  однозначно определяет исход
предшествующего опыта  – это возможно только при отсутствии помех в канале. I() = 0, если
 и  независимы, т.е. отсутствует связь между сигналами на входе и выходе канала. Действие
помех состоит в том, что на выход канала приходят сигналы, содержащие меньше информации,
чем они имели при отсылке.
Как уже указывалось, апостериорные вероятности определяются свойствами канала связи, а
априорные – особенностями источника (точнее, кодера).
можно найти наибольшее значение max{I()} . Тогда:
Полученное выражение определяет порядок решения задачи о нахождении пропускной способности
конкретного канала:

исходя из особенностей канала, определить априорные и апостериорные вероятности;

варьируя p(ai) найти максимальное информационное содержание элементарного сигнала;

вычислить пропускную способность.
Влияние шумов определяется соотношением мощности сигнала и мощности помех. Для белого гауссова
шума, в котором помехи существуют на всех частотах:
Это формула Шеннона. Где PZ – средняя мощность сигнала; Px – средняя мощность помех; nm є
nmax – наибольшая частота в полосе пропускания. Из этого сообщения видно, что при
фиксированной nm пропускная способность определяется только отношением мощностей
сигнала и помех. Ограничение пропускной способности непрерывного канала связано с тем, что
любые используемые для связи сигналы имеют конечную мощность. C = 0 только при PZ = 0. Т.е.
непрерывный канал обеспечивает передачу информации даже в том случае, если уровень
шумов превышают уровень сигнала – это используется для скрытой (неперехватываемой)
передачи, для увеличения пропускной способности канала связи необходимо увеличивать
полосу пропускания, либо улучшать отношение мощности сигнала к мощности помех.
Т.о. наличие помех в канале связи приводит к искажению передаваемого сообщения и частичной утраты
связанной с ним инф-ции, но и к уменьшению пропускной способности канала.
Вторая теорема Шеннона:
При передаче информации по каналу с шумом всегда имеется способ кодирования, при котором
сообщение будет передаваться со сколь угодно высокой достоверностью, если скорость
передачи не превышает пропускной способности канала.
Смысл данной теоремы в том, что при передаче по реальным каналам можно закодировать сообщение
таким образом, что действие шумов не приведет к потере информации. Это достигается за счет создания
избыточности кода (т.е. увеличения длины кодовой комбинации); безусловно, возрастает время передачи,
что следует считать платой за надежность.
Обеспечение надежности передачи. Решение проблемы защиты инф-ции от искажения
состоит в использовании таких методов кодирования информации, которые позволили бы
контролировать правильность передачи (хранения) и при обнаружении ошибки исправлять ее.
Общим условием является использование только равномерных кодов. 1.в этом случае
недополучение одного из битов будет сразу свидетельствовать об ошибочности передачи. 2.в
ряде случаев для увеличения скорости используется параллельная передача нескольких бит по
шинам фиксированной ширины. Надежность обеспечения тем, что наряду с битами
(информационными),
кодирующими
сообщение,
передаются
дополнительные
биты
(контрольные), по состоянию кот-х можно судить о правильности передачи.
5. Коды, обнаруживающие и исправляющие ошибки передачи. Построение
систематического кода. Код Хемминга.
Вторая теорема Шеннона относится к реальным каналам связи и гласит следующее:
При передаче информации по каналу с шумом всегда имеется способ кодирования, при котором сообщение
будет передаваться со сколь угодно высокой достоверностью, если скорость передачи не превышает пропускной
способности канала.
Последняя часть определения, относится и к идеальному каналу – в любых случаях, если скорости передачи
будет превышать пропускную способность канала, то возможна потеря информации.
Смысл данной теоремы в том, что при передаче по реальным каналам можно закодировать сообщение таким
образом, что действие шумов не приведет к потере информации. Это достигается за счет создания избыточности
кода (т.е. увеличения длины кодовой комбинации); безусловно, возрастает время передачи, что следует считать
платой за надежность. При этом в теореме и при ее доказательстве не указывается, каким образом следует
осуществлять такое кодирование – она лишь утверждает принципиальную его возможность; поиск же кода –
самостоятельная задача.
Помехоустойчивыми (корректирующими) называются коды, позволяющие обнаружить и при необходимости
исправить ошибки в принятом сообщении.
Далее построение подобных кодов будем рассматривать с учетом следующих исходных положений:

используются только равномерные коды: во-первых, в этом случае недополучение одного из битов будет сразу
свидетельствовать об ошибочности передачи, т.е. постоянство длины кодовой цепочки оказывается
дополнительным средством контроля правильности передачи; во-вторых, в ряде случаев, в частности, во
внутренних компьютерных линиях связи, для увеличения скорости используется параллельная передача
нескольких бит по шинам фиксированной ширины;

применяется только двоичное кодирование.
При построении помехоустойчивых кодов можно выделить две ситуации:

кодирование обеспечивает только установление факта искажения информации (коды, обнаруживающие
ошибку) – в этом случае исправление производится путем ее повторной передачи;

кодирование позволяет декодеру локализовать и автоматически исправить ошибку передачи (хранения)
(коды, исправляющие ошибку).
Пусть N – число знаков первичного алфавита. Длина равномерного двоичного кода K(A,2) ≥log2N – при этом
каждый знак получает свою уникальную последовательность знаков вторичного алфавита. Общее число кодовых
комбинаций Sр = 2K(A,2); очевидно, Sр ≥N; все эти кодовые комбинации возможны – они называются разрешенными (о
чем свидетельствует индекс «р» у Sр. В дальнейшем примем обозначение K(A,2) = k и будем называть называть
часть помехоустойчивого кода, составленную из указанных k бит, информационной (поскольку именно они содержат
информацию о передаваемом знаке первичного алфавита). Если пересылать только эти информационные биты, то
любое искажение, состоящее в инверсии и хотя бы одного бита, приведет к появлению новой разрешенной кодовой
комбинации и, следовательно, установлено быть не может.
Возможность обнаружения и исправления ошибок в помехоустойчивых кодах достигается тем, что после
первичного кодирования (установления соответствия каждому знаку первичного алфавита его кода) осуществляется
вторичное кодирование, в ходе которого к k информационным битам по определенным правилам добавляются r
проверочных (корректирующих) бит. В результате общая длина кодовой комбинации становится равной n = k + r – в
дальнейшем такие коды будем называть (n,k)-кодами, а число возможных кодовых комбинаций возрастает до S = 2n.
Из них не все оказываются разрешенными – их только Sр, остальные же Sf = S – Sр комбинаций являются
запрещенными. Если при передаче возникает ошибка, она проявится в том, что разрешенная кодовая комбинация
перейдет в запрещенную – это можно отследить и даже исправить. Такое обнаружение, очевидно, окажется
невозможным, если в результате ошибки передачи одна разрешенная кодовая комбинация перейдет в другую. В
связи с этим возникает проблема поиска таких способов избыточного кодирования, при которых вероятность
перехода одной разрешенной кодовой комбинации в другую была бы минимальной. Задача помехоустойчивого
кодирования может быть сформулирована следующим образом:
из S кодовых комбинаций выбрать Sр разрешенных таким образом, чтобы получить возможность обнаружить и
исправить все заранее оговоренные ошибки при заданной модели ошибок и минимальной избыточности кода.
Модель ошибок понимается здесь следующим образом. Пусть p – вероятность появления ошибки при передаче
отдельного бита кодовой комбинации. Для оценки вероятности возникновения ошибки при передаче кодовой
комбинации, состоящей их n бит необходимо принять определенные исходные предположения, которые и
называются математической моделью ошибок. Наиболее простая из них (рассмотрим только ее) – считать
появление ошибки в каждом отдельном знаке (бите) кода случайным событием, которое не зависит от того, с
ошибками или без были переданы предыдущие биты. Тогда:
1 – p – вероятность безошибочной передачи отдельного бита;
(1 – p)n – вероятность безошибочной передачи цепочки n бит;
Pn = 1 – (1 – p)n – вероятность появления ошибки в комбинации n бит.
При малых p можно воспользоваться известным соотношением (1 – )n
n для || <<1; тогда Pn
np. Так
можно оценить суммарную вероятность появления всех ошибок. Если же требуется найти вероятность ошибки с
заданной кратностью  (например, однократной, двукратной и т.д.), то следует воспользоваться формулой Бернулли
(биноминальным распределением):
В помехоустойчивых кодах k информационных бит дополняются r проверочными, в результате чего коды
становятся избыточными, количественной мерой которого является относительная избыточность
помехоустойчивого кода:
F(n,k) показывает, какая часть переданной кодовой комбинации не содержит первичной информации.
Классификация:
Первый классификационный признак – коды бывают блочными или непрерывными. При блочном кодировании
передаваемые двоичные сообщения представляют собой последовательности отдельных блоков – кодовых
комбинаций, которыми кодируются знаки (или группы знаков) первичного алфавита.
Если все кодовые комбинации имеют одинаковую длину, код называется равномерным; если нет –
неравномерным. При декодировании удобнее (проще) иметь дело с равномерным кодом, поэтому именно он
используется в помехоустойчивом кодировании. Непрерывные (цепные) коды представляют собой непрерывную
последовательность бит, не разделяемую на блоки (информационные и проверочные биты в них чередуются по
определенному правилу).
Второй классификационные признак, относящийся как к блочным, так и к непрерывным кодам, подразделяет
коды на разделимые и неразделимые. Разделимыми называются коды, в которых информационные и проверочные
биты располагаются в строго определенных позициях. В неразделимых кодах такой определенности нет, что
затрудняет их кодирование и декодирование. Поэтому практический интерес представляют в основном разделимые
коды, а из неразделимых – только коды с постоянным весом.
Третий классификационный признак относится только к блочным разделимым кодам – они подразделяются на
систематические (линейные) и несистематические.
Систематическими называются такие коды, в которых информационные и проверочные биты связаны между
собой зависимостями, описываемыми линейными уравнениями.
В несистематических (нелинейных) кодах информационные и проверочные биты либо вообще не имеют связи,
либо эта связь нелинейна – такие коды применяются крайне редко.
Наиболее часто в линиях связи используются систематические коды, которым относятся циклические, коды
Хемминга, матричные и ряд других
Принцип обнаружения ошибок заключается в том, что декодер проверяет принадлежность принятой
комбинации разрешенному подмножеству: если код принадлежит ему, то принимается решение, что ошибок нет;
если же принятая комбинация оказывается запрещенной, то принимается решение о наличии ошибки. Код может
обнаруживать ошибки, если число запрещенных комбинаций Sf > 0. Ошибки нельзя обнаружить только в тех случаях,
когда одна кодовая комбинация перешла в другую. Вероятность обнаружения ошибок (п,k) кода определяется
выбором разрешенных кодовых комбинаций и не зависит от свойств канала связи.
Принцип исправления ошибок состоит в том, что все множество комбинаций кода 2n разделяется на 2k
непересекающихся подмножеств, которые называются областями решений. Каждая область решения примыкает к
одной из разрешенных кодовых комбинаций. Если принятая комбинация попадает в одну из 2k областей, то
принимается решение о передаче кодовой комбинации, соответствующей этой области. Исправление ошибок будет
происходить в тех случаях, когда кодовое слово и принятая запрещенная комбинация относятся к одной области
решений. В каждую область решений включают такие запрещенные комбинации, при приеме которых наиболее
вероятной является одна из разрешенных кодовых комбинаций, что соответствует принципу максимального
правдоподобия.
Принцип отбора кодовых комбинаций, наиболее устойчивых к искажениям, предложил Р.Хемминг.
Оптимальным называется (n,k)-код, который обеспечивает минимальную вероятность
декодирования среди всех иных кодов с теми же n и k.
ошибочного
Его идея состоит в добавлении к информационным битам нескольких битов четности, каждый из кот-х
контролирует определенные информационные биты. Если пронумеровать все передаваемые биты, начиная с 1
слева направо, то контрольными оказываются биты, номера кот-х равны степеням числа 2, а все остальные
являются информационными. Например, для 8-битного информационного кода контрольными окажутся биты с
номерами 1,2,4 и 8:
для любого номера проверочного бита (m), начиная с него, m бит подряд оказываются проверяемыми, затем
следует группа m непроверяемых бит; далее происходит чередование групп.
К контролируемым битом относится и тот, в кот-м располагается проверочный. При этом состояние
проверочного бита устанавливается таким образом, чтобы суммарное кол-во единиц в контролируемых им битах
было бы четным.
Алгоритм проверки исправления передаваемой последовательности бит в представлении Хемминга:
1.произвести проверку всех битов четности;
2.если все биты четности верны, то перейти к 5;
3.вычислить сумму номеров всех неправильных битов четности;
4.инвертировать содержимое бита, номер кот-го равен сумме, найденной в 3;
5. исключить биты четности, передать правильный информационный код.
Построение систематического кода.
Рассмотрим (n,k) код. Кодовую комбинацию представим в виде кодового вектора, у которого информационные
биты обозначим u1 … uk, а проверочные – p1… pr: U = {u1, u2, …, uk, p1, p2,…, pr}. Поскольку кодирование
двоичное, ясно, что каждый бит кода может принимать значение 0 или 1.
В систематических кодах информационные и проверочные биты занимают строго определенные позиции в
кодовых комбинациях.
Из 2k разрешенных кодовых комбинаций (кодовых векторов) всегда можно выделить k линейно независимых:
Кодовые векторы U(1) … U(k) называются линейно независимыми, если выполняется условие 1U(1)  2U(2)
… kU(k)0 при любых наборах значений i (i = 0 или 1, но не все одновременно 0).
Совокупность k линейно независимых кодовых комбинаций образуют порождающую (производящую) матрицу
систематического (n,k) кода; при этом сами независимые комбинации,
каждая из которых формирует одну строку матрицы, называются базисными.
Все остальные разрешенные комбинации (небазисные) могут быть получены как линейные комбинации
базисных (включая «нулевую» комбинацию – у нее все j,i = 0):
(суммирование, как всегда, производится по mod 2).
В производящей матрице можно выделить информационную подматрицу размером k  k (будем обозначать ее
Ak,k) и проверочную подматрицу размером r  k (будем обозначать ее Pr,k); т.е. производящую матрицу можно
представлять как объединение информационной и проверочной подматриц:
Gn,k = Ak,k + Pr,k.
Построение систематического кода обычно начинается с подбора k линейно независимых кодовых векторов и
формирования информационной подматрицы. Далее в соответствии с k и желательными корректирующими
свойствами кода определяется r. Проверочная подматрица строится таким образом, чтобы вес каждой базисной
кодовой комбинации оказывался не меньше dmin, которое определяется кратностью предполагаемой ошибки. После
построения порождающей матрицы остальные разрешенные коды находятся линейными комбинациями (по mod 2)
базисных.
6. Машины Поста и Тьюринга как способ представления алгоритма.
Исторически термин «алгоритм» произошел от фамилии узбекского математика IX века Мухаммада
ибн Муса ал-Хорезми, который впервые сформулировал правила четырех основных арифметических
действий. Поначалу именно эти правила назывались алгоритмами, но затем термин получил дальнейшее
развитие в первую очередь в математике – алгоритмом стал называться любой способ вычислений,
единый для некоторого класса исходных данных, например, нахождение производной функции. На уровне
здравого смысла можно сказать, что алгоритм – это точно определенная (однозначная)
последовательность простых (элементарных) действий, обеспечивающих решение любой задачи из
некоторого класса. Однако данное утверждение нельзя принять в качестве строгого определения
алгоритма, поскольку в нем использованы другие неопределенные понятия – однозначность,
элементарность и пр. Понятие можно уточнить, указав перечень общих свойств, которые характерны для
алгоритмов. К ним относятся:
1. Дискретность алгоритма означает, что алгоритм разделен на отдельные шаги (действия),
причем, выполнение очередного шага возможно только после завершения всех операций на
предыдущем шаге. При этом набор промежуточных данных конечен и он получается по
определенным правилам из данных предыдущего шага.
2. Детерминированность алгоритма состоит в том, что совокупность промежуточных величин
да любом шаге однозначно определяется системой величин, имевшихся на предыдущем
шаге. Данное свойство означает, что результат выполнения алгоритма не зависит от того, кто
(или что) его выполняет (т.е. от исполнителя алгоритма), а определяется только входными
данными и шагами (последовательностью действий) самого алгоритма.
3. Элементарность шагов: закон получения последующей системы величин из предыдущей
должен быть простым и локальным. Какой шаг (действие) можно считать элементарным,
определяется особенностями исполнителя алгоритма.
4. Направленность алгоритма: если способ получения последующих величин из каких-либо
исходных не приводит к результату, то должно быть указано, что следует считать
результатом алгоритма.
5. Массовость алгоритма: начальная система величин может выбираться из некоторого
множества.
Исполнитель алгоритма – это субъект или устройство, способные правильно интерпретировать
описание алгоритма и выполнить содержащийся в нем перечень действий.
Исходя из свойств алгоритма, можно сформулировать общие требования к алгоритмическим
машинам:
1. характер их функционирования должен быть дискретным, т.е. состоять из отдельных шагов ,
каждый из которых выполняется только после завершения предыдущего;
2. действия должны быть детерминированы, т.е. шаги выполняются в строгом порядке, а их
результат определяется самим шагом и результатами предыдущих шагов;
3. перед началом работы машине предоставляются исходные данные из области определения
алгоритма;
4. за конечное число шагов работы машины должен быть получен результат (или информация о
том, что считать результатом);
5. машина должна быть универсальной, т.е. такой, чтобы с ее помощью можно было бы
выполнить любой алгоритм.
Чем проще структура (т.е. устройство) описанной машины и чем элементарнее ее шаги, тем больше
оснований считать, что ее работа и есть выполнение алгоритма. Чтобы ответить на вопрос, какие шаги
работы машины следует отнести к элементарным, вернемся к тому обстоятельству, что нас интересует
преобразование информации, представленной с помощью некоторого конечного алфавита. Требование
конечности алфавита является очевидным следствием того обстоятельства, что решение должно быть
получено за конечное число шагов. Если информация не представлена в дискретной форме, например,
вещественное число, то его обработка в общем случае может содержать бесконечное число шагов
(например, нахождение цифр числа p или извлечение квадратного корня из числа 2). Таким образом,
алгоритм оказывается конечной последовательностью действий, производимых над данными,
представленными с помощью конечного алфавита. С учетом сказанного становится понятным
определение алгоритма, которое дает В.М.Глушков:
Алгоритм – это любая конечная система правил преобразования информации (данных) над любым
конечным алфавитом.
Пусть исходные данные из области определения алгоритма представлены посредством алфавита A и
образуют при этом конечную последовательность знаков {a1…a n} – такая последовательность называется
словом. В результате выполнения алгоритма сформируется новое слово {b1…bm}, представленное, в
общем случае, в другом алфавите B. На первый взгляд для проведения такого преобразования в качестве
элементарных выделяются следующие операции (шаги):
1. замена одного знака исходного слова ai знаком bj из алфавита B;
2. удаление знака исходного слова;
3. добавление к исходному слову знака из алфавита B.
Однако если в алфавиты включен знак, имеющий смысл пустого знака, добавление которого к слову
слева или справа не изменяет этого слова (аналог числового нуля), то легко видеть, что операция (2) есть
ни что иное, как замена ai пустым знаком, а операция (3) есть замена пустого знака знаком bj. Таким
образом, все возможные алфавитные преобразования сводится к операции (1) – замене одного знака
другим. Именно по этой причине функционирование абстрактной машины сводится к тому, что она
обозревает символы (т.е. считывает и распознает их), записанные в памяти (в этом качестве выступает
бесконечная лента), и в зависимости от своего состояния и того, каков обозреваемый символ, она
заменяет его другим символом; после этого она переходит в новое состояние, читает следующий символ
и т.д. до команды о прекращении работы. Поскольку подобные машины являются чисто модельным,
теоретическим построением, они получили название абстрактных машин и рассматриваются в качестве
одной из возможных универсальных алгоритмических систем.
Концепция алгоритма как абстрактной машины была выдвинута практически одновременно (1936 –
1937 гг.) английским математиком Аланом Тьюрингом и его американским коллегой Эмилем Постом.
Высокая значимость их построений еще и в том, что они в абстрактной форме предвосхитили основные
принципиальные черты реальных устройств по обработке данных (вычислительных машин), которые
появились лишь спустя 8 – 9 лет.
Абстрактная машина Поста состоит из бесконечной ленты, разделенной на равные секции, а также
считывающе-записывающей головки. Каждая секция может быть либо пуста (т.е. в нее ничего не
записано), либо заполнена (отмечена – т.е. в нее записана метка). Вводится понятие состояние ленты
как информация о том, какие секции пусты, а какие отмечены (по-другому: состояние ленты – это
распределение меток по секциям, т.е. это функция, которая каждому числовому номеру секции ставит в
соответствие либо метку, либо знак «пусто»). Естественно, в процессе работы машины состояние ленты
меняется. Состояние ленты и информация о положении головки характеризуют состояние машины
Поста.
Условимся обозначать головку знаком « » над обозреваемой секцией, а метку – знаком «M» внутри
секции. Пустая секция никакого знака не содержит. За один такт (его называют шагом) головка может
сдвинуться на одну секцию вправо или влево и поставить или удалить метку. Работа машины Поста
заключает в переходе от одного состояния машины к другому в соответствии с заданной программой,
которая строится из отдельных команд. Каждая команда имеет следующую структуру: xKy, где x – номер
исполняемой команды; K – указание о выполняемом действии; y – номер следующей команды
(наследника). Система команд машины включающая шесть действий, представлена в табл. 7.1.
Таблица 7.1.
№ п/п
Запись
команды
Шаг вправо
X->y
Шаг влево
X<-y
Установить метку
XMy
Стереть метку
XCy
Команда
Описание действий машины
Сдвиг головки на одну секцию вправо
Сдвиг головки на одну секцию влево
В обозреваемую секцию ставится метка
Из обозреваемой секции удаляется метка
При отсутствии метки в обозреваемой
Передача
5
секции управление передается команде y1,
управления
при наличии – команде y2.
6
Остановка
x стоп
Прекращение работы машины
Данный перечень должен быть дополнен следующими условиями:
1
2
3
4



команда <xMy> может быть выполнена только в пустой секции;
команда <xCy> может применяться только к заполненной секции;
номер наследника любой команды (y) должен соответствовать номеру команды,
обязательной имеющейся в данной программе.
Если данные условия не выполняются, происходит безрезультатная остановка машины, т.е.
остановка до получения запланированного результата. В отличие от этой ситуации, остановка по команде
<x стоп> является результативной, т.е. она происходит после того, как результат действия алгоритма
получен. Кроме того, возможна ситуация, когда машина не останавливается никогда – это происходит,
если ни одна из команд не содержит в качестве последователя номера команды остановки или программа
не переходит к этой команде.
Еще одним исходным соображением является следующее: поскольку знаки любого конечного
алфавита могут быть закодированы цифрами, преобразование исходного слова может быть
представлено в виде некоторых правил обработки чисел. По этой причине в машине Поста
предусматривается только запись (представление) целых положительных чисел.
Целое число k записывается на ленте машины Поста посредством k+1 следующих подряд отмеченных секций,
т.е. применяется унарная система счисления. Соседние записи чисел на ленте разделяются одной или несколькими
пустыми секциями. Ниже приведен пример записи чисел 0, 2 и 3.
M MMM
MMMM
Машина Тьюринга состоит из трех частей: ленты, считывающе-записывающей головки и логического
устройства.
Лента выступает в качестве внешней памяти; она считается неограниченной.
Как и в машине Поста, лента разбита на отдельные ячейки, однако, в машине Тьюринга неподвижной
является головка, а лента передвигается относительно нее вправо или влево. Другим отличием является
то, что она работает не в двоичном, а некотором произвольном конечном алфавите A = {∆, a1…a n} – этот
алфавит называется внешним. В нем выделяется специальный символ –∆, называемый пустым знаком –
его посылка в какую-либо ячейку стирает тот знак, который до этого там находился, и оставляет ячейку
пустой. В каждую ячейку ленты может быть записан лишь один символ. Информация, хранящаяся на
ленте, изображается конечной последовательностью знаков внешнего алфавита, отличных от пустого
знака.
Головка всегда расположена над одной из ячеек ленты. Работа происходит тактами (шагами). Система
исполняемых головкой команд предельно проста: на каждом такте она производит замену знака в
обозреваемой ячейке ai знаком aj. При этом возможны сочетания:

j = i – это означает, что в обозреваемой ячейке знак не изменился;

i≠0, j = 0 означает, что хранившийся в ячейке знак заменяется пустым, т.е. стирается;
 i =0, j≠ 0 означает, что пустой знак заменяется непустым (с номером j в алфавите), т.е.
производится вставка знака;

i≠ j ≠0 соответствует замене одного знака другим.
Таким образом, в машине Тьюринга реализуется система предельно простых команд обработки
информации. Эта система команд обработки дополняется также предельно простой системой команд
перемещений ленты: на ячейку влево, на ячейку вправо и остаться на месте, т.е. адрес обозреваемой
ячейки в результате выполнения команды может либо измениться на 1, либо остаться неизменным.
Однако, хотя фактически происходит перемещение ленты, обычно рассматривается сдвиг головки
относительно обозреваемой секции – по этой причине команда сдвига ленты влево обозначается R
(«Right»), сдвига вправо – L («Left»), отсутствие сдвига – S («Stop»). В дальнейшем мы будем говорить
именно о сдвиге головки и считать R, L и S командами ее движения. Элементарность этих команд
означает, что при необходимости обращения к содержимому некоторой ячейки, она отыскивается только
посредством цепочки отдельных сдвигов на одну ячейку. Разумеется, это значительно удлиняет процесс
обработки, зато позволяет обойтись без нумерации ячеек и использования команд перехода по адресу,
т.е. сокращает количество истинно элементарных шагов, что важно в теоретическом отношении.
Обработка информации и выдача команд на запись знака, а также сдвига ленты в машине Тьюринга
производится логическим устройством (ЛУ). ЛУ может находиться в одном из состояний, которые
образуют конечное множество и обозначаются Q ={q1…qm, z} , причем, состояние z соответствует
завершению работы, а q1 является начальным (исходным). Q совместно со знаками R, L, S образуют
внутренний алфавит машины. ЛУ имеет два входных канала (ai, qi) и три выходных (ai+1, qi+1, Di+1) (см.
рисунок):
Понимать схему необходимо следующим образом: на такте i на один вход ЛУ подается знак из
обозреваемой в данный момент ячейки (ai,), а на другой вход – знак, обозначающий состояние ЛУ в
данный момент (qi). В зависимости от полученного сочетания знаков (ai, qi) и имеющихся правил
обработки ЛУ вырабатывает и по первому выходному каналу направляет в обозреваемую ячейку новый
знак (ai+1), подает команду перемещения головки (Di+1 из R, L и S), а также дает команду на вызов
следующего управляющего знака (qi+1 ). Таким образом, элементарный шаг (такт) работы машины
Тьюринга заключается в следующем: головка считывает символ из обозреваемой ячейки и, в зависимости
от своего состояния и прочитанного символа, выполняет команду, в которой указано, какой символ
записать (или стереть) и какое движение совершить. При этом и головка переходит в новое состояние.
Схема функционирования такой машины представлена на рис. 7.2.
В данной схеме отражено разделение памяти на внешнюю и внутреннюю. Внешняя представлена, как
указывалось, в виде бесконечной ленты – она предназначена для хранения информации, закодированной
в символах внешнего алфавита. Внутренняя память представлена двумя ячейками для хранения
следующей команды в течение текущего такта: в Q передается из ЛУ и сохраняется следующее
состояние (qi+1), а в D – команда сдвига (Di+1). Из Q по линии обратной связи qi+1 поступает в ЛУ, а из D
команда поступает на исполнительный механизм, осуществляющий при необходимости перемещение
ленты на одну позицию вправо или влево.
Общее правило, по которому работает машина Тьюринга, можно представить следующей записью:
qiaj->qi’aj ’Dk, т.е. после обзора символа aj головкой в состоянии qi, в ячейку записывается символ aj’,
головка переходит в состояние qi’, а лента совершает движение Dk. Для каждой комбинации qiaj имеется
ровно одно правило преобразования (правил нет только для z, поскольку, попав в это состояние, машина
останавливается). Это означает, что логический блок реализует функцию, сопоставляющую каждой паре
входных сигналов qiaj одну и только одну тройку выходных qi’aj’Dk – она называется логической функцией
машины и обычно представляется в виде таблицы (функциональной схемой машины), столбцы которой
обозначаются символами состояний, а строки – знаками внешнего алфавита. Если знаков внешнего
алфавита n, а число состояний ЛУ m, то, очевидно, общее число правил преобразования составит n ·m.
Конкретная машина Тьюринга задается перечислением элементов множеств A и Q, а также,
логической функцией, которую реализует ЛУ, т.е. набором правил преобразования. Ясно, что различных
множеств A, Q и логических функций может быть бесконечно много, т.е. и машин Тьюринга также
бесконечно много.
Прежде, чем обсуждать функционирование машины Тьюринга, введем еще одно понятие.
Совокупность состояний всех ячеек ленты, состояния ЛУ и положение головки называется
конфигурацией машины.
Записать конфигурацию можно следующим образом: ∆a1qiaj…ak ∆, которая означает, что в слове из k
символов обозревается секция номер j и при этом управляющее устройство находится в состоянии qi.
Ясно, что конфигурация машины может содержать любое количество символов внешнего алфавита и
лишь один символ внутреннего. Часто конфигурацию записывают в виде a 1 qia 2, где a 1 – слово на ленте
слева от головки, a 2 – слово на ленте справа от головки, включая обозреваемый знак. Слева от a 1 и
справа от a 2 лента пуста. Конфигурация, изображенная на рис. 7.1., может быть записана следующим
образом: a1 ∆a2∆qa3a 4ak, на рис. 7.2. – 1q1111.
Перед началом работы на пустую ленту записывается исходное слово a конечной длины в алфавите
A; головка устанавливается над первым символом слова a, ЛУ переводится в состояние q1 (т.е. начальная
конфигурация имеет вид q1a). Поскольку в каждой конфигурации реализуется только одно правило
преобразования, начальная конфигурация однозначно определяет всю последующую работу машины, т.е.
всю последовательность конфигураций вплоть до прекращения работы.
В зависимости от начальной конфигурации возможны два варианта развития событий:


после конечного числа тактов машина останавливается по команде остановки; при этом на
ленте оказывается конечная конфигурация, соответствующая выходной информации;
остановки не происходит.
В первом случае говорят, что данная машина применима к начальной информации, во втором – нет.
Вся совокупность входных конфигураций, при которых машина обеспечивает получение результата,
образуют класс решаемых задач. Очевидно, применять машину Тьюринга для задачи, не входящей в
класс решаемых, бессмысленно. С другой стороны, во многих случаях возможно расширение класса
решаемых задач за счет создания другой машины Тьюринга.
7. Представление о конечном автомате. Комбинационные схемы. Логические элементы.
Понятие о полноте элементов. Способы задания конечных автоматов.
Обычно автоматом называют устройство, выполняющее без непосредственного участия человека
определенную последовательность операций, в результате которой происходит преобразование
материальных объектов, энергии или информации. Поскольку устройство обменивается информацией с
внешней средой, очевидно, оно должно обладать входным каналом, по которому информация поступает в
него, а также выходным каналом, через который выдается результат преобразования. Помимо этого,
устройство может обладать памятью, в которой фиксируется его текущее состояние; результат
обработки в общем случае определяется входными воздействиями и внутренним состоянием устройства.
Будем считать, что для представления входной информации используется некоторый конечный алфавит
X (входной алфавит), а для представления выходной – конечный алфавит Y (выходной алфавит). Как
отмечалось ранее, требование конечности алфавитов является следствием конечности времени
обработки информации. Внутренние состояния устройства также образуют дискретный набор, который
можно считать внутренним алфавитом – будем обозначать Q. Что касается числа различных внутренних
состояний, то пока не будем делать относительно его никаких предположений.
Устройства, у которых дискретны множества внутренних состояний, входных и выходных сигналов, а
также множество моментов времени, в которые поступают входные сигналы, меняются внутренние
состояния и выдаются выходные сигналы, называются дискретными.
Пусть имеется дискретное устройство, имеющее n входов x1,…, xn и m выходов y1, …, ym. Если данное
устройство не обладает памятью, то преобразование входных сигналов в выходные описывается
системой уравнений:
Если входной и выходной алфавит являются двоичными, то представленная система оказывается
системой логических функций, для решения которой можно привлечь аппарат математической логики.
Именно такие устройства будем рассматривать в дальнейшем.
Подобные устройства могут быть построены путем соединения некоторого набора элементарных
компонентов (элементов). Эти элементы образуют конечный набор, называемый базисом, а входящие в
него элементы – базисными. Базис имеет смысл совокупности элементарных (простейших) действий, о
которых шла речь в теории алгоритмов, а базисный элемент можно рассматривать в качестве устройства,
выполняющее элементарное действие. Если речь идет о двоичных дискретных устройствах, то базисы
строятся из элементов, которые реализуют простейшие логические функции. Напомним, что к таким
функциям относятся конъюнкция (логическое И ), дизъюнкция (логическое ИЛИ ), импликация (->),
сумма по модулю 2 ( ), эквивалентности (~) и отрицания (логическое НЕ
). Однако между
простейшими функциями имеются соотношения эквивалентности, позволяющие выразить одни
функции через другие. В результате оказывается, что нет необходимости включать в базис все элементы,
реализующие простейшие логические функции – достаточно выбрать некоторое минимальное их
подмножество. Этому условию удовлетворяет базис, построенных на элементах И, ИЛИ и НЕ – он
называется простейшим, а входящие в него элементы – логическими элементами или (логическими
вентилями).
Комбинируя базисные элементы по определенным правилам, можно построить их сложные
объединения – схемы (над данным базисом), способные совершать преобразования, соответствующие,
вообще говоря, любым логическим функциям. Таким образом, схема есть комбинация базисных
элементов, в которой выходы одних элементов присоединяются к входам других. Если в таких
объединениях элементов отсутствуют замкнутые контуры (подача сигнала с выхода элемента на один из
его же входов), то возникает класс схем, которые называются комбинационными. Говорят, что базис
обладает свойством полноты, если схемами над ним может быть реализована любая логическая
функция (и, следовательно, любая система логических функций). В частности, таким свойством обладает
простейший базис.
Конечным автоматом называется система <X,Y,Q, Ψ, Θ> , в которой X и Y являются конечными
входным и выходным алфавитами, Q – конечным множеством внутренних состояний, Ψ(x,q) – функцией
переходов и Θ(x,q) – функцией выходов.
Ψ (x,q) задает порядок преобразования входных символов и состояния автомата на предыдущем такте
в состояние на последующем, а Θ(x,q) – преобразования входных символов и состояния автомата на
текущем такте в выходной символ. Если q0 – начальное состояние автомата, а i – номер такта, то его
работа описывается системой:
Данные соотношения получили название системы канонических уравнений конечного автомата.
Пользуясь ими можно, начиная с q0, последовательно находить все последующие состояния автомата и
выходные символы.
Выделяются два типа автоматов – инициальные и неинициальные. В инициальных автоматах
начальное состояние фиксировано (т.е. они всегда начинают работать из одного и того же состояния q0).
В неинициальных автоматах в качестве начального состояния может быть выбрано любое из множества
Q; этим выбором определяется дальнейшее поведение автомата.
Представление конкретного конечного автомата фактически сводится к описанию задающих его
автоматных функций. При конечном числе возможных внутренних состояний количество возможных
значений автоматных функции также оказывается конечным. Их описание возможно различными
способами, наиболее распространенными из которых является табличный и с помощью диаграмм.
В табличном способе автоматные функции задаются двумя конечными таблицами, именуемыми
соответственно матрицей переходов и матрицей выходов. В этих таблицах строки обозначаются
буквами входного алфавита, а столбцы – буквами внутреннего алфавита (символами, кодирующими
внутреннее состояние автомата). В матрице переходов на пересечении строки (xk) и столбца (qr)
помещаются значения функции Ψ(qr, xk ), а в матрице выходов – значения функции Θ(qr, xk).
Другой вариант описания автоматных функций – графический. Он обладает большей наглядностью,
чем табличный. Состояния автомата <X,Y,Q, Ψ, Θ > задается посредством ориентированного графа,
который называется диаграммой (точнее, диаграммой Мура). Вершины графа помечены символами из
алфавита состояний автомата Q, а каждой команде qixr ->qjys соответствует ребро, идущее из вершины qi
в вершину qj; при этом ребру приписывается метка xrys. Таким образом, ребро возникает в том случае,
если автомат, находящийся в состоянии qi, посредством некоторого входного сигнала xr может быть
переведен в состояние qj. Если такой перевод возможен при нескольких входных воздействиях (xr )(1),…,
(xr ) (n), и при этом формируются выходные сигналы (ys )(1),…, (ys )(n), то ребру приписывается выражение
((xr )(1), (ys )(1)) v ((xr )(2), (ys )(2)) v…v ((xr )(n), (ys)(n)).
Для диаграмм, представляющих конечный автомат, справедливы следующие утверждения:
 из одной вершины не может выходить двух ребер с одинаковым входным символом (условие
однозначности);
 если при работе автомата реализуется входная комбинация qixr, то обязательно существует ребро,
идущее из вершины qi помеченное символом xr (условие полноты);
 количество вершин и ребер диаграммы является конечным.
При создании конечных автоматов используется несколько типов элементов памяти, из которых
основными следует считать элемент задержки, двоичный триггер и двоичный счетчик.
Элемент задержки имеет функцию перехода вида q(ti) = x(ti) и функцию выхода вида y(ti) = q(ti-1). Из
них, в частности видно, что y(ti+1) = q(ti) = x(ti), т.е. элемент осуществляет задержку входного сигнала на
один такт (поданный на некотором такте сигнал поступит на выход лишь на следующем такте). Задержка
используется в линиях обратной связи, когда, например, сигнал подается с выхода схемы на ее вход.
Двоичный триггер имеет два входа x1 и x2. Функция переходов имеет следующий вид: q(ti)= Ψ (x1 (ti),
x2(ti)); ее значения устанавливаются таким образом: Ψ (1,0) = 1, т.е. при подаче 1 на вход x1 и 0 на вход x2
триггер переходит в состояние 1 и сохраняет это состояние до тех пор, пока оно не будет заменено иным;
Ψ (0,1) = 0, т.е. 0 на x1 и 1 на x2 переводят триггер в состояние 0; Ψ i(0,0) = Ψ i-1, т.е. при обоих нулевых
сигналах состояние триггера не изменяется. Одновременная подача единичных сигналов на оба входа
триггера исключается конструкцией схемы. Выходная функция триггера при любых состояниях y(ti) = q(ti),
т.е. на выход подается текущее состояние триггера, но оно от этого не изменяется. Таким образом,
триггер сохраняет сколь угодно долго записанный в него бит информации. Объединения подобных
элементов образуют регистры и ячейки памяти, из которых, в свою очередь, строится вся память
устройства. Память эта по количеству двоичных элементов, разумеется, конечна.
Двоичный счетчик имеет один вход; он меняет свое состояние на противоположное, если на входе 1,
и сохраняет его, если на входе 0. Очевидно, q(ti)= Ψ (x(ti), q(ti-1)), причем, Ψ (1,1)=0, Ψ (1,0)=1, Ψ (0,1)=1, Ψ
(0,0)=0; y(ti)= q(ti).
Добавлением элементов памяти к базису из логических элементов, использовавшихся при построении
комбинационных схем, образует новый базис, который обладает свойством полноты. Под полнотой
понимается возможность построения на основе данного базиса схемы, задающей любое отображение
последовательностей входных сигналов на последовательности выходных, которое вообще может быть
задано дискретным двоичным преобразователем информации с конечной памятью. Другими словами,
возможно построение любых схем, поведение которых определяется как входными сигналами, так и их
состоянием на предыдущем такте.
8. Структурная теорема. Поток управления и его виды: следование, ветвлений, цикл.
Понятие структурного алгоритма. Теорема Бома-Джакопини.
После того, как были рассмотрены возможные способы записи алгоритмов, вполне
закономерным представляется вопрос о технологии их разработки. До середины 60-х годов
теории разработки алгоритмов не существовало – процесс разработки целиком определялся
опытом и искусством программиста. Однако по мере роста сложности программ возникла
необходимость создания методологии разработки программ, и она появилась в виде
структурного программирования. Идеи структурного программирования были высказаны в 1965
г. Э.Дейкстрой, но сведены в некую законченную систему правил они не были.
Поскольку алгоритм определяет порядок обработки информации, он должен содержать, с
одной стороны, действия по обработке, а с другой стороны, порядок их следования, называемым
потоком управления. Блоки, связанные с обработкой данных, делятся на простые и условные.
Особенность простого действия в том, что оно имеет один вход и один выход, в отличии от
условного, обладающим двумя выходами в зависимости от того, истинным ли окажется условие.
Простое действие не означает, что оно единственное – это может быть некоторая
последовательность действий.
Часть алгоритма, организованная как простое действие, т.е. имеющая один вход (выполнение
начинается всегда с одного и того же действия) и один выход (т.е. после завершения данного
блока всегда начинает выполняться одно и то же действие), называется функциональным
блоком.
Из этого определения, в частности, следует, что каждое простое действие является
функциональным блоком, а условное – нет.
Согласно положениям структурного программирования можно выделить всего три различных
варианта организации потока управления действиями алгоритма. Поток управления может
обладать следующими свойствами:
1. каждый блок выполняется не более одного раза;
2. выполняется каждый блок.
Поток управления, в котором выполняются оба эти свойства, называется линейным – в нем
несколько функциональных блоков выполняются последовательно. Линейному потоку на языке
блок-схем соответствует структура:
Очевидно несколько блоков, связанных линейным потоком управления, могут быть
объединены в один функциональный блок:
Второй тип потока управления называется ветвлением – он организует выполнение одного из
двух функциональных блоков в зависимости от значения проверяемого логического условия.
Блок-схема структуры:
В этом типе выполняется свойство (1), свойство (2) – нет. Если структура содержит два
функциональных блока (S1 и S2), ветвление называется полным; возможно существование
неполного ветвления – при этом один из блоков пуст (обычно S2).
Третий тип потока управления называется циклическим – он организует многократное
повторение функционального блока, пока логическое условие его выполнение является
истинным. Для циклического потока выполняется свойство (2), но не выполняется (1). Его блоксхема показана на рисунке
Поскольку ветвление и циклический типы управления имеют один вход и один выход, они в
целом также подходят под определение функционального блока. Введем рекурсивным образом
понятие стандартного функционального блока:
1. каждое простое действие есть стандартный функциональный блок;
2. каждая из описанных трех управляющих структур является стандартным функциональным
блоком, если все входящие в них блоки являются стандартными функциональными;
3. других стандартных функциональных блоков не существует.
Определим еще одно понятие:
Алгоритм называется структурным, если он может быть представлен стандартным
функциональным блоком.
Другими словами, структурный алгоритм представляет собой комбинацию трех
рассмотренных выше структур (иногда они называются базовыми алгоритмическими
структурами). Безусловно, не все алгоритмы являются структурными. Однако именно
структурные алгоритмы обладают рядом замечательных преимуществ по сравнению с
неструктурными:
 понятность и простота восприятия алгоритма (поскольку невелико число исходных
структур, которыми он образован);
проверяемость (для проверки любой из основных структур достаточно убедиться в
правильности входящих в нее функциональных блоков);

 модифицируемость (она состоит в простоте изменения структуры алгоритма, поскольку
составляющие блоки относительно независимы).
После введенных определений можно сформулировать структурную теорему БомаДжакопини:
любой алгоритм может быть сведен к структурному.
Или по-другому:
любому неструктурному алгоритму может быть построен эквивалентный ему структурный
алгоритм.
Значение структурной теоремы для практики программирования состоит в том, что на ее
основе разработан и широко используется структурный метод программирования. Основой
метода является использование принципа модульности построения сложных программ. При
этом каждый программный модуль организуется в виде стандартного функционального блока
(т.е. строится только из трех базовых структур) и выполняет лишь одну функцию по обработке
данных. В идеале каждый такой модуль должен иметь один вход и один выход. Модули
обладают определенной автономностью, что позволяет их отладку (т.е. поиск и устранение
ошибок) вести независимо от остальной программы, а также обеспечивает относительно простую
модифицируемость как отдельного модуля, так и программы в целом. Эффективность метода
структурного программирования особенно заметна при создании сложных программ; модульный
принцип позволяет разбить общую задачу на составные и относительно автономные части,
каждая из которых может создаваться и отлаживаться независимо (и даже разными
разработчиками); безусловно, такое разбиение требует согласования входных и выходных
параметров модулей.
9. Операционные системы (ОС) как средство распределения и управления ресурсами. Состав ОС:
внутренние (встроенные) и внешние (программы-утилиты) команды. Сетевые ОС.
Операционная система — базовый комплекс программ, обеспечивающий управление аппаратными
средствами PC, работу с файлами, ввод и вывод данных, а также работу прикладных программ и утилит.
При включении компьютера ОС загружается в память раньше остальных (за исключением BIOS)
программ и затем служит платформой и средой для их работы. Помимо этого ОС может осуществлять и
другие функции, например, предоставление пользовательского интерфейса, сетевое взаимодействие и т. п.
С 1990-х наиболее распространёнными операционными системами являются ОС семейства Microsoft
Windows и системы UNIX (особенно Linux).
Основные функции OS:
 Загрузка приложений в оперативную память и их выполнение;
 Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);
 Управление оперативной памятью (распределение между процессами, виртуальная память);
 Управление энергонезависимой памятью (HDD, CD, etc), посредствам драйвера файловой системы;
 Пользовательский интерфейс;
Дополнительные функции OS:
 Параллельное или псевдопараллельное выполнение задач (многозадачность);
 Взаимодействие между процессами;
 Межмашинное взаимодействие (компьютерная сеть);
 Защита самой системы и пользовательских данных от зловредных;
 Разграничение прав доступа и многопользовательский режим работы (авторизация).
Операционные системы могут быть классифицированы по базовой технологии (Юникс-подобные или
подобные Windows), типу лицензии (проприетарная или открытая), актуальности (устаревшие DOS или
NextStep или современные Linux и Windows), нише использования (рабочие станции DOS, серверы AIX),
сетевой или локальной направленности (Novel NetWare или VXWorks).
Встроенные и внешние команды:
Встроенные команды – команды, предоставляемые непосредственно операционной системой (dir, cd, del).
Внешние команды – команды, предоставляемые расширениями OS (дисковые компрессоры;
дефрагментаторы; программы резервного копирования данных; архиваторы; программы, оптимизирующие
использование ресурсов PC; программы защиты и восстановления данных; антивирусные программы).
Сетевые OS – операционные системы, ориентированные исключительно на сетевую работу. Ярким
примером сетевой OS является четвёртая версия Novel NetWare.
NetWare — это сетевая операционная система и набор сетевых протоколов, которые используются для
взаимодействия с компьютерами-клиентами, подключёнными к сети. NetWare является закрытой OS. В
основе сетевых протоколов системы лежит стек протоколов Xerox XNS. В настоящее время NetWare
является последней из семейства XNS-систем.Данная OS заняла существенную долю рынка в начале 1990х и выдержала конкуренцию с Microsoft Windows NT, после выпуска которой «умерли» другие
конкурирующие системы (Banyan VINES, Ungerman-Bass Net/One).
В основу NetWare была положена очень простая идея: один или несколько выделенных серверов
подключаются к сети и предоставляют для совместного использование своё дисковое пространство в виде
«томов». На компьютерах-клиентах с операционной системой MS-DOS запускается несколько
специальных резидентных программ, которые позволяют «назначать» буквы дисков на тома.
Пользователям необходимо зарегистрироваться в сети, чтобы получить доступ к томам и иметь
возможность назначать буквы дисков. Доступ к сетевым ресурсам определяется именем регистрации.
Пользователи могут также подключаться к принтерам на сервере и печатать на сетевых принтерах.
Являясь по сути операционной средой (она не может функционировать самостоятельно и является
надстройкой над MS DOS) она предоставляет драйвер файловой системы, оптимизированной для сетевого
использования, драйвер протокола IPX, RSA основанный авторизатор и ряд служебных утилит, таких как
монитор состояния источника бесперебойного питания, сервер логов и пр.
Данная OS ни каким образом не пригодна для локальной работы, но зато не смотря на приличный
возраст (релиз четвёртой версии состоялся в начале девяностых) до сих пор активно используется при
реализации небольших (до 100 клиентов) файловых хранилищ. Нередки случаи, когда серверы под
управлением NetWare работают без сбоев годами.
Эволюция операционных систем и основные идеи
Предшественником ОС следует считать служебные программы (такие, как загрузчики), а также
библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением
универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы
минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли
избежать многократного программирования одних и тех же действий.
В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие
функциональность ОС:
 пакетный режим
 разделение времени и многозадачность
 разделение полномочий
 реальный масштаб времени
 файловые структуры и системы
Пакетный режим
Необходимость оптимального использования вычислительных ресурсов привела к появлению
концепции «пакетного режима» исполнения программ, которая предполагает наличие очереди
программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних
носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей
программы, что позволяет избежать простоя процессора.
Разделение времени и многозадачность
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени
между выполнением нескольких программ.
Необходимость в многозадачности проявилась ещё сильнее при распространении в качестве
устройств ввода-вывода телетайпов (1960-е годы). Поскольку скорость клавиатурного ввода
данных оператором много ниже, чем скорость обработки этих данных компьютером,
использование компьютера одним оператором могло привести к простою дорогостоящих
вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых
процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом
часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в
режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
Разделение полномочий
Распространение многопользовательских систем потребовало решения задачи разделения
полномочий, позволяющей избежать возможности модификации исполняемой программы или
данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно
подготовленной) программы, а также модификации самой ОС прикладной программой.
Реальный масштаб времени
Применение универсальных компьютеров для управления производственными процессами
потребовало реализации «реального масштаба времени» — синхронизации исполнения
программ с внешними физическими процессами.
Включение функции реального масштаба времени в ОС позволило создавать системы,
одновременно обслуживающие производственные процессы и решающие другие задачи.
Файловые системы и структуры
Постепенная замена перфорационных носителей (лент и карт) накопителями произвольного
доступа поставила задачу организации данных на таких носителях, с тем, чтобы данные,
введённые оператором или сформированные одной программой, могли использоваться другими.
Эта задача была решена путём реализации файловой структуры (способа однозначной
адресации файла) и файловой системы (организации дискового пространства, соответствующей
файловой структуре).
10 Информационные системы, классификация ИС, информационные модели
данных.
Информационная система (ИС) – набор технологий, оборудования и программного
обеспечения, обеспечивающих хранение, поиск, доставку и обработку информации.
Структура ИС:
ИС = база знаний + интерфейс
База знаний = база данных + методы работы с данными
ИС = БД + СУБД.
ИС можно классифицировать по:
1. типу хранимых данных ИС делятся на
 фактографические (хранение и обработка структурированных данных в виде
чисел и текстов.) Dendral, Спрут
 документальные (информация представлена в виде документов, состоящих из
наименований, описаний, рефератов и текстов) Гарант, Консультант+
2. Основываясь на степени автоматизации инф-ых процессов в системе управления
фирмой, инф-ые системы делятся на:
 Ручные. Спрут, Каскад
 Автоматические. MES (Manufacturing Execution System)
 Автоматизированные. 1С Бухгалтерия, 1С Склад.
3. В зависимости от характера обработки данных ИС делятся на
 информационно-поисковые. Гарант
 инфромационно-решающие. Maple, Maxyma
4. По характеру использования выходной инф-ии такие системы принято делить на
 управляющие. LIMS (Laboratory Information Management System )
 советующие. ДубльГис, Гарант.
5. В зависимости от сферы применения различают следующие классы ИС:
 Инф-ные системы организационного управления. ТурбоМенеджер, Амба
 ИС управления технологическими процессами. АСУ ТП
 ИС автоматизированного проектирования (САПР). Компас, AutoCad, SolidWorks
 Интегрированные (корпоративные) ИС. 1С Предприятие
Модели данных:
1. В фактографических ИС регистрируются факты – конкретные значения данных об
объектах реального мира. Основная идея таких систем заключается в том, что все
сведения об объектах (фамилии людей, числа, даты) сообщаются ПК в заранее
обусловленном формате (дата – в виде комбинации ДД.ММ.ГГГГ). Инф-ия, с которой
работает фактог-ая ИС, имеет четкую структуру, позволяющую машине отличать одно
данное от др, – фамилию от должности чел-ка, дату рожд. от роста и др. Поэтому факткая система способна давать однозначные ответы на поставленные вопросы.
2. В иерархической модели данные представляются в виде иерархической структуры.
Она удобна для работы с иерархически упорядоченной инф-ей и громоздка для инф-ии
со сложными лог-ми связями.
3. Сетевая модель означает представление данных в виде произвольного графа.
Достоинством сетевой и иерархической моделей данных яв-ся возможность их
эффективной реализации по показателям затрат памяти и оперативности. Недостатком
сетевой модели данных яв-ся высокая сложность и жесткость схемы БД, построенной на
ее основе.
4. Реляционная модель данных. При соблюдении определенных условий отношение
представляется в виде двумерной таблицы. Большинство современных БД для ПК яв-ся
реляционными. Достоинствами яв-ся ее простота, удобство реализации на ЭВМ,
наличие теоретического обоснования и возможность формирования гибкой схемы БД,
допускающей настройку при формировании запросов.
11. Понятие и состав системы управление базами данных (СУБД). Обзор возможностей и особенностей
различных СУБД. Методы хранения и доступа к данным. Локальные и удаленные базы данных. Технология
"клиент-сервер".
Система управления базами данных (СУБД) — специализированная программа, предназначенная для
манипулирования базой данных. Для создания и управления информационной системой СУБД необходима в той же
степени, как для разработки программы на алгоритмическом языке необходим транслятор.
Основные функции СУБД:
 управление данными во внешней памяти (на дисках);
 управление данными в оперативной памяти;
 журнализация изменений и восстановление базы данных после сбоев;
 поддержание языков БД (язык определения данных, язык манипулирования данными).
Обычно современная СУБД содержит следующие компоненты:
 Ядро. Отвечает за управление данными во внешней и оперативной памяти и журнализацию.
 Процессор языка базы данных. Обеспечивает оптимизацию запросов на работу с данными. Машиннонезависимого исполняемого внутреннего кода.
 Подсистема поддержки времени исполнения. Интерпретирует программы работы с данными, создающие
пользовательский интерфейс с СУБД.
 Сервисные программы. Обеспечивают дополнительные возможности по обслуживанию системы.
------------------------------------------------------------------------------------------------------------------------------------По типу управляемой базы данных СУБД разделяются на:
 Сетевые
 Объектно-реляционные
 Иерархические
 Объектно-ориентированные
 Реляционные
Сетевые БД
К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь.
Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева
узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим
элементом.
Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих
направлениях, которые соединяют родственную информацию.
Несмотря на то, что эта модель решает некоторые проблемы, связанные с иерархической моделью, выполнение
простых запросов остается достаточно сложным процессом.
Также, поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта
модель не является полностью независимой от приложения. Другими словами если необходимо изменить структуру
данных, то нужно изменить и приложение.
Иерархические БД
Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам,
соединяя вместе связанную информацию.
Например, если иерархическая база данных содержала информацию о покупателях и их заказах, то будет
существовать объект «покупатель» (родитель) и объект «заказ» (дочерний). Объект «покупатель» будет иметь
указатели от каждого заказчика к физическому расположению заказов покупателя в объект «заказ».
В этой модели запрос, направленный вниз по иерархии, прост (например: какие заказы принадлежат этому
покупателю); однако запрос, направленный вверх по иерархии, более сложен (например, какой покупатель поместил
этот заказ). Также, трудно представить не-иерархические данные при использовании этой модели.
Реляционная СУБД — СУБД, управляющая реляционными базами данных.
Понятие реляционный связано с разработками известного английского специалиста в области систем баз данных
Эдгара Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным
представлением и возможностью использования формального аппарата алгебры отношений и реляционного
исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная
таблица представляет собой двумерный массив и обладает следующими свойствами:
 каждый элемент таблицы — один элемент данных
 все столбцы в таблице однородные, то есть все элементы в столбце имеют одинаковый тип (числовой,
символьный и т. д.)
 каждый столбец имеет уникальное имя
 одинаковые строки в таблице отсутствуют
 порядок следования строк и столбцов может быть произвольным
Объектно-реляционная СУБД — реляционная СУБД, поддерживающая некоторые технологии, реализующие
объектно-ориентированный подход.
Объектно-реляционными СУБД являются, к примеру, Oracle Database и PostgreSQL; разница между объектнореляционными и объектными СУБД: первые являют собой надстройку над реляционной схемой, вторые же
изначально объектно-ориентированы.
Объектно-ориентированная СУБД — СУБД, реализующая объектно-ориентированный подход. Эта система
управления обрабатывает данные как абстрактные объекты, наделённые свойствами, в виде неструктурированных
данных, и использующие методы взаимодействия с другими объектами окружающего мира.
Объектно-ориентированная база данных — база данных, в которой данные оформлены в виде моделей объектов,
включающих прикладные программы, которые управляются внешними событиями.
Пример Объектно-ориентированной СУБД: IBM Lotus Notes/Domino
------------------------------------------------------------------------------------------------------------------------------------По способу доступа к БД СУБД разделяются на:
 Файл-серверные
 Клиент-серверные
На данный момент файл-серверные СУБД считаются устаревшими.
Файл-серверная СУБД
Архитектура "файл - сервер" не имеет сетевого разделения компонентов диалога и использует компьютер для
функции отображения, что облегчает построение графического интерфейса. "Файл-сервер" только извлекает данные
из файлов, так что дополнительные пользователи добавляют лишь незначительную нагрузку на ЦП и каждый новый
клиент добавляет вычислительную мощность сети. Минус: высокая загрузка сети.
Клиент-серверная СУБД — СУБД, использующая технологию «клиент-сервер».
Клиент-серверная СУБД позволяет обмениваться клиенту и серверу минимально необходимыми объёмами
информации. При этом основная вычислительная нагрузка ложится на сервер. Клиент может выполнять функции
предварительной обработки перед передачей информации серверу, но в основном его функции заключаются в
организации доступа пользователя к серверу.
В большинстве случаев клиент-серверная СУБД гораздо менее требовательна к пропускной способности
компьютерной сети, чем файл-серверная СУБД, особенно при выполнении операции поиска в базе данных по
заданным пользователем параметрам, т.к. для поиска нет необходимости получать на клиент весь массив данных:
клиент передаёт параметры запроса серверу, а сервер производит поиск по полученному запросу в локальной базе
данных. Результат выполнения запроса, который обычно на несколько порядков меньше по объёму, чем весь массив
данных, возвращается клиенту, который обеспечивает отображение результата пользователю.
------------------------------------------------------------------------------------------------------------------------------------В зависимости от расположения программы, использующей данные, и самих данных, а также способа
разделения данных между несколькими пользователями различают локальные и удаленные базы данных.
Локальная база данных
Данные локальной базы данных находятся на одном устройстве, в качестве которого может выступать диск
компьютера или сетевой диск.
Для обеспечения доступа к данным между несколькими пользователями, в качестве которых выступают
программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод,
получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются
одним пользователем, другой пользователь не может работать с ними.
К этой группе относятся Paradox, dBase, Access.
Удаленная база данных
Данные удаленной базы данных находятся на удаленном компьютере. (Следует обратить внимание, что каталоги
удаленного компьютера не могут рассматриваться как сетевые диски.)
Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть
программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной: посредством
запросов, передаваемых на сервер, предоставляет доступ к данным.
Серверная часть программы, работающая на удаленном сервере, принимает запросы, выполняет их и пересылает
данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL.
Программа, работающая на удаленном сервере, проектируется таким образом, чтобы обеспечить одновременный
доступ к информации нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма
блокировки файлов используют механизм транзакций.
К этой группе относятся MySQL, PostgreSQL, Firebird
12. Предпосылки появления компьютерных сетей. Понятие
Локальные и глобальные сети. Архитектура локальных сетей.
компьютерной
сети.
Компьютерная сеть — система связи между двумя или более компьютерами. Для передачи информации
могут быть использованы различные физические явления, как правило — различные виды электрических
сигналов или электромагнитного излучения.
Локальная сеть — компьютерная сеть, покрывающая относительно небольшую территорию, такую как
дом, офис, или небольшую группу зданий, например, институт, в которой компьютеры могут соединяться
по разным протоколам.
Важным свойством локальных сетей является наличие идентификатора у каждого компьютера (IP). Они
могут назначаться самостоятельно компьютером-клиентом, или DHCP сервером.
Глобальная сеть — сеть, охватывающая большие территории и включающая в себя сотни тысяч
компьютеров.
ГВС служат для объединения разрозненных сетей так, чтобы пользователи, где бы они ни находились,
могли взаимодействовать со всеми остальными участниками глобальной сети. Лучшим примером ГВС
является Интернет.
--------------------------------------------------------------------------------------------------------------------------------------Предпосылки создания компьютерных сетей
Вместе с ЭВМ возник вопрос о передаче данных между компьютерами и рациональном распределении
ресурсов.
Первые ЭВМ были сложны в эксплуатации и имели дорогостоящие аппаратные компоненты,
отсутствовали единые стандарты построения ЭВМ. С развитием аппаратной и программной базы
компьютеров, совершенствовались и сетевые технологии. Сначала были созданы системы передачи
данных первоначально в коммерческих, военных и научных целях, затем сфера применения сетей
расширилась.
В настоящее время использование компьютерных сетей является неотъемлемой частью нашей жизни,
область их применения охватывает все сферы человеческой деятельности.
История возникновения и развития компьютерных сетей
Развитие компьютерных сетей связано как с развитием собственно ЭВМ, входящих в состав сети, так и с
развитием средств телекоммуникаций.
Работы по созданию компьютерных сетей начались ещё в 60-х годах ХХ века. Прообразом компьютерных
сетей явились системы телеобработки данных (СТД), построенные на базе больших (а позже и
миниЭВМ).
В качестве средств передачи данных использовалась существующая телефонная сеть. Основными
элементами СТД являются модемы, абонентские пункты и коммутаторы. Система СТД оперировала
аналоговыми сигналами.
Основным недостатком СТД является невысокое быстродействие (9600 бит/с, реально 2400 бит/с).
Поэтому одним из направлений совершенствования СТД явилась разработка цифровых телефонных
коммутаторов.
Вторым существенным недостатком СТД является возможность передачи данных по каналу связи в один
и тотже момент времени только с одной скоростью. Этот недостаток был преодолен использованием
впервые в 70-х годах в США коммуникаций кабельного телевидения, позволяющих вести широкополосную
передачу (ШП).
Третьим направлением перехода к сетям была разработка высокоскоростных шин для обеспечения
взаимодействия нескольких больших ЭВМ.
Четвёртым направлением развития сетей была реализация распределённой обработки данных.
К середине 80-х годов, с появлением ПЭВМ все отмеченные тенденции развития сетей стали сближаться,
что привело к разработке современных компьютерных сетей.
Сетевая модель OSI
Прикладной уровень (Application layer)
Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает
приложениям пользователя доступ к сетевым службам, таким как обработчик запросов к базам данных,
доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации,
предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
Уровень представления (Presentation layer)
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы
приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а
полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может
осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление
запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Сеансовый уровень (Session layer)
Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой
длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией,
синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды
неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных
контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия
Транспортный уровень (Transport layer)
4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той
последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и
куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты,
размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы
этого уровня предназначены для взаимодействия типа точка-точка.
Сетевой уровень (Network layer)
3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных. Отвечает за
трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию
и маршрутизацию пакетов, отслеживание неполадок и заторов в сети. На этом уровне работает такое
сетевое устройство, как маршрутизатор.
Канальный уровень (Data Link layer)
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за
ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры
данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень.
Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями,
контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2
подуровня — MAC регулирует доступ к разделяемой физической среде, LLC (Logical Link Control)
обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты.
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах
имеется программный интерфейс взаимодействия канального и сетевого уровня между собой, это не
новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.
Физический уровень (Physical layer)
Самый нижний уровень модели, предназначен непосредственно для передачи потока данных.
Осуществляет передачу электрических или оптических сигналов в кабель и соответственно их приём и
преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими
словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне
работают концентраторы, повторители (ретрансляторы) сигнала и сетевые адаптеры.
Взаимодействие уровней
Уровни взаимодействуют сверху вниз и снизу вверх посредством интерфейсов и могут еще
взаимодействовать с таким же уровнем другой системы с помощью протоколов.
Сетевая топология — описание конфигурации сети, схема расположения и соединения сетевых
устройств.
Сетевая топология может быть
 физической — описывает реальное расположение и связи между узлами сети.
 логической — описывает хождение сигнала в рамках физической топологии.
Существует множество способов соединения устройств, из них можно выделить четыре базовых
топологии: шина, кольцо, звезда и ячеистая топология.
Шина, представляет собой общий кабель, к которому подсоединены все рабочие станции. На концах
кабеля находятся терминаторы, для предотвращения отражения сигнала.
Кольцо — топология сети, в которой PC подключены последовательно друг к другу, образуя замкнутую
сеть. Наиболее широкое применение получила в оптоволоконных сетях
Звезда — топология сети, в которой все компьютеры сети присоединены к центральному узлу.
Одна из наиболее распространённых топологий, поскольку проста в обслуживании. В основном
используется в сетях, где носителем выступает кабель витая пара.
Ячеистая топология — соединяет каждую рабочую станцию сети со всеми другими рабочими станциями
этой же сети. Топология относится к полносвязным, в отличие от других — неполносвязных.
В проводных сетях используется редко, т.к. из-за избыточного расхода кабеля становится дорогой.
Беспроводные сети на основе ячеистой технологии встречаются всё чаще, поскольку затраты на сетевой
носитель не увеличиваются и на первый план выходит надёжность сети.
13. Интернет как технология и информационный ресурс. Службы сети Интернет. Поиск информации в Интернет.
Поисковые роботы. Язык HTML как средство создания информационных гипертекстовых ресурсов.
Интернет — всемирная система добровольно объединённых компьютерных сетей, построенная на
использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное
информационное пространство, служит физической основой для Всемирной паутины и множества систем
(протоколов) передачи данных.
Когда сейчас слово Интернет употребляется в обиходе, то чаще всего имеется в виду Всемирная паутина и
доступная в ней информация, а не сама физическая сеть.
В английском языке, когда слово internet написано со строчной буквы, оно означает просто объединение
сетей посредством маршрутизации пакетов данных. В этом случае не имеется в виду глобальное
информационное пространство. В русском языке такое разделение понятий тоже иногда встречается в
технической литературе.
Службы сети Интернет.
 Всемирная паутина

Веб-форумы

Блоги

Вики-проекты (в частности, Википедия)

Интернет-магазины

Интернет-аукционы
 Электронная почта и списки рассылки
 Группы новостей (в основном, Usenet)
 Файлообменные сети









Электронные платёжные системы
Интернет-радио
Интернет-телевидение
IP-телефония
Мессенджеры
FTP-серверы
IRC (реализовано также как веб-чаты)
Поисковые системы
Интернет-реклама
Поисковая система — веб-сайт, предоставляющий возможность поиска информации в Интернете.
Большинство поисковых систем ищут информацию на сайтах Всемирной паутины, но существуют также
системы, способные искать файлы на ftp-серверах, товары в интернет-магазинах, а также информацию в
группах новостей Usenet. В последнее время появился новый тип поисковых движков, основанных на
технологии RSS, а также среди XML-данных разного типа.
Комплекс программ, обеспечивающий функциональность поисковой системы, называют поисковый
движок или поисковая машина. Основными критериями качества работы поисковой машины являются
релевантность, полнота базы, учёт морфологии языка. Индексация информации осуществляется
специальными поисковыми роботами. Улучшение работы поисковых систем — это одна из приоритетных
задач сегодняшнего Интернета.
HTML (Hypertext Markup Language — «язык разметки гипертекста») — это стандартный язык разметки
документов во Всемирной паутине. Практически все веб-страницы создаются при помощи языка HTML.
Язык HTML позволяет размечать в тексте:
 Смысловую роль текстового блока (например: логическое ударение, заголовок (от первого до шестого
уровня), параграф, пункт списка и др.), который обрабатывается браузером в соответствии со смыслом
(например, в голосовых браузерах — изменение интонации, в графических — выделением курсивом, и
т. п.) или настройками пользователя.
 Гипертекстовые ссылки, которые значительно упрощают чтение множества связанных документов, ибо
позволяют запросить документ с адресом, указанным в коде ссылки, простым щелчком мыши.
 Гарнитуру, кегль, начертание, цвет шрифта для визуального вывода.
 Специальные символы (выходящие за рамки ASCII символы пунктуации, математические символы,
греческие и готические буквы, стрелки и т. п.)
 Формы для введения пользователем данных, которые позднее подвергаются обработке. Формы и
другую информацию можно обрабатывать с помощью специальных серверных программ (например, на
языках PHP или Perl).
 Открытие мультимедийных файлов, выводимых как непосредственно браузером (например,
изображения в форматах JPEG, GIF или PNG; аудиофайлы MIDI и др.), так и внешними приложениями,
«встраиваевыми» в окно браузера (Flash-анимация, Java-апплеты и прочее).
14. Обоснование необходимости использования информационных и телекоммуникационных технологий
в учебном процессе (с точек зрения информационного анализа дидактических систем и управления
учебным процессом).
1. Любая система может быть охарактеризована некоторым набором величин  параметров. Те из них,
значения которых порождаются вне системы, относятся к внешним; параметры, значения которых
определяются факторами в самой системе, являются внутренними. При выделении информационных
параметров дидактической системы будем исходить из следующих положений:
 дидактическая система (ДС) состоит из одного преподавателя и N учащихся; очевидно, N1;
 параметры, характеризующие индивидуальные информационные особенности учащихся, в
дальнейших построениях имеют смысл средних значений для выборки в N элементов;
 функционирование дидактической системы направлено на достижение образовательной цели.
С любой образовательной целью может быть связан средний объем информации H0, который должен
быть получен, переработан и усвоен учащимся для ее достижения.
Время, отведенное на достижение образовательной цели (время обучения)  t.
Количество учащихся, приходящееся на одного преподавателя (N).
J  пропускная информационная способность преподавателя; показывает среднее количество
информации, которое преподаватель может передать и переработать за единицу времени.
k  средний коэффициент «несамостоятельности» усвоения информации учащимся. Он вводится
следующим образом: k = Нпр / Н0
H0 = Hпр + Hсам, где Hпр  информация, усвоение которой происходит при непосредственном участии
преподавателя, а Hсам  информация, усвоенная в результате самостоятельной работы ученика.
Общая для всех часть информации - Hоб
Уравнения, имеющих смысл информационного баланса для составляющих дидактической системы:
для ученика:
kH0= Hоб + gkH0, или Hоб = (1g)kH0;
для преподавателя:
Jt = Hоб + NHи = (1g)kH0 + NgkH0
Окончательно получаем:
Jt = kH0{1 + g(N1)}
Данные выражения устанавливают связь между внешними и внутренними параметрами ДС. При любых
вариантах функционирования ДС эти соотношения должны выполняться, т.е. они являются законом
функционирования дидактических систем, который в дальнейшем изложении будет называться законом
информационного баланса в дидактических системах.
Введем еще один параметр ДС  результативность (r), характеризующий степень достижения
поставленной цели:
(очевидно, 0r1).
При N>>1, Nm>>1 и не очень малых g можно использовать оценочное соотношение:
r=Hф/Hо
Средняя результативность группы пропорциональна отношению Nm к общему числу учащихся.
Возможные пути повышения результативности обучения при фиксированной цели H0:
уменьшение численности группы до Nm;
увеличение доли самостоятельных форм обучения (уменьшение k);
увеличение информационной пропускной способности преподавателя (J);
увеличение времени обучения (t);
уменьшение степени индивидуализации (g).
Вывод:
Информационный анализ приводит к выводу, с одной стороны, о необходимости использования НИТ в
учебном процессе, а с другой стороны, о невозможности в существующих условиях решения проблемы
радикального совершенствования школьного обучения какими-то иными методами, помимо НИТ, что
свидетельствует о неизбежности их внедрения в практику школ.
2. Под управлением понимается совокупность действий, осуществляемая управляющей системой по
определенной схеме, направленная на поддержание или улучшение функционирования управляемого
объекта (системы).
Независимо от целей управления и природы исполнительных и управляющих органов процесс
управления всегда характеризуется наличием одного или нескольких замкнутых контуров (прямой и
обратной связи), когда по цепям прямой связи к системе поступает управляющая информация, а по цепям
обратной связи  информация о состоянии управляемой системы и о том, в какой степени достигнуты
(или не достигнуты) цели управления. Управление предполагает наличие системы управления, в которую
входит субъект управления (или управляющая система) и объект управления:
Управление познавательной деятельностью учащихся – способ организации процесса обучения,
обеспечивающий достижение дидактических целей, основными их которых являются понимания, знания,
умения и навыки.
Для реального управления познавательной деятельностью учащихся преподаватель должен соблюдать
определенную систему требований:
 указать цели управления (внесение определенных изменений как в познавательную деятельность
учащегося, так и в его личность в целом)
 установить исходное состояние управляемого процесса (определение начального состояния той
познавательной деятельности, которую препод наметил использовать до усвоения новых знаний)
 определить программу воздействия, предусматривающую основные переходные состояния процесса,
 обеспечить систематический контроль за управляемым процессом (систематическую обратную связь)
 обеспечить переработку информации, полученной по каналам обратной связи,
 выработать корректирующие воздействия и реализовать их.
Особенности управления учебной деятельностью учащихся
1. Управляемый процесс  обучение сам является информационным, поэтому управляющая
информация поступает по каналу прямой связи одновременно с «основной», и зачастую разделить их не
представляется возможным. Следовательно, содержательная информация должна включать указания о
последовательности ее обработки и иные управляющие предписания, или учащийся должен быть с ними
уже знаком.
2. Управляемой системой является учащийся и группа учащихся. Каждый из членов группы имеет
индивидуальные психические, интеллектуальные и информационные возможности, которые могут
меняться с течением времени или в результате внешних воздействий. В итоге нельзя установить строго
однозначного соответствия между некоторым управляющим действием и реакцией системы, т.е.
результат управления носит вероятностный характер.
3. Субъекты управления (учащиеся) обладают мышлением, поэтому возможны процессы
самоорганизации и саморегуляции. Например, учащийся может сам сопоставить результаты своей
деятельности с желаемым уровнем и выработать необходимые с его точки зрения корректирующие шаги,
в этом случае внешние управляющие воздействия не нужны или даже вредны. Таким образом, возникает
проблема определения уровня минимальной достаточности управляющих воздействий со стороны
преподавателя.
4. Для выбора адекватных управляющих воздействий должны быть не только определены цели
обучения, но и установлены объективные критерии, по которым могла бы отслеживаться
результативность учебного процесса и эффективность управления им.
5. Для осуществления обратной связи между учащимся и преподавателем или устройством (компьютер)
требует определения методика однозначной диагностики состояния уровня обученности и процедура
выработки корректирующих воздействий.
6. Учащийся является управляемым субъектом, заинтересованным в результатах своей деятельности,
он нуждается в точной информации о характере и результатах своих действий. Поэтому наряду с каналом
основной обратной связи «учащийся  педагог», по которому передается информация о ходе освоения
материала, важное значение имеет и обратная связь «педагог  учащийся» (вторичная обратная связь).
Именно благодаря этому каналу у учащегося формируется мотивация обучения, а также возникают
эффекты саморегуляции.
7. Управление учебным процессом имеет несколько иерархических уровней и несколько управляющих
субъектов (структур). Непосредственное воздействие на учащегося оказывают преподаватели. Они, в
свою очередь, являются субъектами управления со стороны администрации учебного заведения и
опосредованно  через образовательные стандарты, учебные программы и учебную литературу  со
стороны государства. Администрация учебных заведений управляется территориальными органами и т.д.
Циркулирующая в этих структурах информация должна быть согласована, во всяком случае, в части
целей, содержания обучения и критериев его успешности. Помимо этого, должен быть удовлетворен
обычный набор требований, предъявляемых к управленческой информации: достоверность,
актуальность, ясность, полнота.
8. В рамках традиционного обучения возможна такая организация учебного процесса, когда учитель
активен, а учащиеся пассивны, ибо активность учащихся приводит к появлению вопросов, высказыванию
суждений, которые необходимо быстро проанализировать и отреагировать, что потребует больше
информационных усилий и времени.
9. Школа не формирует баз данных, содержащих информацию о динамике психологического,
умственного развития учащихся, которая необходима для выработки адекватных действий по управлению
учебным процессом.
Вывод: Перечисленные особенности носят принципиальный характер, поскольку обусловлены не
содержанием образования, а несовершенством организации процессов управления в ходе обучения. В
рамках традиционных образовательных технологий эти особенности не устранимы, противоречия не
преодолимы. Школа не может подготовить полноценного ученика, способного ориентироваться в
современном информационном обществе. Учителю нужен помощник.
15. Дидактические принципы, условия и преимущества использования информационнокоммуникационных технологий в учебном процессе.
Принципы обучения - система основных дидактических требований к процессу обучения, выполнение которых
обеспечивает достижение объявленной цели образования (Ведение в дидактику. – М., 1990):
Классические
систематичность
Упорядочение дидактического материала, его охвата в соответствии с имеющимися основами, рациональное
деление материала на смысловые фрагменты, овладение учащимися предыдущим материалом при продвижении
вперед, сопутствие получению знаний, развитию практических умений и навыков
самостоятельность
Создание преподавателем оптимальных условий для развития самостоятельности в деятельности и мышлении
учащихся (сокращение информационных и управляющих воздействий со стороны преподавателя и частичная
передача их учащемуся)
связь теории с практикой
Организация содержания учебного процесса, в котором у учащегося формируется понимание связи между
познанием действительности, следствием которого является теория, и ее изменением, практикой
эффективность (связь между целями и результатами обучения)
Функционирование и оптимизация факторов, оказывающих воздействие на дидактический процесс (эффективность
= результативность)
доступность
Необходимость поиска таких способов установления учителем контакта с каждым учащимся, подбора таких методов
труда и средств обучения, чтобы в максимальной степени привести в движение те силы и возможности большинства
учащихся, которые отвечают данной фазе их умственного, социального и физического развития
сочетание индивидуального подхода и коллективизма
Связь интересов личности и общества. Воспитание у учащихся навыков коллективной деятельности,
коммуникативных качеств, умения согласовывать личные и общественные интересы. Ни одна школьная дисциплина
не предусматривает постановку и решение групповых задач, в которых могли бы формироваться коммуникативные
навыки
наглядность
Совокупность норм, которые исходят из закономерностей процесса обучения и касаются познания действительности
на основе наблюдения, мышления и практики на пути от конкретного к абстрактному и обратно
Новые
Принцип информационной гуманности (гуманность – первичность психофизиологических особенностей и
личностных интересов учащегося по отношению к элементам технологии обучения): все элементы процесса
обучения должны быть ориентированы на индивидуальные информационные возможности и особенности
учащегося. Элементы учебного процесса должны обладать адаптивностью к индивидуальным информационным
особенностям учащегося по форме, объему и темпу представления информации. Способы применения ИКТ в
обучении должны быть следствием возрастных физиологических и умственных возможностей учащихся.
Принцип мультимедийности: Обучение должно быть мультимедийно. Мультимедийность в двух аспектах –
комплексность по форме представления информации (звук, видео, графика, анимация) и комплексность содержания
информации (взаимопроникновение и слияние различных предметных областей).
Принцип метапредметности информационных технологий: приоритетным в содержании обучения должно быть
акцентирование внимания учащихся на способах представления и обработки информации в данной учебной
дисциплине. При этом предпочтение должно отдаваться универсальным способам и формам (в разных учебных
дисциплинах можно усмотреть единые методы представления и обработки информации).
Принцип встраиваемых компьютерных технологий: ИКТ реализуются в учебном процессе не вместо
«классических базовых», а наряду с ними, частично их замещая. (Санитарно-гигиенические нормы
продолжительности непрерывной работы учащегося за компьютером – не более 20 минут в старших классах и 15
минут в младших). Компьютерные технологии в учебном процессе массовой школы могут использоваться только
наряду и параллельно с традиционными схемами взаимодействия между преподавателем и учащимися. Т.е.
компьютеризированный школьный урок приобретает комбинированный характер - часть его проводится в
традиционном взаимодействии преподаватель–учащиеся, а в другой части предусматривается индивидуальная
работа с компьютерной системой.
Принцип педагогической целесообразности означает, что та или иная информационная технология
целесообразна, если она позволяет получить такие результаты, какие нельзя получить без применения этой
технологии.
Например, объем получаемой информации с помощью средств ИКТ настолько велик для использования ее в полном
объеме в традиционном процессе обучения, что учительскому коллективу физически и информационно невозможно
обработать и проанализировать этот объем информации. Провести диагностику развития каждого ученика,
установить соответствие между необходимыми качествами и имеющимся способностями, выработать рекомендации
для дальнейшего развития учащегося. Выходом из этого противоречия видится использование ИКТ, которые могут
взять на себя реализацию этих функции.
Дидактическая значимость определяется ролью ИКТ в:
- формировании и развитии общеучебных умений (самоконтроль, работа с информацией);
- формировании системы знаний, умений, совокупности необходимых элементов знаний, составляющих
общеобразовательное ядро;
- формировании ключевых компетентностей (коммуникации и информационные технологии).
Методическая оправданность использования ИКТ зависит от эффективности приемов и методов использования
средств ИКТ. При этом в качестве характеризующих составляющих эффективности выделим, например, следующие:
выбор оптимальной структуры занятий, выбор наиболее рационального сочетания групповых и индивидуальных
форм работы, планирование затрат времени, выявление соответствия планируемых результатов реальным
возможностям обучаемых и т.д.
Дидактическая значимость определяется ролью ИКТ в:
- формировании и развитии общеучебных умений (самоконтроль, работа с информацией);
- формировании системы знаний, умений, совокупности необходимых элементов знаний, составляющих
общеобразовательное ядро;
- формировании ключевых компетентностей (коммуникации и информационные технологии).
Технические основания информатизации:
ИКТ обеспечивают:
 высокую скорость обработки информации;
 высокую плотность информации при ее хранении;
 наглядность представления конечной информации;
 оперативный доступ к удаленным информационным ресурсам.
Качества компьютера (как устройства):
 простота, удобство управления со стороны пользователя (пользовательский интерфейс);
 надежность в эксплуатации;
 универсальность (по характеру решаемых задач);
 относительная дешевизна.
Компьютер - устройство, расширяющее информационные возможности человека!
Достоинства ИКТ в обучении:
 индивидуализация учебного процесса (по содержанию, объемам, темпу освоения информации);
 возможность реального построения индивидуальных траекторий обучения;
 наличие активных форм обучения;
 объективность оценки результатов обучения;
 возможность использования дистанционных форм взаимодействия Преподаватель-Ученик;
 мотивация обучения (внешняя – регулярность, массовость контроля, внутренняя – комфортность
психологических условий);
 достижимость уровня обученности;
 оперативность обратной связи (организация педагогических измерений);
 характер труда преподавателя (соотношение рутинной работы и творческой составляющей);
 возможность развития отдельных качеств учащихся;
 адекватность воспитательных воздействий;
 активизация познавательной деятельности;
 соответствие различных сторон учебного процесса индивидуальным психофизиологическим особенностям
учащихся (реализация требований информационной гуманности);
 развитие умений самостоятельной познавательной и учебной деятельности;
 возможность осуществления тренажа для выработки умений;
 возможность коррекции хода обучения;
 возможность организации педагогических измерений на всех этапах обучения;
Дидактические условия использования ИКТ в процессе обучения
 Уровень учебной компьютерной техники (определяется педагогической и экономической целесообразностью):
1.
Уровень мультимедиа (ПК, имеющий CD, звуковую карту, акустическую систему, процессор класса
Pentium 300 МГц, ОЗУ – 32 Мб, монитор 15”);
2.
Наличие локальной сети;
3.
Возможность выхода в интернет.
 Доступность техники в процессе учебных занятий (возможность оперативного изменения рабочего места
учащегося с компьютеризированного на обычное и наоборот в пределах одной аудитории) –
специализированные кабинеты информационных технологий;
 Решение кадровых вопросов – специалист по образовательным технологиям, сетевой администратор,
лаборант; подготовка педагогов к применению компьютерных технологий;
 Наличие методического и программного обеспечения (предоставляться в готовом виде) и целенаправленное
освоение методик и технологий;
 Соотношение между компьютерными и традиционными формами обучения;
 Полнота ИТК по дисциплине (наличие ППС, разнообразных по дидактическому назначению, полнота по объему
– для регулярности использования средств ИКТ);
 Технологическая преемственность (идентичность подходов на протяжении всего периода обучения);
 Выделение времени для самостоятельной работы учащегося (во внеурочное время)
16. Понятия электронных учебных материалов, технологии их разработки.
Электронные учебные материалы – учебные материалы, представленные в виде файлов на
электронном носителе. Могут включать как отдельные текстовые файлы, иллюстрации, аудио и
видеофрагменты, так и их упорядоченную совокупность, предназначенную для изучения определенного
учебного курса или его фрагмента.
ЭУМ занимают важное место в учебном процессе высшего профессионального образования. Они могут
использоваться практически во всех видах занятий, существующих в традиционном обучении, а в
дистанционном обучении становятся основным источником учебного материала.
Основные этапы разработки электронного учебника
1.
Выбор учебной программы
2.
Выбор источников
3.
Заключение договоров с авторами о праве на переработку
4.
Разработка оглавления и перечня понятий (индекса)
5.
Переработка текстов в модули по разделам и создание Help
6.
Реализация гипертекста в электронной форме
7.
Разработка компьютерной поддержки
8.
Отбор материала для мультимедийного воплощения
9.
Разработка звукового сопровождения
10. Реализация звукового сопровождения
11. Подготовка материала для визуализации
12. Визуализация материала
Технологии создания ЭУМ
Для разработок электронных учебных изданий предпочтительно использование инструментов,
позволяющих реализовать в учебных целях общепринятые в глобальной информационной системе WWW
средства гипермедиа (сочетание механизма гипертекста со средствами мультимедиа), способствующие
активизации процесса познания и позволяющие:
1.
использовать зрительную и звуковую, логическую и образную память;
2.
инициировать активность учащегося в процессе обучения;
3.
организовать живую взаимосвязь между изучаемыми темами;
4.
включить контроль и самоконтроль в состав электронного учебного издания;
5.
представить ЭУМ как посредника между преподавателем и учащимся.
Самый простой путь решения проблемы - это использование одного из имеющихся в настоящее время
HTML-редакторов. Желательно, чтобы это был редактор, реализующий технологию WYSIWYG - What You
See Is What You Get (Что ты видишь, то и получаешь).
Создание электронных учебников в формате HTML
Это позволит работать с ЭУМ независимо от используемой компьютерной архитектуры и установленной
операционной системы (при условии, что для данной ОС существуют браузеры Web). Кроме того,
документы HTML могут содержать графические изображения, звук, видео, а также средства адаптации и
организации диалога с пользователем, что имеет значение для создания эффективного обучающего
средства.
Создаваемые электронные учебники структурно состоят из нескольких взаимосвязанных частей,
включающих в себя модель знаний, глоссарий, содержание и собственно информационное наполнение
учебника. Четкую систему навигации по ЭУ можно реализовать с использованием какого-либо языка
сценариев, например JavaScript, или стандартными средствами HTML. Для "оживления" учебника в нем
размещают картинки, мультимедийные вставки, сцены VRML. Полезными являются демонстрационные
примеры.
Технология создания пособия в MS FrontPage
MS FrontPage поставляется как программный продукт для создания WEB-сайтов в составе офисного
пакета MS Office. Мощность MS Office в создании информационного наполнения в сочетании со
средствами управления сайтом и средствами генерации страниц FrontPage дает широкие возможности
конструирования Web-сайтов, в том числе предназначенных для обучения.
Материал из файлов Office очень просто перенести в Web-страницы FrontPage с помощью буфера
обмена или механизма drag-and-drop, и FrontPage автоматически преобразует их в код на языке HTML.
Качество генерируемого кода оставляет желать лучшего, но положительная динамика есть. В пакете MS
Office 2007 присутствует более актуальный и масштабируемый продукт MS Expression WEB, который на
ряду со всеми достоинствами FrontPage, такими как простота и удобство лишён многих его недостатков,
таких как, таких как ограниченное использование возможностей HTML и неудобная работа в "ручном"
режиме.
Технология создания пособия посредством Microsoft Word.
Учебники такого типа представляют собой документ текстового процессора MS Word со ссылками на
части этого документа (оглавление и указатели). Макет ЭУМ, созданный таким образом может быть
достаточно легко переведён в другой формат (HTML, PDF) и его удобно и привычно создавать (но не
работать по нему), именно поэтому многие ЭУМ доступны в таком варианте.
Технология создания пособия в OpenOffice
По своим характеристикам офисный пакет OpenOffice позиционируется как открытая и свободная
альтернатива (не замена) офисного пакета от Microsoft.
Бесспорным преимуществом OpenOffice является его интегрированность, то есть, в структуре текстового
документа и таблицы нет несовместимых элементов - формат хранения данных OpenDocument, основан
на технологиях XML, универсален и открыт.
Так же OpenOffice намного более качественно (по сравнению с MS Word и даже MS FrontPage) генерирует
HTML код и не имеет проблем с конвертацией текстовых файлов с форматированием, электронных
таблиц и других документов в страницы HTML.
Технология создания пособия в Microsoft HTML Help
Программа Microsoft HTML Help позволяет работать с готовым документом (чаще всего используют
файлы в формате htm или txt) или создавать новые документы с помощью встроенного редактора текстов
Notepad и простого графического редактора Image Editor. На выходе разработчик получает компактный
файл описания в формате chm, в несколько раз меньший по размерам аналогичного по содержанию htmфайла. При этом chm-файл содержит все тексты, гиперссылки и картинки из исходного файла, плюс
может быть запущен на компьютере, как в самостоятельной оболочке, так и в качестве дополнительного
модуля к существующей программе. Наиболее целесообразно перед работой с HTML Help полностью
подготовить базовый текст с картинками в MS Word или OpenOffice Writer, установив необходимые ссылки
и закладки, импортировать готовое описание в HTML (посредствам OpenOffice или MS Frontpage) и работу
в HTML Help начинать с "чистовика" гипертекста.
Электронное учебное пособие в формате PDF
Данный формат организации учебного пособия, как и предыдущий, HTML Help, является в некоторой
степени контейнером, позволяющим вместить в одном или нескольких файлах всё содержимое учебного
пособия. В формат PDF (Portable Document Format) можно конвертировать как готовые текстовые файлы,
свёрстанные со всеми ссылками и пр. в текстовых процессорах MS Word или OpenOffice, так и HTML
файлы, рисунки другие данные. Так же можно подготовить документ для публикации в данном формате в
программе Adobe Acrobat Professional или её аналогах.
Формат PDF имеет ряд неоспоримых достоинств, таких как:
1. Однозначность представления данных независимо от клиентской операционной системы, языка или
установленных шрифтов
2. Возможность отображения как в специальном бесплатном просмотрщике Adobe Reader и его
аналогах, так и в браузере, причём, соответствующий плагин скачивается автоматически при
наличии подключения к сети Интернет и согласия пользователя.
3. Возможность организации иерархии документа любой сложности и удобные поиск и навигация по
содержимому.
4. Лёгкая конвертируемость в документы формата PostScript, что упрощает профессиональную вёрстку
и последующую печать документа.
К недостаткам можно отнести закрытость формата, необходимость наличия навыков работы с
соответствующим программным обеспечением и зачастую большой размер получаемых файлов, что
обусловлено содержанием в документе не только сведений о разметке данных, но и шрифтов и другой
служебной информации, посредством которой повышается совместимость.
Но многие недостатки легко компенсируются, например, OpenOffice, рассмотренный выше, позволяет
сгенерировать PDF документ одним нажатием кнопки не лишая при этом документ всех достоинств
формата, таких как оптимизация размера изображений, защита информации от копирования и пр.
17. Сущность педагогической диагностики. Методы педагогической диагностики. Обоснование
необходимости использования информационных и телекоммуникационных технологий на этапе
диагностической деятельности.
Объект: личность учащегося, коллектив или учебный процесс; а также деятельность учащихся или
учителя, либо их взаимодействие.
Предмет педдиагностики - уровень знаний, умений учащихся, психофизические свойства личности,
личностные характеристики, уровень воспитанности, творческий образовательный потенциал и др.
Мониторинг в образовании - система сбора, хранения и распространения информации об
образовательной системе или отдельных ее элементах, позволяяющая судить о состоянии объекта в
любой момент времени и прогнозировать его развитие, обеспечивает необходимую информационную
основу для принятия обоснованных управленческих решений, направленных на достижение заданных
целей развития объекта (В.В.Гузеев).
Мониторинг - процесс непрерывного, систематического отслеживания (получения знания, адекватно
отражающего состояние объекта) сущностных характеристик образовательного процесса (А.С.Белкин).
Функции мониторинга: (Белкин А.С.)
Ориентировочная (ориентация субъектов в жизненном пространстве на основе полученной и получаемой
информации);
Конструктивная (с одной стороны, кристаллизация индивидуальной позиции личности, а с другой –
расширение личностного пространства за счет установления позитивных контактов и взаимодействий с
другими людьми);
Организационно-деятельностная (постоянная интеграция получаемой информации и научнотеоретического знания позволяет определить наиболее оптимальную позицию личности в процессе
выполнения той или иной деятельности);
Коррекционная (уточнение выполняемых задач, позиции личности в процессе деятельности);
Оценочно-прогностическая (процесс сличения и сравнения получаемой в ходе мониторинга информации с
контрольными точками и предполагаемым конечным результатом исследования).
Определение пед. диагностики
Педдиагностика означает самостоятельный вид педагогической деятельности, нацеленный на аналитикоинформационное обеспечение учебно-воспитательного процесса, представляет собой практическую
систему разнообразных способов, приемов и форм сбора и интерпретации данных об актуальном
состоянии элементов и параметров педагогических систем, процессов, отношений и их субъектов.
Педдиагностика обозначает акт познавательной деятельности педагога по распознаванию актуального
состояния единичного объекта в его соотношении с нормой, то есть конкретный психологический
механизм, при помощи которого осуществляется сбор эмпирической информации.
Педдиагностика – это область педагогической науки, анализирующая и обобщающая диагностические
процессы.
Диагностическая деятельность - процесс определения результатов образовательной деятельности
учащихся с целью выявления, оценивания, анализа, корректировки и прогнозирования дальнейшего
развития учащихся (А.В.Хуторской).
Функции
Функция обратной связи - данные об уровнях воспитанности и образованности учащихся на
определенном этапе их развития служат главной информацией для анализа прошлого педагогического
опыта и конструирования дальнейшего педагогического процесса.
Оценочная функция - оценка не только деятельности ученика, но и своей методики обучения.
Управленческая функция связана с основными этапами управления развития ученического коллектива и
личности школьника. Не выполняет вспомогательную роль, а является основой, базой для построения
процесса обучения.
Методы
Наблюдение, Опросные методы, Тестирование, Эксперимент, Экспертная оценка, Игровые (ролевые,
имитационные) методы, Проективные методы.
Обоснование использования НИТ
Реализовать диагностическую деятельность в полном объёме без использования НИТ не только сложно и
неудобно, но просто не возможно. Учитель сталкивается с огромным объёмом рутинной бумажной
работы, при ручном выполнении которой представление результата не всегда удобно, а так же велик риск
возникновения ошибок.
18.Понятие о моделировании. Виды и классификация моделей. Понятие о математическом и
компьютерном моделировании, вычислительном эксперименте. Обзор математических методов и
компьютерных технологий, используемых в моделировании.
Модель (в широком понимании) - образ (схема, чертеж, график, план, карта) или прообраз какого-либо
объекта или системы объектов (оригинала данной модели) используемый при определенных условиях в
качестве их «заместителя». Так, например, моделью Земли служит глобус.
Модели по своей сути - чисто информационное понятие. Модели - это отражение наиболее
существенных признаков, свойств и отношений явлений, объектов или процессов предметного мира.
Например, фотографии и рисунки - это представления внешнего вида предметов, а чертежи и схемы
раскрывают их структуру (внутреннюю организацию).
В то же время для одних и тех же явлений, процессов и объектов можно построить различные модели.
Многообразие модельных представлений, связываемых с одними и теми же объектами, отражает различие
точек зрения , интересов и потребностей людей в изучении этих объектов, а значит в решении
возникающих у них задач.
Начальные условия -> математическая модель -> компьютерная модель -> реакция модели
Виды моделей.
1. Графические представления.
Выражаются в наглядных зрительных образах: в виде рисунков, схем, чертежей. Различия между
графическими представлениями связаны со степенью детальности изображений и с тем, какие задачи
должны быть решены при помощи этих модельных представлений. Поэтому и назначение этих моделей
различно: показать внешний вид или структуру, размеры или организацию, расположение объектов или
направления их движения.
2. Словесные описания.
Служат для объяснения свойств интересующих нас объектов. Словесные описания базируются на
понятиях и представляются набором предложений. Понятия это словесные выражения общих и наиболее
существенных признаков объектов. Эти признаки выделяют их среди других объектов и очерчивают их
основные свойства и взаимосвязи.
3. Информационно-логические модели.
Представляют формализацию словесных описаний объектов. Такие модели становятся необходимыми
при намерении накапливать и обрабатывать информацию с помощью ЭВМ. Для описания свойств
объектов и их совокупностей в таких моделях используются средства математической логики. Такие
формальные описания позволяют не только математически строго определить содержание этих задач, но и
создать соответствующие алгоритмы и программы обработки данных с помощью ЭВМ.
4. Математические (количественные) модели.
Математическое описание физических объектов, явлений и процессов, выражающие внутренние законы
их динамики, взаимодействия с другими объектами и другие свойства. Эти модели строятся на основе
количественных характеристик объектов, а также на основе уравнений и функций, выражающих связи
между характеристиками этих объектов, процессов и явлений.
Выбор математических моделей зависит от требований задач, подлежащих решению, и определяется
степенью полноты информации в модели по отношению к свойствам, существенным для решаемых задач.
Моделирование.
Моделирование это процесс, в ходе которого реальный исследуемый объект заменяется некоторым
абстрактным (воображаемым), свойства и характеристики которого максимально приближены к свойствам
и характеристикам реального объекта исследования.
Требование к модели - полное тождество строения модели и оригинала. Результаты вычислений могут
оказаться не соответствующими реальности, если не будет соблюдено правило тождества сторон
действительности и информационной модели.
Многие естественные науки давно пользуются различными видами моделей. Гуманитарные науки
(психология, педагогика, медицина, биология, социология и т.д.) хотя и являются столь же или почти
столь же древними науками, стали пользоваться моделированием сравнительно недавно.
Методы моделирования и виды моделей, используемые в различных науках и в различные периоды их
развития, многообразны.
Классификация моделей
1. Статическая (в фиксированный момент времени). Например, поиск корней уравнения. Реализуются в
Excel, MathCad и пр.
2. Стохастическая (тер-вер) учитывается влияние случайного фактора, например прогноз погоды
3. Статистическая, поиск закономерностей в наборах данных. Для прогнозирования.
4. Оптимизационные (поиск лучшего решения). Задачи линейного/нелинейного программирования.
5. Динамические (учтен фактор времени). Параметр – некоторая постоянная величина (функция),
которая содержит характеристические особенности модели. Параметров в модели м.б. несколько.
Решается с помощью дифф. уравнений, конечно-разностных схем.
6. Имитационные модели.
Понятие о математическом и компьютерном моделировании, вычислительном эксперименте
Математическая модель приближенное описание какого-либо класса явлений внешнего мира,
выраженное с помощью математической символики.
Вычислительный эксперимент - такая организация исследований, при которой
на основе
математических моделей изучаются свойства объектов и явлений, проигрывается их поведение в
различных условиях и на основе этого выбирается оптимальный
режим. Другими словами,
вычислительный эксперимент предполагает переход от изучения реального объекта к изучению его
математической модели. Такой моделью, как правило, является одно или несколько уравнений.
Вычислительный эксперимент включает в себя следующие этапы:
1. Физическое описание процесса, то есть уяснение закономерности протекаемых явлений.
2. Разработка математической модели.
3. Алгоритм или метод решения уравнений.
4. Разработка программ.
5. Проведение расчетов, анализ результатов и оптимизация.
Под математическим моделированием, в узком смысле слова, понимают описание в виде уравнений
и неравенств реальных физических, химических, технологических, биологических, экономических и
других процессов. Для того чтобы использовать математические методы для анализа и синтеза
различных процессов, необходимо уметь описать эти процессы на языке математики, то есть описать в
виде системы уравнений и неравенств.
Компьютерное моделирование - метод решения задачи исследования системы на основе использования
ее компьютерной модели.
Назначение компьютерного моделирования заключается в получении количественных и качественных
результатов по имеющейся модели, которые позволяют обнаружить неизвестные ранее свойства системы:
ее структуру, динамику развития, устойчивость, целостность и др.
Предметом компьютерного моделирования могут быть: технологический процесс, дизайн выпускаемого
продукта, экономическая деятельность предприятия, информационно-вычислительная сеть, любой
реальный объект или процесс, протекающий в природе (физический, биологический, экологический и т.
д.) или обществе (экономический, политический, социологический и т. д.).
Компьютерная модель - модель, реализованная с использованием средств вычислительной техники и
программной среды.
Обзор современных средств используемых в моделировании
По данным последних обзоров, публикуемых в Internet, куда информация предоставляется компаниями производителями программного обеспечения для имитационного моделирования, сегодня на рынке
информационных технологий фигурирует порядка 60 программных продуктов аналитического типа,
ориентированных на имитационное моделирование. Диапазон и разнообразие такого ПО продолжает
расти, отражая тенденцию устойчивого спроса на него. В течении нескольких лет мы изучали
технологические и функциональные возможности этих систем моделирования, что позволило составить
общее представление о ситуации на рынке информационных технологий, выявить основные тенденции в
области современных систем моделирования, наиболее существенные из которых рассмотрим ниже.
В качестве доминирующих базовых концепций формализации и структуризации в современных системах
моделирования используются:
 для дискретного моделирования - системы, основанные на описании процессов (process description) или
на сетевых концептах (network paradigms), - (Extend, Arena, ProModel, Witness, Taylor и др.);
 для систем, ориентированных на непрерывное моделирование - модели и методы системной динамики,
- (Powersim, Vensim, Dynamo, Stella, Ithink и др.)
19. Архитектура фон Неймана как классическая архитектура компьютера. Современные тенденции развития
архитектуры персональных компьютеров. RISC и CISC вычислительные архитектуры. Иерархия памяти.
Архитектура фон Неймана — широко известный принцип совместного хранения программ и данных в памяти
компьютера. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного
модуля от устройств хранения программ и данных.
Основные составные части компьютера (по Нейману):
1. арифметическо-логическое устройство, выполняющее арифметические и логические операции;
2. устройство управления, которое организует процесс выполнения программ;
3. запоминающее устройство (или память) для хранения программ и данных, которое состоит из пронумерованных ячеек,
легко доступных для других устройств компьютера;
4. внешние устройства для ввода-вывода информации.
Принципы работы компьютера (по Нейману):
1. вначале с помощью внешнего устройства в память компьютера вводится программа;
2. устройство управления считывает содержимое ячейки памяти, где находится первая инструкция программы, и организует
ее выполнение (арифметические/логические операции, чтение с внешних устройств/памяти, вывод данных на внешние
устройства/запись в память);
3. переход на следующую (или заданную) ячейку памяти и выполнение следующей инструкции;
4. повторение предыдущих шагов.
Наличие жёстко заданного набора исполняемых команд и программ было характерной чертой первых компьютерных
систем. Сейчас, такой дизайн применяют для упрощения конструкции вычислительного устройства. Калькуляторы, являются
устройствами с фиксированным набором выполняемых программ. Их можно использовать для математических расчётов, но
невозможно применить для обработки текста и компьютерных игр, для просмотра графики/видео. Изменение встроенной
программы для таких устройств требует полной их переделки, и почти невозможно. Впрочем, перепрограммирование ранних
компьютерных систем всё-таки выполнялось, однако требовало огромного объёма ручной работы по подготовке новой
документации, перекоммутации и перестройки блоков и устройств и т. п.
Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование
архитектур, основанных на наборах исполняемых инструкций и представление вычислительного процесса, как процесса
выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки
данных. Один и тот же подход к рассмотрению данных и инструкций сделал лёгкой задачу изменения самих программ.
В середине 40-х проект компьютера, хранящего свои программы в общей памяти был разработан в Муровской школе
электрических разработок в Университете штата Пенсильвания. Такой подход стал известен как архитектура фон Неймана.
Первыми 5 компьютерами в которых были реализованы основные особенности архитектуры фон Неймана, были:
 «Марк I». Великобритания, 21 июня 1948 года;
 «EDSAC». Великобритания, 6 мая 1949 года;
 «BINAC». США, апрель или август 1949 года;
 «CSIR Mk 1». Австралия, ноябрь 1949 года;
 «SEAC». США, 9 мая 1950 года.
1. Принцип программного управления (хранимой программы). Из него следует, что программа состоит из набора
команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
Выборка программы из памяти осуществляется с помощью счетчика команд. Этот регистр процессора последовательно
увеличивает хранимый в нем адрес очередной команды на длину команды. Так как команды программы расположены в памяти
друг за другом, то тем самым организуется выборка цепочки команд из последовательно расположенных ячеек памяти.
Если же нужно после выполнения команды перейти не к следующей, а к какой-то другой, используются команды условного
или безусловного переходов, которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду.
Выборка команд из памяти прекращается после достижения и выполнения команды “стоп”. Таким образом, процессор
исполняет программу автоматически, без вмешательства человека
2. Принцип однородности памяти (произвольного доступа к основной памяти). Программы и данные хранятся в одной
и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. Над
командами можно выполнять такие же действия, как и над данными.
Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться
переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется
выполнение циклов и подпрограмм).
Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом
принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык
конкретной машины.
3. Принцип адресности (Универсальности). Структурно основная память состоит из нумерованных ячеек, процессору в
произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы
к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с
использованием присвоенных имен.
Компьютеры, построенные на этих принципах, относятся к типу фон-неймановских. Но существуют компьютеры,
принципиально отличающиеся от фон-неймановских. Для них, например, может не выполняться принцип программного
управления, т.е. они могут работать без “счетчика команд”, указывающего текущую выполняемую команду программы. Для
обращения к какой-либо переменной, хранящейся в памяти, этим компьютерам не обязательно давать ей имя. Такие
компьютеры называются не-фон-неймановскими.
RISC (Reduced Instruction Set Computing) — вычисления с сокращённым набором команд.
Это философия проектировки процессоров, которая во главу ставит следующий принцип: более компактные и простые
инструкции выполняются быстрее. Простая архитектура позволяет как удешевить процессор, так и поднять тактовую частоту.
Многие ранние RISC-процессоры даже не имели команд умножения и деления.
Идея создания RISC процессоров пришла после того как в 1970-х годах ученые из IBM обнаружили что многие из
функциональных особенностей традиционных CPU игнорировались программистами. Отчасти это был побочный эффект
сложности компиляторов. В то время компиляторы могли использовать лишь часть из набора команд процессора. Следующее
открытие заключалось в том, что, поскольку некоторые сложные операции использовались редко, они как правило были
медленнее, чем те же действия, выполняемые набором простых команд. Это происходило из-за того что создатели процессоров
тратили гораздо меньше времени на улучшение сложных команд чем на улучшение простых.
Первые RISС-процессоры были разработаны в начале 1980-х годов в Стэнфордском и Калифорнийском университетах
США. Они выполняли небольшой (50 - 100) набор команд, тогда как обычные CISC (Сomplex Instruction Set computer)
выполняли 100—200.
Характерные особенности RISC-процессоров:
 Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды.
 Одна инструкция выполняет только одну операцию с памятью — чтение или запись.
 Большое количество регистров общего назначения (32 и более).
В настоящее время многие архитектуры процессоров являются RISC-подобными, к примеру, ARM, DEC Alpha, SPARC,
AVR, MIPS, POWER и PowerPC. Наиболее широко используемые в настольных компьютерах процессоры архитектуры x86
ранее являлись CISC-процессорами, однако новые процессоры, начиная с Intel486DX, непосредственно перед исполнением
преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC.
CISC (Complex Instruction Set Computer) — философия проектирования процессоров, которая характеризуется следующим
набором свойств:
 Нефиксированным значением длины команды.
 Исполнение операций, таких как загрузка в память, арифметические действия кодируется в одной инструкции.
Типичными представителями являются процессоры на основе x86 команд (исключая современные Intel NetBrust и выше,
AMD K7 и выше, которые являются гибридными).
MISC (Minimal Instruction Set Computer) — процессор, работающий с минимальным набором длинных команд. Увеличение
разрядности процессоров привело к идее укладки нескольких команд в одно большое слово. Это позволило использовать
возросшую производительность компьютера и его возможность обрабатывать одновременно несколько потоков данных.
Процессоры, образующие «компьютеры с минимальным набором команд» MISC, как и процессоры RISC, характеризуются
небольшим числом чаще всего встречающихся команд. Вместе с этим, принцип «очень длинных слов команд» VLIW
обеспечивает выполнение группы команд за один цикл работы процессора. Порядок выполнения команд распределяется таким
образом, чтобы в максимальной степени загрузить маршруты, по которым проходят потоки данных. Таким образом архитектура
MISC объединила вместе RISC и CISC концепции. Компоненты процессора просты и работают с высокими скоростями.
Иерархия памяти
В основе реализации иерархии памяти современных компьютеров лежат два принципа: принцип локальности обращений и
соотношение стоимость/производительность. Принцип локальности обращений говорит о том, что большинство программ к
счастью не выполняют обращений ко всем своим командам и данным равновероятно, а оказывают предпочтение некоторой
части своего адресного пространства. Второй принцип иллюстрирует тот факт, что более верхний уровень памяти зачастую
имеет меньший объём, но большую производительность.
Иерархия памяти обычно состоит из многих уровней, но в каждый момент времени мы имеем дело только с двумя
близлежащими уровнями. Минимальная единица информации, которая может либо присутствовать, либо отсутствовать в
двухуровневой иерархии, называется блоком. Размер блока может быть либо фиксированным, либо переменным. Если этот
размер зафиксирован, то объем памяти является кратным размеру блока.
В настоящее время в ЭВМ сложилась трехуровневая организация памяти. На нижнем уровне находится внешняя память,
которая чаще всего сейчас размещается на магнитных и оптических дисках и стримерах. На следующем уровне находится
оперативная память и, наконец, на третьем, самом высоком уровне находится так называемая кэш-память.
Уровни памяти современных ПК









---------------------------Регистры процессора
Кэш процессора
---------------------------Оперативная память
---------------------------Магнитные и оптические диски
Магнитные ленты
----------------------------
20.
Типы данных в языках программирования. Операции над данными разных типов. Выражения.
Приоритеты операций в выражениях. Оператор присваивания. Организация ввода и вывода данных.
Тип данных — понятие из теории программирования. Тип данных определяет диапазон значений и операций,
которые могут быть применены к этим значениям.
Например, если переменная имеет числовой тип данных, то таким образом определён диапазон значений, которые
могут быть сохранены в этой переменной (числа) и определены операции, которые могут быть применены к этой
переменной (арифметические). Каждый язык программирования поддерживает один или несколько типов данных.
Типизация — жесткая связка операций и типов объектов, над которыми их можно выполнять. Таким образом для
выполнения некоторой операции объект должен явно или неявно преобразован к необходимому типу. Это
увеличивает уверенность программиста в том, что операция даст ожидаемый результат, в противном случае она
попросту не выполнится.
Согласно стандартной классификации, типы данных бывают следующие:
Простые.
Числовые. Хранят числа. Могут применяться обычные арифметические операции.
Целочисленные (со знаком и без знака)
Вещественные (с фиксированной точкой и с плавающей точкой)
Символьный тип. Хранит один символ. Могут использоваться различные кодировки.
Строковый тип. Хранит строку символов. Может рассматриваться как массив символов.
Логический тип. Имеет два значения: истина(true) и ложь(false).
Перечислимый тип. Может хранить только те значения, которые есть в его описании.
Составные. Формируются на основе комбинаций простых типов.
Массив. Является индексированным набором элементов одного типа.
Запись/Структура. Набор различных элементов (полей записи), хранимый как единое целое.
Другие типы данных.
Указатель. Хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — указатель
на переменную.
Ссылка. Указывает на определенные данные, но не хранит их. Получение объекта по ссылке называется
разыменованием.
1. Стандартные типы данных
а) вещественные (single 4 байта, real 6 байт, double 8 байт, extended 10 байт)
б) целые (shortint 8 бит, integer 16 бит, longint 32 бит, byte 8 бит– беззнаковый, word 16 бит – беззнаковый, int64 64
бита)
в) логический Boolean
г) строковый string
д) символьный (char – 256 символов asi, widechar – 65536 unicode)
2. Составные
а) массив array
б) множественный тип set
в) записной тип record
г) файловый тип file
Целый тип
Допустимые операции: + - *, деление нацело div, деление с остатком mod, sqr (квадрат), sqrt (корень), abs (модуль)
Вещественный тип
операции: + - * /, abs, sqr, sin, cos, arctan, ln, exp, sqrt, round (округление до ближайшего целого), trunc (округление
методом отбрасывания дробной части), frac (дробная часть числа)
нельзя присваивать вещественный результат выражения переменной целого типа, а наоборот можно
Логический тип
2 значения - true – правда, false – ложь
Операции: =, <>, <, <=, >, >=
Символьный тип
для char – порядковый номер берется из таблицы ANSI (American National Standards Institute - Американский
национальный институт стандартов)
WideChar - Символы объемом в слово, упорядоченные в соответствии с международным набором символов
UNICODE. Первые 256 символов совпадают с символами ANSI
Операции: ord (порядковый номер символа), chr (символ с заданным порядковым номером), операции сравнения,
pred (предыдущий), succ (следующий)
Строковый тип
Строка – последовательность символов. 2 операции: сравнения и присваивания.
в квадр. скобках указывается максимальная длина, если ее нет, то 255.
конкатенация – сцепление строк (+)
функции: length (Длина), pos (p,s) – номер символа, с которого подстрока входит в строку
Массивы
последовательность однотипных элементов. Упрощают работу с большим количеством однотипных данных,
позволяют давать данным одно имя и различать по индексам.
имя массива: array [1..n] of тип данных
матрицы – имя: array [1..n,1..m] of тип данных
допускается создание многомерных массивов.
2 операции: присваивание и выборка.
Множество
набор объектов одного типа имя: set of описание базового типа
например: B: set of ‘А’..’Я’
операции: присваивания, отношения, включение (in) – проверяет включение элемента базового типа в множество с
аналогичным базовым типом, объединение (+), пересечение (*), разность (-).
Записи
составной тип данных, для хранения данных разных типов.
имя: record
имя поля 1:тип
имя поля 2:тип
и т.п.
пример:
type student = record
fio: string[20]
uspevaemost: Boolean
end;
var st: student
stud: array [1..25] of student
используется для создания БД.
к записи применимо – присваивание и обращение.
к полям – все те операции, которые применимы к данным соотв. типа
Файлы
Тип file предназначен для доступа к линейной последовательности элементов, которые могут представлять данные
любого типа, кроме содержащих типы file и class. Объявление файлового типа подобно объявлению массива, только
без указания числа элементов.
файлы – это объекты, операции над которыми сводятся к работе с дисками.
имя файла: file of тип
операции:
assign (переменная, путь) – устанавливает в соответствие переменную и файл
reset (имя переменной) – открыть существующий файл
rewrite (имя переем.) – открыть файл для записи
close (имя) – закрыть файл
rename (имя файл. переменной, новое имя на диске) - переименовать
erase – уничтожить файл
write (имя файл. переменной, список вывода) – запись в файл
read (имя файл. переменной, список ввода) – прочитать из файла
eof (имя файловой переменной) – когда достигается конец файла, функция дает значение истина, иначе ложь
ioresult – ввод вывод, если нет ошибки, то = 0, если есть, значит допущена ошибка
filepos – возвращает текущую позицию в файле
filesize – возвращает кол-во компонентов файла
seek (имя, номер компонента) – смещает указатель к требуемому компоненту
Приоритеты операций:
1) not
2) мультипликативные операции (*, /, and, div, mod)
3) аддитивные (+, -, or)
4) отношения (<>, <=, >=, <, >, in)
Операторы:
1. Присваивания
имя переменной:=выражение
2. Ввода
read (имя файла, список ввода)
стандартный входной файл – input, его можно не указывать
список ввода – перечень имен переменных через запятую.
3. Вывода
write (имя файла, список вывода)
стандартный выходной файл – output, его можно не указывать
список вывода – через запятую выражения разных типов. фразы в апострофах
возможен форматированный вывод, через двоеточие write(выр.1:число)
число – количество позиций для вывода данного выражения.
если позиций для вывода будет меньше, чем необходимо, то указание формата будет проигнорировано.
если число вещественное, то будет указано 2 числа, например a:7:2
второе будет указывать число позиций дробной части.
21.
Процедуры и функции в языках программирования. Формальные и фактические
параметры. Глобальные и локальные переменные.
Подпрограмма — поименованная или иным образом идентифицированная часть программы,
содержащая описание определённого набора действий. Она может быть многократно вызвана из
разных частей программы.
Параметры подпрограмм
Подпрограммы часто используются для многократного выполнения похожих действий над
данными.
Для обеспечения контролируемой передачи параметров в подпрограмму и возврата результатов
из неё используется механизм параметров. Параметры описываются при описании
подпрограммы (в её заголовке) и могут использоваться внутри процедуры аналогично
переменным, описанным в ней. При вызове процедуры значения каждого из параметров
указываются в команде вызова.
Формальные и фактические параметры
Чтобы отличать параметры подпрограммы, описанные в её заголовке и теле, от параметров,
указываемых при вызове подпрограммы, первые принято называть формальными
параметрами, вторые — фактическими параметрами. При вызове подпрограммы фактические
параметры, указанные в команде вызова, становятся значениями соответствующих формальных
параметров, чем и обеспечивается передача данных в подпрограмму.
Виды подпрограмм
Функция — это подпрограмма специального вида, которая, кроме получения параметров,
выполнения действий и передачи результатов работы через параметры имеет ещё одну
возможность — она может возвращать значение. Вызов функции является, с точки зрения языка
программирования, выражением, он может использоваться в других выражениях или в качестве
присваиваемого значения.
Процедура — это любая подпрограмма, которая не является функцией (не возвращает
значение).
Подпрограммы, входящие в состав классов в объектных языках программирования, обычно
называются методами. Этим термином называют любые подпрограммы-члены класса, как
функции, так и процедуры.
В некоторых языках программирования (например, в Паскале) функции существуют наряду с
процедурами (подпрограммами, не возвращающими значения), в других, например, в C,
являются единственным реализованным видом подпрограммы.
Переменная в традиционных языках программирования — поименованная ячейка памяти, имя
которой можно использовать для осуществления доступа к данным, находящимся по данному
адресу.
Если тип переменной определяется на этапе компиляции, имеет место статическая типизация, а
если на этапе выполнения программы — динамическая. В последнем случае иногда говорят, что
переменная не имеет тип, хотя данные, содержащиеся в ней относятся к определённому типу
данных.
По времени создания переменные бывают статическими и динамическими. Первые, создаются в
процессе запуска программы или подпрограммы, а вторые создаются в процессе остального
выполнения программы.
Различают локальные и глобальные переменные. Вторые доступны из всей программы
(возможно в пределах файла, обычно, после описания), первые доступны только из конкретной
подпрограммы.22. Принципы объектно-ориентированного программирования.
ООП — парадигма программирования, в которой предметная область представляется системой
структур данных, каждая из которых представляет некий отдельный предмет (объект) с его
внутренними свойствами и действиями над ним.
Первым объектно-ориентированным языком программирования была Симула, воплотившая
главные черты того, что Алан Кэй, один из авторов, впоследствии назвал объектноориентированным программированием.
Главные понятия
Структура данных «класс» внешне похожа на структуру в языке Си или запись в Паскале, в
котором кроме данных (свойства) также содержались функции их обработки (методы). Вдобавок
класс поддерживает такие свойства как наследование, полиморфизм и отчасти – инкапсуляцию.
Объектное программирование противопоставляется процедурному программированию, где
данные и подпрограммы (процедуры, функции) их обработки формально не связаны.
Характерные признаки
Абстракция данных
Объекты представляют собою неполную информацию о реальных сущностях предметной
области. Их модели адекватны решаемой задаче, работать с ними намного удобнее, чем с
низкоуровневым описанием всех возможных свойств и реакций объекта.
Наследование
Наследованием называется возможность порождать один класс от другого с сохранением всех
свойств и методов класса-предка (иногда его называют суперклассом) и добавляя, при
необходимости, новые свойства и методы. Наследование призвано отобразить такое свойство
реального мира, как иерархичность.
Полиморфизм
Полиморфизмом называют явление, при котором классы-потомки могут изменять реализацию
метода класса-предка, сохраняя его сигнатуру (таким образом, сохраняя неизменным интерфейс
класса-предка). Это позволяет обрабатывать объекты классов-потомков как однотипные
объекты, не смотря на то, что реализация методов у них может различаться.
Инкапсуляция
Инкапсуляция — это принцип, согласно которому любой класс должен рассматриваться как
чёрный ящик — пользователь класса должен видеть и использовать только интерфейс класса и
не вникать в его внутреннюю реализацию. Этот принцип (теоретически) позволяет
минимизировать число связей между классами и, соответственно, упростить независимую
реализацию и модификацию классов.
Каждый объект в ООП имеет свой тип (класс). Класс представляет собой тип данных, имеющий в
составе:
Свойства - Параметры объекта (не все, а только необходимые в программе).
Методы - Действия, которые можно выполнять над объектом такого типа, или которые сам
объект может выполнять.
Каждый объект является экземпляром некоторого класса объектов. Один класс отличается
от других именем и, обычно, набором поддерживаемых интерфейсов. Интерфейсы, в свою
очередь, представляют собою набор сообщений, которые можно посылать объекту.
Объектно-ориентированные языки
Многие современные языки специально созданы для облегчения объектно-ориентированного
программирования. Однако следует отметить, что можно применять технику ООП и для необъектно-ориентированного языка и наоборот, применение объектно-ориентированного языка
вовсе не означает, что код автоматически становится объектно-ориентированным.
23.
Понятие класса. Составляющие класса: поля, методы, свойства. Конструктор и деструктор.
Объекты класса.
Класс является важным понятием объектно-ориентированного подхода в программировании (хотя
существуют и беcклассовые объектно-ориентированные языки, например, JavaScript).
Структура данных «класс» внешне похожа на структуру в языке Си или запись в Паскале, в котором
кроме данных (свойства) также содержались функции их обработки (методы). Вдобавок класс
поддерживает такие свойства как наследование, полиморфизм и отчасти – инкапсуляцию.
Класс - это некая сущность, которая задает некоторое общее поведение для объектов. Таким образом,
любой объект может принадлежать или не принадлежать определенному классу, т.е. обладать или не
обладать поведением, которое данный класс подразумевает. Класс определяет для объекта правила, с
помощью которых с объектом могут работать другие объекты. Кроме того классы могут находиться друг с
другом в различных отношениях, таких как Наследование или Агрегация.
Фактически ООП чаще всего сводится к созданию некоторого количества классов, описанию связей
между этими классами и их свойств, и дальнейшей реализации полученных классов. Графическое
представление некоторого количества классов и связей между ними называется диаграммой классов.
Объектно-ориентированный подход за время своего развития накопил множество рекомендаций по
созданию классов и иерархий классов.
Во многих объектно-ориентированных языках программирования создание класса сводится к
написанию некоторой структуры, содержащей набор полей, методов и конструкторов.
Отношения между классами
Наследование — объекты одного класса наследуют все свойства другого класса.
Ассоциация — объекты классов вступают во взаимодействие между собой.
Агрегация — объекты одного класса, входят в объекты другого.
Композиция — объекты одного класса, входят в объекты другого и зависят друг от друга по времени
жизни.
Класс-Метакласс — отношение, при котором экземплярами одного класса являются другие классы.
Виды классов
Базовый (родительский) класс
Производный класс (наследник, потомок)
Абстрактный (виртуальный) класс
Члены классов
Класс определяется как список своих членов. К членам класса относятся его поля (свойства) и функции
(методы).
Каждому члену класса можно установить его область доступа. Область доступа члена класса определяет
участки кода, из которых к этому члену будет возможно обращаться. В большинстве объектноориентированных языков программирования поддерживаются следующие области доступа:
private (закрытый, внутренний член класса) — обращения к члену допускаются только из кода методов
класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому
члену;
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются из кода
методов класса, в котором этот член определён, или из любых его классов-наследников;
public (открытый член класса) — обращения к члену допускаются из любого кода.
published (относится к VCL) — обращения к члену класса производятся из среды разработки в момент
проектирования интерфейса. После компиляции эти свойства доступны как public. Не публикуются
свойства типа real128 и массивы.
Поле класса в объектно-ориентированном программировании — переменная, связанная с классом или
объектом. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени.
Обычно тип данных каждого поля задаётся в описании класса, членом которого является поле.
Метод класса — синоним действия, алгоритма, функции или процедуры; в объектно-ориентированном
программировании — программный код, реагирующий на определенные сообщения.
Различают методы класса и статические методы: первые работают с данными объекта, вторые имеют
доступ только к данным класса, и общие для всех объектов данного класса.
Свойство класса - составляющая часть объекта, доступ к которой осуществляется программистом, как и
к переменным объекта. Однако свойства могут быть доступны только для чтения или записи.
Свойство является интерфейсом доступа к соответствующей переменной объекта. Свойство
может быть просто другим именем переменной (поля) объекта, тогда компилятор подставляет на
место свойства переменную.
Классы в языке Delphi
На языке Delphi класс описывается следующим образом:
TMyClass = class(TObject)
private
{Описанные в этой секции элементы не доступны извне (за пределами класса).}
{Здесь обычно находятся поля класса.}
protected
{Описанные в этой секции элементы доступны только классу и всем его потомкам.}
public
{Описанные в этой секции элементы доступны всем.}
published
{Описанные в этой секции элементы доступны всем и отображаются в Object Inspector'e.}
end;
Объект - важное понятие объектно-ориентированного подхода в программировании. Под объектом
подразумевается некоторая сущность, обладающая состоянием и поведением. Как правило при
рассмотрении объектов выделяется, что объект принадлежат одному или нескольким классам, которые в
свою очередь определяют поведение объекта. Время с момента создания объекта до его уничтожения
называется временем жизни объекта.
Инстанцирование — создание экземпляра класса. В отличие от слова «создание» применяется не к
объекту, а к классу. То есть говорят создать экземпляр класса или инстанцировать класс.
Экземпляр класса — это описание конкретного объекта в памяти. Класс описывает свойства и методы,
которые будет доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры
используют для представления конкретных сущностей реального мира.
Конструктор — специальный метод класса в объектно-ориентированном программировании, призванный
проинициализировать объект при его создании.
В Delphi, для объявления конструктора служит ключевое слово constructor. Имя конструктора может быть
любым, но рекомендуестя называть конструктор Create.
Пример класса с конструктором:
TClassWithConstructor = class
public
constructor Create;
end;
Деструктор — специальный метод класса, служащий для удаления объекта из памяти.
Для объявления деструктора в Delphi используется ключевое слово destructor. Имя деструктора может
быть любым, но рекомендуется всегда называть деструктор Destroy.
TClassWithDestructor = class
destructor Destroy; override;
end;
В Delphi все классы я вляются потомками, по крайней мере, класса TObject, поэтому, для корректного
освобождения памяти, необходимо перекравать деструктор, используя дерективу override.
В Delphi прямой вызов деструктора используется редко. Вместо него используют метод Free.
MyObject.Free;
Метод Free вначале проверяет существует ли уничтожаемый объект, а затем вызывает деструктор. Этот
прием позволяет избегать ошибок, возникающих при обращении к несуществующему объекту.24.
Понятие
класса.
Объявление
класса,
разделы
декларированные,
личные,
защищенные, доступные и автоматизированные.
Класс является важным понятием объектно-ориентированного подхода в программировании
(хотя существуют и беcклассовые объектно-ориентированные языки, например, JavaScript).
Структура данных «класс» внешне похожа на структуру в языке Си или запись в Паскале, в
котором кроме данных (свойства) также содержались функции их обработки (методы). Вдобавок
класс поддерживает такие свойства как наследование, полиморфизм и отчасти – инкапсуляцию.
Класс - это некая сущность, которая задает некоторое общее поведение для объектов. Таким
образом, любой объект может принадлежать или не принадлежать определенному классу, т.е.
обладать или не обладать поведением, которое данный класс подразумевает. Класс определяет
для объекта правила, с помощью которых с объектом могут работать другие объекты. Кроме того
классы могут находиться друг с другом в различных отношениях, таких как Наследование или
Агрегация.
Фактически ООП чаще всего сводится к созданию некоторого количества классов, описанию
связей между этими классами и их свойств, и дальнейшей реализации полученных классов.
Графическое представление некоторого количества классов и связей между ними называется
диаграммой классов. Объектно-ориентированный подход за время своего развития накопил
множество рекомендаций по созданию классов и иерархий классов.
Во многих объектно-ориентированных языках программирования создание класса сводится к
написанию некоторой структуры, содержащей набор полей, методов и конструкторов.
Отношения между классами
Наследование — объекты одного класса наследуют все свойства другого класса.
Ассоциация — объекты классов вступают во взаимодействие между собой.
Агрегация — объекты одного класса, входят в объекты другого.
Композиция — объекты одного класса, входят в объекты другого и зависят друг от друга по
времени жизни.
Класс-Метакласс — отношение, при котором экземплярами одного класса являются другие.
Виды классов
Базовый (родительский) класс
Производный класс (наследник, потомок)
Абстрактный (виртуальный) класс
Каждому члену класса можно установить его область доступа. Область доступа члена класса
определяет участки кода, из которых к этому члену будет возможно обращаться. В большинстве
объектно-ориентированных языков программирования поддерживаются следующие области
доступа:
private (закрытый, внутренний член класса) — обращения к члену допускаются только из кода
методов класса, в котором этот член определён. Любые наследники класса уже не смогут
получить доступ к этому члену;
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются
из кода методов класса, в котором этот член определён, или из любых его классов-наследников;
public (открытый член класса) — обращения к члену допускаются из любого кода.
published (относится к VCL) — обращения к члену класса производятся из среды разработки в
момент проектирования интерфейса. После компиляции эти свойства доступны как public. Не
публикуются свойства типа real128 и массивы.
25.
Понятие класса. Методы класса. Абстрактные, виртуальные, динамические. Одноименные методы.
Унаследованные методы.
Класс является важным понятием объектно-ориентированного подхода в программировании (хотя существуют
и беcклассовые объектно-ориентированные языки, например, JavaScript).
Структура данных «класс» внешне похожа на структуру в языке Си или запись в Паскале, в котором кроме данных
(свойства) также содержались функции их обработки (методы). Вдобавок класс поддерживает такие свойства как
наследование, полиморфизм и отчасти – инкапсуляцию.
Класс - это некая сущность, которая задает некоторое общее поведение для объектов. Таким образом, любой
объект может принадлежать или не принадлежать определенному классу, т.е. обладать или не обладать
поведением, которое данный класс подразумевает. Класс определяет для объекта правила, с помощью которых с
объектом могут работать другие объекты. Кроме того классы могут находиться друг с другом в различных
отношениях, таких как Наследование или Агрегация.
Отношения между классами
Наследование — объекты одного класса наследуют все свойства другого класса.
Ассоциация — объекты классов вступают во взаимодействие между собой.
Агрегация — объекты одного класса, входят в объекты другого.
Композиция — объекты одного класса, входят в объекты другого и зависят друг от друга по времени жизни.
Класс-Метакласс — отношение, при котором экземплярами одного класса являются другие.
Виды классов
Базовый (родительский) класс
Производный класс (наследник, потомок)
Абстрактный (виртуальный) класс
Каждому члену класса можно установить его область доступа. Область доступа члена класса определяет участки
кода, из которых к этому члену будет возможно обращаться. В большинстве объектно-ориентированных языков
программирования поддерживаются следующие области доступа:
private (закрытый, внутренний член класса) — обращения к члену допускаются только из кода методов класса, в
котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену;
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются из кода методов
класса, в котором этот член определён, или из любых его классов-наследников;
public (открытый член класса) — обращения к члену допускаются из любого кода.
published (относится к VCL) — обращения к члену класса производятся из среды разработки в момент
проектирования интерфейса. После компиляции эти свойства доступны как public. Не публикуются свойства типа
real128 и массивы.
Метод класса — синоним действия, алгоритма, функции или процедуры; в объектно-ориентированном
программировании — программный код, реагирующий на определенные сообщения.
Абстрактные методы – методы, которые определены в классе, но не содержат никаких действий, никогда не
вызываются и обязательно должны быть переопределены в потомках класса.
Абстрактными могут быть только виртуальные и динамические методы.
Объявляются директивой abstract
Абстрактный класс в ООП — класс, содержащий хотя бы один абстрактный метод.
Виртуальный метод — в ООП метод класса, который может быть переопределён в классах-наследниках так, что
конкретная реализация метода для вызова будет определяться во время исполнения.
Объявляются директивой virtual
Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать
общий код, который может работать как с объектами базового класса, так и с объектами любого его классанаследника.
Динамические методы отличаются от виртуальных методов способом диспетчеризации на этапе выполнения. Для
всех виртуальных методов компилятором создаётся таблица VMT, для динамических методов каждого конкретного
класса создаётся своя таблица DMT. Если метод в таблице DMT не найден, то осуществляется поиск в таблице
родителя и далее вверх.
Объявляются директивой dynamic
Унаследованные методы – методы класса родителя, вызываются как и обычные методы создаваемого класса.
Бывают случаи, когда имя метода наследуемого класса полностью совпадает с методом нового класса, тогда
происходит перекрытие метода другим методом.
Одноимённые (Перегружаемые) методы – методы с одним именем в рамках одного класса. При наследовании
родительских методов классом потомком и перекрытии, класс потомок может использовать одноимённый
родительский метод при помощи специальных конструкций языка программирования.
При обноружении одноимённого метода компилятор Delphi предупреждает о том что у класса уже есть аналогичный
метод с другими параметрами. Для подавления таких сообщений объявление одноимённого метода нужно
сопровождать словом reintroduce.
Можно перегрузить и динамический метод посредствам директивы overload.
На перегрузку методов накладывается ограничение – нельзя перегружать методы из области видимости (published).
Download