ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · •...

29
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Южно-Уральский государственный университет Кафедра экономико-математических методов и статистики Ч48.я7 П168 Т.А. Панюкова ПРОГРАММИРОВАНИЕ Руководство по изучению дисциплины Учебная программа по дисциплине (Для студентов специальностей «Статистика» и «Математические методы в экономике») Челябинск Издательство ЮУрГУ 2007

Upload: others

Post on 14-Sep-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию Южно-Уральский государственный университет

Кафедра экономико-математических методов и статистики Ч48.я7 П168

Т.А. Панюкова

ПРОГРАММИРОВАНИЕ

Руководство по изучению дисциплины Учебная программа по дисциплине

(Для студентов специальностей «Статистика»

и «Математические методы в экономике»)

Челябинск Издательство ЮУрГУ

2007

Page 2: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

ББК Ч481.266.3.я7 П168

Одобрено

учебно-методической комиссией факультета экономики и управления

Рецензент: А.Н. Тырсин

П168 Панюкова Т.А. ПРОГРАММИРОВАНИЕ: Руководство по изучению дисциплины. Учебная программа по дисциплине. (Для студентов специаль-ностей «Математические методы в экономике» и «Статистика»).– Челябинск: Изд-во ЮУрГУ, 2007. – 29 с.

Руководство по изучению дисциплины содержит перечень основных тем, практических и лабораторных работ, а также список контрольных во-просов по дисциплине «Алгоритмизация и языки программирования», чи-таемой студентам специальности 080116 – «Математические методы в экономике». Приведена учебная программа дисциплины. Данные методические материалы до-полняют «Практикум по программированию» (Для студентов специальностей «Статистика» и «Математические методы в экономике») / составитель Т.А. Паню-кова, А.В.Панюков. – Челябинск: Изд-во ЮУрГУ, 2007. – 74 с.), который содер-жит набор задач для выполнения лабораторных работ.

Материалы настоящих методических указаний используются также в дисци-плине «Программирование», читаемой студентам специальности 080601 – «Стати-стика», а также могут быть полезны студентам других специальностей, имеющих в своем учебном плане данную дисциплину.

ББК Ч481.266.3.я7

Page 3: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

ЦЕЛИ И ЗАДАЧИ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ Цели: формирование у будущих специалистов практических навыков по

основам программирования на языке С для решения экономических и рас-четных задач, обучение работе с научно-технической документацией по про-граммному обеспечению ПЭВМ.

Задачи: Задачей изучения дисциплины «Алгоритмические языки и про-граммирование» является реализация требований, установленных в квали-фикационной характеристике, при подготовке специалистов в области ис-пользования вычислительной техники и ее программного обеспечения.

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

ПЕРЕЧЕНЬ ОСНОВНЫХ ТЕМ

Тема 1. Введение в структурное программирование

Задачи курса и порядок его изучения. Роль курса в формировании спе-циалистов согласно квалификационной характеристике специалиста.

Цель. Дать общее представление об алгоритмах и алгоритмических про-цессах. Ввести понятия алгоритмизации, алгоритма, данных, их типов, кон-стант и переменных. Рассмотреть общие принципы построения алгоритма и написания программы. Привести общие свойства алгоритмов, критерии каче-ства ПО.

Изучив данную тему, студент должен знать основные определения и понятия курса.

При изучении темы необходимо акцентировать внимание на понятиях: • алгоритм; • алгоритмизация; • данные; • вычислительный процесс; • алгоритмический язык; • транслятор; • компилятор.

Для самооценки темы 1 ответить на вопросы: 1. Что такое данные? 2. Что такое программа? 3. Что такое алгоритм? 4. Что такое алгоритмический процесс? 5. Перечислить свойства алгоритмов. 6. Чем отличается компилятор от интерпретатора?

Page 4: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

7. Дать краткую характеристику различных типов вычислительных про-цессов.

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

Тема 2. Средства изображения алгоритмов и базовые алгоритмиче-

ские структуры Цель. Изучить различные средства изображения алгоритмов. • Изобразительные средства алгоритмов: словесный, формульно-

словесный, блок-схемный, псевдокод, структурные диаграммы, языки про-граммирования.

• Порядок разработки схем реализации алгоритмов. • Базовые канонические структуры, используемые при проектировании

алгоритмов линейных, ветвящихся и циклических вычислительных процес-сов, их виды и способы изображения.

• Правила построения схем алгоритмов. Изучив данную тему, студент должен: • знать принципы разработки иерархических схем; основные базовые

структуры для изображения алгоритмов; • уметь изображать алгоритм с помощью псевдокода, блок-схемы и

структурированной схемы; • приобрести навыки изображения алгоритмов. При изучении темы 2 необходимо акцентировать внимание на поняти-

ях блок-схемы, структурной схемы, псевдокода, структурированной схемы. Для самооценки темы 2 ответить на вопросы. 1. Особенности словесного способа изображения алгоритмов. 2. Особенности формульно-словесного способа изображения алгорит-

мов. 3. Особенности изображения алгоритмов с помощью операторных схем. 4. Особенности изображения алгоритмов с помощью структурных диа-

грамм. 5. Особенности блок-схемного способа изображения алгоритмов. 6. Перечислить основные символы, использующиеся при составлении

блок-схем и канонические структуры для проектирования алгоритма.

Тема 3. Простейшие программы на языке С++ Цель. Иметь общее представление о языках программирования и роли и

места среди них языка C++, получить навыки работы в среде программиро-вания Borland C++ Builder.

• Определение языка программирования. Классификация языков про-граммирования.

• Общая характеристика языка С++.

Page 5: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• Описание структуры программы на языке С++. • Встроенный текстовый редактор. Подготовка, отладка и выполнение

консольных приложений. • Директивы компилятора и их включение в исходный текст програм-

мы. Изучив тему 3, студент должен: • знать особенности и назначение различных языков программирова-

ния; • ознакомиться с приемами работы в среде программирования Borland

C++ Builder; • приобрести навыки работы в среде программирования Borland C++

Builder. При изучении темы 3 необходимо: • акцентировать внимание на понятиях машинно-ориентированных

языков программирования, языков высокого уровня, проблемно-ориентированных языков программирования;

• освоить понятия текстового редактора, консольного приложения и директив компилятора.

Для самооценки темы 3 ответить на вопросы. 1. Дать определение языка программирования. 2. Дать классификационную характеристику языков программирования. 3. Определить особенности языков высокого уровня. 4. Перечислить особенности машинно-ориентированных языков про-

граммирования. 5. Перечислить основные особенности языка С++. 6. Дать понятие текстового редактора. Отметить назначение текстового

редактора. 7. Перечислить основные команды встроенного текстового редактора,

особенности оформления программ во встроенном текстовом редак-торе.

8. Перечислить особенности пошаговой отладки программ. 9. Назначение основных директив компилятора. 10. Перенос текста программы из среды Borland C++ Builder в MS Word

для последующей корректировки и печати.

Тема 4. Состав, алфавит языка, идентификаторы, ключевые слова, опе-рации . Типы данных С++. Выражения

Цель. Получить представление об алфавите языка и используемых клю-чевых словах.

• Алфавит языка С++. • Ключевые слова и идентификаторы. • Операции и их приоритеты. • Классификация типов данных. • Стандартные типы.

Page 6: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• Константы. • Скалярные переменные. • Арифметические выражения. Логические выражения. Изучив данную тему, студент должен: • знать особенности задания имен и определения операций, особенно-

сти использования различных типов данных; • уметь правильно записывать идентификаторы и расставлять приори-

теты операций; • уметь правильно и рационально записывать арифметические, логиче-

ские и строковые выражения; • иметь представление о преобразовании типов. При изучении темы 4 необходимо акцентировать внимание на поняти-

ях: • алфавит языка, идентификатор, ключевое слово, бинарные, унарные и

тернарные операции, приоритет операции; • целые, вещественные, символьные и логические типы; • переменная, константа; • арифметическое и логическое выражения; • преобразование типов. Необходимо решить задачу 1 семестрового задания за 1 семестр. Для самооценки темы 4 ответить на вопросы. 1. Алфавит языка С++. 2. Что такое идентификатор? Привести правила выбора идентификато-

ров. 3. Что такое ключевое слово? Для чего используются ключевые слова? 4. Перечислить типы операций, особенности построения арифметиче-

ских и логических выражений в С++. 5. Привести приоритеты различных операций. 6. Классификация типов данных. 7. Привести описания целых и вещественных типов. 8. Алгоритм преобразования типов. Тема 5. Базовые конструкции структурного программирования Цель. Научиться использовать условный оператор и оператор выбора

для организации ветвящихся процессов. Выработать навыки программирова-ния циклических процессов.

• Организация простейшего ввода/вывода данных. • Условный оператор и его применение в организации ветвлений. • Оператор выбора (переключатель). Пустой оператор. • Оператор for. • Оператор цикла с предусловием. • Оператор цикла с постусловием. • Организация вложенных циклов. • Операторы передачи управления.

Page 7: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Изучив данную тему, студент должен: • знать правила записи условных операторов и операторов выбора; • уметь использовать условный оператор и оператор выбора для орга-

низации ветвящихся процессов; • приобрести навыки программирования для ветвящихся процессов; • знать формы записи операторов цикла; • уметь рационально использовать операторы циклов разных типов; • приобрести навыки программирования циклических процессов. При изучении темы 5 необходимо: • акцентировать внимание на понятиях метки, оператора перехода, со-

ставного оператора, условного оператора, оператора выбора, цикла, операто-ра цикла, циклов с предусловием и постусловием, операторов петедачи управления;

• решить задачи 2–4 семестрового задания за 1 семестр. Для самооценки темы 5 ответить на вопросы. 1. Какую структуру имеет программа на С++? 2. Что такое операторные скобки? 3. Что такое составной оператор? 4. Назначение и особенности использования оператора безусловного

перехода. Недостатки программы, возникающие при использовании этого оператора.

5. Способы записи условного оператора. 6. Назначение и варианты использования оператора выбора. 7. Формы оператора цикла. 8. Принципы выбора типа оператора цикла. 9. Особенности записи и использования оператора цикла for. 10. Особенности записи и использования оператора цикла итерационного

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

типа с постусловием. 12. Особенности организации вложенных циклов. 13. Особенности использования операторов передачи управления.

Тема 6. Статические массивы Цель. Получить представление и научиться объявлять и использовать

одномерные и двумерные статические массивы. • Организация массива. • Размерность массива. • Инициализация элементов массива. • Ввод и вывод массива. • Примеры использования массивов.

Изучив данную тему, студент должен:

Page 8: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• знать особенности объявления и инициализации одномерных и мно-гомерных массивов;

• уметь правильно вводить и выводить значения элементов массива; • уметь производить простейшие операции над элементами массива. При изучении темы 6 необходимо акцентировать внимание на поняти-

ях: • массив, размерность массива; • матрица, индекс. Необходимо решить задачи 5 и 6 семестрового задания за 1 семестр. Для самооценки темы 6 ответить на вопросы. 1. Что такое массив? 2. Каким образом нумеруются элементы массива в С++? 3. Как записываются инициализирующие значения массива? 4. Каким образом происходит обращение к элементу массива? 5. Каким образом осуществляется ввод и вывод элементов массива? 6. Как хранятся в памяти многомерные массивы?

Тема 7. Указатели и динамические массивы Цель. Научиться распределять и использовать динамическую память. • Общие сведения о динамическом распределении памяти и динамиче-

ских переменных. • Указатели, объявление ссылочных переменных. • Управление выделением и освобождением динамической памяти на

логическом уровне. • Управление динамической памятью на физическом уровне. • Функции языка С/С++ для выделения и освобождения памяти. Изучив данную тему, студент должен: • знать различные типы указателей, используемых в С++; • уметь правильно инициализировать указатели на скалярные перемен-

ные и массивы; • уметь создавать динамические многомерные массивы; • уметь освобождать память, выделенную под одномерные и много-

мерные массивы. При изучении темы 7 необходимо акцентировать внимание на поняти-

ях: • динамический массив; • указатель на объект, указатель на функцию, указатель на void; • куча; • инициализация указателя; • освобождение памяти. Для самооценки темы 7 ответить на вопросы.

1. Перечислить виды указателей и их особенности. 2. Что такое куча? Каким образом выделяется память под массив? 3. Что такое динамические переменные?

Page 9: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

4. Способы инициализации указателей. 5. Освобождение памяти. 6. Каким образом создается динамический многомерный массив? 7. На какой элемент массива указывает указатель на массив?

Тема 8. Операции с указателями и ссылки

Цель. Научиться выполнять различные операции над указателями. • Операции разадресации и получения адреса. • Присваивание указателей. • Арифметические операции над указателями. • Операции сравнения. • Приведение типов. • Объявление ссылок. Изучив данную тему, студент должен: • знать различные виды операций над указателями; • уметь правильно применять операции над указателями. При изучении темы 8 необходимо акцентировать внимание на поняти-

ях: • разадресация; • приведение типов; • получение адреса; • ссылка. Необходимо решить задачу 8 семестрового задания за 1 семестр. Для самооценки темы 8 ответить на вопросы.

1. Особенности операции разадресации. 2. Присваивание без явного приведения типов. 3. Особенности арифметических операций с указателями. Их отличия

от арифметических операций над статическими переменными. 4. Операция получения адреса. 5. Отличия ссылки от указателя.

Тема 9. Строковые типы

Цель. Получить представление о работе с символьными массивами и строками.

• Массивы символов. • Функции для обработки строк. • Строковый тип AnsiString. Изучив данную тему, студент должен: • правильно уметь объявлять и определять строковые переменные; • уметь применять различные функции для обработки строк. При изучении темы 9 необходимо акцентировать внимание на поняти-

ях: • строка; • массив символов;

Page 10: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• указатель на массив символов. Необходимо решить задачу 3 семестрового задания за 2 семестр. Для самооценки темы 9 ответить на вопросы.

1. Как правильно объявить строковую переменную? 2. Сколько элементов содержит символьный массив? 3. Каким образом определить длину строки? 4. Как происходит сравнение двух строк? 5. Слияние двух и более строк. 6. Поиск подстроки в строке. 7. Особенности класса AnsiString. Чем строка-элемент этого класса

отличается от символьного массива.

Тема 10. Типы данных, определяемые пользователем Цель. Получить представление о работе с символьными массивами и

строками. • Переименование типов. • Перечисления. • Структуры. • Доступ к полям структуры. • Объединения. Изучив данную тему, студент должен: • знать, каким образом и с какой целью вводятся пользовательские ти-

пы; • уметь определять пользовательские типы; • уметь пользоваться перечислимыми типами; • знать, как определяются и объявляются структуры; • уметь правильно осуществлять доступ к полям структуры; • иметь представление об использовании объединений; • чувствовать разницу между различными видами пользовательских

типов. При изучении темы 10 необходимо акцентировать внимание на поня-

тиях: • пользовательский тип; • перечисление; • структура; • поле структуры; • объединение. Для самооценки темы 10 ответить на вопросы. 1. Для чего используется переименование типов? 2. Какие значения принимают переменные, объявленные в перечисле-

нии? 3. Назвать основное отличие структуры от массива. 4. Что такое поля структуры? 5. Может ли в объявлении отсутствовать имя типа структуры?

Page 11: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

6. Начиная с какой точки программы возможно использование имени структуры?

7. Каким образом выполняется присваивание значений полям структур? 8. Чем отличаются объединения от структур?

Тема 11. Ввод/вывод в языке С++

Цель. Организация рационального ввода-вывода в программах. • Ввод данных с помощью функций языка С. • Потоковый ввод/вывод. • Особенности операций вставки и извлечения. • Форматирование данных при обменах с потоками. • Флаги форматирования, функции класса ios, манипуляторы без пара-

метров. Изучив данную тему, студент должен: • знать принципы ввода/вывода данных с помощью различных средств

языков С/С++; • уметь правильно производить потоковый ввод/вывод информации; • уметь пользоваться флагами для форматированного вывода. При изучении темы 11 необходимо акцентировать внимание на поня-

тиях: • функции ввода/вывода; • поток; • консольный поток; • строковый поток; • файловый поток; • извлечение и вставка. Необходимо организовать форматированный вывод для таблично задан-

ной функции, полученной в результате выполнения задачи 3 семестрового задания за 1 семестр.

Для самооценки темы 11 ответить на вопросы. 1. Какие функции стандартных библиотек С используются для вво-

да/вывода? 2. Привести классы потоков, используемые для ввода/вывода. 3. Назвать принципиальные различия потокового ввода/вывода и функ-

ций языка С. 4. Какие приоритеты имеют операции потокового ввода/вывода. 5. Для чего используются флаги форматирования и как их установить? 6. Каким образом выводить указанное число знаков после запятой в

действительном числе? 7. Манипуляторы для перехода в другую систему счисления, для пере-

хода на новую строку.

Тема 12. Работа с файлами

Page 12: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Цель. Организация файлового ввода-вывода в программах. • Функции для файлового ввода/вывода. • Параметры для открытия файлов. Изучив данную тему, студент должен: • знать принципы файлового ввода/вывода данных с помощью потоков; • уметь правильно открывать файлы для чтения и записи; • уметь правильно устанавливать режим работы с открываемым фай-

лом; • уметь закрывать открытые файлы. При изучении темы 12 необходимо акцентировать внимание на поня-

тиях: • внешняя память; • файловый ввод/вывод; • файловый поток; • бинарный файл; • текстовый файл. Необходимо решить задачу 9 за 1 семестр. Для самооценки темы 12 ответить на вопросы. 1. Назвать основное отличие внешней памяти от оперативной? 2. Что такое последовательный файл? 3. Перечислить процедуры, выполняемые при работе с файлом. 4. Классы для файлового ввода/вывода. 5. Описать процедуру открытия файла. 6. Перечислить режимы работы с файлами. 7. Назначение операции закрытия файла.

Тема 13. Функции в С++

Цель. Рассмотреть возможности использования функций. Уметь оформ-лять программы в виде функций.

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

вов в качестве параметров, способы передачи параметров в функцию. • Передача имен функций в качестве параметров. • Параметры со значениями по умолчанию. • Рекурсивные функции. Изучив данную тему, студент должен: • знать способы объявления и определения функций; • уметь оформлять программу в виде функции; • приобрести навыки программирования функций; • знать различия между локальными и глобальными переменными; • уметь передавать массивы в качестве параметров; • правильно использовать рекурсивные функции.

Page 13: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

При изучении темы 13 необходимо акцентировать внимание на поня-тиях:

• определение и объявление функции; • формальные параметры; • фактические параметры; • функция без параметров; • рекурсивная функция. Для самооценки темы 13 ответить на вопросы. 1. Чем отличается определение от объявления функции? 2. Что такое инкапсуляция? 3. Каким образом задается список параметров функции? 4. Перечислить различия между локальными и глобальными перемен-

ными. Почему предпочтительнее использовать локальные переменные? 5. Что такое формальные и фактические параметры? 6. Способы передачи параметров. 7. Каким образом передаются массивы в качестве параметров?

Тема 14. Сортировка

Цель. Рассмотреть классическую задачу сортировки элементов массива. • Понятие сортировки. • Цель сортировки. • Методы сортировки. • Пузырьковая сортировка. Изучив данную тему, студент должен: • знать цели сортировки и области применения задач сортировки; • знать методы сортировки и количество сравнений в алгоритмах каж-

дого типа; • уметь использовать метод пузырька для сортировки элементов масси-

ва; • правильно уметь выбрать метод сортировки для поставленной задачи. Необходимо решить задачу 2 курсовой работы. При изучении темы 14 необходимо акцентировать внимание на поня-

тиях: • сортировка; • прямые методы сортировки; • логарифмические методы сортировки; • трудоемкость алгоритма. Для самооценки темы 14 ответить на вопросы. 1. Что понимается под процессом сортировки? 2. Перечислить практические задачи, в которых необходимо решать за-

дачу сортировки. 3. Чем отличаются квадратичные методы сортировки от логарифмиче-

ских? Когда какие из методов лучше использовать? 4. Основной принцип работы пузырьковой сортировки.

Page 14: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Тема 15. Статистические испытания

Цель. Рассмотреть задачи, для решения которых можно проводить ста-тистические испытания.

• Генераторы случайных чисел. • Метод Монте-Карло для моделирования случайных испытаний. Изучив данную тему, студент должен: • знать способы генерации случайных чисел; • уметь правильно использовать стандартные функции С++ генерации

случайных чисел; • уметь использовать метод Монте-Карло для вычисления площади фи-

гуры под графиком. При изучении темы 15 необходимо акцентировать внимание на поня-

тиях: • случайная величина; • равномерное распределение; • метод Монте-Карло; • генератор случайных чисел; • псевдослучайное число. Для самооценки темы 15 ответить на вопросы. 1. Каким образом можно сгенерировать случайные числа стандартными

средствами языка С++? 2. Перечислить несколько способов генерации случайных чисел с по-

мощью рекуррентных соотношений. 3. Найти площадь под графиком функции с помощью метода Монте-

Карло.

Тема 16. Препроцессорные средства Цель. Рассмотреть способы определения констант, включения фрагмен-

тов встраиваемых файлов, определения макросов с помощью директив пре-процессора.

• Директивы include, define. • Директивы условной компиляции • Предопределенные макросы. Изучив данную тему, студент должен: • уметь подключать дополнительные модули; • определять символические константы, макросы и символы управ-

ляющих условий; • уметь использовать директивы условной компиляции; • уметь пользоваться предопределенными макросами. При изучении темы 16 необходимо акцентировать внимание на поня-

тиях: • препроцессор; • директива;

Page 15: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• символическая константа; • макрос; • условная компиляция. Для самооценки темы 16 ответить на вопросы. 1. Что такое препроцессор? 2. Каким образом работает директива #include? 3. Что определяет директива #define и почему ее не рекомендуется ис-

пользовать в С++-программах? 4. Как работать с директивами условной компиляции? 5. Для чего нужна условная компиляция? 6. Приведите примеры предопределенных макросов.

Тема 17. Области действия и пространства имен

Цель. Рассмотреть как определяются программные объекты, какова об-ласть их действия.

• Категории области действия. • Классы идентификаторов, в пределах которых имена должны быть

одинаковы. • Внешние объявления. Изучив данную тему, студент должен: • знать различные категории области действия имен; • уметь правильно задавать и определять пространства имен; • знать классы идентификаторов, в пределах которых имена идентифи-

каторов должны быть одинаковы; • уметь правильно использовать внешние объявления. При изучении темы 17 необходимо акцентировать внимание на поня-

тиях: • область действия; • область видимости; • пространство имен; • классы идентификаторов; • внешние переменные. Для самооценки темы 17 ответить на вопросы. 1. Перечислить категории области действия. 2. Когда область видимости и область действия не совпадают? 3. Что такое пространство имен? Каким образом его задать? 4. Перечислить классы идентификаторов. 5. Как сделать переменную доступной в нескольких модулях?

Тема 18. Динамические структуры данных

Цель. Уметь работать с динамическими структурами данных. • Линейные списки. • Стеки, очереди. • Бинарные деревья.

Page 16: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Изучив данную тему, студент должен: • знать разновидности динамических структур и области их примене-

ния; • уметь правильно выполнять операции над различными видами спи-

сков (формирование, добавление элемента, поиск и удаление элемента, сор-тировка списка по ключу);

• уметь правильно выполнять операции со стеком и очередью; • знать области применения бинарных деревьев и уметь выполнять

операции вставки, удаления и сортировки элементов. При изучении темы 18 необходимо акцентировать внимание на поня-

тиях: • динамическая структура данных; • элемент структуры; • поле данных; • линейный односвязный список; • циклический список; • двусвязный список; • стек; • очередь; • бинарное дерево; • предки и потомки; • высота дерева. Необходимо разработать структуры, использующиеся при программи-

ровании задания 2 курсовой работы. Для самооценки темы 18 ответить на вопросы. 1. Типы структур данных. 2. Односвязные и двусвязные списки. 3. Отличие стека от очереди. 4. Описать операции вставки, поиска и удаления элемента для структур

различных типов. 5. Привести основные определения, касающиеся бинарных деревьев. 6. Рассмотреть операции, выполняемые над бинарными деревьями.

Тема 19. Кодирование и документирование программы

Цель. Научиться грамотно оформлять написанный программный код. Изучив данную тему, студент должен: • знать главную цель кодирования и документирования программы; • знать основные этапы для разработки программы; • знать основные правила кодирования программы; • уметь правильно оформлять программы. При изучении темы 19 необходимо акцентировать внимание на изуче-

нии особенностей грамотного оформления программного кода. Для самооценки темы 19 ответить на вопросы. 1. Назвать главную цель кодирования и документирования кода.

Page 17: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

2. Для чего нужна запись программы на естественном языке? 3. Какие последовательности действий следует оформлять в виде от-

дельных функций? 4. Каким образом следует выбирать имена идентификаторов? 5. Особенности использования входных параметров функции. 6. Недостатки программы при использования чисел в явном виде. 7. Как правильно выполнять проверку условия на ноль? 8. Цели использования комментариев в программе.

Тема 20. Общие сведения о среде визуального программирования

C++ Builder Цель. Рассмотреть общие принципы работы в среде визуального про-

граммирования C++ Builder. • Интегрированная среда разработки. • Структура файлов модулей форм. • Доступ к свойствам и методам объектов. Изучив данную тему, студент должен: • знать общие принципы разработки простейших визуальных приложе-

ний; • уметь создавать компоненты на форме; • уметь изменять свойства и методы компонент. При изучении темы 20 необходимо акцентировать внимание на поня-

тиях: • среда визуального программирования; • компонент; • модуль; • проект; • класс; • свойства; • методы; • события. Для самооценки темы 20 ответить на вопросы. 1. Каким образом создается простейшее приложение. 2. Что такое компоненты, их свойства и модули? 3. Каким образом изменяются свойства объектов? 4. В каком файле проекта находится главная функция WinMain? 5. Какие файлы включаются в проект? 6. Каким образом обрабатываются события?

Тема 21. Основные компоненты в C++ Builder

Цель. Рассмотреть основные компоненты, используемые при разработке приложений.

• Ввод численной и текстовой информации. • Распознавание нажатых клавиш.

Page 18: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• Компонент MaskEdit. • Ввод и отображение даты и времени. • Кнопки, индикаторы, управляющие элементы. • Создание меню. • Системные диалоги. Изучив данную тему, студент должен: • знать назначение базовых компонент; • уметь правильно использовать базовые компоненты; • уметь устанавливать и изменять свойства базовых компонент; • уметь создавать визуальные приложения, решающие простейшие за-

дачи; • научиться распознавать коды нажатых клавиш и уметь ограничивать

множество вводимых символов в компонентах ввода информации; • создавать контекстное и главное меню и обрабатывать их команды; • уметь пользоваться стандартными диалогами, открывать и сохранять

файлы. При изучении темы 21 необходимо акцентировать внимание на поня-

тиях: • компонент TEdit; • компонент TButton; • компонент TMemo; • главное меню; • контекстное меню; • системный диалог. Необходимо решить задачи 2–3 за второй семестр. Для самооценки темы 21 ответить на вопросы. 1. Переменной какого типа является введенная с помощью компоненты

TEdit информация? 2. Перечислить различия между компонентами TButton, TBitBtn,

TSpeedBtn? 3. Каковы преимущества использования маскированного ввода перед

проверкой введенной информации с помощью обработчика событий? Когда следует применять каждый из способов?

4. Каким образом создается сложная структура меню? 5. Для чего используются системные диалоги?

Тема 22. Графика и мультимедиа в C++ Builder

Цель. Рассмотреть функции для работы с графикой и методы создания приложений, работающих с графическими объектами.

• Подключение графических компонент. • Рисование на канве компонента. • Работа с таймером. Анимация. Изучив данную тему, студент должен:

Page 19: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• уметь загружать рисунки *.bmp в компонент TImage; • знать стандартные функции для рисования графических примитивов

(точка, отрезок, прямоугольник, эллипс и т.д.); • уметь выполнять перерисовку изображений на форме; • уметь задавать относительные координаты графических объектов; • знать принципы работы таймера и уметь управлять им; • научиться изменять тип линии и цвет заливки; • научиться простейшим принципам работы с двумерной анимацией. При изучении темы 22 необходимо акцентировать внимание на поня-

тиях: • уравнения кривых; • канва; • компонент TImage; • системный таймер; • задержка таймера; • анимация. Необходимо решить задачи 4–5 за второй семестр. Для самооценки темы 22 ответить на вопросы. 1. Каким образом производится рисование на форме и прочих компо-

нентах С++ Builder? 2. Как установить прозрачный фон для растрового изображения? 3. Каковы координаты начальной точки для прямой, изображаемой с

помощью функции LineTo? 4. Как изменить цвет заливки и параметры пера? Какие цвета заданы по

умолчанию? 5. Какова минимальная задержка таймера? 6. Зачем нужна функция перерисовки изображения OnPaint?

Тема 23. Управление формами

Цель. Рассмотреть различные виды форм, научиться разрабатывать мно-гооконные приложения.

• Модальные формы. • Управление формами в приложениях с интерфейсом множества до-

кументов. • Многостраничные диалоги. Изучив данную тему, студент должен: • научиться создавать стандартные, модальные формы, дочерние окна; • уметь создавать и уничтожать объекты форм; • уметь открывать дополнительные окна в одной и нескольких копиях; • знать принципы использования многостраничных диалогов. При изучении темы 23 необходимо акцентировать внимание на поня-

тиях: • многооконный интерфейс;

Page 20: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

• модальная форма; • дочернее окно; • многостраничная панель; • активная форма. Для самооценки темы 23 ответить на вопросы. 1. Чем модальное окно отличается от обычного? 2. Как можно создать одну единственную копию окна? Как разрешить

пользователю создавать неограниченное число копий окна? 3. Видимые и невидимые окна. 4. Что такое активная форма, как ее назначить? 5. Для чего нужны многостраничные диалоги?

Тема 24. Печать документов и изображений

Цель. Вывод текстовой и графической информации на принтер. • Печать методом Print. • Методы компонентов, обеспечивающие печать. • Печать с помощью объекта Printer, компоненты PrintDialog и Printer-

SetupDialog. Изучив данную тему, студент должен: • знать несколько способов печати в С++ Builder; • уметь пользоваться каждым из способов. При изучении темы 24 необходимо акцентировать внимание на поня-

тиях: • метод Print; • объект Printer. Для самооценки темы 24 ответить на вопросы. 1. Как выводить на печать текстовую и графическую информацию? 2. Перечислить особенности вывода на печать графической информа-

ции. Масштабирование изображения при выводе на печать. 3. Установка параметров печати. Принципы работы с диалогами вывода

на печать и установки параметров принтера. 1. Классы. Объявление класса, функции-элементы, дружественные функции, констант-

ные функции, данные-элементы, статические данные, константные данные, конструк-торы и деструкторы.

ПЕРЕЧЕНЬ ПРАКТИЧЕСКИХ ЗАНЯТИЙ И ЛАБОРАТОРНЫХ РАБОТ

Практические занятия проводятся в учебных группах с целью закрепле-

ния теоретических основ, излагаемых в лекционном курсе, получения прак-тических навыков в составлении программ для современных ПЭВМ, приемов использования средств алгоритмического языка программирования С++ для

Page 21: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

разработки надежного программного обеспечения. Практические занятия по каждой теме проводятся в соответствии с планом распределения времени.

Основой проведения практических занятий является решение задач по составлению законченных программ, функций и фрагментов, направленных на закрепление лекционного материала и подготовку к выполнению лабора-торных и курсовых работ.

Степень овладения навыками, полученными на практических занятиях, проверяется путем проведения аудиторных письменных работ, контрольных мероприятий на ПЭВМ.

Самостоятельная работа студентов по курсу организуется путем выдачи заданий по составлению программ.

Лабораторные работы

№ Содержание работы ЛР СРС 1. Средства изображения алгоритмов 2 0 2. Линейные алгоритмы 2 0 3. Организация ввода-вывода данных 2 0 4. Разветвляющиеся алгоритмы 1 1 5. Циклические вычислительные процессы 1 1 6. Простейшие операции с массивами 1 0 7. Работа с двумерными массивами 1 0 8. Работа с указателями и динамическим распределе-

нием памяти при обработке массивов 6 2

9. Работа с файлами 2 4 10. Решение прикладных математических задач 10 8 11. Работа с генераторами случайных чисел 3 4 12. Обработка символьной информации 2 0 13. Создание пользовательских функций и работа с

препроцессорными средствами языка 3 0

14. Машинная графика 4 6 15. Компьютерная анимация 8 8 16. Создание Windows-приложений различного уров-

ня сложности 22 26

Разделы дисциплины, виды и объём занятий

Объём в часах по видам № темы

Наименование тем дисциплины Всего Л ЛР СРС

1 Структурное программирование. Ал-горитмизация вычислительных про-цессов

2 2 – –

2 Средства изображения алгоритмов. Базовые канонические структуры ал-горитмов

4 2 2 –

Page 22: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

3 Простейшие программы на языке С++

4 2 2 –

4 Состав, алфавит языка, идентифика-торы, ключевые слова, операции

2 2 – –

5 Типы данных С++. Выражения 4 2 – – 6 Базовые конструкции структурного

программирования 6 2 2 2

7 Статические массивы 4 2 2 – 8 Указатели и динамические массивы 6 2 2 2 9 Операции с указателями 3 1 2 –

10 Ссылки 3 1 2 – 11 Строковые типы 3 1 2 – 12 Типы данных, определяемые пользо-

вателем 8 2 2 4

13 Ввод-вывод в С++ 4 2 2 14 Работа с файлами. Файловый ввод-

вывод 8 2 2 4

15 Функции в С++ 4 2 2 – 16 Сортировка 10 2 4 4 17 Статистические испытания 4 2 2 – 18 Препроцессорные средства 2 1 1 – 19 Области действия переменных и

пространства имен 2 1 1 –

20 Динамические структуры данных 12 2 4 4 21 Кодирование и документирование

программы 2 1 – –

22 Общие сведения о среде визуального программирования C++ Builder.

3 2 – –

23 Компоненты ввода и отображения текстовой информации.

12 4 4 4

24 Кнопки, индикаторы, управляющие элементы

11 4 3 4

25 Создание меню 12 4 4 4 26 Системные диалоги 16 2 6 8 27 Работа с графикой и мультимедиа 14 4 4 6 28 Обработка событий таймера 18 2 8 8 29 Управление формами 8 4 2 2 30 Многостраничные панели 6 4 1 2 31 Печать документов и изображений 6 4 2 2

Итого 200 70 70 60

Необходимое программное обеспечение: C++ Builder.

ЛИТЕРАТУРА

Page 23: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Основная 1. Подбельский, В.В. Язык С++. Учеб. Пособие / В.В. Подбельский. – 5-е

изд. – М.: Финансы и статистика, 2004. – 560 с.: ил. 2. Шелест, В.Д. Программирование / В.Д. Шелест. – СПб.: БХВ-

Петербург, 2002. – 592 с.: ил. 3. Павловская, Т.А. С\С++. Программирование на языке высокого уров-

ня / Т.А. Павловская. – СПб.: Питер, 2002. – 464 с.: ил. 4. Хьюз, Дж. Структурный подход к программированию / Дж. Хьюз, Дж.

Мичтом. – М.: Мир, 1980. – 280 с.: ил. 5. Архангельский, А.Я. Программирование в С++ Builder 6 / А.Я. Архан-

гельский. – М.: ЗАО «Издательство БИНОМ», 2003. – 1152 с.: ил. 6. Павловская, Т.А. С/С++. Структурное программирование. Практикум /

Т.А. Павловская, Ю.А. Щупак. – СПб.: Питер, 2007. – 239 с.: ил. Дополнительная

1. Культин Н.Б. С\С++ в задачах и примерах. – СПб.: БХВ-Петербург, 2004. – 288 с.: ил.

2. Семакин И.Г., Шестаков А.П. Основы программирования. – 2-е изд., стер. – М.: Издательский центр «Академия», - 2003. – 432 с.

3. Уеллин С. Как не надо программировать на С++. – СПб.: Питер, 2004. – 240 с.: ил.

ПРИМЕРНЫЙ СПИСОК ЭКЗАМЕНАЦИОННЫХ ВОПРОСОВ

по курсу «Алгоритмические языки и программирование»

1. Основные понятия и определения курса. 2. Алгоритм и его свойства. Сущность алгоритмизации вычислительных

процессов. 3. Изобразительные средства алгоритмов: словесный, формульно-

словесный, блок-схемный, структурные диаграммы, языки программирова-ния.

4. Базовые канонические структуры и элементы диаграмм, используе-мые при проектировании алгоритмов линейных, ветвящихся и циклических вычислительных процессов.

5. Алфавит языка С/С++. Простейшие конструкции языка. 6. Классификация типов данных. Стандартные типы констант. 7. Арифметические, строковые и логические выражения. Приоритет вы-

полнения операций в выражениях. 8. Структуры данных. Обращение к элементам структур. 9. Оператор перехода и метки. 10. Условный оператор и его применение для организации ветвлений. 11. Оператор выбора. 12. Оператор цикла для вычисления суммы арифметической прогрессии. 13. Циклы с предусловием. 14. Циклы с постусловием.

Page 24: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

15. Функции: описание и определение. 16. Формальные и фактические параметры функции. 17. Область действия имен. 18. Функции без параметров. 19. Рекурсивные функции. 20. Математические функции. 21. Процедуры и функции для работы со строковыми данными. 22. Операторы ввода-вывода. 23. Общие сведения о динамическом распределении памяти и динамиче-

ских переменных. 24. Управление выделением и освобождением динамической памяти. 25. Общие сведения о работе с файлами. Стандартные функции для рабо-

ты с файлами. 26. Алгоритмы для моделирования статистических испытаний. 27. Алгоритмы сортировки. 28. Линейные списки: односвязные и двусвязные списки, поиск, вставка

и удаление элемента. 29. Организация очереди: помещение и извлечение элемента. 30. Организация стека: помещение и извлечение элемента. 31. Создание простейшего Windows-приложения. 32. Работа с компонентами ввода и отображения текстовой информации. 33. Работа с кнопками, индикаторами и управляющими элементами. 34. Способы создания меню. Различные виды меню. 35. Системные диалоги: виды, принципы работы. 36. Графика в С++. 37. Таймер: обработка событий, задержка действия, включение и отклю-

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

УЧЕБНАЯ ПРОГРАММА ДИСЦИПЛИНЫ

1. Введение 1.1 Требования к уровню освоения содержания дисциплины Требования государственного образовательного стандарта к содержа-

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

Page 25: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

После изучения курса математического анализа студент должен: ⎯ знать изобразительные средства описания алгоритмов; ⎯ Знать систему программирования на алгоритмическом языке (С++); ⎯ освоить принципы разработки программ и отдельных модулей; ⎯ изучить средства и возможности операционных систем современных ПЭВМ для решения задач обработки экономической и статистической информации.

⎯ уметь составлять программы для решения вычислительных задач об-работки информации.

1.2. Требования к уровню подготовки для освоения дисциплины Курс "Алгоритмизация и языки программирования" является специаль-

ным курсом; опирается на знания, полученные студентами в средней школе. В некоторых разделах курса используются сведения из курса аналитической геометрии, математического анализа и статистики.

2. Цели и задачи преподавания и изучения дисциплины Основная цель преподавания курса "Алгоритмизация и языки програм-

мирования" – научить студентов грамотно и осмысленно применять полу-ченные знания для решения прикладных задач, составлять алгоритмы и раз-рабатывать программы.

Основные задачи курса: – развитие у студентов логического и аналитического мышления; – овладение техникой построения и реализации алгоритмов.

3. Объём дисциплины и виды учебной работы

Состав и объём дисциплины

Распределение по семестрам в часах

Семестры

Вид учебной работы

Всего часов

1 2 Общая трудоемкость дисципли-ны

200 144 136

Аудиторные занятия 140 72 68 Лекции (Л) 70 36 34 Лабораторные работы (ЛР) 70 36 34 Самостоятельная работа (СМС) 60 20 40 Курсовая работа (КР) – – + Вид итогового контроля – Экзамен Экзамен

4. Содержание дисциплины

Разделы дисциплины, виды и объём занятий

Page 26: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

Объём в часах по видам № темы

Наименование тем дисциплины Всего Л ЛР СРС

1 Структурное программирование. Ал-горитмизация вычислительных про-цессов

2 2 – –

2 Средства изображения алгоритмов. Базовые канонические структуры ал-горитмов

4 2 2 –

3 Простейшие программы на языке С++

4 2 2 –

4 Состав, алфавит языка, идентифика-торы, ключевые слова, операции

2 2 – –

5 Типы данных С++. Выражения 4 2 – – 6 Базовые конструкции структурного

программирования 6 2 2 2

7 Статические массивы 4 2 2 – 8 Указатели и динамические массивы 6 2 2 2 9 Операции с указателями 3 1 2 –

10 Ссылки 3 1 2 – 11 Строковые типы 3 1 2 – 12 Типы данных, определяемые пользо-

вателем 8 2 2 4

13 Ввод-вывод в С++ 4 2 2 14 Работа с файлами. Файловый ввод-

вывод 8 2 2 4

15 Функции в С++ 4 2 2 – 16 Сортировка 10 2 4 4 17 Статистические испытания 4 2 2 – 18 Препроцессорные средства 2 1 1 – 19 Области действия переменных и

пространства имен 2 1 1 –

20 Динамические структуры данных 12 2 4 4 21 Кодирование и документирование

программы 2 1 – –

22 Общие сведения о среде визуального программирования C++ Builder.

3 2 – –

23 Компоненты ввода и отображения текстовой информации.

12 4 4 4

24 Кнопки, индикаторы, управляющие элементы

11 4 3 4

25 Создание меню 12 4 4 4 26 Системные диалоги 16 2 6 8 27 Работа с графикой и мультимедиа 14 4 4 6 28 Обработка событий таймера 18 2 8 8

Page 27: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

29 Управление формами 8 4 2 2 30 Многостраничные панели 6 4 1 2 31 Печать документов и изображений 6 4 2 2

Итого 200 70 70 60 Краткое содержание тем дисциплин

1. Структурное программирование. Алгоритмизация вычислительных процессов: алгоритмизация, алгоритм, построение алгоритма, программа, общие свойства алгоритмов, данные, типы данных, константы и переменные, система программирования, критерии качества ПО.

2. Средства изображения алгоритмов. Базовые канонические струк-туры алгоритмов: основные изобразительные средства алгоритмов – словес-ный, формульно-словесный, блок-схемный, псевдокод, структурные диа-граммы, языки программирования. Структуры – следование, развилка, по-вторение, выбор.

3. Простейшие программы на языке С++: структура программы на языке С++, схема подготовки исполняемой программы.

4. Состав, алфавит языка, идентификаторы, ключевые слова, опера-ции: основные элементы языка, алфавит С++, идентификаторы и правила их выбора, ключевые слова, бинарные, унарные и тернарные операции.

5. Типы данных С++. Выражения: основные и составные типы дан-ных, выражения и приоритеты выполнения операций в них, преобразования типов.

6. Базовые конструкции структурного программирования: операторы ветвления, выбора, циклы с предусловием и циклы с постусловием, операто-ры передачи управления.

7. Статические массивы: понятие массива, объявление массива, од-номерные и многомерные массивы, инициализация массивов.

8. Указатели и динамические массивы: виды указателей – указатели на объект, на функцию, на void, признаки указателя, инициализация указателей, способы инициализации указателей, выделение памяти и присваивание ее адреса указателю, создание динамического многомерного массива.

9. Операции с указателями: разадресация, присваивание, сложение с константой, вычитание, инкремент и декремент, сравнение, приведение ти-пов, операция получения адреса.

10. Ссылки: формат объявления, свойства переменных-ссылок, отличие ссылки от указателя.

11. Строковые типы: массивы символов, функции для обработки строк, строковый тип AnsiString.

12. Типы данных, определяемые пользователем: переименование типов, перечисления, структуры, объединения.

13. Ввод-вывод в С++: библиотеки ввода-вывода, потоковый ввод и вы-вод, особенности операций вставки и извлечения, форматирование данных при обменах с потоками, флаги форматирования, функции класса ios, мани-пуляторы без параметров.

Page 28: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

14. Работа с файлами. Файловый ввод-вывод: процедура ввода-вывода в-из файл(а), открытие файлов, режимы открытия файлов, закрытие файлов.

15. Функции в С++: объявление и определение функций, локальные и глобальные переменные, передаваемые параметры, возвращаемые значения, передача массивов в качестве параметров, способы передачи параметров в функцию, передача имен функций в качестве параметров, параметры со зна-чениями по умолчанию, рекурсивные функции.

16. Сортировка: понятие сортировки, цель сортировки, методы сорти-ровки, пузырьковая сортировка.

17. Статистические испытания: метод Монте-Карло, способы генера-ции случайных чисел.

18. Препроцессорные средства: директивы include, define, директивы условной компиляции, предопределенные макросы.

19. Области действия переменных и пространства имен: категории области действия, классы идентификаторов, в пределах которых имена должны быть одинаковы, внешние объявления.

20. Динамические структуры данных: линейные списки, стеки, очере-ди, бинарные деревья.

21. Кодирование и документирование программы: основные цели, вы-бор имен переменных, хороший стиль программирования.

22. Общие сведения о среде визуального программирования C++ Builder. Интегрированная среда разработки. Структура файлов модулей форм. Доступ к свойствам и методам объектов.

23. Компоненты ввода и отображения текстовой информации: ввод численной информации, распознавание нажатых клавиш, компонент MaskEdit, ввод и отображение даты и времени.

24. Кнопки, индикаторы, управляющие элементы: компоненты Button, BitBtn, SpeedButton, RadioButton, CheckBox.

25. Создание меню: контекстное и главное меню, создание простейшего текстового редактора.

26. Системные диалоги: открытие и сохранение файлов, выбор шрифта, выбор цвета.

27. Работа с графикой и мультимедиа: готовые графические изобра-жения, рисование на канве компонента.

28. Обработка событий таймера: компонент Timer, создание собст-венной мультипликации.

29. Управление формами: модальные формы, управление формами в приложениях с интерфейсом множества документов.

30. Многостраничные панели: компоненты PageControl и TabControl. 31. Печать документов и изображений. Печать методом Print, методы

компонентов, обеспечивающие печать, печать с помощью объекта Printer, компоненты PrintDialog и PrinterSetupDialog.

32. Классы. Объявление класса, функции-элементы, дружественные функции, константные функции, данные-элементы, статические данные, кон-стантные данные, конструкторы и деструкторы.

Page 29: ПРОГРАММИРОВАНИЕwindow.edu.ru/resource/582/63582/files/programming... · • уметь производить простейшие операции над элементами

5. Лабораторные и курсовые работы Каждому студенту выдается индивидуальное задание на весь семестр. 6. Средства и материально-техническое обеспечение дисциплины. Программное обеспечение: С++ Builder 6. Технические средства обучения: Компьютер Pentium III (и выше) с ус-

тановленной на него операционной системой Windows 98 (и выше). Занятия проводятся в лаборатории кафедры ЭММиС.