Lection1_Classification.pptx
- Количество слайдов: 25
Лекция 1 Классификация С++
Парадигмы программирования • Императивная Инструкция 1 Инструкция 2 Инструкция 3 • Функциональная Функция 1 ( Функция 2 ( число, Функция 3 ())) • Декларативная (логическая) Утверждение 1 Утверждение 2 Вопрос?
Подходы императивной парадигмы • Основные – Процедурный подход – Объектно-ориентированный подход • Дополнительные – Субъектно-ориентированный подход – Аспектно-ориентированный подход – Событийно-ориентированный подход – Обобщенный подход – И т. п.
Процедурный подход • Программа состоит из последовательности инструкций, описывающих способ (процедуру) решения задачи посредством изменения переменных. • Переменные – адресуемые (по имени или иным способом) области памяти, используемые для доступа к данным. • Действие программы – последовательное изменение содержимого памяти для получения результата.
Объектно-ориентированный подход • Все данные являются объектами • Каждый объект имеет независимую память, состоящую из данных и, возможно, других объектов, а также набор методов для их обработки. • Действие программы – последовательное взаимодействие объектов, при котором один объект требует, чтобы другой объект выполнил некоторое действие, посредством вызова соответствующего метода.
Типизация Переменные имеют тип, определяющий, какие операции применимы к значению и как их интерпретировать. • Статическая типизация (имя, тип) → (значение) • Динамическая типизация (имя) → (тип, значение)
Классификация С++ • Язык С (ANSI C) – императивный процедурный язык со статической типизацией • Язык С++ - императивный объектноориентированный язык со статической типизацией
Обобщенный процедурный язык Инструкция 1 Инструкция 2 Инструкция 3. . . Инструкция N
Виды инструкций Основные инструкции: • Объявления переменных • Выражения и Присваивание Инструкции ветвления: • Метки • Безусловные и условные переходы Инструкции группировки: • Объявление и вызов функций
Объявление переменных Переменная – именованная область данных Константа – переменная, значение которой не может быть изменено Тип переменной определяет, какие операции применимы к значению и как их интерпретировать Объявление переменной – инструкция, связывающая имя переменной с некоторым типом.
Выражения и присваивание Выражение – синтаксическая конструкция, состоящая из переменных и операторов (действий над ними). Результат действия этих операторов на переменные называется значением выражения Логическое (условное) выражение, или просто условие – выражение, результатом вычисления которого являются значения «истина» или «ложь» Присваивание – инструкция, записывающая значение выражения в ассоциированную с переменной память
Переходы и метки Метка – символьное имя, назначаемое некоторой инструкции Точка входа – метка, начиная с которой исполняется программа Безусловный переход – инструкция, предписывающая продолжить исполнение программы с заданной метки Условный переход – инструкция, предписывающая продолжить исполнение программы с заданной метки, если выполнено некоторое условие
Пример: цикл с предусловием Точка входа: Инструкция 1 Инструкция 2 Метка 1: Если условие То переход на метку 2 Инструкция 3 Инструкция 4 Переход на метку 1 Метка 2: Инструкция 5 Инструкция 6. . .
Функции Функция (или подпрограмма) – именованная последовательность инструкций. Эта последовательность называется телом функции. Вызов функции – инструкция, предписывающая исполнить связанные с функцией инструкции, после чего продолжить исполнение со следующей после вызова инструкции Возврат – инструкция в теле функции, предписывающая продолжить исполнение программы со следующей после вызова функции инструкции
Аргументы функции Точка входа функции – метка, соответствующая началу исполнения функции Аргументы функции – необязательные связанные с функцией переменные, значения которых устанавливаются при каждом ее вызове Возвращаемые значения функции – необязательные переменные, значения которых устанавливаются при завершении функции
Пример функции функция 1: Инструкция 11 Инструкция 12. . . возврат точка входа: Инструкция 1 Инструкция 2 Вызов функции 1 Инструкция 3. . .
Виды инструкций Основные инструкции: • Объявления переменных • Выражения и Присваивание Инструкции ветвления: • Метки • Безусловные и условные переходы Инструкции группировки: • Объявление и вызов функций
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Программа на C++
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Объявление переменных
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Вычисление выражений и присваивание
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Точка входа (совпадает с неявной точкой входа в функцию main)
Точка входа в программу на С++ Без аргументов Без кода возврата С кодом возврата С аргументами командной строки void main () { } void main ( int argc, char** argv) { } int main () { return 0; } int main ( int argc, char** argv) { return 0 ; }
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Функции
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Вызов и возврат
Пример программы на С++ float max ( float a, float b ) { if ( a > b ) return a ; return b ; } int main () { float a ; a = 0. 1 ; float b = 3. 2 ; // calculate result float result = max( a, b ); return 0 ; } Аргументы и возвращаемые значения функции


