Теория и технология программирования Объектно-ориентированное программирование на языке C++

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "Теория и технология программирования Объектно-ориентированное программирование на языке C++"

Транскрипт

1 Теория и технология программирования Лекция 12. Введение в Model-View-Controller Глухих Михаил Игоревич, к.т.н., доц. mailto:

2 Что такое Model-View-Controller? Шаблон проектирования (паттерн, приём) модель описывает внутреннюю структуру объекта (бизнес-логику) и ничего не знает о способах ее представления представление отображает объект, используя его модель контроллер обрабатывает действия пользователя и соответствующим образом изменяет модель и представление 2

3 Зачем? Приём проектирования MVC позволяет отделить внутреннюю начинку объекта от способа его отображения и от способа взаимодействия с пользователем Можно создавать разные представления одного и того же объекта, не трогая сам объект (Model-View) Можно по-разному организовать взаимодействие с пользователем, не трогая внешний вид (View-Controller) 3

4 Схема взаимодействия MVC (классика) user actions change interface change model state change notification read of model state 4

5 Упрощенные варианты MVC Model-View в этом случае View выполняет также функции контроллера Document-View (MFC) примерно то же самое, что Model-View у документа обычно есть возможность записываться на жёсткий диск и считываться с него 5

6 MVC внутри Qt Таблица QAbstractItemModel ряды, колонки, данные... сама таблица может храниться, например, в БД QTableView ширина, высота, сетка, стиль рисования... 6

7 MVC на примере Задача коммивояжёра (см. предыдущую лекцию) У нас уже есть модель граф путь и искатель пути Хотим редактор добавление и удаление вершин и дуг перемещение вершин изменение стоимости (веса) дуг задание начала и конца пути поиск пути 7

8 Что потребуется добавить в модель графа? struct Edge { int begin, end; int cost; Edge(int b, int e, int c); }; class Graph { int vertexnum; vector<edge> edges; public: Graph(int vnum); void connect(int begin, int end, int cost); vector<edge> getnearedges(int vertexindex) const; int getvertexnum() const; }; 8

9 Что потребуется добавить в модель графа? Доступ к свойствам дуг (вес, начало, конец, число дуг) Удаление дуг и вершин Установка стоимости дуги Изменение числа вершин Доп. методы см. пример, класс Graph 9

10 Удаление вершины void Graph::removeVertex(int vindex) { } for (vector<edge>::iterator it=edges.begin(); } it!=edges.end(); it++) { if (it->begin==vindex it->end==vindex) { it = edges.erase(it); it--; } else { } if (it->begin>vindex) it->begin--; if (it->end>vindex) it->end--; 10

11 Что войдёт в представление графа? Поля? 11

12 Что войдёт в представление графа (поля)? модель (граф) информация о координатах вершин информация о построенном пути, его начале и конце методы? 12

13 Что войдёт в представление графа (методы)? рисование графа доступ к модели добавление вершин/дуг перемещение вершин удаление вершин/дуг поиск вершин/дуг по точкам получение и изменение стоимости дуги задание начала и конца пути расчёт пути см. пример, класс GraphView 13

14 Поиск вершин/дуг по точкам как реализовать? Пример геометрической задачи, возникающей при создании GUI 14

15 Поиск вершин/дуг по точкам Вершина на базе расстояния до центра соответствующей окружности 15

16 Поиск вершин/дуг по точкам Дуга на базе расстояния до соответствующего отрезка 16

17 Поиск вершин/дуг по точкам static int operator *(QPoint& p1, QPoint& p2) { } return p1.x()*p2.x() + p1.y()*p2.y(); static int getdist(qpoint& p1, QPoint& p2) { } QPoint diff = p2-p1; return diff * diff; struct Segment { }; QPoint from, to; Segment(QPoint& f, QPoint& t) : from(f), to(t) {} QPoint diff() { return to-from; } 17

18 Поиск вершин/дуг по точкам static int getdist(qpoint& p, Segment& s) { } QPoint v = s.diff(); QPoint w = p - s.from; int c1 = v * w; if (c1 <= 0) return getdist(p, s.from); int c2 = v * v; if (c2 <= c1) return getdist(p, s.to); double b = double(c1) / c2; QPoint pb = s.from + v * b; return getdist(p, pb); 18

19 Рисование представления См. пример, GraphView::paint Демонстрация Как лучше выбрать цвета? 19

20 Построение пути Путь строится, когда указаны старт и финиш Иначе путь пуст void GraphView::calcWay() { } if (start==-1 finish==-1) else { } way = Way(); Voyager voyager(model); way = voyager.findway(start, finish); 20

21 Контроллер В данном проекте его функции выполняются классом MainWindow Он же выполняет часть функций представления (в частности, события формируются тоже в нём) 21

22 Организация интерфейса Режимы работы добавление вершин добавление дуг перемещение вершин выбор старта выбор финиша Добавление и выбор вершин щелчком мыши Удаление и задание стоимости через контекстное меню 22

23 Группы действий // Можно выбрать только одно // триггерное действие из группы modegroup = new QActionGroup(this); modegroup->addaction(ui->actionaddedge); modegroup->addaction(ui->actionaddvertex); modegroup->addaction(ui->actionmove); modegroup->addaction(ui->actionsetstart); modegroup->addaction(ui->actionsetfinish); 23

24 Дефекты архитектуры Правильно было бы реализовать представление в рамках MainWindow (или сделать наследником QWidget класс GraphView) Функции контроллера при этом перенеслись бы в отдельный класс 24

25 Доп. информация создание фона QPalette pal = this->palette(); pal.setbrush(qpalette::window, QBrush(QPixmap("me.jpg"))); this->setpalette(pal); 25

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 11. Задача коммивояжера, алгоритм рекурсивного перебора Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Граф Граф представляет собой множество

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 13. Разработка большого проекта (логическая игра). Тестирование с помощью QtTestLib. Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Задача Реализовать

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках Лекция 17. Стандарты и реализации Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Основные стандарты и реализации Язык

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на Лекция 10. Инкапсуляция Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Классы и структуры в C++ Обеспечивают механизм создания

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 7. (AWT/Swing) Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Графический интерфейс пользователя GUI-приложения

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Объектно-ориентированное программирование Лекция 4. Алгоритмы на графах Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Граф Граф представляет собой множество

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на Лекция 11. Проектирование классов. Числовые объекты, перегрузка операций. Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Числовые

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология Программирование на языке Java Лекция 13. (продолжение) Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Синхронизация потоков Имеется две схемы синхронизации Синхронизация

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 15. Разработка большого проекта (логическая игра) GUI-реализация Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Графическая реализация Как будет

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках C и C++ Лекция 14. Лексический анализ Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Рассматриваем на примере Пользователь

Подробнее

Курс лекций "Программирование" Объектно-ориентированное программирование на языке C++

Курс лекций Программирование Объектно-ориентированное программирование на языке C++ Курс лекций "Программирование" Лекция 1. Вводная информация, конкурсные задания Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Занятия во 2-м семестре Лекции, 2 часа в неделю Презентации

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 14. Разработка большого проекта (логическая игра). Алгоритмы поиска хода Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Алгоритмы выбора наилучшего

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 10. Разработка редактора Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Задача-пример Необходимо разработать редактор

Подробнее

Ключевые слова языка С#

Ключевые слова языка С# 1 abstract, см. также 11, 55 2 as, см. также 37 Ключевые слова языка С# Модификатор abstract используется при объявлении класса, метода или свойства. Использование модификатора abstract в объявлении класса

Подробнее

Практика программирования 17

Практика программирования 17 Практика программирования 17 Двоичное дерево поиска Сбалансированные деревья AA-дерево Кувшинов Д.Р. КМиММ УрФУ Екатеринбург 2012 Двоичное дерево Binary tree Структура из элементов (узлов). Один из узлов

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Раздел 7. Редакторы текста Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Простой текстовый редактор Для построения простого

Подробнее

Образец текста. Докладчик: Пыхтин Павел. Второй уровень. Третий уровень. Четвертый уровень

Образец текста. Докладчик: Пыхтин Павел. Второй уровень. Третий уровень. Четвертый уровень Образец заголовка Тема: ASP» Пятый.Net уровень MVC Докладчик: Пыхтин Павел Образец Что заголовка не так с Web Forms? Request Response Default.aspx Логика, способ отображения, состояние 2 Образец заголовка

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 7. Введение в Web-программирование Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Клиент-серверное приложение User

Подробнее

Друзья класса. Друг класса это функция, не являющаяся членом этого класса, но имеющая доступ к его private и protected членам.

Друзья класса. Друг класса это функция, не являющаяся членом этого класса, но имеющая доступ к его private и protected членам. Друзья класса Друг класса это функция, не являющаяся членом этого класса, но имеющая доступ к его private и protected членам. Своих друзей класс объявляет сам в любой зоне описания класса с помощью служебного

Подробнее

RIGIDBUSBARS КОМПЬЮТЕРНАЯ ПРОГРАММА РАСЧЕТА ЭЛЕКТРОДИНАМИЧЕСКОЙ СТОЙКОСТИ ЖЕСТКОЙ ОШИНОВКИ С ПРОИЗВОЛЬНОЙ ОРИЕНТАЦИЕЙ ШИН И ИЗОЛЯТОРОВ

RIGIDBUSBARS КОМПЬЮТЕРНАЯ ПРОГРАММА РАСЧЕТА ЭЛЕКТРОДИНАМИЧЕСКОЙ СТОЙКОСТИ ЖЕСТКОЙ ОШИНОВКИ С ПРОИЗВОЛЬНОЙ ОРИЕНТАЦИЕЙ ШИН И ИЗОЛЯТОРОВ 26 УДК 621.316 RIGIDBUSBARS КОМПЬЮТЕРНАЯ ПРОГРАММА РАСЧЕТА ЭЛЕКТРОДИНАМИЧЕСКОЙ СТОЙКОСТИ ЖЕСТКОЙ ОШИНОВКИ С ПРОИЗВОЛЬНОЙ ОРИЕНТАЦИЕЙ ШИН И ИЗОЛЯТОРОВ Шпаковский А.А., Баран А.Г. Научный руководитель Климкович

Подробнее

Лекция 8. Объектно-ориентированное программирование.

Лекция 8. Объектно-ориентированное программирование. http://compscicenter.ru 1/17 Лекция 8. Объектно-ориентированное программирование. Александр Смаль CS центр 5 ноября 2014 Санкт-Петербург http://compscicenter.ru 2/17 Ещё раз об ООП Объектно-ориентированное

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 5. Библиотека коллекций Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Назначение Работа с контейнерами различного

Подробнее

Использование шаблона «Стек»

Использование шаблона «Стек» Использование шаблона «Стек» 2013 Интерфейс шаблона «Стек» template class Stack { void push (const T&); T pop (); T top () const; bool isempty() const ; bool isfull() const ; } //в стек //из

Подробнее

Лекция 14. Полиморфизм

Лекция 14. Полиморфизм Название Полиморфизм Лекция 14. Полиморфизм Объектно-ориентированное программирование на C ++ 13 декабря 2009 г. Лекция 14 1 / 37 Полиморфизм Название Полиморфизм Пример struct C1 void f() cout

Подробнее

Инструкция по работе в АИС «Образовательные программы»

Инструкция по работе в АИС «Образовательные программы» Инструкция по работе в АИС «Образовательные программы» Содержание 1 Описание программы... 2 2 Установка программы... 2 3 Запуск программы.... 2 4 Форма «Список ОП»... 3 4.1 Панель инструментов... 4 4.2

Подробнее

ВЫБОР ХЕШ-ФУНКЦИЙ ДЛЯ КОМПИЛЯТОРОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ И С# С ПОМОЩЬЮ ПАКЕТА OSPGEN

ВЫБОР ХЕШ-ФУНКЦИЙ ДЛЯ КОМПИЛЯТОРОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ И С# С ПОМОЩЬЮ ПАКЕТА OSPGEN ВЫБОР ХЕШ-ФУНКЦИЙ ДЛЯ КОМПИЛЯТОРОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ И С# С ПОМОЩЬЮ ПАКЕТА OSPGEN 2.2 А.Н.Фролов Московский государственный институт радиотехники, электроники и автоматики (технический университет)

Подробнее

Курс лекций "программирование" Объектно-ориентированное программирование на языке C++ Лекция 3. Шаблоны, линейные списки

Курс лекций программирование Объектно-ориентированное программирование на языке C++ Лекция 3. Шаблоны, линейные списки Курс лекций "программирование" Лекция 3. Шаблоны, линейные списки Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Шаблоны Позволяют параметризировать определение функции или класса так, чтобы

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 3. Алгоритмы поиска Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Формулировка задачи Имеется некоторое количество уникальных ключей; с каждым

Подробнее

Вступительное слово и обзор Java технологии

Вступительное слово и обзор Java технологии Вступительное слово и обзор Java технологии Евгений Беркунский, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Что такое Java? Язык программирования Платформа: Аппаратная Операционная: Windows,

Подробнее

Лекция 10. Введение в шаблоны. Часть 1. Шаблоны классов и функций. Valery Lesin. C++ Basics,

Лекция 10. Введение в шаблоны. Часть 1. Шаблоны классов и функций. Valery Lesin. C++ Basics, Лекция Введение в шаблоны. Часть Шаблоны классов и функций Valery Lesin. C++ Basics, 2013 1 Шаблонный класс 1 1 1 1 1 1 1 1 1 template struct vector vector(size_t count = 0, T def = T()); vector(vector

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках Лекция 16. Основы численного интегрирования Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Задание Пользователь вводит

Подробнее

Лабораторная работа 0 Знакомство со средой

Лабораторная работа 0 Знакомство со средой Лабораторная работа 0 Знакомство со средой 1. Установка и запуск. Если вы выполняете лабораторную работу дома, и на вашем компьютере не установлена среда разработки (IDE) и комплект разработчика Java (JDK),

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках C и C++ Лекция 12. Проектирование классов. Объекты-контейнеры Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Пример:

Подробнее

Лекция 3. Операции и функции свободной памяти

Лекция 3. Операции и функции свободной памяти Название Лекция 3. и функции свободной памяти Проектирование ПО на C ++ 25 сентября 2010 г. Лекция 3 1 / 33 Объявления функций, использующих исключения Реализация функций выделения памяти Реализация обработчика

Подробнее

Тема работы: Разработка решения для обеспечения поддержки перезагрузки в системе автотестов Microsoft TFS 2010

Тема работы: Разработка решения для обеспечения поддержки перезагрузки в системе автотестов Microsoft TFS 2010 Тема работы: Разработка решения для обеспечения поддержки перезагрузки в системе Цель: Создать решение, которое позволит выполнять автотесты с перезагрузкой Задачи: Исследование проблемы и возможностей

Подробнее

ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 5 Структуры данных (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков Артем Юрьевич Кардинальные числа типов данных Общим свойством

Подробнее

Лекция 8 Графы. Обходы графов

Лекция 8 Графы. Обходы графов Лекция 8 Графы. Обходы графов Курносов Михаил Георгиевич к.т.н. доцент Кафедры вычислительных систем Сибирский государственный университет телекоммуникаций и информатики http://www.mkurnosov.net/teaching

Подробнее

Лабораторная работа 1 Знакомство с графической системой КОМПАС-3D V10

Лабораторная работа 1 Знакомство с графической системой КОМПАС-3D V10 Лабораторная работа 1 Знакомство с графической системой КОМПАС-3D V10 Цель работы: Освоение основных приемов работы с редактором КОМПАС ГРАФИК Задание 1.1. Построить изображение плоской детали Пластина,

Подробнее

Теория и технология программирования Объектно-ориентированное программирование на языке C++

Теория и технология программирования Объектно-ориентированное программирование на языке C++ Теория и технология программирования Лекция 4. Алгоритмы сортировки Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Формулировка задачи Имеется некоторое количество уникальных ключей; с каждым

Подробнее

Объектно-ориентированное программирование. Лекция 13

Объектно-ориентированное программирование. Лекция 13 Объектно-ориентированное программирование Лекция 13 Основные термины Предметная область это набор понятий, представляющих важные аспекты решаемой задачи Объект это конструкция программы, использующая термины

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на Лекция 14. Апплеты Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Определение Апплеты программы, работающие в среде другой программы

Подробнее

АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ

АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ ТЕОРИЯ И ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ Лекция 7. Динамическое программирование Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Динамическое программирование 2 Динамическое

Подробнее

Программа «Компьютерное проектирование в AutoCAD»

Программа «Компьютерное проектирование в AutoCAD» 1. Цели и задачи модуля. Программа «Компьютерное проектирование в AutoCAD» Изучить основные возможности программы для создания и печати чертежей. Научиться настраивать интерфейс программы под задачи, решаемые

Подробнее

Курс «Алгоритмы и алгоритмические языки» Лекция 17

Курс «Алгоритмы и алгоритмические языки» Лекция 17 Курс «Алгоритмы и алгоритмические языки» Лекция 17 1 Представление двоичного дерева в памяти компьютера Описание узла двоичного дерева на Си: typedef struct bin_tree { char info; struct bin_tree *left;

Подробнее

Редактор. EasiShowEditor

Редактор. EasiShowEditor Редактор EasiShowEditor Программное приложение Руководство пользователя Содержание 1. Введение... 1 2. Установка... 1 2.1 Операционная среда... 1 2.2 Установка EasiShowEditor... 1 3. Управление... 7 3.1

Подробнее

Объектно-ориентированное программирование на языке C++ GUI

Объектно-ориентированное программирование на языке C++ GUI GUI Лекция 1. Введение в GUI-программирование Глухих Михаил Игоревич, к.т.н., доц. с дополнениями Пышкина Е.В. Классификация приложений По способу взаимодействия с пользователем через консоль (поток ввода

Подробнее

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ СИМУЛЯТОР МАШИНЫ ТЬЮРИНГА

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ СИМУЛЯТОР МАШИНЫ ТЬЮРИНГА 2. Шаров, О. Г. Нейтрализация синтаксических ошибок в графических языках / О. Г. Шаров, А. Н. Афанасьев // Программирование. 2008. 1. С. 61 66. 4. Шаров, О. Г. Методы и средства трансляции графических

Подробнее

Лекция по алгоритмам #10 Тема: DFS

Лекция по алгоритмам #10 Тема: DFS Лекция по алгоритмам #10 Тема: DFS 11 ноября Собрано 1 января 2015 г. в 19:55 1 Компоненты рёберной двусвязности и мосты 1.1 Основные понятия Рассматриваем связный неориентированный граф G. Определение.

Подробнее

Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти.

Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти. Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти. 1. Дружественные функции Дружественные функции обладает такими же правами доступа к данным класса, как и его

Подробнее

Table of Contents. 1. Introduction

Table of Contents. 1. Introduction Table of Contents 1. Introduction Говорим «Привет» В этом разделе рассмотрим как создать новую страницу с надписью «Привет». В процессе решения задачи вы создадите действие контроллера и представление:

Подробнее

Лекция 8. Введение в STL. Контейнеры, последовательности, векторы

Лекция 8. Введение в STL. Контейнеры, последовательности, векторы Название Определения STL Структура STL Лекция 8. Введение в STL., последовательности, векторы Объектно-ориентированное программирование на C ++ 1 октября 2010 г. Лекция 8 1 / 33 Основные определения Название

Подробнее

ОСНОВЫ ТЕОРИИ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. Пышкин Евгений Валерьевич к.т.н., доцент

ОСНОВЫ ТЕОРИИ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. Пышкин Евгений Валерьевич к.т.н., доцент ОСНОВЫ ТЕОРИИ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ Пышкин Евгений Валерьевич к.т.н., доцент ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ Блок 9. Введение в модульное тестирование 3 Проблема тестирования разрабатываемых

Подробнее

Лекция 8: Графы. Обходы графов КурносовМихаил Георгиевич к.т.н. доцент Кафедры вычислительных систем Сибирский государственный университет телекоммуникаций и информатики http://www.mkurnosov.net Контроль

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 14

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 14 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014 Лекция 14 1 Динамические структуры данных Стек (stack) это динамическая последовательность элементов, количество которых изменяется, причем

Подробнее

РЕШЕНИЕ ЗАДАЧИ КИТАЙСКОГО ПОЧТАЛЬОНА ДЛЯ СЛУЧАЯ НЕОРИЕНТИРОВАННОГО И ОРИЕНТИРОВАННОГО ГРАФОВ

РЕШЕНИЕ ЗАДАЧИ КИТАЙСКОГО ПОЧТАЛЬОНА ДЛЯ СЛУЧАЯ НЕОРИЕНТИРОВАННОГО И ОРИЕНТИРОВАННОГО ГРАФОВ Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САРАТОВСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Подробнее

но они бывают разных видов

но они бывают разных видов 1 Фабрика (Factory) 2 Создаем юнита 3 но они бывают разных видов В такой архитектуре при добавлении нового вида юнита придется отслеживать все места, где создается экземпляр юнитов и изменять их. Чтобы

Подробнее

Содержание. Введение 12 Структура книги 12 Дополнительные материалы к книге 12 Версии AutoCAD

Содержание. Введение 12 Структура книги 12 Дополнительные материалы к книге 12 Версии AutoCAD Содержание Введение 12 Структура книги 12 Дополнительные материалы к книге 12 Версии AutoCAD 2008 13 Глава 1. Основы работы в AutoCAD 2008 15 Первый запуск AutoCAD 2008 15 Основные элементы интерфейса

Подробнее

1 6 ГЛОССАРИЙ. Словарь основных терминов и понятий дисциплины

1 6 ГЛОССАРИЙ. Словарь основных терминов и понятий дисциплины 1 6 ГЛОССАРИЙ Словарь основных терминов и понятий дисциплины Система КОМПАС-3D система для моделирования изделий с целью существенного сокращения периода проектирования и скорейшего их запуска в производство.

Подробнее

Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам

Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам Шаблоны 2013 Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию)

Подробнее

Как подготовиться к сертификационному тесту:

Как подготовиться к сертификационному тесту: Как подготовиться к сертификационному тесту: 1. Что нужно знать?...1 2. Где найти информацию?...3 3. Что представляет собой сертификационный тест?...4 1. Что нужно знать? Успешная сдача сертификационного

Подробнее

Национальный исследовательский университет «МИЭТ» МИЭТ. Кафедра ПКИМС. Теория алгоритмов. Лекция 1. Общие сведения об алгоритмах

Национальный исследовательский университет «МИЭТ» МИЭТ. Кафедра ПКИМС. Теория алгоритмов. Лекция 1. Общие сведения об алгоритмах МИЭТ Национальный исследовательский университет «МИЭТ» Кафедра ПКИМС Теория алгоритмов Лекция 1 Общие сведения об алгоритмах Слайд 2 из 20 Алгоритм: история, определение Слово «алгоритм», или «алгорифм»

Подробнее

Студенческая лаборатория МФТИ-Intel. Структуры данных. Гареева Оксана

Студенческая лаборатория МФТИ-Intel. Структуры данных. Гареева Оксана Студенческая лаборатория МФТИ-Intel Структуры данных Гареева Оксана Oksana.gareeva@gmail.com 10.11.12 http://ilab.mipt.ru План лекци: Структуры данных. Общие понятия. Введение в указатели Структура: список

Подробнее

Статический анализ кода

Статический анализ кода Статический анализ кода (на примере DDD-фреймворка) Алексеев Алексей alekseev.aleksei@gmail.com aalekseev@custis.ru Николай Гребнев ngrebnev@gmail.com ngrebnev@custis.ru Структура доклада Введение Статические

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на Лекция 13. Области действия и времена жизни Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Основные понятия Область действия

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 18

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 18 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017 Лекция 18 1 Двоичное дерево набор узлов, который: либо пуст (пустое дерево), либо разбит на три непересекающиеся части: узел, называемый корнем,

Подробнее

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МАТЕРИАЛЫ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МАТЕРИАЛЫ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МАТЕРИАЛЫ Первой Всероссийской молодежной научной конференции «МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ,

Подробнее

О ПРОГРАММЕ ПРЕДСТАВЛЕНИЯ РАСЧЕТНЫХ ДАННЫХ В ГРАФИЧЕСКОМ ВИДЕ

О ПРОГРАММЕ ПРЕДСТАВЛЕНИЯ РАСЧЕТНЫХ ДАННЫХ В ГРАФИЧЕСКОМ ВИДЕ NovaInfo.Ru - 39, 2015 г. Технические науки 1 О ПРОГРАММЕ ПРЕДСТАВЛЕНИЯ РАСЧЕТНЫХ ДАННЫХ В ГРАФИЧЕСКОМ ВИДЕ Дмитриев Владислав Леонидович Тодорович Анастасия Андреевна В настоящее время существует огромное

Подробнее

Язык программирования Си++ Семинар 3. Наследование и полиморфизм

Язык программирования Си++ Семинар 3. Наследование и полиморфизм Язык программирования Си++ Иванов А.П., Князева О.С. Семинар 3. Наследование и полиморфизм Для эффективной разработки программ удобно использовать иерархическое упорядочение понятий и объектов. Такое упорядочение

Подробнее

NetBeans IDE: автоматизация рефакторинга

NetBeans IDE: автоматизация рефакторинга NetBeans IDE: автоматизация рефакторинга Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 Copyright (C) 2000-2008 Sun Microsystems, Inc. All rights reserved. Программа Возможности

Подробнее

Двухпанельные интерфейсы

Двухпанельные интерфейсы 17 Двухпанельные интерфейсы В этой главе мы создадим для CriminalIntent планшетный интерфейс, в котором пользователь может одновременно видеть и взаимодействовать со списком преступлений и подробным описанием

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 3. Проектирование классов в Java Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Общий базовый класс В языке Java

Подробнее

Лекция 5. Описание классов

Лекция 5. Описание классов Название Лекция 5. Описание классов Объектно-ориентированное программирование на C ++ 26 апреля 2010 г. Лекция 5 1 / 26 Поля Начало Поля Функции Типы Шаблоны Элементы описания Поля статические/нестатические:

Подробнее

Объектно-ориентированное программирование в PHP для начинающих

Объектно-ориентированное программирование в PHP для начинающих Объектно-ориентированное программирование в PHP для начинающих Доброго времени суток, уважаемые читатели нашего блога! Добро пожаловать на первый урок из серии уроков по объектноориентированному программированию

Подробнее

Лабораторная работа 6. Функции в С++

Лабораторная работа 6. Функции в С++ Лабораторная работа 6 Функции в С++ 1. Цель работы: 1) Получить практические навыки работы с функциями; 2) получить практические навыки работы с шаблонами функций; 3) получить практические навыки работы

Подробнее

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных Технологии программирования Зима-Весна Лекция 9 Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных сетей Вопросы, рассматриваемые на лекции 1. Частные (private) элементы

Подробнее

Шаблоны программирования

Шаблоны программирования Шаблоны программирования Калишенко Е.Л. CS center 2016 Этапы разработки Определить место (Finding concurrency) Выбор алгоритма/шаблона (Algorithm structure) Отбор подходящих структур (Supporting structures)

Подробнее

4.13 Список аргументов переменной длины

4.13 Список аргументов переменной длины 4.13 Список аргументов переменной длины В JDK 5 была добавлена новая функциональная возможность, которая упрощает создание методов, принимающих переменное количество аргументов. Это средство получило название

Подробнее

М.А. Братуха, Н.В. Семенистый, А.Н. Мирошкин Донецкий национальный технический университет, г. Донецк кафедра компьютерной инженерии

М.А. Братуха, Н.В. Семенистый, А.Н. Мирошкин Донецкий национальный технический университет, г. Донецк кафедра компьютерной инженерии Секция 5. Web-технологии и компьютерный дизайн 283 УДК 004.5 М.А. Братуха, Н.В. Семенистый, А.Н. Мирошкин Донецкий национальный технический университет, г. Донецк кафедра компьютерной инженерии ПОСТРОЕНИЕ

Подробнее

Ancestor type: TOpenDialog Class Name: TOurOpenDialog Palette Page: Our Test

Ancestor type: TOpenDialog Class Name: TOurOpenDialog Palette Page: Our Test Перед созданием своего компонента нужно выбрать для него предка Кто же может быть предком для вашего компонента? Как правило, используются в виде предков TCom ponent, TControl, TWinControl, TGraphicControl,

Подробнее

Ответы на вопросы экзамена по курсу «Языки программирования»

Ответы на вопросы экзамена по курсу «Языки программирования» ы на вопросы экзамена по курсу «Языки программирования» 19.01.2015 В ответах курсивом выделены необязательные пояснения, которые можно опустить (особенно на экзамене) Вариант 1 Задача 1-1 Что означает

Подробнее

Руководство по созданию сайта. для системы управления сайтами АТИЛЕКТ.CMS 7.0

Руководство по созданию сайта. для системы управления сайтами АТИЛЕКТ.CMS 7.0 Руководство по созданию сайта для системы управления сайтами АТИЛЕКТ.CMS 7.0 1. Описание файловой структуры сайта Файловая структура сайта представлена в следующем виде: Рис. 1 Ниже представлено описание

Подробнее

Функциональное программирование

Функциональное программирование Функциональное программирование Разделяет проблему на отдельные части Все было хорошо, пока в 2007 году не появились первые многоядерные процессоры Расчлененная на отдельные части императивная программа

Подробнее

Ответы на вопросы экзамена по курсу «Языки программирования»

Ответы на вопросы экзамена по курсу «Языки программирования» ы на вопросы экзамена по курсу «Языки программирования» 09.01.2017 В ответах курсивом выделены необязательные пояснения, которые можно опустить (особенно на экзамене) Вариант 2 Задача 2-1 Есть ли ошибка

Подробнее

Лабораторная работа по выч.математике 2 «Методы численного интегрирования»

Лабораторная работа по выч.математике 2 «Методы численного интегрирования» CАНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ Лабораторная работа по выч.математике 2 «Методы численного интегрирования» Выполнил: Припадчев

Подробнее

выбрать команду «Бокс» (для построения первого параллелепипеда):

выбрать команду «Бокс» (для построения первого параллелепипеда): Существует два основных типа пространственных моделей AutoCADа: solids (сплошные объекты, тела твердотельное моделирование) и meshes (сетки, поверхности поверхностное моделирование). Данная учебно-методическая

Подробнее

Перегрузка функций. О перегрузке можно говорить только для функций из одной области описания

Перегрузка функций. О перегрузке можно говорить только для функций из одной области описания Перегрузка функций О перегрузке можно говорить только для функций из одной области описания Перегрузка: struct A { int f (int x); // две функции с одинаковым именем в одной области int f (char x); // описания;

Подробнее

ЛАБОРАТОРНЫЕ РАБОТЫ СЕМЕСТР 2

ЛАБОРАТОРНЫЕ РАБОТЫ СЕМЕСТР 2 ЛАБОРАТОРНЫЕ РАБОТЫ СЕМЕСТР 2 Лабораторная работа 1 Цель работы Изучить основы создания сетевых приложений, концепцию клиент-серверной архитектуры. Описание работы Сетевое приложение программа, либо комплекс

Подробнее

АВТОМАТИЗАЦИЯ РАБОТЫ ПРИЕМНОЙ КОМИССИИ. Чембаев Виталий Валерьевич. магистрант Мордовский государственный университет им. Н.П.

АВТОМАТИЗАЦИЯ РАБОТЫ ПРИЕМНОЙ КОМИССИИ. Чембаев Виталий Валерьевич. магистрант Мордовский государственный университет им. Н.П. ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRIORI. CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ» 6 2015 УДК 004 АВТОМАТИЗАЦИЯ РАБОТЫ ПРИЕМНОЙ КОМИССИИ Чембаев Виталий Валерьевич магистрант Мордовский государственный университет

Подробнее

Лекция 9. Списки, деки

Лекция 9. Списки, деки Название Лекция 9., деки Объектно-ориентированное программирование на C ++ 1 ноября 2009 г. Лекция 9 1 / 23 Концепция списка Начало Концепция списка Характеристики Перенос элементов Аналоги алгоритмов

Подробнее

Общие сведения о системе КОМПАС 3D

Общие сведения о системе КОМПАС 3D Лабораторная работа 1 Основные типы двумерных графических примитивов и операции с ними 4 часа Цель: ознакомиться с системой КОМПАС 2D; изучить основные типы геометрических примитивов; освоить приемы выполнения

Подробнее

Лекция 4: Стек. Очередь. КурносовМихаил Георгиевич к.т.н. доцент Кафедры вычислительных систем Сибирский государственный университет телекоммуникаций и информатики http://www.mkurnosov.net Контроль 1.

Подробнее

Статический анализ кода в IDE. Андрей Власовских разработчик PyCharm в JetBrains

Статический анализ кода в IDE. Андрей Власовских разработчик PyCharm в JetBrains Статический анализ кода в IDE Андрей Власовских разработчик PyCharm в JetBrains 2012-03-28 Статический анализ Анализ кода без его исполнения Динамика: fact(20)? Статика: fact(x) >= 0? public static int

Подробнее

КОМПЬЮТЕРНАЯ ГРАФИКА

КОМПЬЮТЕРНАЯ ГРАФИКА ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ»

Подробнее

DDD & TDD. Часть III. Слоеные пироги. Прочитать статью на сайте

DDD & TDD. Часть III. Слоеные пироги. Прочитать статью на сайте DDD & TDD. Часть III Прочитать статью на сайте Итак, у нас есть домен с необходимыми классами и сервисами. В целом можно генерировать и обрабатывать данные в любых количествах согласно написанным сервисам.

Подробнее

Содержание видеокурса «PHP 5 + MySQL для новичков»

Содержание видеокурса «PHP 5 + MySQL для новичков» Содержание видеокурса «PHP 5 + MySQL для новичков» Диск состоит из 2-х больших разделов: Теоретическая часть на примерах (проходим теоретические основы PHP на примерах); Разработка сайта (создаем, и шаг

Подробнее

Лекция по алгоритмам #12 Тема: BFS, Dijkstra

Лекция по алгоритмам #12 Тема: BFS, Dijkstra Лекция по алгоритмам #12 Тема: BFS, Dijkstra 25 ноября Собрано 27 декабря 2014 г. в 22:42 1. Обозначения n количество вершин в графе m количество ребер в графе 2. Поиск в ширину Задача найти кратчайший

Подробнее

Абстрактные классы и методы

Абстрактные классы и методы Абстрактные классы и методы Абстрактные методы Абстрактные классы Расширение абстрактных классов Интерфейсы «Множественное наследование» в Java Вложенные интерфейсы Абстрактные классы и методы В ряде ситуаций

Подробнее

Лабораторная работа 1. Вводное занятие

Лабораторная работа 1. Вводное занятие Лабораторная работа 1. Вводное занятие Открыть программу можно любым известным вам способом. В рабочем окне можно увидеть командную строку, инструментальную панель, служащую для быстрого вызова команд.

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках Лекция 15. Синтаксический анализ, обратная польская запись Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Рассматриваем

Подробнее

Создание графических примитивов и построение линий в CorelDRAW

Создание графических примитивов и построение линий в CorelDRAW Исаев Виталий Вячеславович, учитель МОУ лицея г. Ельца Создание графических примитивов и построение линий в CorelDRAW Цели урока: познакомить учащихся с приемами создания графических примитивов и линий

Подробнее