На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

«Что в имени тебе моем?»

Статья опубликована в выпуске журнала № 4 за 1988 год.
Аннотация:
Abstract:
Автор: () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 11624
Версия для печати

Размер шрифта:       Шрифт:

Первая строка стихотворения А. С. Пушкина дала название этой статье. А вот оно все:

Что в имени тебе моем? Оно умрет, как шум печальный Волны, плеснувшей в берег дальний, Как звук ночной в лесу глухом.

Оно на памятном листке Оставит мертвый след, подобный Узору надписи надгробной На непонятном языке.

Что в нем? Забытое давно В волненьях новых и мятежных, Твоей душе не даст оно Воспоминаний чистых, нежных.

Но в день печали, в тишине, Произнеси его тоскуя; Скажи: есть память обо мне, Есть в мире сердце, где живу я...

Имя, память, воспоминание... Этими понятиями, сняв с них поэтическую оболочку, оперируют и программисты, создавая, например, компьютерные базы данных. Одна из первых проблем, которую приходится решать родителям новорожденного, — это выбор имени для него. Программисту же с подобными проблемами приходится сталкиваться ежечасно, давая имена новым переменным, функциям, процедурам, программам.

Накладывает ли имя отпечаток на характер человека, на его судьбу — вопрос сложный и спорный. Можно услышать совершенно противоположные мнения на этот счет. Но то, что имя, даваемое новому объекту программы, может существенно повлиять на ее алгоритм, структуру, не будет оспаривать любой более-менее опытный программист. На простых примерах постараюсь рассказать, как удачно выбранное имя файла может облегчить процесс создания программы сбора, размещения, обработки и выдачи данных. Имя файла во внешнем запоминающем устройстве (ВЗУ) обычно не превышает по длине 8 или 16 знаков. Но и эта короткая информация при умелом ее использовании позволяет реализовывать сложные алгоритмы короткими БЕЙСИК-программами. Программа 1 предназначена (режим «Экзамен») для автоматизированного контроля знаний с помощью ЭВМ традиционным способом: машина задает обучаемому вопросы с несколькими вариантами ответов, один из которых верный. По числу правильных ответов можно судить о глубине освоения материала. Однако многие опытные методисты отвергают такой метод контроля, утверждая, что неверные ответы учениками нередко запоминаются лучше, чем верные. Тем не менее такая форма контроля получила широкое распространение.

Меню, записанное на строке 4 программы 1, указывает еще на два возможных режима работы с программой:

■    «Новый вопрос», позволяющий расширить число вопросов на магнитном диске (в ВЗУ);

■    «Исправление», к которому часто приходится прибегать в процессе апробации системы.

Вопрос в оперативном запоминающем устройстве (ОЗУ) машины образует следующую структуру данных:

•      литерная переменная V в 200 знаков хранит текст вопроса;

•       целочисленная переменная N хранит число (2-5) вариантов ответов на вопрос; целочисленная переменная Р хранит номер (2=sP=s5) правильного ответа на вопрос;

•       литерный массив 0 с длиной элементов по 100 знаков хранит варианты (2-5) ответов на вопрос.

В ВЗУ вопрос хранится в файле, имя которого в литерной форме повторяет его номер, выводимый при каждом обращении к режиму 1 «Новый вопрос». Общее число вопросов (на гибком диске их может быть до 142) хранится в ВЗУ в файле с именем ВОПРОСЫ. На экзамене испытуемому можно задать до 50 неповторяющихся вопросов (их число не должно превышать количества вопросов, хранящихся на диске), см. строку 16. Вопросы

 

из ВЗУ на экран дисплея переносятся с использованием генератора псевдослучайных чисел, что исключает повтор серий в новых экзаменах и создает иллюзию их множества. Экзаменуемый не может «пересидеть» экзаменатора, поскольку время на обдумывание каждого вопроса ограничено (просроченное время приравнивается к неверному ответу на вопрос). При ожидании ответа на вопрос не используемые в данный момент клавиши блокируются (см. строку 22).

Операторы строки 31 программы 1 предназначены для инициализации нового диска. Они работают в паре со вторым оператором программы, передающим» управление на 31 строку при возникновении аварийной ситуации (при попытке открытия для чтения несуществующего файла ВОПРОСЫ).

Программа 2 позволяет сыграть в игру «Животные»: человек задумывает какое-нибудь животное (предмет, явление и пр.), а машина отгадывает его, задавая альтернативные вопросы и получая на них ответы «да» или «нет». Алгоритм игры лучше пояснить примером ее протокола:

:RUN

ЭТО КОТ УГАДАЛА. ДА-НЕТ? НЕТ

СДАЮСЬ. КТО ЭТО? КИТ

ЗАДАЙТЕ АЛЬТЕРНАТИВНЫЙ ВОПРОС. ОТВЕТИВ НА КОТОРЫЙ МОЖНО ОТЛИЧИТЬ

КИТ ОТ КОТ? ЖИВЕТ ОНО В ВОДЕ ПРАВИЛЬНЫЙ ОТВЕТ. ДА-НЕТ? ДА ЕЩЕ БУДЕТЕ ИГРАТЬ. ДА-НЕТ? ДА ЭТО КОТ УГАДАЛА. ДА-НЕТ? НЕТ ЖИВЕТ ОНО В ВОДЕ. ДА-НЕТ? ДА ЭТО КИТ УГАДАЛА. ДА-НЕТ? НЕТ СДАЮСЬ. КТО ЭТО? РУСАЛКА ЗАДАЙТЕ АЛЬТЕРНАТИВНЫЙ ВОПРОС, ОТВЕТИВ НА КОТОРЫЙ МОЖНО ОТЛИЧИТЬ

РУСАЛКА ОТ КИТ? МОЖНО С НИМ ПОГОВОРИТЬ ПРАВИЛЬНЫЙ ОТВЕТ. ДА-НЕТ? ДА ЕЩЕ БУДЕТЕ ИГРАТЬ. ДА-НЕТ? ДА и т. д.

Действия машины в этой игре подобны карабканью на бинарное дерево вопросов (см. рисунок), ветви которого раздваиваются при ответе человека «да» или «нет» (см. строку 4 программы 2). На ветвях «висят» ответы на вопросы. Очередной вопрос (литерная переменная В), ожидаемый объект (литерная переменная 0) и признак правильности ответа (литерная переменная Р) хранятся на магнитном диске (в ВЗУ) в файле, имя которого в литерной форме совпадает с его номером (см. оператор конвертирования переменной на строке 5). Это, во-первых, обеспечивает компактную упаковку бинарного дерева и, во-вторых, сохраняет его при переходе к работе по другой программе или при отключении машины, предоставляя возможность его дальнейшего наращивания. В игре «Животные» можно заметить элементы экспертной системы со способностью самообучения. Для этого достаточно взглянуть на следующий пример протокола:

:RUN

У БОЛЬНОГО ТЕМПЕРАТУРА НИЖЕ 37 ГРАДУСОВ. ДА-НЕТ? НЕТ

У БОЛЬНОГО ХРИПЫ В ЛЕГКИХ. ДА-НЕТ? ДА

ЭТО ПНЕВМОНИЯ. ДА-НЕТ? НЕТ

ЧТО ЭТО? СПИД

ЧЕМ СПИД ОТЛИ ЧАЕТСЯ ОТ ПНЕВМОНИИ? РЕАКЦИЯ НА СПИД ПОЛОЖИТЕЛЬНА

ПРАВИЛЬНЫЙ ОТВЕТ. ДА-НЕТ? ДА

Наращивая такую экспертную систему (электронный советчик), нужно уметь правильно формулировать альтернативные вопросы, подчеркивающие принципиальную разницу между последним предположением машины и реальным предметом или явлением.

Игра «Животные», если ее вести на иностранном языке, может оказаться эффективным и в то же время занимательным средством овладения иноязычной лексикой. В этом случае на диске хранится не отдельное дерево, а целый бор , отдельные деревья которого дублируют вопросы и ответы на разных языках. Обучаемый может выбрать нужный ему язык, а в процессе игры получать подсказки на родном языке.

С помощью игры «Животные» можно провести небольшое социологическое исследование в коллективе: его члены совместными усилиями выращивают бинарное дерево, загадывая своих коллег; при этом даже по одному вопросу, подчеркивающему разницу между двумя людьми, можно судить об атмосфере, царящей в коллективе.

Подпрограмма на строках 14-4-23 программы 2 обеспечивает удобство работы человека с машиной, которая правильно реагирует на ответы человека: ДА — 1, ДА, да, YES, yes; НЕТ — 0, НЕТ, нет, NO, no. Программа 3 превращает ЭВМ в энциклопедический (или другой) словарь, если для этого будет хватать объема ВЗУ. По запросу ключевого слова следует ввести название интересующей статьи, после чего машина, принимая название статьи за имя файла, найдет нужную информацию в ВЗУ и перенесет ее на дисплей.

Пример такой справки по Советскому Энциклопедическому Словарю (Гл. ред. А. М. Прохоров. —4-е изд. — М.: Сов. Энциклопедия, 1988. — 1600 с. с ил.):

:RUN

КЛЮЧЕВОЕ СЛОВО? БУХАРИН

ИНФОРМАЦИЯ. — НИК. ИВ. (Р. 1947), НОВАТОР ПРОИЗ-ВА, ЭЛЕКТРОСВАРЩИК

ПРОИЗВ. ОБЪЕДИНЕНИЯ «УРАЛВАГОНЗАВОД» ИМ. ДЗЕРЖИНСКОГО С

1966. ЧЛ. КПСС С 1970. ЧЛ. ЦРК КПСС С 1986.

Естественно, такая информация ни прежде, ни тем более сейчас никого уже не может удовлетворить (вспомним название этой статьи). Поэтому в программу 3 записан оператор LINPUT (гибрид операторов PRINT и INPUT), позволяющий полученную от машины информацию исправить или дополнить: ..., (1888—1938) видный деятель Коммунистической партии и Советского государства, гл. ред. Правды и Известий, ставший жертвой непродуманного альянса со Сталиным. Эта новая информация уже не будет совпадать со старой (см. логический оператор в конце строки 4), что будет сигналом к ее перезаписи в ВЗУ (см. строку 5).

Нужной статьи (например РЫКОВ) в словаре может и не быть, что вызовет аварийную ситуацию, которая тем не менее (см. второй оператор строки 1) не прервет работу по программе, а передаст управление на строку 8, где начинается участок анализа ошибок. Попытка открытия для чтения несуществующего файла — это ошибка с кодом 73, возникающая на 3-й строке программы. В такой ситуации ЭВМ запросит у человека информацию и занесет ее в ВЗУ в виде нового файла с именем, совпадающим с названием информации, что станет названием статьи в словаре. Если затребованную информацию не внести, то словарь не расширится. Неввод ключевого слова ведет к прерыванию работы по программе с отключением анализатора аварийных ситуаций (см. строку 13).

В номере 2-3 журнала «Программные продукты и системы» за 1988 г. в статье «Компьютер—хранитель домашнего очага» была помещена программа, превращающая ЭВМ в семейную книгу расходов и доходов. Эту программу можно также рассматривать как пример удачного наименования файлов, облегчающего реализацию задуманного алгоритма. Файл с именем «88.11.18», например, хранит данные по расходам и доходам в семье, имевшим место 18 ноября 1988 года и накануне. Такая идентификация файлов позволяет легко обрабатывать хронологические данные, хранящиеся в ВЗУ. Помогает реализовывать задуманный алгоритм не только удачно выбранное имя объекта программы, но и его фамилия. Под фамилией, если рассматривать переменные, нужно подразумевать их тип. Пример тому — программа 4, предназначенная для поиска максимума многомерной функции методом «Два шага» (модификация метода Хука-Дживса). В ней аргументы многомерной функции представлены не в виде простых вещественных переменных X, У и т. д., как это записывается в традиционной форме, а в виде одномерного вещественного массива X. Итак, именем файла может быть:

•     номер очередной порции информации, заносимой в ВЗУ (программа 1 «Электронный экзаменатор»);

•     номер ветки бинарного дерева вопросов и ответов (программа 2 «Животные»);

•     название искомой информации (программа 3 «Электронный референт»);

•     дата (и время) записи информации.

Можно придумать много других способов наименования файлов с целью реализации задуманного алгоритма (например с использованием иерархии файлов). Главное — чтобы машина могла быстро «вспомнить» имя, а файл тотчас на него «откликнуться»:

...Произнеси его, тоскуя;

Скажи: есть память обо мне,

Есть в мире сердце, где живу я...

 

 
 

 

 


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=1495&lang=
Версия для печати
Статья опубликована в выпуске журнала № 4 за 1988 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: