Лекции (6) (Презентации лекций (PDF))

PDF-файл Лекции (6) (Презентации лекций (PDF)) Практикум (Прикладное программное обеспечение и системы программирования) (37993): Лекции - 4 семестрЛекции (6) (Презентации лекций (PDF)) - PDF (37993) - СтудИзба2019-05-09СтудИзба

Описание файла

Файл "Лекции (6)" внутри архива находится в папке "Презентации лекций (PDF)". PDF-файл из архива "Презентации лекций (PDF)", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Список литературы1.И. А. Волкова, А. В. Иванов, Л. Е. Карпов. Основы объектно-ориентированногопрограммирования. Язык программирования С++. Учебное пособие для студентов 2курса (969.27 Кбайт). — М.: Издательский отдел факультета ВМК МГУ, 2011.2.И. А. Волкова, А. А.

Вылиток, Т. В. Руденко. Формальные грамматики и языки. Элементытеории трансляции (3-е издание) (1.59 Мбайт). — М.: Изд-во МГУ, 2009 (версия от06.02.2010).3.И. А. Волкова, И. Г. Головин, Л. Е. Карпов. Системы программирования (Учебное пособие)(1.2 Мбайт). — М.: Издательский отдел факультета ВМиК МГУ, 2009.4.И. А. Волкова, А. А.

Вылиток, Л. Е. Карпов. Сборник задач и упражнений по языку С++(Учебное пособие для студентов 2 курса). – М.: Издательский отдел факультета ВМК МГУ,2013.5.Д. Грис. Конструирование компиляторов для цифровых вычислительных машин. —М.: Мир, 1975.6.Ф. Льюис, Д. Розенкранц, Р. Стирнз. Теоретические основы проектированиякомпиляторов. — М.: Мир, 1979.7.А. Ахо, Дж. Ульман. Теория синтаксического анализа, перевода и компиляции, т.

1,2 —М.: Мир, 1979.8.Л. Бек. Введение в системное программирование. — М.: Мир, 1988.9.А. Ахо, Р. Сети, Дж. Ульман. Компиляторы. — М.: Изд. дом «Вильямс», 2001.(Шифр в библиотеке МГУ: 5ВГ66 А-955)10. А. В. Гордеев, А. Ю. Молчанов. Системное программное обеспечение. — СПб.: Питер, 2001111.Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложенийна С++ (zip), 2-е издание.

— М. СПб.: «Издательство Бином» — «Невский диалект»,1998.12.А. Элиенс. Принципы объектно-ориентированной разработки программ, 2-е издание. —М.: Издательский дом «Вильямс», 2002.13.И. О. Одинцов. Профессиональное программирование. Системный подход. — СПб.: БХВПетербург, 2002.14.Н. Н. Мансуров, О. Л. Майлингова. Методы формальной спецификации программ: языкиMSC и SDL. — М.: Изд-во «Диалог-МГУ», 1998.15.А.

М. Вендров. CASE-технологии. Современные методы и средства проектированияинформационных систем. — Электронная публикация на CITFORUM.RU16.М. Фаулер, К. Скотт. UML в кратком изложении. Применение стандартного языкаобъектного моделирования. — М.: Мир, 1999.17.Г. Майерс. Искусство тестирования программ. — М.: «Финансы и статистика», 198218.С. Канер, Дж.

Фолк, Е. К. Нгуен. Тестирование программного обеспечения. — М.: «DiaSoft»,200119.Дж. Макгрегор, Д. Сайкс. Тестирование объектно-ориентированного программногообеспечения. Практическое пособие. — М.: «DiaSoft», 2002.20.Б. Страуструп. Язык программирования С++. Специальное издание. — М.: Издательство«БИНОМ», 2001.21.Б. Страуструп. Программирование: принципы и практика использования С++.:Пер. с англ.

– М. ООО «И.Д.Вильямс», 2011. – 1248 с.22.Г. Шилдт. Самоучитель С++. 3-е изд. — СПб: БХВ-Петербург, 2002.2Электронные ссылкиМатериалы по курсу можно найти на сайте:http://cmcmsu.no-ip.info/2course/Некоторые электронные ссылки на полезные книги:http://povt.zaural.ru/edocs/uml/content.htm —Г Буч, Д Рамбо, А Джекобсон «Язык UML. Руководство пользователя»http://vmk.ugatu.ac.ru/book/buch/index.htm —Гради Буч «Объектно-ориентированный анализ и проектированиес примерами приложений на С++»3Язык C++С++ позволяет справиться с возрастающейсложностью программ (в отличие от С).Автор — Бьярне Страуструп.Стандарты (комитета по стандартизации ANSI) – 1998,2011.С++:• лучше С,• поддерживает абстракции данных,• поддерживает объектно-ориентированное• программирование (ООП).4Парадигмы программированияВсе программы состоят из кода и данных и каким-либо образомконцептуально организованы вокруг своего кода и\или данных.Основные парадигмы (технологии) программированияопределяют способ построения программ: процедурно-ориентированная (при кот.

программа — это рядпоследовательно выполняемых операций, причём код воздействует наданные, например в программах на С), объектно-ориентированная (при кот. программа состоит из объектов —программных сущностей, объединяющих в себе код и данные,взаимодействующих друг с другом через определенные интерфейсы, приэтом доступ к коду и данным объекта осуществляется только через самобъект, т.е. данные определяют выполняемый код), функциональная, логическая.5Постулаты ООП.Абстракция — центральное понятие ООП.Абстракция позволяет программисту справиться сосложностями решаемых им задач.Мощный способ создания абстракций –иерархическая классификациятиповая(структура классов)структурная(структура объектов)Основные механизмы (постулаты) ООП:- инкапсуляция,- наследование,- полиморфизм.6ИНКАПСУЛЯЦИЯИнкапсуляция — механизм, связывающий вместе код и данные, которыми онманипулирует; защищающий их от произвольного доступа со стороныдругого кода, внешнего по отношениюк рассматриваемому.Доступ к коду и данным жестко контролируется интерфейсом.Основой инкапсуляции является класс.Класс — это механизм (пользовательский тип данных) длясоздания объектов.Объект класса — переменная типа класс или экземпляр класса.Любой объект характеризуется состоянием (значениями полейданных) и поведением (операциями над объектами,задаваемыми определенными в классе функциями, которыеназывают методами класса).7НАСЛЕДОВАНИЕНаследование — механизм, с помощью которого один объект(производного класса) приобретает свойства другого объекта(родительского, базового класса).Наследование позволяет объекту производного класса наследоватьот своего родителя общие атрибуты, а для себя определять только техарактеристики, которые делают его уникальным внутри класса.Производный класс конкретизирует, в общем случае расширяетбазовый класс.Наследование поддерживает концепцию иерархическойклассификации.Новый класс не обязательно описывать, начиная с нуля, чтосущественно упрощает работу программиста.8ПОЛИМОРФИЗМПолиморфизм — механизм, позволяющий использовать один итот же интерфейс для общего класса действий.В общем случае концепция полиморфизма выражаетсяс помощью фразы «один интерфейс — много методов»Выбор конкретного действия (метода) применительнок конкретной ситуации возлагается на компилятор.Программисту же достаточно запомнить и применять одининтерфейс, вместо нескольких, что также упрощает его работу.Различаются следующие виды полиморфизма:- статический (на этапе компиляции, с помощью перегрузкифункций),- динамический (во время выполнения программы,реализуется с помощью виртуальных функций) и- параметрический (на этапе компиляции, с использованиеммеханизма шаблонов).9Декомпозиция задачиПри программировании в объектно-ориентированном стилена первое место выходит проектирование решения задачи,т.е определение того, какие классы и объекты будутиспользоваться в программе, каковы их свойства и способывзаимодействия.Как правило, при этом необходимо произвестидекомпозицию задачи.Декомпозиция — научный метод, использующий структурузадачи и позволяющий разбить решение одной большойзадачи на решения серии меньших задач, возможновзаимосвязанных, но более простых.10Синтаксис классаclass имя_класса {[private:]закрытые члены класса (функции, типы и поля-данные)public:открытые члены класса (функции, типы и поля-данные)protected:защищенные члены класса} список_объектов;Описание объектов — экземпляров класса:имя_класса список объектов;// служ.

слово class не требуетсяКлассы С++ отличаются от структур С++ только правилами определения поумолчанию:- прав доступа к первой области доступа членов класса и- типа наследования:для структур — public,для классов — private.11Члены класса• Члены-данные;• Члены-функции (методы);• Члены-типы — вложенные пользовательские типы,Правила доступа к членам класса и поиска их имен единообразны для всехчленов класса и не зависят от их вида.Ex.:class X {doublepublic:void fint a;enum {private:structt;// данное// метод// данноеe1, e2, e3 } g;( );inner {int i, j;void g ( );// вложенный класс};inner c;};...X x;x.a = 0; x.g = X::e1;12Действия над объектами классовНад объектами класса можно производить следующиедействия: присваивать объекты одного и того же класса (при этомпроизводится почленное копирование членов данных) получать адрес объекта с помощью операции & передавать объект в качестве формального параметрав функцию возвращать объект в качестве результата работы функции. осуществлять доступ к элементам объекта с помощьюоперации « .

», а если используется указатель на объект, тос помощью операции «->» вызывать методы класса, определяющие поведениеобъекта13Пример класса...class A {int a;public:void set_a (int n);int get_a ( ) const { return a; }// Константные методы класса// не изменяют состояние своего объекта};void A::set_a (int n) {a = n;}int main () {A obj1, obj2;obj1.set_a(5);obj2.set_a(10);cout << obj1.get_a ( ) << '\n';cout << obj2.get_a ( ) << endl;return 0;}14АТД (абстрактный тип данных)АТД называют тип данных с полностью скрытой(инкапсулированной) структурой, а работа спеременными такого типа происходит только черезспециальные, предназначенные для этого функции.В С++ АТД реализуется с помощью классов(структур), в которых нет открытых членов-данных.Класс А из предыдущего примера являетсяабстрактным типом данных.15О терминологииОператор (statement) — действие, задаваемое некоторойконструкцией языка.Операция (operator, для обозначения операций языка: « + »,« * », « = », и др.) — используются в выражениях.Определение (описание) переменной (definition) — при этомотводится память, производится инициализация,определение возможно только 1 раз.Объявление переменной (declaration) — дает информациюкомпилятору о том, что эта переменная где-то в программеописана.Для преобразования типов используются два термина —преобразование (conversion) и приведение (cast).16Некоторые отличия С++ от С Введен логический тип bool и константы логического типа true и false. В С++ отсутствуют типы по умолчанию(например, обязательно int main () {…} ). Локальные переменные можно описывать в любом месте программы,в частности внутри цикла for.

Главное, чтобы они были описаны до ихпервого использования.По стандарту С++ переменная, описанная внутри цикла for, локализуетсяв теле этого цикла. В С++ переработана стандартная библиотека.В частности, в стандартной библиотеке С++ файл заголовковввода/вывода назвается <iostream>, введены классы, соответствующиестандартным (консольным) потокам ввода — класс istream — и вывода —класс ostream, а также объекты cin (класса istream) и cout и cerr (классаostream).Через эти объекты доступны операции ввода >> из стандартного потокаввода (например, cin >> x ;), и вывода << в стандартный поток вывода(например, cout << "string" << S << '\n';), при использовании которых ненадо указывать никакие форматирующие элементы.17Работа с динамической памятьюint *p,*m;p = new int;илиp = new int (1);илиm = new int [10];— для массива из 10 элементов;Массивы, создаваемые в динамической памятиинициализировать нельзя.…delete p;илиdelete [ ] m;— для удаления всего массива.18Значения параметров функциипо умолчаниюПример:void f (int a,int b = 0, int c = 1);Обращения к функции:f(3)// a = 3, b = 0, c = 1f(3, 4)// a = 3, b = 4, c = 1f(3, 4, 5)// a = 3, b = 4, c = 519Пространства именПространства имен вводятся только на уровне файла, но не внутри блока.namespace std {// объявления, определения}Ex:std::cout << std::endl;namespace NS {char name [ 10 ] ;namespace SP {int var = 3;}}Ex:...

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
429
Средний доход
с одного платного файла
Обучение Подробнее