- •Преимущества
- •Связь: ooa→oop→ood
- •Механизм работы virtual
- •Абстрактный класс
- •Виртуальный деструктор
- •{Основные элементы языка программирования}
- •Основные подходы к семантике:
- •Формальное описание семантики:
- •Среда программирования
- •Объекты данных
- •Атрибуты объекта данных
- •Система типизации данных
- •Реализация типов данных
- •Типизация
- •Система типизации данных
- •Реализация типов данных
- •Связывание переменных
- •Контроль типов
- •Статистический контроль типов
- •Алгоритм статистического контроля типов
- •Динамический контроль типов
- •Параллелизм
- •Полиморфизм
- •Статический полиморфизм
- •Динамический полиморфизм
- •Преобразование типов
- •Связь: ooa→oop→ood
- •Среда программирования
- •Цель технологий параллелизма
- •Схемы параллелизма
- •Проблемы параллельного программирования
- •Показатели эффективности параллельного алгоритма Ускорение
- •Закон Густавсона-Барсиса
- •Масштабируемый алгоритм
- •Схемы параллелизма
- •Подтипы данных
- •Разновидности массивов. Статические
- •Кортежи
- •Разновидности массивов. Статические
- •Динамические
- •Атрибуты объекта данных
- •Операции над целыми числами
- •Вещественные числа
- •Числа с фиксированной точкой
- •Числа с плавающей точкой(float)
- •Ошибки вычислений с вещественными числами
- •Утечки памяти и повисшие указатели
- •Указатели на указатели
- •Типизированные указатели
- •Указатели на функции
- •[Отличия указателей и ссылок]
- •Параметры подпрограмм
- •Преимущества подпрограмм
- •Позиционное сопоставление
- •Сопоставление по имени
- •Методы передачи параметров:
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача параметров по значению-результату
- •Параметр по результату
- •Стековые языки
- •Циклы и рекурсия
- •Циклы со счетчиком
- •Операторы циклы без заданного числа повторений (бесконечно)
- •Динамический полиморфизм
- •Родовые (настраиваемые) сегменты и шаблоны
Атрибуты объекта данных
Тип - задает возможные значения, применяемые операции и формат хранения данных.
Местоположение - координаты области памяти, отведенной под объекты данных. Назначаются системными программными средствами, управляющими памятью. Программист обычно не имеет доступа к этим средствам.
Значение - текущая величина объекта данных.
Имя - перечень имен, по которым к объекту данных обращаются в процессе вычислений (могут назначается, как в начале так и в конце).
Принадлежность - сведения о принадлежности данного объекта к другим объектам данных (ссылки на эти объекты).
Адрес - указывают ячейку памяти под переменную.
Время жизни - период существования объекта в программе.
Область видимости - сегмент фрагмент программы в пределах которой доступен объект.
47. Ошибки при работе с вещественными числами. Смешанная арифметика.
Вещественные числа при обработке в вычислительной системе представляются в двоичном коде. Существуют два подхода:
1) Число представляется согласно двоичной арифметике в виде числа с плавающей запятой. Такой подход называется двоично-кодированным десятичным числом.
2) Цифры числа кодируются как целое число, дополненное информацией о позиции десятичного разделителя. Этот формат называется форматом с фиксированной точкой.
Существует три основные ошибки вычислений, возникающие при выполнении операций над вещественными числами:
1) Исчезновение операнда. Операнд может исчезнуть, если он относительно мал по отношению к другому операнду.
2) Умножение ошибки – многократное увеличение абсолютной погрешности операнда.
3) Потеря значимости. Возникает, когда результат вычислений невозможно представить в допустимой форме.
Смешанная арифметика В математике очень часто используются смешанные арифметические операции с целыми и вещественными числами: мы пишем А = 2pi*r, а не А = 2.0pi*r. При вычислении смешанные операции с целыми числами и числами с плавающей точкой должны выполняться с некоторой осторожностью. Предпочтительнее вторая форма, потому что 2.0 можно хранить непосредственно как константу с плавающей точкой, а литерал 2 нужно было бы преобразовать к представлению с плавающей точкой. Хотя обычно это делается компилятором автоматически, лучше точно написать, что именно вам нужно.
В языке С неявно выполняется смешанная арифметика, в случае необходимости целочисленные типы преобразуются к типам с плавающей точкой, а более низкая точность к более высокой. Кроме того, значения неявно преобразуются при присваивании
Смешанная арифметика
Автоматическое приведение типов по схемам
"целый -> вещественный -> комплексный"
"от меньшей разрядности -> к большей"
Исключение – операция возведение в степень.
Запись 2**5 равносильна 2*2*2*2*2 2**5.0 равносильна exp(5.0*ln(2.0))
Преобразование типов может приводить к появлению погрешности !
Снижение погрешности
Не вычитайте близкие числа.
Не делите большие по модулю числа на малые.
Сложение (вычитание) длинной последовательности чисел начинайте с меньших чисел.
Уменьшайте число операций.
Используйте алгоритмы, для которых известны оценки ошибок.
Не сравнивайте на равенство вещественные числа.
48. Операторы выбора и условные операторы.
Для всех управляющих структур (за исключением оператора switch) передача управления в программе основана на решении, результатом которого является оператор истинности (возвращающий логическое значение true или false). Создается выражение, которое затем проверяется на наличие результата true.Имеется две разновидности управляющих структур программы.
Управляющая структура выбора
Структура выбора указывает альтернативные варианты выполнения программы, создавая точку разветвления программы (подобно развилке на дороге). В языке JScript предусмотрены четыре структуры выбора.
• Структура единственного выбора (if)
• Структура двойного выбора (if...else)
• Структура множественного выбора (switch)
• Встроенный условный оператор
Управляющая структура повторения
Структура повторения указывает повторять действие до тех пор, пока некоторое условие остается истинным.Когда выполняются условия управляющего оператора (обычно после выполнения определенного числа итераций), управление передается следующему оператору за пределами структуры повторения.В языке JScript предусмотрены четыре структуры повторения.
• Выражение проверяется в начале цикла (while)
• Выражение проверяется в конце цикла (do...while)
• Действие выполняется над свойствами объекта или элементами массива (for...in)
• Повторение, управляемое счетчиком (for)
Сочетание управляющих структур
В сложных скриптах осуществляется вложение управляющих структур выбора и повторения и формирования из них последовательностей.
В данном разделе не рассматривается обработка исключений, которая предоставляет еще один способ управления выполнением программы.Дополнительные сведения см. в разделе Оператор Try...Catch...Finally.
49. Вещественные числа. Способы представления. Операции над вещественными числами.
Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т.е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. В следствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной.
При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления.
Существует 2 представления вещественных чисел в двоичном программировании: 1) согласно двоичной арифметике - двоично кодируемое десятичное число 2) кодировать цифры числа как целое, дополняя информацией о десятичном разделителе.
* Числа с фиксированной точкой - формат, определяющий, что число содержит не более заданного кол-ва N цифр, в том числе M знаков после запятой, то есть для представления числа достаточно сохранить его целочисленное представление (включая 1 бит - знак) и номер позиции десятичной точки. +: количество знаков М после запятой определяет абсолютную погрешность. -: относительная погрешность - переменная, не все числа можно вписать в формат
* Числа с плавающей точкой - ч*10^M, где М - порядок экспоненты, а х - вещественное число от [0 до 1). +: количество знаков мантиссы определяет относительную погрешность, очень широкий диапазон чисел при низкой относительной погрешности. -: при выполнении некоторых операций, например + или * , результат может выйти за границы допустимого диапазона
Операции :
Все арифметические операции и помимо арифметических операций используются ещё операции отношения.( Меньше, Меньше или равно, Больше, Больше или равно, Равно, Не равно) и логические операции(и, или, не)
