7 Последовательность выполнения операции умножения
8 Принцип согласно которому сумматор выполняет деление
9 Последовательность выполнения операции деления
ЛЕКЦИЯ 10. Работа программы в компьютерной среде
Для компьютеров первого поколения программисты составляли программы в виде последовательности команд, записываемых одна под другой. Команды (рис 10.1) записывались непосредственно в двоичном коде. Из рисунка видно, что в общем виде команда состоит из шифра операции, адресов операндов О1 и О2 (рис. 9.1), адреса, по которому записывается результат выполненной операции, и адреса следующей команды. Адресом называется номер ячейки оперативной памяти компьютера.

Рис 10.1 Структура команд, из которых состоит программа

Рис. 10.2. Схема памяти
Рассмотрим простейший пример программы по вычислению некоторой величины по формуле:
(10.1)
Прежде всего необходимо осуществить ввод переменных, т. е. разместить их по ячейкам памяти с указанием адресов. Это выполняется командами ввода:
1. Разместить
по адресу 11. (один один). Перейти к команде 2
2. Разместить
по адресу 12. Перейти к команде 3
3. Разместить
по адресу 13. Перейти к команде 4
4. Разместить
по адресу 14. Перейти к команде 5
Далее с введенными переменными проводятся операции:
5. Взять содержимое ячеек 12 и 14 (т. е
и
соответственно), перемножить эти содержимые друг на друга, результат записать в ячейку 15. Перейти к команде 6
6. Взять содержимое ячеек 11 и 15 (
и
), вычесть содержимое ячейки 15 из содержимого ячейки 11, результат записать в ячейку16. Перейти к команде 7
7. Взять содержимое ячеек 16 и 13 (
и
), разделить содержимое ячейки 16 на содержимое ячейки 13, результат записать в ячейку 21.
8. Содержание ячейки 21 вывести на печать. Перейти к команде 9
9. Закончить выполнение программы
Таким образом, процесс программирования простейшей формулы вылился в девять команд. Особую сложность представлял перевод цифр и слов в двоичный код. Обычно программист должен был держать перед собой словарь (шифровальный лист) для перевода. Кроме того, программист держал перед собой схему оперативной памяти (подобную изображенной на рис. 10.2), чтобы видеть, свободна ли ячейка, в которую он собирается поместить очередную информацию, либо она уже чем-то занята.
Уже с появлением компьютеров второго поколения оперативная память возросла в десятки раз, появилась возможность использования в производственных нуждах программ, содержащих десятки и сотни формул, программирование одной из которых рассмотрено в вышеприведенном примере. Задача составлять подобные программы в командах стала слишком трудоемкой.
Однако, сам компьютер и его процессор могут работать только в командах, выполненных в двоичных кодах. Как бы велика ни была оперативная память, все равно, каждая ее ячейка должна учитываться, – в противном случае хранящаяся там информация окажется утерянной.
Вышеуказанные обстоятельства привели к тому что с появлением компьютеров второго поколения “ручное” программирование в командах (как в примере) сменилось “автоматическим” программированием (см. таблицу 5.1)
Сущность автоматического программирования состоит в том, что вместо команд, где тщательно расписан каждый шаг выполнения той или иной операции, стали использовать “операторы”. Так, рассмотренный пример, состоял бы всего из 3-х операторов:
1 Ввести ![]()
2 ![]()
3 Вывести y
Язык программирования в операторах называется языком высокого уровня (алгоритмическим языком). При его использовании компьютер сам должен переводить операторы в команды. Для этого:
– Компьютер должен “знать” местонахождение и содержание каждой ячейки своей оперативной памяти
– Он должен “уметь” расписывать каждый оператор в серию необходимых команд
– Он должен переводить цифры и слова в их двоичные коды
Для производства этих и многих других операций компьютеры стали оснащаться операционными системами, представляющими собой обширную программу, постоянно содержащуюся в оперативной памяти и являющуюся неотъемлемой частью компьютера.
Если пользовательские программы ориентированы на пользователя, т. е. должны быть удобны для специалистов различных отраслей науки и техники, то операционные системы должны наилучшим образом сочетаться с работой компьютера. Это обеспечивается тем, что они пишутся на специальных “языках низкого уровня” С помощью устройства ввода УВ (клавиатуры) программа вводится в оперативную память ОЗУ. Здесь написанная на языке высокого уровня (Паскале, Бейсике, Фортране и др.) программа представляет собой “исходный модуль” ИМ, т. е. материал для дальнейших преобразований.

Рис. 10.3. Работа написанной на алгоязыке программы в компьютерной среде
Когда с устройства ввода нажатием кнопки RUN программу запускают, соответствующая команда поступает в операционную систему ОПРС компьютера и оттуда на управляющую программу данного языка УПЯЗ. Управляющая программа языка включает, 1-й и 2-й трансляторы, а также библиотеку стандартных программ. По сигналу управляющей программы исходный модуль с помощью транслятора ТР1 преобразуется в объектный модуль ОМ. В объектном модуле каждый оператор исходного модуля подразделен на серии команд.
Если на каком-то этапе работы ТР 1 из-за ошибки в исходном модуле его переход в объектный модуль оказывается невозможным, то на устройство вывода транслятор направляет сообщение об ошибке. Выполнение программы приостанавливается. После внесения исправлений программу запускают повторно.
В исходном модуле могут быть использованы различные стандартные функции типа синуса, косинуса логарифма и т. п. С подобными функциями сумматор непосредственно работать не может, и поэтому ТР 1, распознав стандартную функцию, обращается в библиотеку стандартных программ, позволяющих вычислить значения таких функций методом суммирования (например, используя ряд Тейлора).
На следующем этапе объектный модуль транслятором ТР2 преобразуется в загрузочный модуль. Загрузочный модуль – это программа, выполненная в командах и переведенная в двоичные коды (говорят, что она написана на машинном языке) Она готова к загрузке в процессор. В ТР 2 подаются также записанные в десятичной системе числовые данные ДН для их перевода в двоичную систему и подачи в загрузочный модуль.
Загрузочный модуль одну за другой направляет в процессор АЛУ команды (см. рис.9.1) для выполнения счета (после выполнения каждой команды АЛУ подает запрос на следующую). Результат счета возвращается в ТР2, где переводится из двоичной системы в десятичную, а после этого появляется на устройстве вывода УВЫВ
Рекомендуемая литература: Осн. 3 с. 230-245
Контрольные вопросы
1 Как располагается информация в памяти компьютера
2 Из каких частей состоит команда в компьютерной программе
3 Что такое операционная система компьютера
4 В виде каких модулей существует программы высокого уровня, их
отличия
5 Назначение транслятора 1
6 Назначение транслятора 2
7 Путь данных после запуска программы
8 Зачем нужна библиотека стандартных программ
ЛЕКЦИЯ 11. Элементы языка Бейсик и простейшие компьютерные модели
Бейсик принадлежит к языкам высокого уровня (алгоязыкам). Он был изобретен в 1964 г. для обучения студентов программированию. В первой версии языка было 14 служебных слов. В дальнейшем появлялись все новые версии языка Бейсик. В данной лекции будет рассмотрена версия, называемая Турбо Бейсик. Бейсик работает в операционной системе DOC, которая с этой целью вводится в персональные компьютеры наряду с системой WINDOWS.
Алфавит языка.
В структуре языка Бейсик используются только латинские буквы. В некоторых случаях имеется возможность писать комментарии к программам на кириллице. Если этой возможности нет, то допускается писать русские слова комментариев латинским шрифтом. Пример: “russkie slova”. Кроме букв используются разделительные символы: точка, запятая, двоеточие, точка с запятой, кавычки, круглые скобки. Иногда применяются специальные символы: !, #, $, %.
Все числа пишутся в цифрах десятичной системы счисления. Применяются следующие символы математических операций : + (плюс), – (минус), * (помножить), / (разделить), ^ (возвести в степень), = (равно), > (больше),
(больше или равно), < (меньше),
(меньше или равно). Еще имеется знак цельночисленного деления \ Например 7 \ 3 = 2 (тогда как 7 / 3 = 2.33)
Функции, имеющиеся в библиотеке языка
Тригонометрические функции: SIN(X) (синус), COS(X) (косинус), TAN(X) (тангенс). При этом угол Х записывается в радианах. Один радиан равен 180
/
, т. е. 57.3
. Также имеется функция АТN (Х) (арктангенс – тоже в радианах)
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |


