Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

шпора

.doc
Скачиваний:
64
Добавлен:
22.02.2015
Размер:
1.61 Mб
Скачать

65.Транзисторно-транзисторная логика. Базовые логические элементы.

Транзисторно-транзисторная логика (ТТЛ, TTL) — разновидность цифровых микросхем, построенных на основе биполярных транзисторов и резисторов. Название транзисторно-транзисторный возникло из-за того, что транзисторы используются как для выполнения логических функций (например, И, ИЛИ), так и для усиления выходного сигнала (в отличие от резисторно-транзисторной и диодно-транзисторной логики).

ТТЛ получила широкое распространение и применяется в компьютерах, АСУТП, электронных музыкальных инструментах, а также в контрольно-измерительной аппаратуре. Благодаря широкому распространению ТТЛ входные и выходные цепи электронного оборудования часто выполняются совместимыми по электрическим характеристикам с ТТЛ.

Базовые логические элементы И, ИЛИ, НЕ

Схема И реализует конъюнкцию (логическое умножение) двух или более логических значений. 

Таблица истинности

 х

y

х и у

0

0

0

0

1

0

1

0

0

1

1

1

Единица на выходе схемы И будет тогда и только тогда, когда на всех входах будут единицы. Когда хотя бы на одном входе будет нуль, на выходе также будет нуль.

Схема ИЛИ реализует дизъюнкцию (логическое сложение) двух или более логических значений.

Таблица истинности

х

y

х или у

0

0

0

0

1

1

1

0

1

1

1

1

 

Когда хотя бы на одном входе схемы ИЛИ будет единица, на ее выходе также будет единица.

Знак «1» на схеме — от устаревшего обозначения дизъюнкции как «>=!» (т.е. значение дизъюнкции равно единице, если сумма значений операндов больше или равна 1). Связь между выходом z этой схемы и входами х и у описывается соотношением z = х или у.

Схема НЕ (инвертор) реализует операцию отрицания.

Таблица истинности

 х

не х

0

1

1

0

Связь между входом х этой схемы и выходом можно записать соотношением Z = , где х читается как «не х» или «инверсия.

Если на входе схемы 0, то на выходе 1. Когда на входе 1 на выходе 0.

66. Логические элементы. Триггеры. Счетчики.

Логические элементы — устройства, предназначенные для обработки информации в цифровой форме (последовательности сигналов высокого — «1» и низкого — «0» уровней). Это позволяет значительно сократить количество операций и элементов, выполняющих эту обработку.

Логические операции с цифровыми сигналами

Из 16 возможных бинарных логических операций с двумя знаками интерес для реализации представляют операции, приведённые ниже.

Конъюнкция (логическое умножение). Операция И

0 0 0

1 0 0

0 1 0

1 1 1

Дизъюнкция (логическое сложение). Операция ИЛИ

0 0 0

1 0 1

0 1 1

1 1 1

Инверсия функции конъюнкции. Операция И-НЕ

0 0 1

0 1 1

1 0 1

1 1 0

Инверсия функции дизъюнкции. Операция ИЛИ-НЕ

0 0 1

0 1 0

1 0 0

1 1 0

Эквивалентность(равнозначность) ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ

0 0 1

0 1 0

1 0 0

1 1 1

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

Триггер  это устройство с двумя устойчивыми состояниями равновесия, предназначенное для записи и хранения информации. Под действием входных сигналов триггер может переключаться из одного устойчивого положения в другое. При этом напряжение на его выходе скачкообразно меняется. Как правило, триггер имеет два выхода: прямой Q и инверсный Q. Число входов зависит от выполняемых функций.

Входы, как и сигналы, подаваемые на них, делятся на информационные и вспомогательные. Информационные сигналы через соответствующие входы управляют состоянием триггера. Сигналы на вспомогательных входах служат для предварительной установки триггера в заданное состояние и его синхронизации. Вспомогательные входы могут при необходимости выполнять роль информационных. Входы и выходы триггеров, как и соответствующие им сигналы, принято обозначать буквами S, R, I, K, D, Q, Q.

Триггеры классифицируются по ряду признаков. По способу переключения и по закону функционирования триггеры можно разделить на следующие группы: RS-триггеры с раздельной установкой 0 и 1; D-триггеры задержки; универсальные JK-триггеры; T-триггеры счетные.

По способу записи информации триггеры делят на асинхронные и синхронизируемые (тактируемые). В асинхронных триггерах информация может изменяться в любой момент времени при изменении входных сигналов. В синхронизируемых триггерах информация на выходе может меняться только в определенные моменты времени, задаваемые дополнительным синхронизирующим сигналом.

Существует большое число разнообразных триггеров с различными функциональными возможностями. Однако в основе всех схем лежит основной (базовый) асинхронный RS-триггер.

Название триггера определяется первыми буквами английских слов.

Рассмотренные ниже типы триггеров: статический асинхронный RS-триггер (с потенциальным управлением), статический синхронный D-триггер (с потенциальным управлением), динамический синхронный D-триггер (с динамическим управлением), счетный Т-триггер (с динамическим управлением)  являются основными в сериях интегральных микросхем и позволяют строить на их основе любые цифровые узлы и устройства последовательностного типа (цифровые автоматы).

Счётчик — устройство, на выходах которого получается двоичный (двоично-десятичный) код, определяемый числом поступивших импульсов. Счётчики могут строиться на T-триггерах. Основной параметр счётчика — модуль счёта — максимальное число единичных сигналов, которое может быть сосчитано счётчиком. Счётчики обозначают через СТ (от англ. counter).Счётчики классифицируют:

по способу переключения триггера: синхронные;асинхронные;

67. Объектоно-ориентированное программирование. Объекты. Полиморфизм. Наследование.

Программа представляет собой набор объектов, имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений. Естественным образом выстраивается иерархия объектов: программа в целом — это объект, для выполнения своих функций она обращается к входящим в неё объектам, которые, в свою очередь, выполняют запрошенное путём обращения к другим объектам программы.

В основе концепции объектно-ориентированного программирования лежит понятие объекта - некоей субстанции,которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).

Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность.

Полиморфизмом называют явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами — из объекта какого класса осуществляется вызов, из того класса и берётся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием — в отличие от статического (раннего) связывания, осуществляемого на этапе компиляци.

68.Конструирование объектов.!!!!

В класс-ориентированных языках новый экземпляр создаётся через вызов конструктора класса (возможно, с набором параметров). Получившийся экземпляр имеет структуру и поведение, жёстко заданные его классом.

В прототип-ориентированных системах предоставляется два метода создания нового объекта: клонирование существующего объекта, либо создание объекта «с нуля». Для создания объекта с нуля программисту предоставляются синтаксические средства добавления свойств и методов в объект. В дальнейшем, с получившегося объекта может быть получена полная копия, клон. В процессе клонирования копия наследует все характеристики своего прототипа, но с этого момента она становится самостоятельной и может быть изменена. В некоторых реализациях копии хранят ссылки на объекты-прототипы, делегируя им часть своей функциональности; при этом изменение прототипа может затронуть все его копии. В других реализациях новые объекты полностью независимы от своих прототипов. Рассмотрим оба этих случая.

Инкапсуляция представляет собой один из базовых принципов ООП, суть которого состоит в отделении реализации объекта от его интерфейса. Другими словами, приложение взаимодействует с объектом через его интерфейс, который состоит из открытых свойств и методов. Коль скоро интерфейс объекта остается неизменным, приложение сохраняет способность к взаимодействию с ним, даже если в новой версии объекта его реализация полностью изменится. Объекты должны взаимодействовать друг с другом только через свои открытые методы и свойства, поэтому объекту требуются все необходимые данные и полный набор методов, необходимых для работы с этими данными. Интерфейс ни в коем случае не должен открывать доступ к внутренним данным объекта, поэтому поля с внутренними данными объекта редко объявляют с модификатором Public (public). Вернемся к примеру с объектом Автомобиль, который может взаимодействовать с объектом Водитель через открытый интерфейс, где объявлены методы Ехатъ вперед, Ехать назад и Остановиться — их достаточно для взаимодействия объектов Водитель и Автомобиль. У объекта Автомобиль может быть дочерний объект Двигатель, но это безразлично объекту Водитель — ему важно лишь наличие методов,

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

69. Интерфейсные объекты. События и сообщения

Объекты, представляющие окна, диалоговые окна и управляющие элементы, называются интерфейсным объектами

Интерфейсные объекты предоставляют методы для создания, инициализации, управления и уничтожения соответствующих элементов экрана, и имеют содержащие данные поля, включая описатель интерфейсного элемента и его порождающего и дочернего окна. Методы объекта берут на себя многие детали программирования в Windows. Взаимосвязь объект/элемент во многом аналогична связи файла DOS с переменной Паскаля. Имея файл, мы можем присвоить файловую переменную, представляющую физическую структуру фактического файла на диске, а затем работать с этой файловой переменной. С помощью ObjectWindows мы можем определить объект, представляющий физическое окно, управляющий элемент или диалоговый блок, который фактически обслуживается администратором окон Windows. Мы работаем с объектом, а он берет на себя функции по обслуживанию элемента экрана.

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

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

Наиболее полезной яв-ся возможность получения объектами сообщения извне.

На одно и тоже событие объекты могут реагировать по разному. Формально при пересылке объекту сообщения вызывается метод обработчик.

Наиболее простой моделью событийного программирования яв-ся приложение состоящее из 3 частей.

1.Визуальная – создает образ приложения на экране, с которым будет взаимодействовать пользователь. Определяет интерфейс пользователя, состоящий из стандартных элементов. Пользователь, осуществляя работу с приложением, взаимодействует с интерфейсными объектами, причем все действия вызывают события.

2.При возникновении событий начинает работать системная составляющая, которая включает средства ОС и средства среды программирования. Определяет тип и параметры события и сообщает объекту с которым связано событие, другими словами находит объект и запускает обработчик события.

70.Типы данных. Структура программы.

integer(целый) -32000 от 32000,longint(длинное целое) от 0 от 64000, real(действительный), boolean (логический), char (символьный), string (строка)

В соответствии с синтаксисом языка Турбо-Паскаль программу принято начинать зарезервированным словом Program, после которого указывается имя программы. Завершается строка специальным разделителем - точкой с запятой. Программа состоит из двух секций:

- секции объявлений,

- секции операторов обработки данных.

Секция объявлений должна предшествовать секции выполняемых операторов. Она может включать:

- объявление констант (секция Const );

- объявление типов (секция Type );

- объявление переменных (секция Var );

- объявление процедур и функций (секция Procedure и Function).

Любое из перечисленных объявлений находится в соответствующем разделе и может отсутствовать в конкретной программе. Порядок следования разделов в современной реализации Турбо-Паскаля произвольный.

Секция операторов обработки данных обязательна, она начинается с ключевого слова Begin, содержит последовательность выполняемых операторов, разделенных точкой с запятой, и завершается словом End с точкой после него. Эту секцию называют телом программы. В Турбо-Паскале зарезервировано большое количество ключевых слов. К ним относятся названия операторов, операций и другие служебные слова, например: For, And, Program, Begin, End и т.д. Эти слова не могут быть использованы в качестве имен в программе.

В приведенной программе использованы операторы вывода Write и Writeln, оператор ввода Read, оператор цикла For, оператор проверки условия If и операторы присваивания. Форма записи программы свободная. Инструкции отделяются одна от другой точкой с запятой. На одной строке могут размещаться несколько инструкций и одна инструкция может располагаться на нескольких строках. Для создания легкочитаемой программы, что является признаком хорошего стиля программирования, следует придерживаться следующих рекомендаций:

  • Выбор осмысленных имен переменных;

  • Комментарии - это примечания, помогающие понять смысл программы, они игнорируются компилятором и предназначены для пояснения назначения отдельных инструкций. В качестве ограничителей комментария допускается использовать фигурные скобки и пары символов (*, *), например:

{комментарий 1}

  • Использование пустых строк и отступов, повышающих наглядность программы. Пустые строки вставляются для того, чтобы отделить одну логическую часть программы от другой. Благодаря отступам, т.е. смещению инструкции вправо (обычно на две позиции) легче проследить вложенность одних конструкций в другие.

  • Размещение по возможности каждого оператора на отдельной строке.

Важным инструментом в Турбо-Паскале является понятие составного оператора. Составной оператор представляет собой последовательность инструкций, заключенную в операторные скобки Begin...End. Перед ключевым словом End точку с запятой можно опускать.

При записи программы на Паскале можно использовать только символы, входящие в алфавит языка:

- заглавные, строчные латинские буквы от a до z и от A до Z и символ подчеркивания _

- арабские цифры от 0 до 9

- специальные символы: + - * / = , . : ; < > [ ] ( ) { } ^ ' @ $ #

Для обозначения в программе переменных, констант, типов, меток, процедур и функций используются идентификаторы. Идентификаторы всегда начинаются с буквы, за которой могут следовать буквы, цифры и символ подчеркивания. Пробелы и специальные символы не могут входить в идентификатор. Длина идентификатора может быть произвольной, однако значащими являются только первые 63 символа. Важно помнить, что соответствующие заглавные и строчные буквы в идентификаторах и служебных словах не различаются, например, идентификаторы Massiv, MASSIV и massiv обозначают одну и ту же переменную.

71.Операции и операторы. Переменные и константы.

Операции. В языке Си определены следующие арифметические операции: + -сложение; - - вычитание; * -умножение; / -деление; % - остаток от деления; ++ -увеличение на 1; -- - уменьшение на 1; ( = - изменить и присвоить, где символ обозначает одну из операций +, -. *, / или %. Например, выражение х += 10; эквивалентно выражению х = х + 10; Указанные операции могут быть применены к любым типам данных. Исключение составляет операция выделения остатка, которая применима только к целым. Над данными любых типов могут быть выполнены операции отношения: = = равно; != неравно; > больше; >= больше или равно; < меньше; <= меньше или равно. Все перечисленные выше операции возвращают результат целого типа. Если отношение истинно, то это целое есть 1 и 0, если отношение ложно. Кроме того, над данными любых типов могут быть выполнены логические операции: && и; || или; ! не; Логические операции возвращают значения целого типа 1 или 0, соответствующие истине или лжи соответственно. Например, if(y!=0&&x> 1000) z=x/ у;

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

Условные операторы.

Условный оператор if выполняет следующие действия. Если выражение в круглых скобках вырабатывает ненулевое значение (истина), то выполняется "оператор", в противном случае выполняется следующий за оператором if оператор .Например,

if(x != 0) у = 1 / x; здесь оператор у = 1 / х будет выполнен, если переменная х принимает ненулевое значение. Кроме условного оператора if в языке Си определен еще один условный оператор if else; if(выражение) оператор1; else оператор2; где "оператор1" и "оператор2" - простые или составные операторы. Условный оператор if else выполняет следующие действия. Сначала вычисляется выражение в круглых скобках, и если получено ненулевое значение (истина), то выполняется "оператор1", в противном случае выполняется "оператор2".

После вычисления целого выражения в круглых скобках его результат последовательно сравнивается с указанными константными выражениями, начиная с самого первого. При совпадении указанных значений выполняется оператор(ы), следующий за соответствующим константным выражением до конца тела оператора switch. Если не будет обнаружено ни одного совпадения, то выполняется оператор(ы) в цепи, помеченной ключевым словом default. Впрочем, последняя может и отсутствовать в операторе switch.

Оператор for.

Оператор цикла for является наиболее общей формой цикла. Синтаксис оператора цикла for следующий: fог(выражение1; выражение2; выражениеЗ) оператор;

где выражение1, выражение2, выражениеЗ – необязательные элементы. Оператор цикла for работает следующим образом: 1) вычисляется выражение1, если оно присутствует;

2) вычисляется выражение2, если оно присутствует. Если полученное значение нуль, то цикл прекращается, в противном случае выполняется тело цикла- "оператор";

3) вычисляется выражениеЗ, если оно присутствует; 4) переход к пункту 2.

Оператор while.

Синтаксис оператора цикла while имеет вид: whi1е(выражение) оператор

Оператор цикла while выполняет следующие действия. Сначала вычисляется выражение в круглых скобках. Если полученное значение не равно нулю, то выполняется "оператор", представляющий собой тело цикла. После чего снова вычисляется выражение в круглых скобках, и цикл повторяется. Цикл прекращается, когда выражение в круглых скобках станет равным нулю.

Оператор goto.

Оператор goto используется для безусловной передачи управления внутри блока на помеченный оператор. Синтаксис указанного оператора имеет вид: goto метка; здесь метка помечает оператор, на который и передается управление. Метку не надо объявлять, она отделяется от помеченного оператора символом ":" и должна находиться в том же блоке, что и оператор goto. Например,

if (r> 1) goto ml;

ml: y= log(r):

Оператор do.

Синтаксис оператора цикла do следующий: do оператор whiIe(выpaжeниe)

Оператор цикла do отличается от предыдущего оператора цикла for тем, что проверка выражения в круглых скобках осуществляется после выполнения тела цикла - "оператора".

Цикл do, как и ранее, прекращается, когда выражение в круглых скобках станет равным нулю. Очевидно, что тело цикла в операторе цикла do всегда будет выполнено хотя бы один раз. Например, в следующем фрагменте программы тело цикла do повторяется до тех пор, пока пользователь не введет символ 'у' или 'n'.

Переменные и константы.

Каждая единица информации хранится в ячейках памяти ЭВМ. Для обращения к этой информации в языках программирования используется понятие переменной, по сути, имени ячейки памяти. Имена в языке Си могут состоять из алфавитно-цифровых символов и символа подчеркивания "_", при этом первый символ не может быть цифрой. Компилятором распознаются только первые п символов имени (п=31), хотя его общая длина может быть и больше, при этом символы нижнего и верхнего регистров различаются.

72.Процедуры и функции.

В языке ТР имеется две разновидности подпрограмм – процедуры и функции. Структура любой подпрограммы аналогична структуре всей программы. Подпрограмма должна быть описана до того, как она будет использована в программе и другой подпрограмме. Все параметры, которые использует подпрограмма, можно разбить на две категории: локальные параметры, объявленные внутри подпрограммы и доступные только ей самой, и глобальные – объявленные в основной программе и доступные как программе, так и всем ее подпрограммам.

Подпрограмма-процедура предназначена для выполнения какой-то законченной последовательности действий. Любая процедура начинается с заголовка. В отличии от основной программы заголовок в процедуре обязателен. Он состоит из зарезервированного слова procedure, за которым следует идентификатор имени процедуры, а далее в круглых скобках – список формальных параметров.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]