Студопедия

КАТЕГОРИИ:


Архитектура-(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

 

КОП Адрес 1 Адрес 2

 

КОП Адрес 1 Адрес 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 и т.д. Тогда рассмотрение примера распределения данных можно представить следующей таблицей.

Операнд Адрес ячейки хранения
a b 1008 1048 1108 1148
Операнд Адрес ячейки хранения
0,8 c d 1208 1248 1308

Распределив исходные данные по ячейкам памяти ЭВМ выполним следующий этап методики, зададимся трехадресной структурой программ, выбирая на максимальную степень детализации, степень алгоритма.

Составим программу реализации алгоритма (начиная с блока 3) следующей схемой-таблицей:

КОП Адрес 1 Адрес 2 Адрес 3 Пояснение
  1008 1348 1348 1048 1348 1208 1408 1348 1008 1008 1148 1348 1108 1248 1308 1408 1348 1348 1348 1348 1348 1408 1408 1448 a2 134 ячейка a3 134 ячейка a3 2134 ячейка ba3 2134 ячейка x1 134 ячейка 0,8с 140 ячейка х2 140 ячейка х 144 ячейка

Реализовав требование блока 5, программа заканчивается, т.к. печать результата не может быть реализована одной элементарной командой, а требует использования специальных функций, рассмотрение которой на данном этапе не требует. Поэтому выполним последнее предписание методики: распределим составленные команды по ячейкам оперативной памяти, выбрав в качестве первого из адресов номер ячейки 5008. Результат представим в таблице:

Команда Адрес ячейки хранения
031001001348 031341001348 031341141348 031041341348 021341101348 031201241408 011401301408 041341401448 5008 5108 5208 5308 5408 5508 5608 5708

Распределив команды по ячейкам памяти, получаем наглядное подтверждение основного принципа Неймана по внешнему виду содержимое ячейки командой, есть целое число, т.е. операнд.

В виду большого количество размеров команды для размещения каждой используют восьмибайтовую ячейку.

Выводы: программирование в трехадресном варианте:

1. преимущества – достаточная компактность программ и логическая частота каждой из них, обеспечив полное представление для человека;

2. недостаток – серьезное усложнение каждой команды с указанием трех адресов, причем в некоторых случаях указания ячейки размещения результата избыточно;




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 393; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.