Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Наращивание размерности приоритетного шифратора




Условное обозначение шифратора приоритета показано на рис. , на котором изображено наращивание числа входов запросов вдвое (от 8 до 16). При этом показаны шифраторы с инверсными входами и выходами, как это свойственно большинству серий элементов.

Шифратор 2 - старший по приоритету, его работа всегда разрешена подачей нуля на вход EI2. Если на входах  есть хотя бы один запрос, то разрешения на работу младшего шифратора 1 нет (ЕО2 = 1). Выходы шифратора 1 пассивны, т. е. имеют единичные значения. При этом элементы И-НЕ с номерами 1, 2, 3 играют роль инверторов для сигналов аj2 (i = 0,1,2). Поэтому на выходах а0, a1, a2 схемы в целом формируются сигналы от нуля до семи в зависимости от номера старшего запроса в шифраторе 2, что вместе с единицей на выходе ЕО2 дает номера от 8 до 15.

Рис.  Схема наращивания размерности приоритетного шифратора.

Если на входах шифратора 2 запросов нет, он разрешает работу младшего, вырабатывая сигнал ЕО2 = 0 и приводит свои выходы а0, a1, a2 в пассивное единичное состояние. Теперь на выходы аi схемы в целом передаются инвертированные значения выходов а01, a11, a21, младшего шифратора, что вместе с нулем в разряде а3 соответствует номерам от нуля до семи.

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

Рис.  Схема указания старшей единицы.

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

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

 

3. Пустой и составной оператор. Условный оператор if. Оператор множественного выбора case. Дать понятие о пустом, составном операторе. Описать понятие об условном операторе и операторе выбора, их структуре, обозначениях на блок-схеме. Привести примеры решения задач с использованием условного оператора и оператора множественного выбора.

 

Инструкция или оператор (англ. statement) — наименьшая автономная часть языка программирования; команда. Программа обычно представляет собой последовательность инструкций.

Пустой оператор - это оператор, который состоит только из точки с запятой. Он может появиться везде, где ожидается появление оператора. При выполнении пустого оператора ничего не происходит.

Составной оператор — конструкция языка программирования, состоящая из нескольких команд (операторов) языка программирования, но участвующая в программе в качестве единого оператора.

Пример составного оператора на Pascal(начало и конец составного оператора определяется ключевыми словами begin и end:

if условие then

begin { начало составного оператора }

... { несколько операторов }

end { конец составного оператора }

Пример составного оператора на C++ (JAVA) (составной оператор определяется фигурными скобками {} )

if (условие)

{ // начало составного оператора

... // несколько операторов

} // конец составного оператора

else

{ // начало составного оператора

... // несколько операторов

} // конец составного оператора

 

Оператор IF

Синтаксис: if (выражение)

                     оператор 1

                [else

                     оператор2]

Выполнение Тело оператора if выполняется выборочно, в зависимости от значения выражения, по следующей схеме:

1. Вычисляется значение выражения.

• Если значение выражения "истина" (не ноль), то выполняется оператор1.

• Если значение выражения "ложь", то выполняется оператор2.

• Если значение выражения "ложь" и не задана статья else, то оператор1 игнорируется.

2. Управление передается от оператора if на следующий оператор программы.

Пример 1 В данном примере если i больше нуля, то выполняется оператор y=x/i. Если i меньше или равно нулю, то значение i присваивается x и y присваивается значение f(x). Обратите внимание на то, что формирующий предложение if оператор заканчивается точкой с запятой.

                if (i>0)

                     y=x/i;

                else {

                     x=i;

                     y=f(x);}

Пример 2 В данном примере сковки окружают внутренний оператор if. В результате этого статья else становится частью внешнего оператора if. Если i меньше или равно 0, то значение i присваивается x.

                     if (i>0){

                          if (j>i)

                               x=j;}

                          else

                               x=i;

Блок схема:

 

 

 

Пример:

#include <iostream>

using namespace std;

 

int main() {

double num;

 

cout << "Введите произвольное число: ";

cin >> num;

 

if (num < 10) { // Если введенное число меньше 10.

   cout << "Это число меньше 10." << endl;

} else { // иначе

   cout << "Это число больше либо равно 10." << endl;

}

return 0;

}

 

 

Оператор switch(CASE)

Синтаксис: switch (выражение) {

                     [объявление]

                     .

                     .

                     .

                     [case постоянное-выражение:]

                     .

                     .

                     .

                          [оператор]

                          .

                          .

                          .

                     [default:

                          [оператор]]

                }

Выполнение Оператор switch передает управление на оператор в своем теле. Управление будет передано тому оператору, значение case постоянное-выражение которого совпадает с выражением switch. Оператор switch может содержать любое число элементов case. Выполнение тела оператора начинается в выбранном операторе и заканчивается в конце тела или в тот момент, когда оператор передаст управление вне тела. Оператор default выполняется в том случае, если ни одно постоянное-выражение case которого не совпадет с выражением switch. Если оператор default не задан и ни одно совпадение с case не обнаружено, то ни один из операторов тела switch не будет выполнен. Располагать оператор default в конце не обязательно, он может появиться в произвольном месте тела оператора switch. Выражение switch должно иметь интегральный тип, но результирующее значение будет преобразовано в int. Затем каждое постоянное-выражение case будет преобразовано с использованием обычных арифметических преобразований. Значения всех постоянных-выражений case должны быть разными в теле оператора. если тип выражения switch больше int, то появится диагностическое сообщение. Метки case и default тела оператора switch действуют только при первоначальной проверке, определяющей начало выполнения тела цикла. Все операторы от начала выполнения и до конца тела выполняются независимо от их меток, кроме случая, когда управление передается в часть программы вне тела оператора. Примечание В начале составного оператора, формирующего тело switch, могут появиться объявления, но сделанные в объявлениях инициализации не выполняются. Оператор switch передает управление непосредственно на выполняемый оператор тела, передавая ему строки, содержащие инициализации.

Пример 1 В данном примере будут выполнены все три оператора тела switch, если C равно A. При этом управление передается на первый оператор (capa++;) и продолжается до конца тела. Если c равно a, то значения lettera и total увеличиваются. В противном случае будет увеличено только значение total.

                switch (c) {

                     case 'A':

                          capa++;

                     case 'a':

                          lettera++;

                     default:

                          total++;

                }

Пример 2 В данном примере за каждым оператором тела switch следует оператор break. Оператор break форсирует выход из тела оператора после выполнения одного оператора. Если i равно -1, то увеличивается только n. За оператором n++ следует оператор break, что вызывает передачу управления вне тела оператора, в обход оставшихся операторов. Аналогично, если i равно 0, то увеличивается только z; если i равно 1, то увеличивается только p. Финальный оператор break не является обязательным, т.к. управление выйдет из тела составного оператора автоматически по достижении его конца. Он поставлен здесь для единообразия.

                switch (i) {

                     case -1:

                          n++;

                          break;

                     case 0:

                          z++;

                          break;

                     case 1:

                          p++;

                          break;

                }

 

 

Блок-схема оператора switch(case)

 

 

 

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 3

 

 

1. Опишите типы чисел, используемых в ЭВМ. Перечислите формы представления чисел в ЭВМ (форматы данных). Дайте характеристику естественной формы представления чисел. Объясните, от чего зависит диапазон представляемых значений? Приведите примеры.

 

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 397.

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