![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Разветвления в программах
Одно из наиболее мощных свойств компьютеров заключается в их способности принимать решения в ходе выполнения программы. Эти решения принимаются в зависимости от простых условий, сложившихся на данный момент. Обычно в результате принятия решения либо сохраняется последовательный порядок выполнения программы, либо происходит переход на другую часть программы. Сложные решения реализуются в виде нескольких простых разветвлений. Чтобы пояснить сказанное, рассмотрим программу, которая выбирает наибольшее из трех 8-битовых целых положительных чисел х, у и z. Сначала определяется наибольшее из двух чисел х и у путем вычитания второго из первого и проверки заема в старший разряд. Отсутствие заема говорит о том, что х больше или равен у. С другой стороны, присутствие такого заема означает, что у больше х. Затем аналогичным образом отыскивается наибольшее из двух чисел: z и найденного ранее наибольшего из х и у. На рис. 5.1. описанная выше процедура представлена в виде диаграммы. Такие диаграммы называются блок-схемами. Они весьма удобны для построения схемы вычисленного процесса. Программа, решающая нашу задачу, приведена в табл. 5.2. Предполагается, что три исходных числа х, у и z расположены в ячейках 001В, 001С и 001D. Программа должна поместить наибольшее число в аккумулятор. Первая команда программы загружает х в аккумулятор, а вторая помещает у в общий регистр 1. Затем осуществляется их сравнение путем вычитания у из х. Если у строго больше х, тогда возникает заем в старший разряд, который сохраняется в виде единицы в триггере переноса С. Однако еще до проверки переноса С значение х как «пробное» наибольшее из х и у загружается в регистр 2. Эта загрузка не влияет на состояние триггера переноса С.
Рис. 5.1. Блок-схема программы выбора наибольшего из трех положительных чисел x, y и z
Таблица 5.2
|