1. Исполнители алгоритмов: человек, автомат, робот, компьютер. Компьютер как формальный исполнитель алгоритмов (программ). Схема выполнения программы компьютером.
В определение алгоритма существенным образом входит еще одно фундаментальное понятие информатики — исполнитель. Это совсем не случайно, поскольку любой алгоритм обязательно пишется и оформляется в расчете на конкретного исполнителя. Более коротко и просто можно сказать, что исполнитель — это тот, кто выполняет алгоритмы.
Сразу подчеркнем, что исполнители алгоритмов необычайно разнообразны. Все словесные алгоритмы (инструкции) пишутся для человека, следовательно, в данном случае он и будет являться исполнителем подобных алгоритмов. Многие окружающие нас автоматические устройства тоже действуют в соответствии о определенными алгоритмами. Вспомните простейшие из них — выключающийся по достижении определенной температуры воды электрический чайник или турникет в метро, а также более сложные автоматы, например, современная многопрограммная стиральная машина или CD-проигрыватель с возможностью переключения 3—5 дисков. Вершиной автоматических устройств являются роботы, т.е. устройства, способные выполнять ту или иную работу без участия человека. Термин "робот" ввел чешский писатель Карел Чапек в 1920 году в своей фантастической пьесе в качестве названия механических рабочих, заменивших людей на тяжелых физических работах. Современные роботы своим внешним видом совсем не похожи на рабочего, но, тем не менее, прекрасно справляются с его обязанностями на производстве. Едва ли человек сможет так быстро, безошибочно и качественно собрать плату сложнейшего компьютера, как это делает робот-манипулятор на автоматизированном производстве. Уже всерьез ведутся разговоры о роботах-хирургах, а японские роботы-музыканты и скульпторы давно являются непременным атрибутом всех международных выставок. Большой популярностью в быту пользуются сейчас автоматические собачки и прочая домашняя, с позволения сказать, "живность".
Особо следует сказать о компьютерах. Наиболее существенным отличием компьютера от любого более простого автомата является его универсальность. Да, компьютер тоже работает по программе, но, в отличие от стиральной машины или даже автоматической собачки, программа эта далеко не единственная и очень легко может быть заменена. Производители компьютеров особенно заботятся об этом, разрабатывая все новые и новые устройства ввода информации, в том числе и программ.
Итак, мы видели, что исполнители алгоритмов необычайно разнообразны. Есть ли у них какие-то общие черты, которые делают их похожими? Разумеется, есть!
Во-первых, состояние каждого исполнителя описывается определенным набором характеристик. Для телевизора это канал, громкость, контрастность, для графического редактора — цвета точек создаваемого рисунка, для автоматической межпланетной станции — положение в пространстве, ориентация относительно Солнца, скорость и т.д. Полный набор характеристик, описывающий состояние исполнителя, и обстановка, в которой он действует, принято называть средой данного исполнителя.
Во-вторых, для управления исполнителем и организации необходимых изменений в его среде имеется собственный строго определенный набор команд. В учебниках такой набор обычно называют системой команд исполнителя, или сокращенно СКИ. Исполнитель не способен выполнить ни одной команды, которая не попадает в его СКИ, даже если введенная команда отличается от существующей всего лишь единственной неправильно написанной буквой.
Приведем примеры систем команд для нескольких различных исполнителей. Телевизор, "повинуясь" командам с пульта управления, может переключать каналы, регулировать громкость, яркость и т.д. Практически любая собака способна выполнять несколько команд хозяина типа "рядом", "голос" или им аналогичных.
Очень четкую СКИ, часто представляемую в форме таблицы, имеет каждый процессор.
Вся таблица 16 х 16 заполнена разнообразными командами, лишь немногие места в таблице не заняты. Четко просматривается наличие закономерностей в СКИ: коды 40—7F образуют "слой" команд переписи MOV, затем следуют ряды арифметических операций (ADD — сложение, SUB — вычитание), логических и т.д. Для нас сейчас наиболее интересно то, что приведенная система команд построена по определенным правилам и четко структурирована.
Типичный контроллер дисковода IBM PC умеет исполнять 15 команд; наиболее понятными для неподготовленного читателя будут следующие: чтение идентификатора сектора, чтение данных, запись данных, чтение дорожки, форматирование дорожки и др. подобные команды работы с диском (сведения взяты из книги: Букмин А.В., Безрукий Ю.Л. Дисковая подсистема IBM-совместимых персональных компьютеров. M.: Бином, 1993, 284 с.).
Завершая разговор о роли СКИ, подчеркнем, что исполнитель отказывается исполнять не только те команды, которые отсутствуют в списке. Даже синтаксически правильная команда при некоторых условиях не может быть выполнена. Например, невозможно выполнить команду деления, если делитель равен нулю; нельзя осуществить команду движения вперед, когда робот уперся в стену; невозможно произвести запись в сектор с несуществующим номером или на неотформатированную дискету (в; последнем случае на дискете вообще нет никаких секторов). Как бы не выглядела формулировка отказа исполнителя, ее кратко можно сформулировать как "Не могу": (в отличие от "Не понимаю" в случае синтаксической ошибки в записи команды). Более строго вывод должен звучать так: каждая команда 6 СКИ должна иметь четко оговоренные условия ее выполнения; все случаи аварийного прерывания команды из-за нарушения этих ' условий должны быть четко оговорены и корректно реализованы. Интересный пример нарушения этого правила связан с ошибкой в процессоре Pentium, обнаруженной осенью 1997 года. Оказалось, что при попытке сравнить 32-битный операнд с 64-битным процессор; не только не обеспечивал стандартной реакции на ошибочную инструкцию, как это ожидалось в подобном случае, но при некоторых неблагоприятных условиях мог даже полностью прекратить работу! Эта ошибка, названная "Pentium FO bug", имеется во всех процессорах Pentium и Pentium MMX; в более поздних процессорах ее нет.
Третьей важной особенностью исполнителей часто выделяют его режим работы. Перечень режимов для каждого исполнителя, естественно, свой. Так, для графического редактора это рисование геометрических примитивов, стирание, выделение и т.д. Телевизор, помимо обычного режима работы, имеет дежурный режим, в котором ожидает, когда его включат для просмотра. Процессор Pentium также имеет несколько режимов работы: режим реальной адресации (реальный режим), защищенный режим виртуальной адресации (защищенный режим), режим виртуального процессора 8086 (V86) и режим системного управления (SMM). Их разбор выходит далеко за рамки нашего обсуждения; с точки зрения рассматриваемого вопроса важен сам факт существования нескольких режимов работы.
Для большинства несложных учебных исполнителей особо выделяют режимы непосредственного и программного управления. В первом случае исполнитель ожидает команд от человека и каждую немедленно выполняет. Наглядным примером работы в таком режиме является устройство управления телевизором. Во втором случае исполнителю сначала задается пол-ный список команд (программа), а затем он исполняет все эти команды в автоматическом режиме — в таком режиме работает компьютер.
Как вы, наверное, догадались, режимы непосредственного и программного управления не являются всеобщими. Уже упоминавшиеся телевизор и компьютер имеют только один из этих режимов, и, честное слово, никаких трудностей это не создает. Телевизор добросовестно исполняет принимаемые с пульта управления команды телезрителя, удовлетворяя сиюминутные желания и прихоти своего владельца (например, включить другой канал на время рекламы). Что же касается компьютера, то он, наоборот, специально был создан для работы в программном режиме, Именно в этом состояло и состоит его основное преимущество перед микрокалькулятором, производящим вычисления в зависимости от скорости нажатия кнопок человеком.
Тем не менее, большинство исполнителей могут работать как в режиме непосредственного выполнения каждой команды, так и по программе. Первый режим обычно используется для знакомства с работой отдельных команд исполнителя и бывает, полезен при отладке, а второй, конечно, является основным. Особо подчеркнем, что не все команды могут выполняться в непосредственном режиме, примером чего могут служить команды ветвления и цикла, не имеющие смысла вне программного режима.
И последний наглядный пример, который обязательно хочется здесь привести. Уже упоминавшийся выше исполнитель Бейсик может немедленно совершить действия, записанные в строке, когда она не имеет номера. Строка, содержащая номер, напротив, запоминается в общую программу и исполняется позднее после ввода команды run. А вот Паскаль всегда работает в программном режиме — особенности языка делают реализацию его отдельно взятого оператора невозможной.
Билет №18
1. Технология решения задач с помощью компьютера (моделирование, формализация, алгоритмизация, программирование, компьютерный эксперимент). Пример решения задачи (математической, физической или др.).
2. Решение задачи на определение объема информации, преобразование единиц измерения информации.
1. Технология решения задач с помощью компьютера (моделирование, формализация, алгоритмизация, программирование, компьютерный эксперимент). Пример решения задачи (математической, физической или др.).
В решении любой содержательной задачи с использованием компьютера можно выделить ряд этапов. Они представлены на обобщенной схеме.
Обсудим эти этапы.
Первый этап — определение целей моделирования. Основные из них таковы:
• понять, как устроен конкретный объект, какова его структура, основные свойства, законы развития и взаимодействия с окружающим миром (согласно этой цели моделирования получают описательную, или дескриптивную, модель);
• научиться управлять объектом (или процессом) и определить наилучшие способы управления при заданных целях и критериях (оптимизационные и многокритериальные модели);
• научиться прогнозировать прямые и косвенные последствия воздействия на объект (игровые и имитационные модели).
Поясним это на примерах. Пусть объект исследования — экологическая система. Мирно сосуществовавшие со стабильными численностями популяции двух видов особей, имеющих общую кормовую базу, "вдруг" начинают резко менять численность, — и здесь моделирование позволяет с известной долей достоверности установить причину (или, по крайней мере, опровергнуть определенную гипотезу).
Выработка концепции управления объектом — другая возможная цель моделирования. Какой режим полета самолета выбрать, для того чтобы полет был вполне безопасным и экономически наиболее выгодным? Как составить график выполнения сотен видов работ на строительстве большого объекта, чтобы оно закончилось в максимально короткий срок? Множество таких проблем систематически возникают перед экономистами, конструкторами, учеными.
Наконец, прогнозирование последствий тех или иных воздействий на объект может быть как относительно простым делом в несложных физических системах, так и чрезвычайно сложным, например, в системах экологических, биолого-экономических, социальных. Если относительно легко ответить на вопрос об изменении режима распространения тепла в тонком стержне при изменениях в составляющем его сплаве, то несравненно труднее предсказать экологические и климатические последствия строительства крупной ГЭС или социальные последствия изменений налогового законодательства. Здесь методы моделирования также способны оказать значительную помощь.
Естественно, прежде чем формулировать цель исследования, необходимо всесторонне изучить структуру моделируемого объекта (процесса).
После этого переходят к формализации объекта (процесса), результатом которой и будет в нашем случае модель (математическая или информационная).
Содержательное описание в словесной форме обычно содержит:
• сведения о природе исследуемого процесса;
• сведения о количественных характеристиках отдельных составляющих исследуемого процесса;
• сведения о месте и значении каждого отдельного составляющего в общем, процессе функционирования рассматриваемой системы;
• постановку прикладной задачи, определяющую цели моделирования исследуемого процесса.
На этом же этапе составляется список величин, от которых зависит поведение объекта или ход процесса (входные величины), а также тех величин, которые желательно получить в результате моделирования (выходные величины). Очень важно разделить (ранжировать) входные параметры по степени важности влияния их изменений на выходные. Чаще всего невозможно, да и не нужно учитывать все факторы, которые могут повлиять на значения интересующих нас выходных величин. От того, насколько умело будут выделены важнейшие факторы, зависит успех моделирования, быстрота и эффективность достижения цели. Отбрасывание (по крайней мере при первом подходе) менее значимых факторов огрубляет объект моделирования и способствует пониманию его главных свойств и закономерностей. Выделить более важные (значимые) факторы и отсеять менее важные может лишь человек, хорошо разбирающийся в той предметной области, к которой относится модель.
Содержательное описание процесса обычно самостоятельного значения не имеет, а служит лишь основой для дальнейшей формализации этого процесса — построения формализованной схемы и модели процесса.
Формализованная схема является промежуточным звеном между содержательным описанием и моделью и разрабатывается в тех случаях, когда из-за сложности исследуемого процесса переход от содержательного описания к модели оказывается невозможным.
На этапе построения формализованной схемы должна быть дана точная формулировка задачи исследования с указанием окончательного перечня искомых величин и оцениваемых зависимостей.
На этапе перехода от формализованной схемы к модели необходимо перейти от абстрактной формулировки модели к формулировке, имеющей конкретное математическое или иное наполнение. В этот момент модель предстает перед нами в виде уравнения, системы уравнений, системы неравенств, таблицы и т.д. Для преобразования формализованной схемы в модель необходимо записать в аналитической форме все соотношения, выразить все логические условия. Последним этапом формализации является идентификация модели — определение параметров и структуры модели, обеспечивающей наилучшее совпадение исходных данных объекта и данных, полученных на модели объекта. Можно считать, что модель адекватна реальному процессу, если основные характеристики процесса совпадают с экспериментальными с заданной степенью точности.
Слово "модель" произошло от латинского слова iiiodeUum, которое означает: мера, образ, способ — и т.д. Его первоначальное значение было связано со строительным искусством, и почти во всех европейских языках оно употреблялось для обозначения образа или прообраза, или вещи, сходной в каком-то отношении с другой вещью.
Модель используется при разработке теории объекта в том случае, когда непосредственное исследование его не представляется возможным вследствие ограниченности современного уровня знания и практики. Данные о непосредственно интересующем исследователя объекте получаются путем исследования другого объекта, который объединяется с первым общностью характеристик, определяющих специфику обоих объектов.
Признаки модели:
• это мысленно представляемая или материально реализуемая система;
• она воспроизводит или отображает объект исследования;
• она способна замещать исследуемый объект;
• ее изучение дает новую информацию об объекте исследования.
Будем понимать под моделью другой объект (реальный, знаковый или воображаемый), отличный от исходного, который обладает существенными для целей моделирования свойствами и в рамках этих целей полностью заменяет исходный объект.
Моделирование — процесс построения формальной модели реального явления и ее использование в целях исследования моделируемого явления,
Когда модель сформулирована, выбирается метод и инструментальное средство ее исследования. В зависимости от формализованной постановки задачи в качестве такого средства может выступать либо пакет прикладных программ (офисных — типа MS Excel, MS Access и др., специализированных математических — типа MathLab, Mathematica, Maple и др.), либо язык программирования (Паскаль, Си, Фортран и др.). В зависимости от выбранного средства можно использовать или готовый метод решения, реализованный в данном продукте, либо составлять программу для выбранного метода.
Если в качестве средства решения задачи выступает тот или иной язык программирования (впрочем, это актуально и для математических пакетов), следующий этап — разработка алгоритма и составление программы для ЭВМ. Здесь каждый действует по-своему, это творческий и трудно формализуемый процесс. В настоящее время наиболее распространенными являются приемы структурного и объектно-ориентированного программирования. Выбор языка программирования обычно определяется имеющимся опытом программиста, наличием некоторых стандартных подпрограмм и доступных библиотек.
После составления программы решаем с ее помощью 'простейшую тестовую задачу (желательно с заранее известным ответом) с целью устранения грубых ошибок. Профессиональное тестирование — весьма непростой процесс; в нашем случае приходится пользоваться крайне упрощенными процедурами. Затем следует собственно численный эксперимент и выясняется, соответствует ли модель реальному объекту (процессу). Модель адекватна реальному процессу, если основные характеристики процесса, полученные на ЭВМ, совпадают с экспериментальными с заданной степенью точности. В случае несоответствия модели реальному процессу возвращаемся к одному из предыдущих этапов. Возможные точки возврата указаны на схеме: либо в процессе ранжирования были отброшены какие-то важные факторы или же было взято слишком много незначительных факторов и требуется уточнить модель; либо выбор метода исследования оказался не слишком удачным и нужно использовать более сложный и точный. После внесения тех или иных изменений вновь проходим по части технологической цепочки и делаем это до тех пор, пока не будут получены приемлемые результаты.
Если результаты соответствуют экспериментальным данным или нашим интуитивным представлениям, проводят расчеты по программе, данные накапливаются и соответствующим образом обрабатываются. Чаще удобной для восприятия формой представления результатов являются не таблицы значений, а графики, диаграммы. Иногда численные значения пытаются заменить аналитически заданной функцией, вид которой определяет экспериментатор. Обработанные данные в конечном итоге попадают в отчет о проделанном эксперименте.
Билет №19
1. Способы передачи информации. Организация и структура локальных и глобальных компьютерных сетей.
2. Решение задач на представление чисел в десятичной, двоичной и других системах счисления.
1. Способы передачи информации. Организация и структура локальных и глобальных компьютерных сетей.
Для передачи информации с помощью технических средств используются кодирующее устройство, предназначенное для преобразования исходного сообщения источника информации к виду, удобному для передачи, и декодирующее устройство, необходимое для преобразования кодированного сообщения в исходное.
При передаче информации необходимо учитывать тот факт, что информация при этом может теряться или искажаться, т.е. присутствуют помехи. Для нейтрализации помех при передаче информации зачастую используют помехоустойчивый избыточный код, который позволяет восстановить исходную информацию даже в случае некоторого искажения.
Основными устройствами для быстрой передачи информации на большие расстояния в настоящее время являются телеграф, радио, телефон, телевизионный передатчик, телекоммуникационные сети на базе вычислительных систем.
Передача информации между компьютерами существует с самого момента возникновения ЭВМ. Она позволяет организовать совместную работу отдельных компьютеров, решать одну задачу с помощью нескольких компьютеров, совместно использовать ресурсы и решать множество других проблем.
Под компьютерной сетью понимают систему распределенных на территории аппаратных, программных и информационных ресурсов (средств ввода/вывода, хранения и обработки информации), связанных между собой каналами передачи данных. При этом обеспечивается совместный доступ пользователей к информации (базам данных, документам и т.д.) и ресурсам (жесткие диски, принтеры, накопители CD-ROM, модемы, выход в глобальную сеть и т.д.).
Основными свойствами локальной сети являются:
• высокая скорость передачи, большая пропускная способность;
• низкий уровень ошибок передачи;
• эффективный, быстродействующий механизм управления обменом;
• ограниченное, точно определенное число компьютеров, подключаемых к сети.
Билет №20
1. Глобальная сеть Интернет и ее службы (электронная почта, доски объявлений, телеконференции, поисковые системы и др.). Этические и правовые нормы работы с информацией.