Содержание
- 2. § 46. Что такое ООП? Объектно-ориентированное программирование. Языки C++ и C#
- 3. Зачем нужно что-то новое? программы из миллионов строк тысячи переменных и массивов Э. Дейкстра: «Человечество еще
- 4. Как мы воспринимаем объекты? существенные свойства Абстракция – это выделение существенных свойств объекта, отличающих его от
- 5. Использование объектов Программа – множество объектов (моделей), каждый из которых обладает своими свойствами и поведением, но
- 6. § 47. Объекты и классы Объектно-ориентированное программирование. Языки C++ и C#
- 7. С чего начать? Объектно-ориентированный анализ (ООА): выделить объекты определить их существенные свойства описать поведение (команды, которые
- 8. Модель дороги с автомобилями Объект «Дорога»: методы (поведение) свойства (состояние) название класса
- 9. Модель дороги с автомобилями Объект «Машина»: свойства: координаты и скорость все машины одинаковы скорость постоянна на
- 10. Модель дороги с автомобилями Взаимодействие объектов: узнать длину свойства объектов методы: операции, которые они могут выполнять
- 11. § 48. Создание объектов в программе Объектно-ориентированное программирование. Языки C++ и C#
- 12. Классы программа – множество взаимодействующих объектов любой объект – экземпляр какого-то класса класс – описание группы
- 13. Класс «Дорога» class TRoad { float Length; int Width; }; Объявление класса: Объявление переменной (создание объекта):
- 14. Класс «Дорога» class TRoad { public: float Length; int Width; }; Объявление класса: main() { TRoad
- 15. Класс «Дорога» Конструктор – это метод класса, который вызывается для создания объекта этого класса. TRoad road;
- 16. Новый конструктор class TRoad { public: float Length; int Width; TRoad(); // объявление конструктора }; Класс:
- 17. Конструктор с параметрами class TRoad { public: ... TRoad ( float length0, int width0 ); };
- 18. Защита от неверных данных TRoad::TRoad ( float length0, int width0 ) { if ( length0 >
- 19. Значения параметров по умолчанию class TRoad { public: ... TRoad ( float length0, int width0 =
- 20. Класс «Машина» class TCar { public: float X, V; int P; TRoad *Road; void move(); TCar
- 21. Конструкторы класса «Машина» TCar::TCar () { Road = NULL; P = 0; V = 0; X
- 22. Класс «Машина»: метод move void TCar::move() { X = X + V; if ( X >
- 23. Основная программа const int N = 3; TCar cars[N]; int i; for ( i = 0;
- 24. Использование указателей const int N = 3; TCar *cars[N]; for ( i = 0; i cars[i]
- 25. Что в этом хорошего и плохого? основная программа – простая и понятная классы могут разрабатывать разные
- 26. Задание «A»: Построить класс Попугай (TParrot), который умеет говорить какую-то фразу, заранее определённую при описании класса.
- 27. Задание «С»: Изменить класс из задания B так, чтобы фразу можно было изменять во время работы
- 28. Задание «E»: Изменить класс из задания D так, чтобы можно было добавлять фразы в набор фраз,
- 29. § 49. Скрытие внутреннего устройства Объектно-ориентированное программирование. Языки C++ и C#
- 30. Зачем скрывать внутреннее устройство? Объектная модель задачи: интерфейсы защита внутренних данных проверка входных данных на корректность
- 31. Защита внутренних данных метод есть + энергия + настроение - голод метод спать + энергия +
- 32. class TPen { private: string FColor; public: string getColor (); void setColor ( string newColor );
- 33. Пример: класс «перо» Получить значение: string TPen::getColor () { return FColor; } Записать значение: void TPen::setColor
- 34. Пример: класс «перо» Использование: TPen pen; pen.setColor ( "FFFF00" ); cout установить цвет прочитать цвет pen.color
- 35. Изменение внутреннего устройства class TPen { private: int FColor; public: string getColor(); void setColor( string newColor
- 36. Преобразования int → hex #include Использование потока (байтов): записываем в поток число в шестнадцатеричной системе читаем
- 37. string TPen::getColor() { stringstream s; s return s.str(); } Преобразования hex ↔ int #include #include подключить
- 38. Преобразования hex → int void TPen::setColor ( string newColor ) { stringstream s; if ( newColor.length()!=
- 39. Свойства в C# Свойство – это способ доступа к внутреннему состоянию объекта, имитирующий обращение к его
- 40. Свойства в C# class TPen { private string FColor; public string color { get { return
- 41. Свойства в C# Защита от неверного ввода данных: public string color { get { return FColor;
- 42. Свойства в C# Изменение внутреннего устройства: class TPen { private int FColor; public string color {
- 43. Свойство «только для чтения» class TCar { private: double Fv; public: double getV() { return Fv;
- 44. Скрытие внутреннего устройства Инкапсуляция («помещение в капсулу») интерфейс (public) внутреннее устройство (private)
- 45. Задание «A»: Построить класс РядЛампочек (TLampRow), который хранит состояние ряда из 8 лампочек в виде символьной
- 46. Задание «B»: Дополните класс TLampRow из задания A так, чтобы количество лампочек в цепочке можно было
- 47. Задание «С»: Дополните класс TLampRow из задания B так, чтобы лампочки могли гореть одним из двух
- 48. Задание «D»: Дополните класс TLampRow из задания C так, чтобы код состояния хранился как целое число.
- 49. § 50. Иерархия классов Объектно-ориентированное программирование. Языки C++ и C#
- 50. Классификации Классификация – разделение изучаемых объектов на группы (классы), объединенные общими признаками. Яблоко Груша Банан Апельсин
- 51. Что такое наследование? класс Двудольные семейство Бобовые род Клевер горный клевер наследует свойства (имеет все свойства)
- 52. Иерархия логических элементов Логический элемент с одним входом с двумя входами НЕ Объектно-ориентированное программирование – это
- 53. Базовый класс class TLogElement { public: bool In1, In2, Res; void calc(); }; можно моделировать элементы
- 54. Базовый класс class TLogElement { private: bool FIn1, Fin2, FRes; void calc(); public: bool getIn1() {
- 55. Установка входа void TLogElement::setIn1(bool newIn1) { FIn1 = newIn1; calc(); } пересчёт при изменении входа void
- 56. Что такое полиморфизм? греч.: πολυ — много, μορφη — форма Полиморфизм – это возможность классов-наследников по-разному
- 57. Базовый класс class TLogElement { private: bool FIn1, Fin2; protected: bool FRes; virtual void calc()= 0;
- 58. Базовый класс class TLogElement { protected: bool FRes; virtual void calc()= 0; bool getIn2() { return
- 59. Абстрактный класс Абстрактный метод – это метод класса, который объявляется, но не реализуется в классе. Абстрактный
- 60. Элемент «НЕ» class TNot: public TLogElement { protected: void calc(); }; void TNot::calc() { FRes =!getIn1();
- 61. Элемент «НЕ» TNot n; n.setIn1 ( false ); cout Использование: создание объекта установка входа вывод результата
- 62. Элементы с двумя входами class TLog2In: public TLogElement { public: TLogElement::setIn2; TLogElement::getIn2; }; наследник от TLogElement
- 63. Элементы с двумя входами class TAnd: public TLog2In { protected: void calc(); }; class TOr: public
- 64. Элементы с двумя входами void TAnd::calc() { FRes = getIn1() && getIn2(); } void TAnd::calc() {
- 65. Вызов виртуального метода void TLogElement::setIn1( bool newIn1 ) { FIn1 = newIn1; calc(); } В базовом
- 66. Виртуальный метод Виртуальный метод – это метод базового класса, который могут переопределить классы-наследники так, что конкретный
- 67. Пример: элемент «И-НЕ» main() { TNot elNot; TAnd elAnd; int A, B; cout cout for (
- 68. Модульность class TLogElement { … } class TLog2In: public TLogElement { … } class TNot: public
- 69. Модульность void TLogElement::setIn1 ( bool newIn1 ) { ... } void TLogElement::setIn2 ( bool newIn1 )
- 70. Сообщения между объектами class TLogElement { private: TLogElement *FNextEl; int FNextIn; ... public: void Link (
- 71. Сообщения между объектами void TLogElement::Link( TLogElement *nextElement, int nextIn ) { FNextEl = nextElement; FNextIn =
- 72. Сообщения между объектами void TLogElement::setIn1 ( bool newIn1 ) { FIn1 = newIn1; calc(); if (
- 73. Сообщения между объектами TLogElement::TLogElement() { FNextEl = NULL; } Новый конструктор:
- 74. Сообщения между объектами TNot elNot; TAnd elAnd; elAnd.Link ( &elNot ); ... for ( A =
- 75. Задание «A»: Постройте класс TPet (домашнее животное) с двумя скрытыми полями: FName (имя) и FAge (возраст).
- 76. Задание «A»: Пример: TPet *p, *pets[2]; p = new TDog("Шарик", 5); p->gettingOlder(); cout getName() getAge() pets[0]
- 77. Задание «B»: Добавьте класс TMammal (млекопитающее) – наследник класса TPet и предок для классов TCat и
- 78. Задание «C»: Добавьте класс TReptilia (рептилии) – наследник класса TPet и предок для новых классов TTurtle
- 79. Задание «A»: Собрать полную программу и построить таблицу истинности последовательного соединения элементов «ИЛИ» и «НЕ». Пример:
- 80. Задание «B»: Добавить в иерархию классов элементы «И-НЕ» (TNAnd) и «ИЛИ-НЕ» (TNOr), которые представляют собой последовательные
- 81. Задание «C»: Добавить в иерархию классов элемент «исключающее ИЛИ» (TXor) и «импликация» (TImp). Построить их таблицы
- 82. Задание «D»: Добавить в иерархию классов элемент «триггер» (TTrigger). Построить его таблицу истинности при начальных значениях
- 83. § 51. Программы с графическим интерфейсом Объектно-ориентированное программирование. Языки C++ и C#
- 84. Интерфейс: объекты и сообщения поле ввода кнопка флажок переключатель Все элементы окон – объекты, которые обмениваются
- 85. Классические программы основная программа
- 86. Программы, управляемые событиями Событие – это переход какого-либо объекта из одного состояния в другое. нажатие на
- 87. Программы, управляемые событиями основная программа
- 88. Что такое RAD-среда? RAD = Rapid Application Development — быстрая разработка приложений создание формы минимальный код
- 89. RAD-среды: Delphi Язык: Object Pascal, позднее Delphi: 1995: Borland, сейчас: Embarcadero Technologies
- 90. RAD-среды: MS Visual Studio Языки: Visual Basic, Visual C++, Visual C#, Visual F# c 1995 по
- 91. RAD-среды: Lazarus Языки: FreePascal, Delphi свободное ПО: lazarus.freepascal.org
- 92. § 52. Программирование в RAD-средах Объектно-ориентированное программирование. Языки C++ и C#
- 93. Visual Studio Express (C#) http://www.visualstudio.com/ru-ru/products/visual-studio-express-vs.aspx
- 94. Язык C# С → С++ → C# язык CIL (байт-код) Common Intermediate Language виртуальная машина CLR
- 95. Form1.resx Проект – это набор файлов, из которых компилятор строит исполняемый файл программы. проект (.csproj, CSharp
- 96. Простейший проект Файл – Создать проект – Приложение Windows Forms Свойства Панель элементов Редактор кода Конструктор
- 97. Модуль формы F7 – перейти из конструктора к коду формы using System; using System.Collections.Generic; using System.ComponentModel;
- 98. Модуль формы public partial class Form1: Form { public Form1() { InitializeComponent(); } } открытый класс
- 99. Основная программа using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace Project1 { static class Program
- 100. Свойства формы Name – имя формы Size.Width – ширина Size.Height – высота Text – текст в
- 101. Обработчик событий 2×ЛКМ: создать обработчик FormClosing: форма закрывается События
- 102. Обработчик события private void MainForm_FormClosing ( object sender, FormClosingEventArgs e ) { } закрытый метод класса
- 103. private void MainForm_FormClosing ( object sender, FormClosingEventArgs e) { DialogResult res; res = MessageBox.Show ( "Вы
- 104. Параметры MessageBox.Show сообщение пользователю заголовок окна тип запроса MessageBoxIcon Error ошибка Warning предупреждение Information информация Question
- 105. § 53. Использование компонентов Объектно-ориентированное программирование. Языки C++ и C#
- 106. Панель компонентов Стандартные Контейнеры Диалоги
- 107. Просмотр рисунков панель Panel выключатель CheckBox рисунок PictureBox кнопка Button
- 108. Настройка формы Файл – Создать проект – Приложение Windows Forms Name → MainForm Text → Просмотр
- 109. Верхняя панель панель Panel Dock = Top
- 110. Кнопка и выключатель кнопка Button выключатель CheckBox Name = OpenBtn Text = Открыть файл Name =
- 111. Компонент PictureBox рисунок PictureBox Name = Image Dock = Fill
- 112. Выбор файла Name = OpenDlg выбор рисунка OpenFileDialog
- 113. Выбор файла if ( OpenDlg.ShowDialog() == DialogResult.OK ) Img.Image = new Bitmap (OpenDlg.FileName); если файл выбран
- 114. Масштабирование 2×ЛКМ if ( SizeCB.Checked ) Img.SizeMode = PictureBoxSizeMode.Zoom; else Img.SizeMode = PictureBoxSizeMode.Normal;
- 115. Ввод и вывод данных для веб-страниц метка rgbLabel Label панель rgbPanel Panel поле ввода rEdit TextBox
- 116. Обновление компонентов вывода выделить все три (+Shift) 2×ЛКМ
- 117. Обновление компонентов вывода private void rEdit_TextChanged ( object sender, EventArgs e ) { int r, g,
- 118. Вызов при запуске private void MainForm_Load ( object sender, EventArgs e ) { rEdit_TextChanged ( rEdit,
- 119. Обработка ошибок
- 120. Обработка ошибок try { // «опасные» команды } catch { // обработка ошибки } попытаться выполнить
- 121. Обработка ошибок try { r = Int32.Parse ( rEdit.Text ); g = Int32.Parse ( gEdit.Text );
- 122. Блокирование неверных символов private void rEdit_KeyPress ( object sender, KeyPressEventArgs e ) { if ( !
- 123. Задание «A»: Постройте программу, которая вычисляет площадь комнаты. Требования: размер окна нельзя менять при попытке закрыть
- 124. Задание «B»: Постройте программу, которая вычисляет площадь стен комнаты и определяет, сколько рулонов обоев нужно на
- 125. Задание «С»: Доработайте программу так, чтобы по щелчку по кнопке «Сохранить» все данные сохранялись в файле
- 126. § 54. Совершенствование компонентов Объектно-ориентированное программирование. Языки C++ и C#
- 127. Новый класс (модуль) Задача: построить поле для ввода целых чисел, в котором есть защита от ввода
- 128. Обработчик KeyPress class IntTextBox: TextBox { protected override void OnKeyPress ( KeyPressEventArgs e ) { if
- 129. Свойство Value class IntTextBox: TextBox { ... public int Value { set { Text = value.ToString();
- 130. Поле для ввода целых чисел private void decEdit_TextChanged ( object sender, EventArgs e ) { hexLabel.Text
- 131. § 55. Модель и представление Объектно-ориентированное программирование. Языки C++ и C#
- 132. решение Еще одна декомпозиция Задача: повторное использование написанного ранее готового кода. решение
- 133. решение Модель и представление Задача: хранить и использовать данные об изменении курса доллара.
- 134. Модель и представление Задача: вычисление арифметического выражения: целые числа знаки арифметических действий + - * /
- 135. Модель k = номер последней операции if ( k результат:= строка в число else { n1
- 136. Статический класс – набор функций static class Calculator { static int Priority ( char op )
- 137. Модель: приоритет операций int Priority ( char op ) { switch ( op ) { case
- 138. Модель: номер последней операции int LastOp ( string s ) { int i, minPrt, res; minPrt
- 139. Модель: вычисления public static int Calc(string s) { int k, n1, n2, res = 0; k
- 140. Представление многострочное поле TextBox выпадающий список ComboBox Name = Answers Dock = Fill ReadOnly = True
- 141. Перехват нажатия на клавишу Enter private void Input_KeyPress ( object sender, KeyPressEventArgs e ) { if
- 142. Обработка и вывод данных int x; x = Calculator.Calc( Input.Text); Вычисления (обращение к модели): Answers.Text +=
- 143. Обработка и вывод данных int i = Input.FindString(Input.Text); if ( i Input.Items .Insert ( 0, Input.Text
- 144. Перехват нажатия на клавишу Enter private void Input_KeyPress ( object sender, KeyPressEventArgs e ) { if
- 145. Задание «A»: Измените программу так, чтобы она могла вычислять значения выражений с вещественными числами.
- 146. Задание «B»: Измените программу так, чтобы она могла вычислять значения выражений со скобками.
- 147. Задание «С»: Измените программу так, чтобы она могла вычислять значения выражений, содержащих вызовы функций abs, sin,
- 148. Задание «D»: Измените программу так, чтобы при вводе неверного выражения выводилось сообщение об ошибке. Все результаты
- 149. Калькулятор
- 150. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург [email protected] ЕРЕМИН
- 152. Скачать презентацию





















![Основная программа const int N = 3; TCar cars[N]; int i; for](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/994477/slide-22.jpg)
![Использование указателей const int N = 3; TCar *cars[N]; for ( i](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/994477/slide-23.jpg)



















































![Задание «A»: Пример: TPet *p, *pets[2]; p = new TDog("Шарик", 5); p->gettingOlder();](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/994477/slide-75.jpg)










































































Человек и информация
Задание 1: KPI
Программа Tweakmaster
Построение регрессионных моделей в Microsoft Excel
Встроенные и логические функции в Excel
Презентация на тему ТВОИ УСПЕХИ
Информатика. Введение
Презентация на тему Создание визитной карточки
Оптимизация процедуры расчета нормированных метрологических характеристик при выездной поверке
Интернет-технологии и распределённая обработка данных. Лекция 15
Презентация на тему Что такое мультимедиа (8 класс)
Системы счисления. Математические основы информатики
Триггеры в презентации. Применение. Создание слайдов с триггерами
Растровая и векторная графика. Графические редакторы
Автоматизированные информационные системы медицинского назначения. Лекция 04
Виды антивирусов
Программирование. Наука управлять
Клуб интеллектуальных игр Игры разума
Автоматизированное рабочее место (АРМ) специалиста
Produse software
Мультиретаргетинг
Проект МЭК (Московский Электронный Колледж). Номинация Прототип сервиса МЭШ
Подключение к удаленному рабочему столу
Информационные коммуникации и эффективность управления в малом бизнесе
Переменные let message =“string”;
Функциональная схема взаимодействия участников симметричного криптографического обмена. Недостатки симметричных криптосистем
Социальные сети
Web-программирование. Основы Node.js