2. Логическая схема триггера. Использование триггеров в оперативной памяти
Базовые понятия
Триггер.
Входы для сброса и установки триггера, прямой и инверсный выходы.
Статическое (на триггерах) и динамическое (на базе конденсаторов) ОЗУ.
Обязательно изложить
Триггер — это электронная схема, которая может находиться в одном из двух устойчивых состояний; последним условно приписывают значения 0 и 1. При отсутствии входных сигналов триггер способен сохранять свое состояние сколь угодно долго. Таким образом, из определения следует, что триггер способен хранить ровно 1 бит информации.
Можно без преувеличения сказать, что триггер является одним из существенных узлов ЭВМ. Как правило, некоторое количество триггеров объединяют вместе, при этом полученное устройство называется регистром.
Рассмотрим логическое устройство триггера. На рисунке а приведена простейшая схема триггера, а на рисунке б показано его обозначение на схемах как единого функционального узла.
Q
Начнем с расшифровки обозначений входов и выходов. Триггер имеет два входа — S (от англ. Set — установка) и R (Reset — сброс), которые используются соответственно для установки триггера в единичное и сброса в нулевое состояния. Вследствие таких обозначений рассматриваемую схему назвали RS-триггером. Один из выходов, обозначенный на схеме Q, называется прямым, а противоположный выход — инверсным (это показывает черта над Q, которая в математической логике обозначает отрицание). За единичное состояние триггера договорились принимать такое, при котором
Q=i-
Обратимся теперь к рисунку а. Видно, что триггер состоит из двух одинаковых двухвходовых логических элементов ИЛИ-НЕ (ИЛИ обозначается символом 1 внутри элемента, а отрицание НЕ — небольшим кружочком на его выходе), соединенных определенным
2004 № 16 ИНФОРМАТИКА
Готовимся к экзамену по информатике
Е.А. Еремин, В.И. Чернатынский, А.П. Шестаков,
Продолжение. См. № Л 0-15/2004
БИЛЕТ № 13
1. Понятие алгоритма. Свойства алгоритма. Исполнители алгоритмов (назначение, среда, режим работы, система команд). Компьютер как формальный исполнитель алгоритмов (программ).
2. Позиционные и непозиционные системы счисления. Запись чисел в позиционных системах счисления.
3. Практическое задание. Решение простейшей оптимизационной задачи в среде электронных таблиц. |
I________________________________________________I
1. Понятие алгоритма. Свойства алгоритма. Исполнители алгоритмов (назначение, среда, режим работы, система команд). Компьютер как формальный исполнитель алгоритмов (программ)
Базовые понятия
Алгоритм — понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Свойства алгоритма: дискретность, понятность, определенность, результативность, корректность, массовость.
Исполнитель — человек или автоматическое устройство, которое выполняет алгоритмы.
Система команд, режим работы исполнителя.
Обязательно изложить
Наша жизнь буквально насыщена алгоритмами. Вспомним кулинарные рецепты, инструкции к сложной бытовой технике, умножение "столбиком" и деление "уголком", перевод из десятичной системы в двоичную и множество других примеров.
Алгоритм — это правила, описывающие процесс преобразования исходных данных в требуемый результат. Чтобы произвольные правила действительно были алгоритмом, они должны обладать следующими свойствами.
Дискретность. Процесс решения задачи должен быть разбит на четкую последовательность отдельных шагов, каждый из которых принято называть командой.
Понятность. Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае она (и, следовательно, весь алгоритм в целом) не может быть выполнена. В информатике часто говорят, что все команды алгоритма должны входить в систему команд исполнителя.
Определенность. Команды, образующие алгоритм, должны быть предельно четкими и однозначными, все
г. Пермь
возможности должны быть заранее предусмотрены и оговорены. Для заданных исходных данных результат не может зависеть от какой-либо дополнительной информации извне алгоритма.
Результативность. Правильный алгоритм не может обрываться безрезультатно из-за какого-либо непреодолимого препятствия в ходе выполнения. Кроме того, любой алгоритм должен завершиться за конечное число шагов.
Корректность. Решение должно быть правильным для любых допустимых исходных данных.
Массовость. Алгоритм имеет смысл разрабатывать только в том случае, когда он будет применяться многократно для различных наборов исходных данных.
Исполнитель — фундаментальное понятие информатики. Оно входит в определение алгоритма.
Исполнители алгоритмов необычайно разнообразны. Исполнителем словесных инструкций (алгоритмов) является человек. Многие окружающие нас автоматические устройства тоже действуют в соответствии с определенными алгоритмами (выключающийся по достижении определенной температуры воды электрический чайник, турникет в метро, современная многопрограммная стиральная машина и многие другие). Компьютер тоже является исполнителем, возможности которого необычайно широки.
Каковы наиболее важные черты исполнителей?
Во-первых, состояние каждого исполнителя описывается определенными характеристиками. Полный набор характеристик, описывающий состояние исполнителя, и обстановка, в которой он действует, принято называть средой данного исполнителя.
Во-вторых, любой исполнитель имеет собственный строго определенный набор команд. В учебниках его обычно называют системой команд исполнителя, или сокращенно СКИ. Исполнитель не способен выполнить ни одной команды, которая не попадает в его СКИ, даже если введенная команда отличается от существующей всего лишь единственной неправильно написанной буквой.
Но и синтаксически правильная команда при некоторых условиях не может быть выполнена. Например, невозможно произвести деление, если делитель равен нулю, или нельзя осуществить команду движения вперед, когда робот уперся в стену. Отказ в подобной ситуации можно сформулировать как "не могу" (в отличие от "не понимаю" в случае синтаксической ошибки в записи команды). Следовательно, каждая команда в СКИ должна иметь четко оговоренные условия ее выполнения; все случаи аварийного прерывания команды из-за нарушения этих условий должны быть тщательно оговорены.
Третьей важной особенностью исполнителей является наличие различных режимов его работы; перечень режимов у каждого исполнителя, естественно, свой. Для большинства учебных исполнителей особо выделяют режимы непосредственного и программного управления1. В первом случае исполнитель ожидает команд от человека и каждую немедленно выполняет. Во втором исполнителю сначала задается полная последовательность команд (программа), а затем он исполняет ее в автоматическом режиме. Большинство исполнителей могут работать в обоих режимах.
И в заключение небольшое замечание по последней части вопроса. Если внимательно проанализировать свойства алгоритмов, то становится очевидным, что для выполнения алгоритма вовсе не требуется ею понимание, а правильный результат может быть получен путем формального и чисто механического следования алгоритму. Отсюда вытекает очень важное практическое следствие: поскольку осознавать содержание алгоритма не требуется, его исполнение вполне можно доверить автомату или ЭВМ. Таким образом, составление алгоритма является обязательным этапом автоматизации любого процесса. Как только разработан алгоритм, машина может исполнять его лучше человека.
Желательно изложить
Термин "алгоритм" имеет интересное историческое происхождение. В IX веке великий узбекский математик аль-Хорезми разработал правила арифметических действий над десятичными числами, которые в Европе стали называть "алгоризмами". Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом стали называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи.
Помимо простейших "бытовых" алгоритмов, можно выделить еще три крупных разновидности алгоритмов: вычислительные, информационные и управляющие. Первые, как правило, работают с простыми видами данных (числа, векторы, матрицы), но зато процесс вычисления может быть длинным и сложным. Информационные алгоритмы, напротив, реализуют сравнительно небольшие процедуры обработки (например, поиск элементов, удовлетворяющих определенному признаку), но для больших объемов информации. Наконец, управляющие алгоритмы непрерывно анализируют информацию, поступающую от тех или иных источников, и выдают результирующие сигналы, управляющие работой тех или иных устройств.
Компьютер имеет не только собственную систему команд, но и свой алгоритм работы. Рассмотрим подробнее, как он выполняет отдельные операции и как реализуется вся программа в целом.
Каждая программа состоит из отдельных машинных команд. Каждая машинная команда, в свою очередь, делится на ряд элементарных унифицированных состав-
1 Аналогичные режимы издавна существовали в языке Бейсик, где строка без номера немедленно исполнялась интерпретатором, а с номером — заносилась в память для последующего исполнения; нечто похожее существует и в более поздних версиях под MS-DOS, реализованных в виде компиляторов.
ных частей, которые принято называть тактами (помните термин "тактовая частота процессора" ? — он происходит именно отсюда!). В зависимости от сложности команды, она может быть реализована за разное количество тактов.
При выполнении каждой команды ЭВМ проделывает определенные стандартные действия, описанные ниже.
1. Согласно содержимому счетчика адреса команд (специального регистра, постоянно указывающего на ячейку памяти, в которой хранится следующая команда) считывается очередная команда программы.
2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.
3. Считанная операция расшифровывается, извлекаются необходимые данные, над ними выполняются требуемые действия и, если это предусмотрено операцией, производится запись результата в ОЗУ.
4. Все описанные действия циклически повторяются с п. 1.
Рассмотренный основной алгоритм работы ЭВМ позволяет шаг за шагом выполнить хранящуюся в ОЗУ программу.
Примечания для учителей
Данный вопрос по сравнению с экзаменом 9-го класса объединяет два билета — об алгоритмах и об исполнителях. Поэтому в конце данных материалов вы увидите две ссылки на предыдущие публикации.
В отличие от экзамена в 9-м классе, выпускников можно с некоторой осторожностью спрашивать не о конкретном исполнителе, но об их общих свойствах. Об осторожности говорю потому, что умение обобщать есть достаточно сложный навык, и, к сожалению, в окружающей нас повседневной жизни, где логика видна все меньше, он развивается все слабее и слабее.
Возможно, не все учителя считают нужным излагать материал об основном алгоритме работы ЭВМ. Тем не менее, обосновывая формальность исполнения программы, о нем желательно сказать.
Примечания для учеников
Вопрос о свойствах алгоритма имеет фундаментальное значение в курсе информатики любого уровня. Поэтому при подготовке данного вопроса мы рекомендуем заучить названия всех свойств2. В то же время объяснение всех свойств, как обычно, необходимо разобрать и дополнить примерами.
При подготовке вопроса обязательно повторите особенности и систему команд исполнителей и языков программирования, которые вы изучали на уроках. Сопоставьте эти сведения с приведенным выше материалом и подберите примеры, которые вы включите в свой экзаменационный ответ.
2 Б порядке исключения, так как обычно, напротив, всегда призывали к осмысленному запоминанию материала, а не заучиванию
Готовимся к экзамену по информатике
Е.А. Еремин, В.И. Чернатынский, А.П. Шестаков,
г. Пермь
Продолжение. См. № 10—15/2004
БИЛЕТ № 15
1. Алгоритмическая структура "ветвление". I Команда ветвления. Примеры полного и неполного | ветвления.
2. Двоичное кодирование текстовой информации, i Различные кодировки кириллицы.
3. Практическое задание. Формирование запроса I на поиск данных в среде системы управления база- | ми данных.
1. Алгоритмическая структура "ветвление". Команда ветвления. Примеры полного и неполного ветвления
Базовые понятия
Алгоритм, ветвление, условие, полное ветвление и неполное ветвление.
Обязательно изложить
При составлении алгоритмов решения разнообразных задач часто бывает необходимо обусловить те или иные предписания, т.е. поставить их выполнение в зависимость от результата, который достигается на определенном шаге исполнения алгоритма. Например, алгоритм нахождения корней квадратного уравнения с помощью компьютера должен содержать проверку знака дискриминанта. Лишь в том случае, когда дискриминант положителен или равен нулю, можно проводить вычисление корней. Алгоритм перемещения в заданный пункт по улицам города обязательно должен содержать предписание проверки сигналов светофоров на пересечениях улиц, поскольку они обусловливают движение на перекрестках. Можно привести еще много примеров подобных ситуаций, которые не имеют решения в рамках структуры "следование". По этой причине в теории алгоритмов наряду со "следованием" предлагается вторая базовая структура, называемая "ветвление". Эта структура предполагает формулировку и предварительную проверку условий с последующим выполнением тех или иных действий, реализуя альтернативный выбор.
В словесной форме представления алгоритма "ветвление" реализуется в виде команды:
ЕСЛИ <АВ> то <Серия 1> ИНАЧЕ <Серия2>
Здесь <ЛВ> — это логическое выражение, < Серия 1> — описание последовательности действий,
которые должны выполняться, когда <ЛВ> принимает значение ИСТИНА, < Серия 2> — описание последовательности действий, которые должны выполняться, когда <ЛВ> принимает значение ЛОЖЬ. Любая из серий может быть пустой. В этом случае ветвление называется неполным. Каждая серия может, в свою очередь, содержать команду ветвления, что позволяет реализовать не только альтернативный выбор действий.
Если для представления алгоритма используется блок-схема, структура "ветвление" изображается так:
Полное ветвление Неполное ветвление
В языке программирования Turbo Pascal структура ветвления изображается оператором:
IF <ЛВ> THEN <БЛОК1> ELSE <БлОк2>;
Здесь <Бл<ж1> и <Блок2> — последовательности операторов языка Turbo Pascal, заключенные в операторные скобки BEGIN . . END.
Рассмотрим пример использования структуры "ветвление". Одной из типичных задач информатики является задача сортировки: упорядочения по возрастанию или убыванию величин порядкового типа. Составим алгоритм и программу сортировки списка из двух фамилий, используя неполное ветвление.
Алгоритм
/ *'Y /
i Г
Конец
2004 № 17 ИНФОРМАТИКА
Программа
PROGRAM SORT;
VAR X,Y,C: STRING;
BEGIN
WRITELN (-'Введи две фамилии'); READLN(X,Y); IF X > Y THEN BEGIN
С := X; X := Y; Y := С END;
WRITELN('После сортировки'); WRITELN (X); WRITELN (Y) END.
Рассмотрим теперь в качестве примера использования полного ветвления алгоритм и программу вычисления отношения двух чисел с блокировкой деления на ноль и выводом соответствующего сообщения на экран монитора.
Алгоритм
Программа
PROGRAM REL; VAR А,В,С: REAL; BEGIN
WRITELN('Введи 2 числа'); READLN(А,В); IF В О О THEN
BEGIN
С := А/В; WRITELN('С = ',С) END ELSE
WRITELN('ДЕЛЕНИЕ HA 0') END.
Ссылка на материалы вопроса
1. Угринович Н. Информатика и информационные технологии. Учебное пособие для 10—11-х классов. Углубленный курс. М.: Лаборатория Базовых Знаний, 2000, 440 с.
2. Семакин И., Залогова А., Русаков С., Шестакова Л. Базовый курс для 7—9-х классов. М.: Лаборатория Базовых Знаний, 2001, 384 с.
2. Двоичное кодирование текстовой информации. Различные кодировки кириллицы
Базовые понятия
Код, кодирование, двоичное кодирование, символ, код символа, кодировочная таблица.
Обязательно изложить
Если каждому символу какого-либо алфавита сопоставить определенное целое число, то с помощью двоичного кода можно кодировать и текстовую информацию. Для хранения двоичного кода одного символа может быть выделен 1 байт = 8 бит. Учитывая, что каждый бит принимает значение 0 или 1, количество их возможных сочетаний в байте равно 28 = 256. Значит, с помощью 1 байта можно получить 256 разных двоичных кодовых комбинаций и отобразить с их помощью 256 различных символов. Такое количество символов вполне достаточно для представления текстовой информации, включая прописные и заглавные буквы русского и латинского алфавита, цифры, знаки, псевдографические символы и т.д. Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертанию, а компьютер — по их коду. Важно, что присвоение символу конкретного кода — это вопрос соглашения, которое фиксируется в кодовой таблице. Кодирование текстовой информации с помощью байтов опирается на несколько различных стандартов, но первоосновой для всех стал стандарт ASCII (American Standard Code for Information Interchange), разработанный в США в Национальном институте ANSI (American National Standards Institute). В системе ASCII закреплены две таблицы кодирования — базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255. Первые 33 кода (с 0 до 32) соответствуют не символам, а операциям (перевод строки, ввод пробела и т.д.). Коды с 33-го по 127-й являются интернациональными и соответствуют символам латинского алфавита, цифрам, знакам арифметических операций и знакам препинания. Коды с 128-го по 255-й являются национальными, т.е. в национальных кодировках одному и тому же коду соответствуют различные символы.
В языках, использующих кириллический алфавит, в том числе русском, пришлось полностью менять вторую половину таблицы ASCII, приспосабливая ее под кириллический алфавит. В частности, для представления символов кириллицы используется так называемая "альтернативная кодировка".
В настоящее время существует несколько различных кодовых таблиц для русских букв (КОИ-8,
2004 № 17 ИНФОРМАТИКА
СР-1251, СР-866, Mac, ISO), поэтому тексты, созданные в одной кодировке, могут неправильно отображаться в другой.
После появления ОС Windows от фирмы Microsoft выяснилось, что альтернативная кодировка по некоторым причинам для нее не подходит. Передвинув русские буквы в таблице (появилась возможность — ведь псевдографика в Windows не требуется), получили кодировку Windows 1251 (Win-1251).
В настоящее время все большее число программ начинает поддерживать шестнадцатибитовый стандарт Unicode, который позволяет кодировать практически все языки и диалекты жителей Земли в силу того, что кодировка включает в себя 65 536 различных двоичных кодов.
Международная организация по стандартизации (International Organization for Standardization, или IOS) разработала свой код, способный соперничать с Unicode. Здесь для кодирования символов используется комбинация из 32 бит.
Желательно изложить
Кодирование и шифрование текста — исторический подход.
Перевод текста из одной кодировки в другую.
Ссылка на материалы вопроса
"Информатика" № 12, 2003, с. 3 — 5.
... подходе; Формы и методы: фронтальная, индивидуальная, объяснительно – иллюстративный, решение задач. Оборудование урока: демонстрационная презентация «Содержательный подход к определению количества информации. Единицы измерения количества информации» (презентация находится самом конспекте). Литература: 1. Лапчик М.П. и др. Методика преподавания информатики: Учеб. пособие для студ. пед. вузов ...
... (негэнтропия). Когда неопределенность снята полностью, количество полученной информации I равно изначально существовавшей неопределенности H. При частичном снятии неопределенности, полученное количество информации и оставшаяся неснятой неопределенность составляют в сумме исходную неопределенность. Ht + It = H. По этой причине, формулы, которые будут представлены ниже для расчета энтропии H ...
... полезно учителю при подготовке рассказа на уроке. В данной публикации сделана попытка выделить тот самый минимум, который ученику необходимо включить в свой ответ на экзамене. Примечания для учеников При ответе надо быть готовым к дополнительным вопросам об обосновании тех или иных утверждений. Например, каковы максимальное и минимальное значения 8-битного целого числа со знаком и почему их ...
... быть выведены на печать. На экране рисунки могут быть статическими (неподвижными) или динамическими (движущимися). В последнее время машинная графика выделилась в самостоятельный раздел информатики с многочисленными приложениями. Средствами машинной графики создается не только печатная продукция, но и рекламные ролики на телевидении, мультфильмы. Объясним, как кодируется изображение в памяти ...
0 комментариев