
- •Содержание
- •1.Понятие информатики
- •1.1. История развития информатики
- •1.2. Мировоззренческие экономические и правовые аспекты информационных технологий
- •2.Понятие информации и ее измерение
- •2.1. Меры информации
- •2.2. Единицы измерения информации и примеры
- •2.2.1Синтаксическая мера информации
- •2.2.2Семантическая мера информации
- •2.2.3Прагматическая мера информации
- •2.2.4Алгоритмическая мера информации
- •2.3. Количество и качество информации
- •2.4. Единицы измерения информации
- •2.5. Информация и энтропия
- •2.5.1Сообщения и сигналы
- •2.5.2Схема передачи информации
- •2.5.3Энтропия
- •2.5.4Избыточность
- •2.5.5Сенсация
- •3.Понятие информационной технологии
- •3.1. Новая информационная технология
- •3.2. Инструментарий информационной технологии
- •3.3. Составляющие информационной технологии
- •3.4. Развитие информационных технологий
- •3.4.1Нулевое поколение ит
- •3.4.2Первое поколение ит
- •3.4.3Второе поколение ит
- •3.4.4Третье поколение ит
- •3.4.5Четвертое поколение ит
- •3.4.6Пятое поколение ит
- •3.5. Базовая информационная технология
- •3.6. Предметная информационная технология
- •3.7. Обеспечивающая информационная технология
- •3.8. Функциональная информационная технология
- •3.9. Виды пользовательского интерфейса информационных технологий
- •3.10. Свойства информационных технологий
- •4.Сообщения и сигналы
- •4.1. Кодирование и квантование сигналов
- •4.2. Виды и характеристики носителей и сигналов
- •4.2.1Характеристики сигналов, передаваемых по каналу
- •4.2.2Модуляция сигналов
- •4.2.3Виды и характеристики носителей
- •4.2.4Спектры сигналов
- •4.2.5Периодические сигналы
- •4.2.5.1Тригонометрическая форма
- •4.2.5.2Комплексная форма
- •4.2.5.3Определение погрешности
- •4.2.5.4Спектр
- •4.2.6Непериодические сигналы
- •5.Модуляция и кодирование
- •5.1. Коды: прямой, обратный, дополнительный, модифицированный
- •5.1.1Прямой код числа
- •5.1.2Обратный код числа
- •5.1.3Дополнительный код числа
- •5.1.4Модифицированный код числа
- •5.2. Систематические коды
- •5.3. Контроль по четности, нечетности, по Хеммингу
- •5.3.1Кодирование по методу четности-нечетности
- •5.3.2Коды Хэмминга
- •5.4. Сетевые технологии обработки данных
- •5.4.1Распределенная обработка данных
- •5.4.2Обобщенная структура компьютерной сети
- •5.4.3Классификация вычислительных сетей
- •5.5. Каналы передачи данных и их характеристики
- •5.5.1Обобщенные характеристики сигналов и каналов
- •5.5.2Характеристики канала передачи информации без помех
- •5.5.3Характеристики каналов передачи информации с помехами
- •5.6. Методы повышения помехоустойчивости передачи и приема
- •5.7. Современные технические средства обмена данных и каналообразующей аппаратуры
- •6.Представление информации в цифровых автоматах (ца).
- •6.1. Информационные основы контроля работы цифровых автоматов
- •6.2. Основные принципы помехоустойчивого кодирования
- •6.3. Помехоустойчивость кода
- •6.4. Методы помехоустойчивого кодирования
- •6.4.1Метод контроля четности
- •6.4.2Метод контрольных сумм
- •6.4.3Коды Хэмминга
- •6.4.4Контроль по модулю
- •6.4.5Числовой метод контроля
- •6.4.6Цифровой метод контроля
- •6.4.7Выбор модуля для контроля
- •6.5. Контроль логических операций
- •6.5.1Операции сдвига
- •6.5.2Операция сложения по модулю 2
- •6.5.3Операция логического умножения.
- •6.6. Контроль арифметических операций
- •6.7. Арифметические коды
- •7.1. Основные понятия относящиеся к преобразователям
- •7.2. Уровни цифровой логики
- •7.3. Управляющий выходной сигнал – выходной сигнал «состояние»
- •7.4. Управляющий выходной сигнал строб-импульс
- •7.5. Аналоговые сигналы
- •7.6. Цифроаналоговые преобразователи
- •7.6.1Цифроаналоговое преобразование
- •7.6.2Основные типы цап
- •7.6.2.1Цап со взвешенными резисторами
- •7.6.2.2Цап с цепочкой резисторов типа r—2r
- •7.6.3 Другие типы цап
- •7.7. Аналоговые преобразователи
- •7.7.1 Аналогоцифровое преобразование
- •7.7.2 Основные типы ацп
- •7.7.2.1Двухтактные интегрирующие ацп
- •7.7.2.2Ацп последовательного приближения
- •7.7.3 Другие типы ацп
- •7.7.3.1Преобразователи напряжения в частоту
- •7.7.3.2Параллельные ацп
- •7.8. Факторы применения
- •7.8.1 Характеристики цап
- •7.8.2 Характеристики ацп
- •7.9. Совместимость с системой
- •7.10. Совместимость преобразователей (взаимозаменяемость)
- •8.Позиционные системы счисления
- •8.1. Методы перевода чисел.
- •8.2. Форматы представления чисел с плавающей запятой.
- •8.3. Двоичная арифметика.
- •9.Понятие и свойства алгоритма
- •9.1. Определение алгоритма
- •9.2. Свойства алгоритма
- •9.3. Правила и требования, предъявляемые к построению алгоритма
- •9.4. Типы алгоритмических процессов
- •9.5. Принцип программного управления
- •9.5.1Принципы Джона фон Неймана
- •9.5.2Функциональная и структурная организация компьютера
- •9.6. Выполнение арифметических операций с числами с фиксированной и плавающей запятой
- •9.6.1Коды: прямой, обратный, дополнительный,
- •9.6.2Операция сложения
- •9.6.3Операция умножения
- •9.6.4Операция деления
- •10.Файлы данных
- •10.1. Файловые структуры
- •10.2. Носители информации и технические средства для хранения данных
- •10.3. Организация данных на устройствах с прямым и последовательным доступом
- •11. Вычислительная техника
- •11.1. Древнейшие счетные инструменты
- •11.2. Развитие абака
- •11.3. Логарифмы
- •11.4. Суммирующая машина Блеза Паскаля
- •11.5. Чарльз Бэббидж и его изобретение
- •11.6. Табулятор Холлерита
- •11.7. Машина ц3
- •11.8. Марк I
- •11.9. Эниак
- •11.10. Эдсак
- •11.11. Мэсм
- •11.12. Машина электронная вычислительная общего назначения бэсм-6
- •11.14. Альтаир 8800
- •11.15. Компьютеры Apple
- •12.Основы языка Object Pascal/Delphi
- •12.1. Описание структуры проекта
- •12.2. Описание структуры модуля
- •12.3. Описание элементов программ
- •12.3.1 Элементы языка программирования-алфавит
- •12.3.2 Элементы языка программирования-идентификаторы,константы, выражения
- •13.Выражения на Object Pascal
- •13.1. Целая и вещественная арифметика
- •13.2. Приоритет операций
- •13.3. Встроенные функции. Построение сложных выражений
- •14.Типы данных
- •14.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
- •14.1.1Встроенные типы данных
- •14.1.2Целые типы
- •14.1.3Представление знака числа
- •14.1.4Арифметическое переполнение
- •14.2. Вещественные типы. Сопроцессор
- •14.3. Текстовые типы
- •14.4. Логический тип
- •14.5. Оператор присваивания. Совместимость типов по присваиванию
- •15.Ввод-вывод данных
- •15.1. Устройства вывода
- •15.2. Объекты, обеспечивающие вывод данных на экран
- •15.2.1Перечень компонентов ввода и отображения текстовой информации
- •15.2.2Отображение текста в надписях компонентов Label, StaticText и Panel
- •15.2.3Окна редактирования Edit и MaskEdit
- •15.2.4Многострочные окна редактирования Memo и RichEdit
- •15.2.5Группа радиокнопок – компонент RadioGroup
- •15.2.6Ввод и отображение целых чисел — компоненты UpDown и SpinEdit
- •15.2.7Компоненты выбора из списков — ListBox, CheckBox, CheckListBox и ComboBox
- •15.2.8 Таблица строк — компонент StringGrid
- •15.2.9Функция InputBox
- •15.2.10Процедура ShowMessage
- •15.3. Вывод в текстовый файл
- •15.3.1Объявление файла
- •15.3.2Назначение файла
- •15.3.3Вывод в файл
- •15.3.4Открытие файла для вывода
- •15.3.5Ошибки открытия файла
- •15.3.6Закрытие файла
- •15.4. Устройства ввода. Ввод с клавиатуры. Реакция на действия пользователя
- •15.4.1Устройства ввода
- •15.5. Ввод из файла
- •15.5.1Открытие файла
- •15.5.2Чтение данных из файла
- •15.5.3Чтение чисел
- •15.5.4Чтение строк
- •15.5.5Конец файла
- •16.Ветвление
- •16.1. Операции отношения
- •16.2. Логические (булевские) операции
- •16.3. Составной оператор
- •16.4. Оператор ветвления if
- •16.5. Оператор ветвления case
- •Исключительные ситуации
- •17.Циклы
- •17.1. Функции цикла в программе. Циклы с пред- и постусловием
- •17.2. Оператор While. Вечные циклы
- •17.3. Вечные циклы
- •17.4. Оператор repeat. Процедуры inc и dec
- •17.5. Цикл for
- •17.6. Команды break и continue
- •17.7. Вложенные циклы
- •17.8. Примеры задач с циклами
- •18.Массивы
- •18.1. Объявление массива
- •18.2. Операции с массивами
- •18.2.1Вывод массива
- •18.2.2Ввод массива
- •18.2.2.1Использование компонента StringGrid
- •18.2.2.2Использование компонента Memo
- •18.2.3Поиск минимального (максимального) элемента массива
- •18.2.4Поиск в массиве заданного элемента
- •18.2.4.1Алгоритм простого перебора
- •18.3. Ошибки при использовании массивов
- •19.Библиографический список
- •20.Предметный указатель
14.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
14.1.1Встроенные типы данных
Любой реально существующий тип данных, каким бы сложным он ни казался на первый взгляд, представляет собой простые составляющие (базовые типы), которые, как правило, всегда присутствуют в языке программирования (отсюда и происходит название «встроенные типы данных»). Они не требуют дополнительного описания и представляются соответствующими операторами. В Object Pascal к таким составляющим относятся простые типы данных, которые, в свою очередь, делятся на:
- порядковые типы;
- вещественные типы;
- типы дата-время.
Каждый из порядковых типов имеет конечное число значений. Следовательно, их можно упорядочить и с каждым из них сопоставить порядковый номер значения.
Вещественные представляют приближенно математические вещественные числа. Разделение типов на порядковые и вещественные несколько условно, т.к., строго говоря, вещественные тоже имеют конечное число значений. Количество значений определяется форматом внутреннего представления вещественного числа и настолько велико, что сопоставить порядковый номер с каждым значением практически невозможно.
Тип дата-время используется для хранения даты и времени.
Из простых типов данных порядковые - самые простые. В этих типах информация представляется в виде отдельных элементов.
В Object Pascal к порядковым типам относятся:
- целые типы;
- символьный тип;
- логические типы;
- задаваемые пользователем перечисления;
- тип-диапазон.
Все значения любого порядкового типа образуют упорядоченную последовательность, и значение переменной порядкового типа определяется его местом в этой последовательности. За исключением переменных целых типов, значения которых могут быть как положительными, так и отрицательными.
Первый элемент любого порядкового типа имеет номер 0, второй элемент - номер 1 и т.д. Порядковый номер значения возвращает функция Ord():
- если х представляет собой целое значение, то порядковый номер равен самому значению. Иными словами, для целых типов Ord(x)=x.
- если х представляет собой логический тип, то функция Ord(x) возвращает положительное целое число от 0 до 1;
- если х представляет собой символьный тип, то функция Ord(x) возвращает положительное целое число от 0 до 255;
- если х представляет собой перечисляемый тип, то функция Ord(x) возвращает положительное целое число от 0 до 65535.
- если х представляет собой поддиапазон, то значение, возвращаемое функцией Ord(x), зависит от базового типа. Это связано с тем, что поддиапазон сохраняет свойства порядкового типа, от которого он образован.
К порядковым типам также применяются функции Pred(x) и Succ(x).
Результатом вызова функции Pred(x) является предыдущее значение порядкового типа. Другими словами, Pred(x) = Ord(x) - 1.
В свою очередь, Succ(x) возвращает следующее значение порядкового типа, т.е. Succ(x) = Ord(x) + 1.
Если программа будет содержать такие строки:
procedure TForml.BitBtnlClick(Sender: TObject);
var
ch:Char;
begin
ch:='с';
Pred(ch);
Succ(ch);
end;
то Pred(ch) вернет символ 'b', a Succ (ch) - символ 'd'.
По объективным причинам далее не будут рассматриваться перечисляемый тип и тип-диапазон, относящиеся к порядковым типам, т.к. они являются более развитыми элементами Object Pascal. Но оставлять их без внимания все же не следует. Поэтому мы изучим их менее подробно, чем остальные простые типы.
При задании перечисляемого типа программист просто явно указывает (перечисляет) все значения, которые может принимать переменная такого типа. Например, рассмотрим следующие «перечисления»:
TYPE Tcolor=(red, green, blue);
TDay=(Sun, Mon, Tue, Wed, Thu, Fri, Sat);
Здесь создаются два новых типа данных. Переменная типа Tcolor сможет принимать лишь три значения: red, green, blue, а переменная типа TDay – значения Sun, Mon, Tue, Wed, Thu, Fri, Sat. Слова red, green, blue представляют собой константы, за которыми на самом деле скрываются некоторые числовые значения. Но нам в программе гораздо удобнее работать со словами, чем с числами. Было бы очень неудобно закодировать цвета цифрами и мучительно вспоминать, что "0" – это красный цвет, а "2" – синий.
Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т. д. Т.е. значения в перечислимом типе упорядочены по возрастанию. Поэтому их можно сравнивать не только на равенство, но и на отношения "больше - меньше".
Для работы с переменными перечислимого типа предназначены следующие функции и процедуры:
INC(v) – записать в v следующее значение;
DEC(v) - записать в v предыдущее значение.
Например:
c:Tday;
...
c:=Mon;
INC(c); {теперь c=Tue}
Обратите внимание, что эти процедуры меняют значение переменных, подаваемых им на вход в качестве аргументов. Если это нежелательно, следует использовать функции:
PRED(v) – предыдущее значение перечислимого типа;
SUCC(v) – последующее значение перечислимого типа.
Например:
c1:=PRED(c); {c1=Sun}
c2:=SUCC(c); {c2=Mon}
Тип-диапазон является производным типом. Он базируется на некотором базовом порядковом типе (исключая тип-диапазон). Ограниченный тип, или тип-диапазон, действительно ограничивает значения переменной. Например, если в переменной day хранится число дней в месяце, то оно явно не должно превышать 31, а также быть меньше 1. Следовательно, диапазон допустимых значений этой переменной – [1..31]. Так и напишем:
TYPE Tdate=[1..31]
Транслятор при работе программы проверяет, попадает ли значение переменной в допустимый диапазон. При выходе за его границы выдается сообщение об ошибке. Разумеется, это заметно повышает надежность программ.
Важно отметить, что в памяти переменная ограниченного типа занимает ровно столько же места, сколько и переменная базового типа. Поэтому сэкономить память, применяя поддиапазоны, не удастся.
В стандартную библиотеку Object Pascal включены две функции, поддерживающие работу с типами-диапазонами:
- High(X) - возвращает максимальное значение типа-диапазона, к которому принадлежит переменная х;
- Low (X) - возвращает минимальное значение типа-диапазона, к которому принадлежит переменная х.