Содержание
- 2. Абстрагирование в программировании Абстрагирование – процесс рассмотрения чего-то независимо от его связей, свойств и конкретных особенностей
- 3. Абстрагирование в программировании: два пути Обобщение – процесс выделения только тех свойств и поведений, которые соответствуют
- 4. Абстрагирование в программировании Алгоритмы Структуры данных Модули Классы Фреймворки, каркасы Функции
- 5. Композиция объектов Композиция объектов – комбинирование объектов и свойств (подобъектов) для формирования нового объекта Три фундаментальных
- 6. Агрегация Агрегация – процесс формирования объекта из перечислимой коллекции подобъектов Агрегат – это объект, который содержит
- 7. Конкатенация Конкатенация – объект формируется путём добавления новых свойств к существующему объекту Конкатенация – объект формируется
- 8. Обсуждение по массивам 1, 2, 3, 4, 5 [1, 2, 3, 4, 5 ] – агрегация
- 9. Фабричные функции Фабричная функция – любая функция, которая возвращает новый объект На самом деле не любая,
- 10. При решении задач обработки большого количества однотипных данных используют массивы Чаще встречаются комбинации из данных разных
- 11. Структура – это составной объект, содержащий данные, объединенные в группу под одним именем. Данные, входящие в
- 12. Объявление структурного типа выполняется в виде шаблона, общий формат которого: struct Имя_Типа { Описание полей }
- 13. Обращение к полям структур выполняется с помощью составных имен, которые образуются двумя способами: 1) при помощи
- 14. После введения типа структура можно задать переменные или массивы этого типа struct Date { unsigned int
- 15. Допускаются и другие варианты описания структурных переменных. Можно вообще не задавать имя типа, а описывать сразу
- 16. #include using namespace std; struct pixel { unsigned char red; unsigned char green; unsigned char blue;
- 17. #include using namespace std; struct student { char name[80]; int id; int major; }; int main(int
- 18. Структуры С++: инициализация Элементы структуры в памяти запоминаются последовательно, в том порядке, в котором они объявляются:
- 19. … int main(int argc, char *argv[]) { student s1,s2; strncpy(s1.name,”Bill”,80); s1.id = 5; s1.major = CECS;
- 20. Элементом структуры может быть другая структура. struct myfile { char name[10]; char ftype[4]; int ver; };
- 21. Для передачи информации о структуре внутрь функции используются следующие способы: Использование в качестве фактического аргумента элемента
- 22. Структуры С++: битовые поля Битовые поля применяются для экономного хранения данных малого диапазона, а также для
- 24. В классе n учеников. Введите фамилии и оценки по 5 предметам для каждого ученика, найдите средний
- 25. cin>>n; Student a[n]; float m_b=0; for(i = 0;i { cout cin >> a[i].fam; cout cin >>
- 26. Пример со структурой в С++: запись в файл Используем также как другие потоки, например, стандартный поток
- 27. #include #include #include using namespace std; struct base { string name; string work; int year; };
- 28. struct base { string name; string work; int year; }; base a; ifstream f; f.open(“out.txt”); f>>a.name>>a.work>>a.year;
- 29. Перечисляемый тип С++ Используется для объявления набора поименованных целых констант. Формат: enum { [= ] [,
- 30. Псевдонимы typedef ; Примеры: 1) typedef unsigned int word; 2) typedef enum {False, True} boolean; Имя
- 32. Любая функция имеет физическое местоположение в памяти. Адрес функции является входной точкой в тело функции. Этот
- 33. Определим функцию f1, вычисляющую сумму двух чисел, и функцию f2, вычисляющую разность этих же чисел. double
- 34. . . . double ff(double a ,double b, double (*f)(double,double)) { return f(a,b); } int main()
- 35. Делегирование Делегирование – объект перенаправляет (или делегирует) к другому объекту, который действует от его имени. Делегирование
- 36. Для задания имени указателя для наглядности используйте using using validateFcn = bool(*)(int, int); Далее рассмотрите пример
- 38. Зачем вообще может понадобится? Например, такая проблема… «Чистые» функции – данные программы копируются в данные функции.
- 39. Часть данных, которые нужно изменять сгруппировать для удобства Data{D_1; D_2;}; int F_1 (int x,float y, char
- 40. Идея: сгруппировать функции и связать их с данными так, чтобы только функции из этой композиции могли
- 41. Дополнительные идеи для реализации в языке: Для удобства не передавать каждый раз ссылку на экземпляр Делегирование
- 42. Композиция данных и функций: реализация структуры с функциями в С++ struct Number { int ch; nm
- 43. Композиция данных и функций: идея реализации struct Number { int ch; Number sum(Number a) { Number
- 44. Композиция данных и функций: использование структуры «Число» int main() { //создаём числа в автоматической памяти Number
- 45. Композиция данных и функций: структура Если несколько "связанных" данных? Компилятор сам создаёт структуру, в которую включает
- 47. Сигнатура функции – определяет правила использования функции. Обычно сигнатура представляет собой описание функции. до этого использовали
- 48. Перегрузка функций: постановка проблемы Задача: Реализовать набор функций, реализующих один и тот же алгоритм для различных
- 49. Перегрузка функций: примеры int Square(int arg) {return arg*arg;} double Square(double arg) {return arg*arg;} char *Square(const char
- 50. При вызове перегруженной функции компилятор определяет, какую именно функцию требуется вызвать, по типу фактических параметров. Этот
- 51. Декорирование имен – формирование уникального внутреннего имени функции. void Func(void); // @Func$qv void Func(int); // @Func$qi
- 52. Если точного соответствия не найдено, выполняются продвижения порядковых типов в соответствии с общими правилами преобразования типов:
- 53. Перегрузка функций: неоднозначность Неоднозначность может появиться при: 1. Преобразовании типа; 2. Использовании параметров-ссылок; 3. Использовании аргументов
- 54. Перегрузка функций: ошибки int Sum(int x, int y) { return x + y; } int Sum(int
- 55. Перегрузка функций: дополнительные особенности Перегруженные функции должны находиться в одной области видимости, иначе произойдет сокрытие аналогично
- 56. Перегрузка функций: особенности C++ Константные ссылки: возможно: int& и const int& void Func(const long& a) {
- 57. Для передачи типов значений по ссылке в С# были введены специальные ключевые слова out и ref,
- 58. Перегрузка функций – это разновидность статического полиморфизма, при которой вопрос о том, какую из функций вызвать,
- 60. Функция main Функция main – та функция, с запуска которой начинает работу консольное приложение, написанное на
- 61. Передача параметров в функцию main Наличие параметров позволяет передать в запускаемую программу данные командной строки: пользователь
- 62. Пример передачи параметров в функцию main Задача: в программу в качестве параметра передаётся имя файла для
- 65. Перегрузка операции вызова функции Запись: тип_возврата operator() (формальные параметры); Структура, в которой определён хотя бы один
- 66. Сквозной пример V
- 67. Работа с файлами и json https://www.youtube.com/watch?v=x8wsONn1IcQ
- 68. Перегружаемые функции имеют одинаковое имя, но разное количество или типы аргументов. Это разновидность статического полиморфизма, при
- 71. ШАБЛОНЫ ФУНКЦИЙ Многие алгоритмы не зависят от типов данных, с которыми они работают (классический пример —
- 72. ШАБЛОНЫ ФУНКЦИЙ Компилятор автоматически генерирует правильный код, соответствующий переданному типу. Таким образом, создается функция, которая автоматически
- 73. ШАБЛОНЫ ФУНКЦИЙ Первый же вызов функции, который использует конкретный тип данных, приводит к созданию компилятором кода
- 74. ШАБЛОНЫ ФУНКЦИЙ // шаблон функции определения минимума template T min( T a, T b ) {
- 75. ШАБЛОНЫ ФУНКЦИЙ int i[5] = { 5, 4, 3, 2, 1 }; sort ( i, 5
- 76. ШАБЛОНЫ ФУНКЦИЙ template char* read() { char *Buffer = new char[ BufferSize ]; /* считывание данных
- 77. ШАБЛОНЫ ФУНКЦИЙ // выведение значений параметров int i[5] = { 5, 4, 3, 2, 1 };
- 78. ОБЪЕДИНЕНИЯ Объединения очень похожи на структуры, однако способ, с помощью которого C++ хранит объединения, отличается от
- 81. Внутри программ объединения C++ очень похожи на структуры. Например, следующая структура определяет объединение с именем distance,
- 82. Следующая программа иллюстрирует использование объединения distance. Сначала программа присваивает значение элементу miles и выводит это значение.
- 84. Использование объединений позволяет экономит память:
- 85. Объединение хранит значение только одного элемента в каждый момент времени Объединение представляет собой структуру данных, которая,
- 86. Правила вычисления выражений Для выполнения операций над некоторыми типами данных требуется явное переопределение типов. Различают: Функциональное
- 88. Скачать презентацию