КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
ЛЕКЦИЯ №2. Программа – формализованная запись алгоритма решения на языке понятном вычислительной машине
Программа – формализованная запись алгоритма решения на языке понятном вычислительной машине. Команда – формализованное представление конкретной операции с указанием участвующих в ней операндов. Важнейшим отличием команды от операции является то, что на ряду с собственно обозначениями операции, в ней указывается не сам операнд (операнды), а номера тех ячеек, в памяти которых он (они) хранятся. Тогда структура любой команды может быть представлена в виде:
где КОП – код (цифровое обозначение операции), адресная часть – фрагмент команды с указанием адреса (адресов), участвующего в команде операндов. С учетом рассмотренных ранее вариантов операций возможны 3 вида команд: - одноадресные; - двухадресные; - трехадресные. Структуры команд:
В соответствии с ППУ методика программирования любой математической задачи включая следующие разделы: - формирование блока исходных данных и распределение их по ячейкам памяти; - создание конкретного алгоритма решения и детализация его по до последовательности элементарных операций; - вывод желаемого варианта используемых команд; - создание последовательности команд, реализующих будущую программу; - распределение команд программы в последовательность ячеек запоминающего устройства, желательно непрерывную (с точки зрения адресов этих ячеек).
Рассмотренная методика упирается на заранее выполненный алгоритм решения задачи, при этом в общем виде решение любой задачи проходит следующие этапы предмашинной подготовки. Представим схему решения задачи на ЭВМ в виде последовательности этапов:
Предмашинная подготовка
При работе команда ЭВМ в качестве исходной задачи будем использовать простейший математический вариант ее – конкретную формулу, не содержащую функций. Тогда можно сказать, что постановка задачи 1 вариант звучит следующим образом: вычислить значение переменной x по заданной для нее математической зависимости. x = (2a3b – 1200)/(0,8c + d). Представленная в постановке задачи зависимость содержит только арифметические операции, т.е. является простейшей. Анализ постановки задачи показывает, что имеющаяся в ней формула и является математической моделью задачи. Выбор численного метода решения получения математической модели применяют лишь в случаях, содержания в модели неэлементарных действий (функциональная зависимость), например: тригонометрических функций, интегралов, дифференциалов и т.д. В нашем примере таких функций нет, поэтому в качестве метода решения выберем один из типовых, для элементарной математики: 1. линейный вычислительный процесс. 2. ветвящийся вычислительный процесс. 3. циклический вычислительный процесс. Для рассматриваемого примера естественным является линейный вычислительный процесс. Создание алгоритма опирается на выбранный численный метод и созданную модель, причем по определению алгоритма, даже для нашего простейшего примера, могут быть десятки конкретных реализаций при максимальной детализации алгоритма – по операционной. В увеличенном варианте (минимальная детализация) алгоритм можно представить следующей графической схемой: - [начало решения
- [ввод исходных данных
- [вычисление числителя
- [вычисление знаменателя
- [нахождение искомого результата
- [печать результата
- [окончание алгоритма
Алгоритм линейного вычислительного процесса составляется в виде блок-схемы, алгоритм является типовым для линейного вычислительного процесса и, как правило, для разных заданий будет отличаться лишь количеством вычислительных блоков и начинкой (содержанием блоков за исключением первого и последнего). Создание графической схемы алгоритма позволяет считать выполненным четвертый из рассматриваемых этапов или третий с предмашинной подготовкой. Создание алгоритма решения позволяет выполнить программирование задачи, как на машинном языке, так и любом алгоритмическом. В соответствии с целью лекции выполним программирование задачи в машинном варианте по предложенной в конце предыдущей лекции методике. В соответствии с этой методикой и требованием блока 2 алгоритма необходимо распределить исходные данные по ячейкам оперативной памяти ЭВМ, объемы оперативной памяти современной ЭВМ (адресные пространства их) находится в диапазоне сотен килобайт 100 Кбайт 100 Мбайт, поэтому истинные адреса составляющих их ячеек достаточно громоздки. Поэтому для учебных примеров выбираем простейшие, удобные для рассмотрения номера, например, трехадресная, начиная с ячейки с номером 100. Вся нумерация ячеек выполняется, как правило, в двойной системе исчисления или одной из промежуточных систем, вычисляемой как 2n, где n=1,2,3,4,5,6,7,8,9,10… и т.д. Выберем для примера простейшую промежуточную систему n=3, т.е. восьмеричную, тогда первый из адресов будет обозначен 1008. Выбрав номер первой из ячеек необходимо задаться стандартным объемом каждой из них. Объем каждой ячейки определяется в байтах или битах (1 байт = 8 бит), поэтому для работы с достаточно большими операндами исходных данных необходимо для каждого из них выделять не менее 4 байт (32 бита). Следовательно, номер следующей ячейки для размещения данных после 1008 будет 1048, затем 1108, 1148, 1208 и т.д. Тогда рассмотрение примера распределения данных можно представить следующей таблицей.
Распределив исходные данные по ячейкам памяти ЭВМ выполним следующий этап методики, зададимся трехадресной структурой программ, выбирая на максимальную степень детализации, степень алгоритма.
Составим программу реализации алгоритма (начиная с блока 3) следующей схемой-таблицей:
Реализовав требование блока 5, программа заканчивается, т.к. печать результата не может быть реализована одной элементарной командой, а требует использования специальных функций, рассмотрение которой на данном этапе не требует. Поэтому выполним последнее предписание методики: распределим составленные команды по ячейкам оперативной памяти, выбрав в качестве первого из адресов номер ячейки 5008. Результат представим в таблице:
Распределив команды по ячейкам памяти, получаем наглядное подтверждение основного принципа Неймана по внешнему виду содержимое ячейки командой, есть целое число, т.е. операнд. В виду большого количество размеров команды для размещения каждой используют восьмибайтовую ячейку. Выводы: программирование в трехадресном варианте: 1. преимущества – достаточная компактность программ и логическая частота каждой из них, обеспечив полное представление для человека; 2. недостаток – серьезное усложнение каждой команды с указанием трех адресов, причем в некоторых случаях указания ячейки размещения результата избыточно;
Дата добавления: 2014-01-07; Просмотров: 394; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |