Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Бакалавриат | Министерство образования и науки Российской Федерации Владивостокский государственный университет экономики и сервиса Институт информатики, инноваций и бизнес-систем Кафедра информационных систем и прикладной информатики ПРОГРАММИРОВАНИЕ Модуль 1 Рабочая программа учебной дисциплины Основная образовательная программа 230400.62 ИНФОРМАЦИОННЫЕ СИСТЕМЫ 230700.62 ПРИКЛАДНАЯ ИНФОРМАТИКА Владивосток Издательство ВГУЭС 2012 |
ББК 65.9
Рабочая программа учебной дисциплины «Программирование на языке высокого уровня, модуль 1» составлена в соответствии с требованиями ООП 230700.62 Прикладная информатика, 230400.62 Информационные системы и технологии на базе ФГОС ВПО.
Автор-составитель: , доцент кафедры информационных систем и прикладной информатики
Утверждена на заседании кафедры информационных систем и прикладной информатики от 01.01.2001 г., протокол № 5, редакция 2012 г.
Рекомендована к изданию учебно-методической комиссией Института информатики, инноваций и бизнес-систем
© Издательство Владивостокского
государственного университета
экономики и сервиса, 2012
ВведеНИЕ
Умение писать программы, пользуясь наиболее популярными алгоритмическими языками, является основным показателем квалификации современного специалиста в области информационных технологий. Поэтому необходимость изучения языков программирования и соответствующих им приемов написания типовых программ очевидна для любых информационных специальностей высшей школы.
Язык программирования С++ является основным языком программирования, применяемым в профессиональной среде для создания исполняемых приложений. Он позволяет реализовать как процедурный, так и объектно-ориентированный подходы к программированию.
Задачи, которые принято решать процедурным программированием, характеризуются небольшим объемом команд и не требуют дополнительной внутренней организации. Деление программы на функции и модули является основой структурного программирования, как способа организации программ.
Объектно-ориентированный подход к программированию заключается в моделировании объектов реального мира, интерпретируемых как совокупность свойств и поведения. Примерами свойств для людей могут являться цвет глаз или место работы; для машин – мощность двигателя и количество дверей. В этом смысле свойства объектов равносильны данным в программах, они имеют определенное значение, например, красный для цвета глаз или 4 для количества дверей автомобиля. Поведение – это некоторое действие объекта в ответ на внешнее воздействие. Поведение сходно с функциями – функция вызывается, чтобы совершить какое-либо действие. В процедурных языках программирования данные и функции принципиально разделены, что затрудняет моделирование ими объектов реального мира. Основополагающей же идеей объектно-ориентированного подхода является объединение данных и функций, оперирующих этими данными, в одно целое, которое и называется объектом.
При разработке программы дисциплины «Программирование на языке высокого уровня, модель 1» учитывалось современное состояние развития языков программирования, соответствующих им интегрированных сред разработчика и технологии программирования.
1. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ
1.1. Цели освоения учебной дисциплины
Целью изучения дисциплины «Программирование на языке высокого уровня, модуль 1» является теоретическая и практическая подготовка студентов в области разработки программного обеспечения с использованием современного языка программирования С++, используемого профессиональной средой, поддерживающего объектно-ориентированную модель программирования. Знания, полученные в результате освоения дисциплины, помогут при разработке системных программных компонентов современных информационных и расчетных программ, в проектировании и реализации системных компонентов операционных систем в такой степени, чтобы студенты могли самостоятельно выбирать средства реализации, находить необходимые программные и технологические решения для практически важных системных и предметно-ориентированных задач. Основные задачи изучения дисциплины:
· приобретение студентами знаний о сущности процедурного и объектно-ориентированного подхода в программировании;
· ознакомление с технологиями создания новых типов данных в языке С++;
· приобретение практических навыков по использованию средств переопределения операций, обработки исключений.
1.2. Место учебной дисциплины в структуре ООП
(связь с другими дисциплинами)
Дисциплина «Программирование на языке высокого уровня, модуль 1» относится к дисциплинам математического и общенаучного цикла. Данная дисциплина базируется на компетенциях, полученных при изучении дисциплины «Информатика и программирование».
1.3. Компетенции обучающегося,
формируемые в результате освоения
учебной дисциплины
В результате изучения дисциплины будут сформированы следующие компетенции.
ООП | Вид компетенций | Компетенции |
1 | 2 | 3 |
230400.62 Информационные системы и технологии | Профессиональные | ПК-2 способность проводить техническое проектирование |
ПК-11 способность к проектированию базовых и прикладных информационных технологий | ||
ПК-18 способность использовать технологии разработки объектов профессиональной деятельности, в областях: машиностроение, приборостроение, наука, техника, образование, медицина, административное управление, юриспруденция, бизнес, предпринимательство, коммерция, менеджмент, банковские системы, безопасность информационных систем, управление технологическими процессами, механика, техническая физика, энергетика, ядерная энергетика, силовая электроника, металлургия, строительство, транспорт, железнодорожный транспорт, связь, телекоммуникации, управление инфокоммуникациями, почтовая связь, химическая промышленность, сельское хозяйство, текстильная и легкая промышленность, пищевая промышленность, медицинские и биотехнологии, горное дело, обеспечение безопасности подземных предприятий и производств, геология, нефтегазовая отрасль, геодезия и картография, геоинформационные системы, лесной комплекс, химико-лесной комплекс, экология, сфера сервиса, системы массовой информации, дизайн, медиаиндустрия, а также предприятия различного профиля и все виды деятельности в условиях экономики информационного общества |
1 | 2 | 3 |
230400.62 Информационные системы и технологии | Профессиональные | ПК-28 способность формировать новые конкурентоспособные идеи и реализовывать их в проектах |
ПК-34 готовность адаптировать приложения к изменяющимся условиям функционирования | ||
230700.62 Прикладная информатика | Профессиональные | ПК-10 способность применять к решению прикладных задач базовые алгоритмы обработки информации, выполнять оценку сложности алгоритмов, программировать и тестировать программы |
В результате освоения дисциплины у обучающегося должны быть сформированы знания, умения, владения.
ООП | Коды компетенций | Составляющие компетенции | |
1 | 2 | 3 | |
230400.62, Информационные системы и технологии | ПК-2 | Владения | программированием в средах современных информационных систем |
ПК-11 | Умения | использовать информационные технологии для решения различных прикладных задач в профессиональной деятельности | |
ПК-18 | Умения | использовать информационные технологии для решения различных прикладных задач в профессиональной деятельности | |
ПК-28 | Владения | языками процедурного и объектно-ориентированного программирования | |
ПК-34 | Умения | адаптировать возможности языков программирования к современным условиям; | |
230700.62, Прикладная информатика | ПК-10 | Знания | методы структурного и объектно-ориентированного программирования |
1 | 2 | 3 | |
230700.62, Прикладная информатика | ПК-10 | Умения | разрабатывать и отлаживать эффективные алгоритмы и программы с использованием современных технологий программирования |
Владения | навыками программирования в современных средах |
1.4. Основные виды занятий
и особенности их проведения
Объем и сроки изучения дисциплины:
Для студентов второго курса направления «Прикладная информатика» курс читается в осеннем семестре. Общая трудоемкость дисциплины составляет 5 зачетных единицы, 180 часов. Из них 68 час – аудиторной работы, 76 часов – самостоятельной работы.
Для студентов второго курса направления «Информационные системы и технологии» курс читается в осеннем семестре. Общая трудоемкость дисциплины составляет 4 зачетных единицы, 144 часов. Из них 68 часов – аудиторной работы, 40 часов – самостоятельной работы.
Удельный вес занятий, проводимых в интерактивных формах, составляет 20% от аудиторных занятий.
Промежуточная аттестация по курсу – экзамен.
1.5. Виды контроля и отчетности по дисциплине
Контроль успеваемости студентов осуществляется в соответствии с рейтинговой системой оценки знаний студентов.
Текущий контроль предполагает:
– проверку уровня самостоятельной подготовки студента при выполнении индивидуального задания;
– опросы и дискуссии по основным моментам изучаемой темы.
Промежуточный контроль предусматривает:
– проведение контрольных работ по блокам изученного материала;
– тестирование остаточных знаний (предварительные аттестации).
Итоговый контроль знаний студентов осуществляется при проведении экзамена в форме компьютерного тестирования.
2. СТРУКТУРА и СОДЕРЖАНИЕ
УЧЕБНОЙ ДИСЦИПЛИНЫ
2.1. Темы лекций
Тема 1. Основные принципы и понятия языка С++ (2 часа)
Процесс построения программы на языке С++. Создание консольного приложения. Основные встроенные типы данных. Переменные, типизированные константы. Представление вещественных переменных в памяти машины. Массивы, консольный ввод и вывод.
Тема 2. Основные операции языка С++ (2 часа)
Арифметические операции. Операции приведения типа. Операции инкремента и декремента. Условный оператор. Оператор выбора. Оператор перехода. Цикл с предусловием, цикл с постусловием, цикл повторений. Операторы прерывания циклов.
Тема 3. Функции в языке С++ (2 часа)
Тело функции, прототип функции. Вызов функции, расположенной в другом модуле с помощью заголовочного файла. Перегруженные функции. Область действия переменных и связанные с ней понятия. Создание программы из нескольких модулей. Условная компиляция кода, директивы условной компиляции.
Тема 4. Указатели и динамическая память (2 часа)
Понятие указателя. Операции взятия адреса и разыменования указателя. Выделение и освобождение динамической памяти и размещение в ней переменных. Указатели и массивы. Размещение массивов в памяти динамически. Передача параметров функций по ссылке и по указателю.
Тема 5. Работа с текстовыми и двоичными файлами средствами языка С++. Типы данных, определяемые программистом (2 часа)
Понятие файла, тип данных, обеспечивающий доступ к файлам. Открытие файла на чтение и запись в двоичном и текстовом режиме. Чтение и запись текстовых файлов, чтение и запись двоичных файлов. Типы данных, определяемые программистом: переименованные типы, перечислимые типы, структуры, объединения.
Тема 6. Визуальные приложения. Реакция приложений на события мыши и клавиатуры (2 часа)
Процессы и потоки, многозадачность. Сообщения и события. Окна. Положение размеры и оформление визуальных компонентов. Основные события мыши, основные события клавиатуры.
Тема 7. Разработка приложений со стандартными элементами оконного интерфейса (2 часа)
Компоненты меню. Компоненты редактирования текста. Диалоговые окна. Компоненты-переключатели. Компоненты скроллинга. Тип дата-время. Работа с таймером.
Тема 8. Графический инструментарий (2 часа)
Свойства и методы графических классов. Классы пера, кисти и шрифта, класс канвы. Функции, осуществляющие прорисовку основных геометрических фигур. Задание цвета. Операции над растровыми графическими объектами. Формирование растровых изображений в памяти.
Тема 9. Инструменты межпрограммного обмена данными. Многопоточные приложения (2 часа)
Свойства монитора. Формирование изображения на принтере. Буфер обмена. Динамическое создание визуальных компонентов. Инструменты межпрограммного обмена данными – динамический обмен данными и пайпы. Основные приему создания многопоточных приложений, синхронизация потоков.
Тема 10. Сущность объектно-ориентированного подхода в программировании (2 часа)
Классы, объекты, инкапсуляция, наследование, полиморфизм. Команды языка С++ для ввода и вывода. Структуры, перечисления, классы.
Тема 11. Классы и объекты (2 часа)
Понятие класса и объекта. Инкапсуляция данных и функций классов. Доступ к данным и функциям объектов. Статические и константные функции и данные классов. Конструкторы и деструкторы.
Тема 12. Перегрузка операций, преобразование типов (2 часа)
Сущность перегрузки операций, правила перегрузки операций. Операции, являющиеся и не являющиеся членами классов. Перегрузка унарных и бинарный операций. Особенности перегрузки операций инкремента, декремента и индексации. Операции преобразования типов. Возможности преобразования типов конструктором преобразования и перегрузкой операции присваивания.
Тема 13. Наследование (2 часа)
Мотив механизма наследования. Простое и сложное наследование. Ключ доступа при наследовании. Неопределенность при сложном наследовании. Особенности наследования конструкторов.
Тема 14. Виртуальные и дружественные функции (2 часа)
Виртуальные функции, их отличие от обычных. Мотив использования виртуальных функций. Чистые виртуальные функции, абстрактные классы. Дружественные функции, дружественные классы.
Тема 15. Шаблоны функций и классов, исключения (2 часа)
Шаблоны функций, их применение в типичных задачах программирования. Распространение функций с помощью шаблонов. Правила генерации кода компилятором из шаблона функции. Шаблон класса. Типы классов, удобные к реализации с помощью шаблонов. Управление исключениями. Исключения с параметрами.
Тема 16. Стандарты и хорошие практики кодирования на языках высокого уровня (2 часа)
Стандарты кодирования и их назначение. Основные правила и рекомендации по кодированию на языке С++. Запреты, требования, рекомендации.
2.2. Перечень тем практических/лабораторных занятий
Тема 1. Ввод и вывод в С++, основные операции языка (2 часа)
Разработка программы, реализующей консольный диалог с пользователем, арифметические операции с данными.
Тема 2. Циклы и условные операторы (2 часа)
Разработка программы, реализующей консольный диалог с пользователем, обработку данных в циклах, ветвление программы в зависимости от данных, веденных пользователем.
Тема 3. Функции и модули (4 часа)
Разработка программы, реализующей консольный диалог с пользователем, состоящей из нескольких модулей и функций.
Тема 4. Работа с динамической памятью (2 часа)
Разработка программы, реализующей консольный диалог с пользователем, выделение динамической памяти, размещение в ней данных, освобождение динамической памяти.
Тема 5. Чтение и запись файлов (2 часа)
Разработка программы, реализующей консольный диалог с пользователем, операции открытия файла на чтение и запись, операции чтения данных из файла, записи данных в файл.
Тема 6. Простое визуальное приложение (2 часа)
Разработка программы, реализующей визуальный диалог с пользователем, реакцию на события мыши и клавиатуры.
Тема 7. Стандартные компоненты оконного интерфейса (4 часа)
Разработка программы, реализующей визуальный диалог с пользователем, скроллинг, одиночный и множественный выбор.
Тема 8. Работа с графическим инструментарием (4 часа)
Разработка программы, реализующей визуальный диалог с пользователем, отрисовку и копирование изображений.
Тема 9. Межпрограммный обмен данными (2 часа)
Разработка программы, реализующей консольный или визуальный диалог с пользователем, обмен данными между процессами.
Тема 10. Многопоточные приложения (2 часа)
Разработка программы, реализующей визуальный диалог с пользователем, запуск и остановку потоков команд в рамках одного процесса.
Тема 11. Разработка новых типов данных (2 часа)
Разработка программы, иллюстрирующей работу с классами, имеющими элементы-данные и элементы-функции.
Тема 12. Перегрузка операций (2 часа)
Разработка программы, реализующей перегрузку операций (арифметических, индексации, преобразования типа).
Тема 13. Шаблоны функций (2 часа)
Разработка программы, содержащей шаблон функции, реализующий типовые задачи программирования, демонстрация работы шаблона функции на данных различных типов.
3. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
Программой дисциплины предусмотрено чтение лекций, проведение практических занятий. В течение изучения дисциплины студенты изучают на лекционных занятиях теоретический материал. На практических занятиях под руководством преподавателя, решают типовые задачи программирования, обсуждают возникающие вопросы и проблемы, разбирают и анализируют наиболее удачные практики программирования.
Для студентов в качестве самостоятельной работы предполагается подготовка докладов и сообщений, выполнения домашних заданий, групповая работа над задачами по программированию.
Работа над домашними заданиями идет с помощью специально разработанного ресурса http://vgrinyak. *****/
4. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
ПО ИЗУЧЕНИЮ КУРСА
4.1. Перечень и тематика самостоятельных работ студентов по дисциплине
1. Разработать класс для отрисовки графиков функций одной переменной. В качестве базового класса взять стандартный класс TImage. Добавить к нему необходимые методы и поля, чтобы имелась возможность задавать масштаб, размеры и цвет графика. Должны быть видны оси координат и подписи с обозначением единичных отрезков.
2. Разработать класс для отрисовки одномерных последовательностей числовых величин (массивов) в виде «столбиков». В качестве базового класса взять стандартный класс TImage. Добавить к нему необходимые методы и поля, чтобы имелась возможность задавать масштаб, размеры и цвет графика.
3. Разработать класс для отрисовки двумерных последовательностей числовых величин (массивов) в виде «столбиков». В качестве базового класса взять стандартный класс TImage. Добавить к нему необходимые методы и поля, чтобы имелась возможность задавать масштаб, размеры и цвет графика.
4. Разработать класс, представляющий собой визуальный компонент «Часы» в виде циферблата со стрелками. Определить для него необходимые методы и поля, чтобы имелась возможность задавать размеры и цвет часов.
5. Разработать класс, представляющий собой визуальный компонент «Часы» в виде текстовой строки 05:25:36. Определить для него необходимые методы и поля, чтобы имелась возможность задавать размеры и цвет часов.
6. Разработать класс, представляющий собой визуальный компонент для размещения на экране сменяющихся изображений. Определить для него необходимые методы и поля, чтобы имелась возможность задавать размеры, число изображений, загружать изображения из файлов, определять частоту их изменения и, возможно, стиль изменения.
7. Разработать класс, представляющий собой визуальный компонент типа «бьющееся сердце» в виде пульсирующего сердечка. Определить для него необходимые методы и поля, чтобы имелась возможность задавать размеры, цвет и частоту биения сердечка.
4.2. Контрольные вопросы
для самостоятельной оценки качества освоения
учебной дисциплины
1. Как называется защита данных класса от несанкционированного доступа другими функциями?
2. Как называется возможность выполнения оператором или функцией различных действий в зависимости от типа операндов?
3. Операция, выполняющая заданные действия не только над встроенным, но и над пользовательским типом данных называется:
а) полиморфической;
б) инкапсулированной;
в) классифицированной;
г) перегруженной.
4. Структура объединяет:
а) данные одного типа;
б) логически связанные данные;
в) целые именованные значения;
г) переменные.
5. Какой заголовочный файл нужно включить в исходный текст, чтобы использовать объекты cin и cout.
6. Напишите оператор, который получает с клавиатуры числовое значение и присваивает его переменной temp.
7. Опишите структуру, содержащую три переменные типа int с названиями hrs, mins и secs. Назовите структуру именем time.
8. Истинно ли следующее утверждение: при определении структуры выделяется память под переменную?
9. Напишите оператор, присваивающий полю hrs структурной переменной time2 значение, равное 11.
10. Сколько байтов памяти займут три структурные переменные типа time, если структура time содержит три поля типа int.
11. Истинно ли следующее утверждение: вы можете присвоить значение одной структурной переменной другой структурной переменной того же типа?
12. Перечисление объединяет
а) данные различных типов;
б) логически связанные переменные;
в) именованные целые числа;
г) константные значения.
13. Напишите оператор, описывающий перечисление с именем players и набором значений B1, B2, SS, B3, RF, CF, LF, P, C.
14. Считая, что перечисление players задано так. Как в предыдущем вопросе, определите переменные joe и tom типа players и присвойте им значения LF и P соответственно.
15. Первые три константы перечисляемого типа обычно представляются числами __, __, и __.
16. Напишите оператор, в котором объявляется перечисляемый тип speeds с константами obsolete, single и album. Присвойте этим константам целые значения 78, 45, 33.
17. Объясните, почему объявление в языке С++
enum isWord {NO, YES};
более удачно, чем
enum isWord {YES, NO};
18. В определении класса члены класса с ключевым словом private доступны:
а) любой функции программы;
б) в случае, если известен пароль;
в) методам этого класса;
г) только открытым членам класса.
19. Напишите определение класса studentgroup, включающего одно закрытое поле типа int с именем number и одним открытым методом с прототипом void add().
20. Истинно ли следующее утверждение: поля класса должны быть закрытыми.
21. Для чего при работе с объектами применяется операция «точка»?
22. Для чего при работе с объектами применяется операция «стрелка»?
23. Что такое конструктор?
24. Как задается имя конструктора?
25. Может ли класс иметь более одного конструктора?
26. Методу класса всегда доступны данные
а) объекта, членом которого он является;
б) класса, членом которого он является;
в) любого объекта класса, членом которого он является.
27. Что является единственным формальным различием между структурами и классами в С++?
28. Пусть определены три объекта класса. Сколько копий полей класса содержится в памяти? Сколько копий методов класса?
29. Константный метод, вызываемый для объекта класса
а) может изменить как константные, так и неконстантные поля;
б) может изменить только неконстантные поля;
в) может изменять только константные поля;
г) не может изменять никакие поля.
30. Для чего нужно объявление поля класса со словом mutable
31. Что такое деструктор
32. Какие свойства приобретает поле данных класса, объявленное как static
33. В чем состоит преимущество определения конструктора со списком инициализации элементов?
34. Для чего необходимо переопределять операции new и delete.
35. Какие свойства приобретает элемент-функция класса, если она объявлена как статическая
36. Что такое указатель this?
37. Для чего в С++ применяется перегрузка операций?
38. Истинно ли следующее утверждение: операция >= может быть перегружена?
39. Сколько аргументов требуется для определения перегруженной унарной операции?
40. Сколько аргументов требуется для определения перегруженной бинарной операции?
41. Чем отличается действие операции ++ в префиксной форме от её действия в постфиксной форме?
42. Истинно ли следующее утверждение: перегруженная операция всегда требует на один аргумент меньше, чем количество операндов?
43. Когда перегружается операция арифметического присваивания, то результат
а) передается объекту справа от операции;
б) передается объекту слева от операции;
в) передается объекту, вызвавшему операцию;
г) должен быть возвращен.
44. Какой механизм преобразования от определенного пользователем класса к встроенному типу может быть использован в языке С++?
45. Какой механизм преобразования от встроенного типа данных к определенному пользователем может быть использован в языке С++?
46. Истинно ли следующее утверждение: компилятор не выдаст сообщение об ошибке, если вы перегрузите операцию * для выполнения деления?
47. Если объект objA принадлежит классу A, объект objB принадлежит классу B, и требуется записать objA = objB, поместив при этом функцию преобразования в класс A, то какую разновидность процедуры преобразования типа можно использовать?
48. Существуют ли операции, которые нельзя перегружать?
49. Что такое конструктор преобразования?
50. Для чего используется ключевое слово explicit
51. В чем состоит назначение наследования?
52. Когда программисту-разработчику целесообразно прибегнуть к наследованию?
53. Напишите первую строку описания класса Child, который является public-производным от класса Parent.
54. Верно ли утверждение: создание производного класса требует коренных изменений в базовом классе?
55. Члены базового класса, для доступа к ним методов производного класса должны быть объявлены как public или ________.
56. Пусть базовый класс содержит метод basefunc(), а производный класс не имеет такого метода. Может ли объект производного класса иметь доступ к методу basefunc().
57. Истинно ли следующее утверждение: если конструктор производного класса не определен, то объекты этого класса будут использовать конструкторы базового класса?
58. Как используется оператор разрешения области действия для разрешения неопределенностей?
59. Истинно ли следующее утверждение: иногда полезно создать класс, объектов которого никогда не будет создано?
60. Пусть класс Derv является дочерним от класса Base. Пусть определена переменная типа Derv, расположенная в функции main(). Через эту переменную можно получить доступ к
а) членам класса Derv, объявленным как public;
б) членам класса Derv, объявленным как protected;
в) членам класса Derv, объявленным как private;
г) членам класса Base, объявленным как public;
д) членам класса Base, объявленным как protected;
е) членам класса Base, объявленным как private.
61. Пусть существует класс Derv, производный от класса Base. Напишите объявление конструктора производного класса, принимающего один аргумент и передающего его в конструктор базового класса.
62. Истинно ли следующее утверждение: невозможно сделать объект одного класса членом другого класса?
63. Какие возможности перед программистом открывают виртуальные функции?
64. Истинно ли утверждение о том, что указатель на базовый класс может ссылаться на объекты порожденного класса?
65. Пусть указатель p ссылается на объекты базового класса и содержит адрес объекта порожденного класса. Пусть в обоих этих классах имеется невиртуальный метод ding(). Тогда выражение p->ding() вызовет метод ding() из ……… класса.
66. Напишите описание для виртуальной функции dang(), возвращающей результат void и имеющей аргумент типа int.
67. Пусть указатель p ссылается на объекты базового класса и содержит адрес объекта порожденного класса. Пусть в обоих этих классах имеется виртуальный метод ding(). Тогда выражение p->ding() вызовет метод ding() из ……… класса.
68. Напишите описание для чистой виртуальной функции aragorn(), не возвращающей значений и не имеющей аргументов.
69. Чистая виртуальная функция, это виртуальная функция, которая:
а) делает свой класс абстрактным;
б) не возвращает результата;
в) используется в базовом классе;
г) не имеет аргументов.
70. Напишите определение массива parr, содержащего 10 указателей на объекты класса dong.
71. Абстрактный класс используется тогда, когда
а) не планируется создавать порожденные классы;
б) есть несколько связей между двумя порожденными классами
в) необходимо запретить создавать объекты класса
72. Истинно ли утверждение о том, что дружественная функция имеет доступ к скрытым данным класса, даже не являясь его методом?
73. Напишите описание дружественной функции harry(), возвращающей результат типа void и имеющей один аргумент класса george.
74. Ключевое слово friend появляется в:
а) классе, разрешающем доступ к другому классу;
б) классе, требующем доступа к другому классу;
в) разделе скрытых компонентов класса;
г) разделе общедоступных компонентов класса.
75. Шаблоны позволяют удобным способом создать семейство
а) переменных;
б) функций;
в) классов;
г) программ.
76. Истинно ли утверждение, что шаблоны автоматически создают разные версии класса в зависимости от введенных пользователем данных?
77. Напишите шаблон функции, всегда возвращающей свой аргумент, умноженный на 2.
78. Шаблонный класс:
а) работает с разными типами данных;
б) генерирует идентичные объекты;
в) генерирует классы с различным числом методов.
79. Истинно ли утверждение, что шаблон может иметь несколько аргументов?
80. Реальный код шаблонной функции генерируется при:
а) объявлении функции в исходном коде;
б) вызове функции в исходном коде;
в) запуске функции во время работы программы.
7. В каких случаях целесообразно прибегать к шаблонным классам?
81. При работе с механизмом исключений в С++ используются следующие ключевые слова: ____, ______, ____.
82. Напишите выражение, генерирующее исключение, используя класс BoundsError.
83. Исключения передаются
а) из блока-ловушки в блок повторных попыток;
б) из выражения, создавшего исключительную ситуацию, в блок повторных попыток;
в) из точки, где возникла ошибка, в блок-ловушку.
84. Истинно ли утверждение о том, что программа может продолжить свое выполнение после возникновения исключительной ситуации?
4.3. Методические рекомендации по организации СРС
Для студентов в качестве самостоятельной работы предполагается подготовка докладов и сообщений, выполнения домашних заданий, групповая работа над задачами по программированию.
4.4. Рекомендации по работе с литературой
В процессе изучения дисциплины «Программирование на языке высокого уровня», для того чтобы представлять основные понятия, сущность и сферу применения языка программирования С++ необходимо воспользоваться учебником Р. Лафоре «Объектно-ориентированное программирование С++».
Остальная рекомендуемая литература поможет студентам выполнять задания самостоятельной работы.
5. УЧЕБНО-МЕТОДИЧЕСКОЕ и ИНФОРМАЦИОННОЕ
ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
5.1. Основная литература
Иванова -ориентированное программирование: учебник для студ. вузов / , , ; под ред. . – 3-е изд., стереотип. – М.: Изд-во МГТУ им. мана, 2008.
С++. Объектно-ориентированное программирование. Задачи и упражнения / , , . – СПб.: Питер, 2007.
Объектно-ориентированное программирование в С++ / Р. Лафоре. – 4-е изд. – СПб.: Питер, 2010.
Павловская -ориентированное программирование: практикум / , . – СПб.: Питер, 2007.
Хорев объектно-ориентированного программирования / . – 2-е изд. – М., 2009.
5.2. Дополнительная литература
Объектно-ориентированное программирование на PHP 5 / Питер Ловейн. – М.: НТ Пресс, 2007.
Пышкин и технология программирования. Основные концепции и механизмы объектно-ориентированного программирования: учеб. пособие для студ. вузов / . – СПб.: БХВ-Петербург, 2005.
5.3. Интернет-ресурсы
Программирование на языке С в Microsoft Visual Studio https:// www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8676&Login=&c1= en-us&c2=0
Самый лучший программист – http://vgrinyak. *****/
Структуры и алгоритмы компьютерной обработки данных https:// www. /curriculum/pfv. aspx? ID=8672&Login=&c1= en-us&c2=0
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ
ДИСЦИПЛИНЫ
а) программное обеспечение: MS Office, компиляторы языков программирования C++ (С++ Builder, Turbo C++ Explorer, devcpp)
б) техническое и лабораторное обеспечение – компьютерный класс, аудитория с презентационным оборудованием.
7. СЛОВАРЬ ОСНОВНЫХ ТЕРМИНОВ
Указатель – переменная, хранящая в качестве значения адрес в памяти.
Класс – тип данных, включающий в себя элементы-данные и элементы-функции (методы).
Объект – переменная, созданная как представитель класса, то есть имеющая соответствующий классу тип.
Инкапсуляция – способ ограничения доступа к данным объекта. Если данные объекта инкапсулированы, то доступ к ним имеют лишь функции – методы класса.
Наследование – способ создания дочерних или производных классов на основе родительских или базовых классов. Базовый класс содержит элементы, общие для производных классов. При простом наследовании дочерний класс создается из единственного родительского путем добавления к нему новых методов и данных. При сложном наследовании у дочернего класса может быть два родителя и у него, таким образом, будут присутствовать методы и функции обоих родителей.
Полиморфизм – способ использования функций, когда они выполняют различные действия, в зависимости от того, с какими типами данных они работают.
Содержание
ВведеНИЕ
1. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ
1.1. Цели освоения учебной дисциплины
1.2. Место учебной дисциплины в структуре ООП
(связь с другими дисциплинами)
1.3. Компетенции обучающегося, формируемые в результате освоения учебной дисциплины
1.4. Основные виды занятий и особенности их проведения
1.5. Виды контроля и отчетности по дисциплине
2. СТРУКТУРА и СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ
2.1. Темы лекций
2.2. Перечень тем практических/лабораторных занятий
3. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
4. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ КУРСА
4.1. Перечень и тематика самостоятельных работ студентов
по дисциплине
4.2. Контрольные вопросы для самостоятельной оценки качества освоения учебной дисциплины
4.3. Методические рекомендации по организации СРС
4.4. Рекомендации по работе с литературой
5. УЧЕБНО-МЕТОДИЧЕСКОЕ и ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
5.1. Основная литература
5.2. Дополнительная литература
5.3. Интернет-ресурсы
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
7. СЛОВАРЬ ОСНОВНЫХ ТЕРМИНОВ
Учебное издание
Гриняк Виктор Михайлович
ПРОГРАММИРОВАНИЕ
НА ЯЗЫКЕ
ВЫСОКОГО УРОВНЯ
Модуль 1
Рабочая программа учебной дисциплины
Основная образовательная программа
230400.62 ИНФОРМАЦИОННЫЕ СИСТЕМЫ
И ТЕХНОЛОГИИ
230700.62 ПРИКЛАДНАЯ ИНФОРМАТИКА
Компьютерная верстка
Подписано в печать 10.07.2012. Формат 60´84/16.
Бумага писчая. Печать офсетная. Усл. печ. л. 1,4.
Уч.-изд. л. 1,3. Тираж 100 экз. Заказ
______________________________________________________________
Издательство Владивостокского государственного университета
экономики и сервиса
Владивосток, ул. Гоголя, 41
Отпечатано во множительном участке ВГУЭС
Владивосток, ул. Гоголя, 41


