Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

Моделирование работы ЭВМ при помощи табличного процессора Excel

Как известно, любой универсальный табличный процессор пригоден для моделирования самого широкого круга задач, причем не обязательно чисто вычислительных (см., например, статьи [1-4]). Возможности пользователей еще более возрастают, если электронные таблицы имеют встроенный язык программирования. Широко распространенный в нашей системе образования программный продукт MS Excel, базирующийся на мощной системе программирования Visual Basic, не является в этом отношении исключением.

Хотя наиболее часто областью задач все же является экономика [5], для образовательных целей заметный интерес как раз представляют примеры «неэкономического» содержания. Творческие преподаватели разработали большое количество таких примеров; в частности, в Интернете можно отыскать огромное разнообразие подобных моделей, начиная от размножения кроликов [6] до демонстрации осцилограм напряжения [7]. В связи с этим подбор тематики заданий для моделирования являет собой определенную методическую проблему: из широчайшего перечня доступных задач надо выбрать интересные, познавательные, соответствующие уровню знаний учеников и т.д.

В данной статье в качестве одного из достойных внимания вариантов предлагается для углубления знаний учеников в области информатики смоделировать наиболее важные принципы работы ЭВМ. В новом стандарте знаний по школьному курсу информатики [8] (попутно заметим, что он отличается некоторым уменьшением внимания к устройству компьютера) предусмотрено изучение программного принципа работы ЭВМ, так что имитация процесса исполнения программы есть задача безусловно полезная.

Моделирование в данной статье базируется на применении макросов MS Excel. При изложении предполагается, что читатели знакомы с основами языка Basic, способны набрать простейшую программу макроса и подключить ее к созданной кнопке. В противном случае можно обратиться к весьма распространенным учебникам [9-10] или к одной из имеющихся в распоряжении книг по MS Excel, например, [11].

В качестве основы для изучения удобно взять наиболее простую из моделей, которые описываются в учебной литературе. Если проанализировать школьные учебники, то с позиции простоты устройства выбор практически неизбежно будет сделан в пользу ЭВМ «Кроха» [12]. Данная модель «по духу» близка к ЭВМ первых двух поколений, что делает ее несколько устаревшей, но зато по простоте и наглядности она не имеет себе равных. Поскольку главной целью нашего моделирования является на основе простейших методов изучить наиболее общие принципы работы вычислительной машины, то, по мнению автора, для этих целей «Кроху» можно признать вполне подходящей.

Опишем кратко учебную ЭВМ «Кроха», на базе которой мы будем моделировать в Excel фундаментальные принципы исполнения программы.

Учебная ЭВМ «Кроха»

Максимально простую модель для изучения ЭВМ предложил в своем учебнике информатики [12] коллектив авторов из Екатеринбурга. Она не случайно была названа «Крохой» – в памяти этой машины всего восемь(!) ячеек и она способна выполнить столько же различныхnопераций. Но, несмотря на столь примитивное устройство, «Кроха» дает весьма правильное представление о наиболее общих и принципах работы ЭВМ. В частности заметим, что на базе этой, казалось бы, примитивной модели при некоторой модификации удается создать демонстрационный компилятор с языка Паскаль [13].

Не видно никакой принципиальной причины, по которой описанную в статье методику моделирования нельзя применить к более сложной машине: ничто, кроме трудоемкости, не может помешать, например, создать в Excel модель реального компьютера на базе процессора фирмы Intel.

Основу модели «Кроха» составляет оперативная память. Кстати в классической работе по описанию основ работы ЭВМ [14], до сих пор не утратившей своего фундаментального значения, роль организации памяти в конструкции машины в целом также подчеркивалась особо:

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

На количество ячеек ОЗУ и их разрядность заметное влияние оказывает структура машинной команды. В частности, если взять за основу наиболее наглядную трехадресную систему команд, которая обычно применялась в первых ЭВМ (очевидно, что все арифметические операции имеют два операнда и результат), то разрядность команды будет существенным образом зависеть от максимальной длины адреса ячеек. Поскольку, как упоминалось выше, ОЗУ «Крохи» состоит из восьми ячеек, для их нумерации достаточно трех двоичных разрядов (23 = 8). Кроме того, естественно положить длину кода операции также равную трем битам. В итоге общая длина команды составит 12 двоичных разрядов: три адреса и код операции по три разряда каждый.

КОП А1 А2 А3
Рис.1. Структура команды ЭВМ «Кроха»

Длину обрабатываемых чисел также удобно принять равной 12 битам.

Для выполнения арифметических операций в ЭВМ «Кроха» служит специальный регистр – сумматор. Он символизирует собой арифметико-логическое устройство – АЛУ, которое в реальной ЭВМ, разумеется, гораздо сложнее.

Все команды в вычислительной машине должны выполняться автоматически, что обеспечивается отдельным узлом – устройством управления УУ. В его состав в «Крохе» входит счетчик команд, отслеживающий движение по программе и запоминающий номер очередной команды, а также регистр команд, где хранится исполняемая в данный момент команда. Подробнее механизм выполнения программы будет рассмотрен ниже.

Напомним, что АУ и УУ в современных компьютерах объединяются единый блок, который принято называть процессором.

Наконец, в качестве устройства вывода у «Крохи» имеется мини-дисплей, на котором могут отображаться значения трех чисел.

Устройства ввода модели в учебнике не конкретизируются, видимо по умолчанию полагается, что это некий специализированный пульт управления. Ввод данных в ОЗУ «Крохи» не связан с наличием какой-либо инструкции программы. На первый взгляд это может показаться удивительным, но во многих старых моделях вычислительных машин именно так и было: адрес ОЗУ и его содержимое набирались на пульте с помощью специальных переключателей, причем машина при этом находилась в остановленном состоянии. Еще более удивительным оказывается тот факт, что подобная «древняя» философия прекрасно согласуется с технологией ввода данных в электронную таблицу: набор идет непосредственно в ее ячейки и затем табличный процессор производит необходимые вычисления.

Полная система команд учебной ЭВМ «Кроха» приводится в следующей таблице.

Операция Код Комментарии
2 с/с 8 с/с
перепись0000 A3 = A1
сложение0011 A3 = A1 + A2
деление нацело0102 A3 = A1 div A2
модуль разности0113 A3 = |A1 - A2|
переход по =1004 при A1 = A2 – перейти к A3
умножение1015 A3 = A1 * A2
переход по >1106 при A1 > A2 – перейти к A3
стоп и вывод1117 A1, A2, A3 на дисплей; стоп

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

Рассмотрим теперь подробнее, каким образом «Кроха» выполняет программу, что обязательно нам потребуется в процессе проведении моделирования. При пуске счетчик всегда устанавливается в ноль, так что исполнение программы всегда начинается с нулевого адреса. Далее машина следует приведенному ниже несложному алгоритму:

  1. из адреса ОЗУ, на который указывает счетчик команд, считывается очередная команда и помещается в регистр команд;
  2. счетчик команд увеличивается таким образом, чтобы получился адрес следующей команды (в «Крохе» его содержимое достаточно увеличить на единицу);
  3. считанная в регистр команд машинная инструкция расшифровывается и выполняется; при этом извлекаются операнды, над которыми производится необходимое арифметическое действие или операция сравнения, а результат, как правило, записывается по третьему адресу (исключение составляют команды перехода, когда А3 заносится в счетчик команд, а также совмещенная с остановкой инструкция вывода);
  4. если выбранная инструкция не является командой остановки, алгоритм повторяется, начиная с п.1.

Вследствие особой важности, сформулированный выше алгоритм имеет специальное название – его часто называют основным алгоритмом работы процессора. Наличие подобного алгоритма является неотъемлемым свойством классической фон-неймановской архитектуры, которая с некоторыми модификациями продолжает использоваться до сих пор.

Нетрудно понять, что благодаря основному алгоритму процессор способен автоматически выполнять последовательно расположенные в памяти инструкции программы. Однако чисто линейные программы на практике встречаются довольно редко – необходимы еще разветвляющиеся, обеспечивающие разные действия в зависимости от получившихся в ходе обработки результатов, и циклические, организующие многократное повторение тех или иных фрагментов программы. Такими средствами являются инструкции переходов. Их суть состоит в том, что на этапе 3 в случае выполнения указанного условия происходит замена текущего содержимого счетчика команд на значение, закодированное в инструкции перехода. Таким путем осуществляется нарушение естественной последовательности команд и происходит переход на любой произвольный фрагмент программы.

Описанные выше принципы выполнения программы на ЭВМ «Кроха» и будут служить предметом моделирования в табличном процессоре Excel.

Завершая описание учебной ЭВМ «Кроха», рассмотрим пример программы для нее. Данный пример пригодится нам в дальнейшем в качестве тестового для проверки работоспособности нашей модели.

Реализуем традиционную задачу – вычисление значения факториала числа n. Обозначим k рабочую переменную, которая является текущим множителем для факториала и меняется от 1 до n. Начальное значение k придется задавать перед каждым запуском «вручную», т.к. для команды пересылки константы 1 из ячейки 7 в ячейку 4 у «Крохи» уже не хватает памяти. То же самое можно сказать и про начальное значение n!, которое перед каждым запуском естественно установить равным 1.

Не забудьте также в ячейку 6 занести число n + 1, которое является верхней границей цикла (цикл будет выполняться, пока k < n+1 и, следовательно, завершится после умножения на n).

Адрес Команда Расшифровка Комментарий
05545(5) * (4) ==> (5) n! * k ==> n!
11474(4) + (7) ==> (4) k + 1 ==> k
26640если (6)>(4), перейти к 0 переход при k < n + 1
37555стоп; вывод (5),(5),(5) вывод n!
4k [задать 1]  рабочая ячейка
5n! [задать 1]  результат
6n + 1 [задать]  константа
700011 константа 1

При работе с программой полезно обратить внимание на эффект переполнения, который для быстрорастущего выражения типа факториал достигается довольно быстро. В самом деле, как подробно обсуждается в учебнике [12], максимально допустимое число для 12-разрядной «Крохи» равняется 4095. Таким образом, уже попытка вычислить 7! = 5040 приводит «Кроху» к непреодолимым вычислительным трудностям.

Моделирование ЭВМ «Кроха» в Excel

Перейдем к непосредственному моделированию описанной в предыдущем разделе учебной ЭВМ «Кроха».

Прежде всего подчеркнем, что для реализации даже простейшей автоматически работающей модели наличие внутреннего языка программирования является обязательным; в частности, Visual Basic в Excel содержит более чем достаточное для наших целей количество разнообразных языковых средств.

И еще одно важное для понимания дальнейшего замечание. Хотя оригинальная «Кроха» для наглядности описывается в двоичной системе (см. [12]), при моделировании в Excel удобнее воспользоваться восьмеричной; в последнем случае команда представляет собой четыре восьмеричных цифры, причем каждая из них соответствует отдельной части команды (см. рис.1). С точки зрения простоты представления команд это обстоятельство необычайно удобно.

Реализацию «Крохи» в клетках электронной таблицы начнем с планирования назначения ячеек. Предусмотрев место под заголовки и тексты пояснений, разместим ячейки памяти учебной ЭВМ в блоке ячеек B4:E11. Количество строк очевидным образом равняется числу ячеек, причем любая из них делится на четыре части: код операции и три адреса. Таким образом, при наборе команды каждая из четырех цифр заносится в отдельную клетку, как это сделано на рис.2.

Кроха в Excel
Рис.2. Общий вид ЭВМ «Кроха» в электронной таблице

Рядом с ОЗУ в группе клеток F4:G6 разместим дисплей, отображающий содержимое адресов ОЗУ в восьмеричной и десятичной системах счисления. Наконец, в строках 13-15 расположим описанные в предыдущем разделе регистры АЛУ и УУ. Отметим, что все нижележащие строки есть просто справочный материал.

Картину завершают две кнопки управления Start и Step, первая из которых служит для запуска исполнения всей программы, а вторая – только одной ее очередной команды. Последняя возможность позволяет производить пошаговое выполнение программы, что особенно удобно при отладке.

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

Rem Расположение устройств машины в таблице

Const Mem_cell As Integer = 4          'ОЗУ Const IP_cell As Integer = 13 'счетчик команд Const RK_cell As Integer = IP_cell + 1 'регистр команд Const SM_cell As Integer = IP_cell + 2 'сумматор Const DI_cell As Integer = Mem_cell 'дисплей Const Left_cell As Integer = 2 'положение левой границы Const Msg_cell As Integer = DI_cell + 3 'сообщение Const Msg_left As Integer = Left_cell + 4' об ошибке

Rem Переменные

Dim doing As Boolean 'true - программа выполняется, false - стоп

Rem ***** ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ *****

Function oct4(n) As String Rem Возвращает 4 восьмеричные цифры (например, "0032") oct4 = Right$("000" + Oct$(n), 4) End Function Function get_memory_digit(adr, n) As Integer Rem Возвращает из заданной ячейки ОЗУ заданную восьмеричную цифру Rem Цифры, как и ячейки ОЗУ, нумеруются с 0 (до 3) get_memory_digit = Cells(Mem_cell + adr, Left_cell + n) End Function Function get_memory_cell(adr) As Integer Rem Преобразует ячейку ОЗУ в десятичное число (из 8 с/с в 10) Dim i, m, r As Integer r = 0: m = 1 For i = 3 To 0 Step -1 r = r + m * get_memory_digit(adr, i): m = m * 8 Next i get_memory_cell = r End Function Sub put_memory_cell(adr, d$) Rem Записывает в ОЗУ по адресу adr 4 восьмеричные цифры из строки d$ Dim i As Integer For i = 0 To 3 'Распишем в ОЗУ отдельные цифры Cells(Mem_cell + adr, Left_cell + i) = Mid$(d$, i + 1, 1) Next i End Sub Sub copy_Cells(d, s) 'Копирует 4 восьмеричные цифры Dim i As Integer For i = 0 To 3 Cells(d, Left_cell + i) = Cells(s, Left_cell + i) Next i End Sub Sub avost(m$) 'Аварийный останов doing = False Cells(Msg_cell, Msg_left) = m$ 'Вывод сообщения End Sub

Rem ***** ОСНОВНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ *****

Sub do_command() 'Выполняет 1 очередную операцию Dim i, a, d, IP, KOP, OP1, OP2, RE As Integer, s As String Cells(Msg_cell, Msg_left) = "" 'Очистка ошибки Rem Извлечение команды из ОЗУ в РК IP = Cells(IP_cell, Left_cell) Call copy_Cells(RK_cell, Mem_cell + IP) 'скопировать команду из ОЗУ в РК Rem Увеличение СК i = Cells(IP_cell, Left_cell): i = i + 1 If i > 7 Then i = 0 Cells(IP_cell, Left_cell) = i Rem Операция KOP = Cells(RK_cell, Left_cell) OP1 = get_memory_cell(Cells(RK_cell, Left_cell + 1)) OP2 = get_memory_cell(Cells(RK_cell, Left_cell + 2)) On KOP + 1 GoSub c_mov, c_add, c_div, c_sub, c_beq, c_mul, c_bgt, c_hlt If (KOP > 3) And (KOP <> 5) Then Exit Sub 'нет записи результата Rem Проверка и запись результата GoSub overflow 'Проверить переполнение Cells(SM_cell, Left_cell + 3) = RE 'Занести результат в 10 с/с s = oct4(RE) 'Перевести результат в 8 с/с a = Cells(RK_cell, Left_cell + 3) 'адрес для записи из РК (A3) Call put_memory_cell(a, s) 'Запись результата в ОЗУ Call copy_Cells(SM_cell, Mem_cell + a) 'Скопировать число из ОЗУ в СМ Exit Sub overflow: 'Проверка переполнения (результат < 4096) If RE > 4095 Then RE = 4095 Call avost("> 4095") End If Return Rem Система команд c_mov: RE = OP1: Return c_add: RE = OP1 + OP2: Return c_sub: RE = Abs(OP1 - OP2): Return c_mul: RE = OP1 * OP2: Return c_div: If OP2 <> 0 Then RE = Int(OP1 / OP2) Else: Call avost("/ 0") End If Return c_beq: If OP1 = OP2 Then Cells(IP_cell, 2) = Cells(RK_cell, 5) Return c_bgt: If OP1 > OP2 Then Cells(IP_cell, 2) = Cells(RK_cell, 5) Return c_hlt: doing = False For i = 0 To 2 'вывод 3-х чисел a = Cells(RK_cell, 3 + i) 'адрес ОЗУ (берем из РК) d = get_memory_cell(a) 'число Cells(DI_cell + i, Left_cell + 5) = d 'десятичный вывод Cells(DI_cell + i, Left_cell + 4) = oct4(d) 'восьмеричный Next i Return End Sub Sub do_program() 'Выполняет всю программу с начала Cells(IP_cell, Left_cell) = 0 'Очистка СК doing = True Do do_command Loop Until Not doing End Sub

Объясним главные моменты устройства приведенной программы.

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

Далее в листинге следуют вспомогательные процедуры и функции:

  • функция oct4 преобразует к стандартному виду произвольное восьмеричное число, добавляя перед сохранением в ОЗУ необходимое количество незначащих нулей слева;
  • функция get_memory_digit возвращает из заданной ячейки ОЗУ заданную восьмеричную цифру;
  • функция get_memory_cell, используя предыдущую функцию, считывает из ОЗУ десятичное число; фактически она производит перевод числа из восьмеричной системы счисления в десятичную;
  • процедура put_memory_cell заносит в клетки таблицы, относящиеся к заданной ячейке ОЗУ, восьмеричное число из строковой переменной;
  • процедура copy_cells копирует 4-значное восьмеричное число, которое занимает четыре смежные горизонтальные ячейки, из одной строки в таблицы в другую;
  • наконец, процедура avost обслуживает аварийный останов в случаях деления на ноль или переполнения.

Собственно логика функционирования учебной ЭВМ «Кроха» сосредоточена в двух основных процедурах, каждая из которых связана со своей кнопкой. Первая – do_command – выполняет одну очередную операцию (процедура вызывается по кнопке Step, т.е. шаг). Вторая – do_program – организует полное выполнение программы, производя все подготовительные действия и циклически вызывая предыдущую процедуру. Прекращение выполнения обеспечивается установкой у переменной doing значения false. Данное действие обеспечивается внутри процедуры do_command по команде стоп или в случаях аварийных ситуаций типа деления на ноль.

С точки зрения целей нашего моделирования следует подчеркнуть, что процедура do_command отчетливо повторяет основной алгоритм работы процессора, описанный выше. Используя имеющиеся в тексте листинга комментарии, легко проследить основные этапы выполнения команды: считывание очередной инструкции, увеличение счетчика команд и выполнение выбранной в регистр команд операции. Последний этап, в свою очередь, делится на извлечение адресов A1 и A2, их обработке согласно коду операции КОП и, если выбрана одна из арифметических инструкций или перепись, записи полученного результата. Команды перехода и остановки имеют определенную специфику выполнения: первые проверяют требуемое условие и в случае его выполнения заносят в счетчик величину A3, а инструкция останова обслуживает вывод всех трех своих адресов на дисплей. Таким образом, все разнообразие поведения при выполнении различных команд «Крохи» обеспечивается оператором выбора On KOP + 1 GoSub, где переменная KOP есть не что иное, как код исполняемой инструкции.

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

Остается только ввести полученную программу. Для этого сначала создадим самый первый макрос, воспользовавшись меню СервисМакросМакросы... После этого внимательным образом наберем весь текст программы (напомним читателям, что в любой момент можно вернуться в редактор языка Visual Basic, нажимая сочетание клавиш <Alt> и <F11>).

Наконец, последнее, что нам предстоит сделать – это связать управляющие кнопки с соответствующими процедурами. Учебная ЭВМ «Кроха» готова! {Готовую версию программы можно закачать здесь}

Для тестирования введем программу вычисления факториала, которая была разобрана ранее (перед вводом полезно еще раз внимательно рассмотреть расположение информации в ячейках таблицы на рис.2). Нажмем кнопку Start и убедимся в том, что получился правильный результат.

Итак, пользуясь табличным процессором MS Excel, мы смоделировали работу ЭВМ. Остается внимательно пронаблюдать за тем, как «Кроха» выполняет программу, обратив внимание на следующие моменты:

  • каким образом выполняется линейный участок программы, команды которого расположены в памяти последовательно (практическая реализация принципа программного управления);
  • как реализуется условный переход, благодаря которому возможны разветвляющиеся и циклические программы;
  • любая инструкция ЭВМ есть указание на действия, которые необходимо сделать над указанной в ней информацией; команды максимально универсальны и их набор ограничен;
  • обращение к информации в ОЗУ происходит по адресам (принцип адресности);
  • программы и данные хранятся в общей памяти и не имеют принципиальных различий (принцип хранимой программы);
  • диапазон допустимых данных в машине ограничен; он определяется разрядностью, при превышении которой происходит особая ситуация – переполнение.

Таким образом, мы видим, что изучение описанной в статье задачи позволяет проиллюстрировать наиболее фундаментальные принципы устройства современных компьютеров. Учитывая простоту (даже, можно сказать, примитивность) модели «Кроха», такой результат для некоторых читателей может оказаться неочевидным.

Ссылки

  1. Попова О.Н. Моделирование сетевых задач средствами MathCad и Excel // Информатика и образование, 2003, N 12. С.68-78
  2. Ракитина Е.А., Бешенков С.А., Галыгина И.В., Галыгина Л.В. Решение типовых задач по информационным технологиям // Информатика и образование, 2004, N 4. С.59-73
  3. Богуславский А.А., Щеглова И.Ю. Моделирование физических задач в электронных таблицах MS Excel // Информатика и образование, 2004, N 7. С.70-74
  4. Юнова Н.Н. Интерактивная лекция на тему "Построение и анализ информационных моделей в среде электронных таблиц Microsoft Excel97" // Информатика и образование, 2004, N 10. С.55-59
  5. Мур Д., Уэдерфорд Л. Р. Экономическое моделирование в Microsoft Excel. СПб.: Издательский дом "Вильямс". - 1024 с.
  6. Сергеев А. Кролики в электронных клетках, или Экспонента как она есть // Школьная компьютера, 11.04.2003
  7. Мясников В. Моделирование мультивибратора
  8. Стандарт основного общего образования по информатике и информационным технологиям // Информатика и образование. 2004. N 4. С.7-10
  9. Шафрин Ю.А. Информационные технологии. Ч.2. М.: Лаборатория Базовых Знаний, 2000. - 336 с.
  10. Угринович Н.Д. Информатика и информационные технологии. М.: Лаборатория Базовых Знаний,2000. - 440 с.
  11. Саймон Д. Программирование в Excel: наглядный курс создания интерактивных таблиц. М.: Издательский дом "Вильямс", 2002. - 336 с.
  12. Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений / А.Г.Гейн, В.Г.Житомирский, Е.В.Линецкий и др. - Свердловск: Изд-во Урал. ун-та, 1989. - 272 с.
  13. Еремин Е.А. Компилятор? Это очень просто // Компьютер УКНЦ. М.: Компьютика, 1995, N 3. С.25-33
  14. Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник, выпуск 9. М.: Мир, 1964. С. 7-67


© Е.А.Еремин, 2006
Статья:
Еремин Е.А. Моделирование работы ЭВМ с помощью программы Microsoft Excel. Информатика, 2006, N 21, с.37-40; N 22, с.42-45.


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com