- •1. Информация о дисциплине
- •1.1. Предисловие
- •Содержание дисциплины и виды учебной работы
- •2. Рабочие учебные материалы
- •2.2. Тематический план дисциплины
- •2.3 Структурно-логическая схема дисциплины
- •2.4 Временной график изучения дисциплины
- •2.5. Практический блок
- •2.6. Рейтинговая система по дисциплине «Программирование и основы алгоритмизации»
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •3.2. Опорный конспект лекций по дисциплине
- •Раздел 1. ОБЩИЕ ПОЛОЖЕНИЯ
- •Раздел 2. ПРОГРАММИРОВАНИЕ ТИПОВЫХ АЛГОРИТМОВ
- •Раздел 3. МАССИВЫ
- •Раздел 4.ГРАФИКА
- •3.3. Лабораторные работы
- •3.4. Практические занятия
- •Заключение
- •4.Блок контроля освоения дисциплины
- •4.1. Методические указания к выполнению курсового проекта
- •4.2. Блок тестов текущего контроля
- •4.3. Вопросы к экзамену
- •Содержание
В том числе: курсовой проект (работа) |
1 |
1 |
1 |
контрольная работа |
|
|
|
Вид итогового контроля (зачет, экзамен) |
экз |
экз |
экз |
Перечень видов практических занятий и контроля:
-тесты по разделам;
-один курсовой проект (для всех форм обучения);
-лабораторные работы – 24 часа (для очной формы), 20 часов (для очнозаочной формы), 8 часов (для заочной формы обучения);
- практические занятия – 4 часа (для всех форм обучения) - экзамен.
2. Рабочие учебные материалы
2.1. Рабочая программа (объем 130 часов)
Раздел 1. ОБЩИЕ ПОЛОЖЕНИЯ
Введение (4 часа)
[12]
Предмет и задачи дисциплины. Основные этапы проектирования и жизненный цикл программных продуктов. Показатели качества программных продуктов. Стандарты на разработку прикладных программных средств; документирование, сопровождение и эксплуатация программных средств.
Тема 1.1. Технология программирования (4 часа)
|
[1],c.25-42; [2],c.7-9; [12] |
|
Определение |
алгоритма. Основные принципы и подходы |
в |
проектировании программных алгоритмов, нисходящее проектирование и
восходящее программирование. Структурное, модульное |
и объектное |
программирование. |
|
Тема 1.2. Базовые понятия алгоритма и алгоритмического языка (12 часов)
[1],c.35-47, 120-145
Способы представления алгоритмов: словесная форма, блок-схемы, специальные языки. Способы реализации алгоритма: ручной счёт, программный и аппаратный методы.
Типовые классы алгоритмов: прямые, разветвляющиеся, циклические алгоритмы. Функции и процедуры.
Компиляция и интерпретация, программные модули : исходный, объектный и загрузочный. Типы языков программирования, краткая характеристика наиболее распространенных языков С++, Pascal, Java, ассемблер.
Классификация языков программирования:
•- по области применения: универсальные(язык ассемблера, C++, Pasсal, Ada, Basic ) и специализированные (Java, SQL, HTML, языки СУБД – dBase, Paradox,Oracle);
•- по методу реализации: компиляторы (ассемблер, С++, Pascal) и
интерпретаторы (Basic, Java, HTML);
•- по уровню: низкого уровня (машинно-зависимые языки (ассемблеры) и высокого уровня (машинно-независимые языки (C++, Pascal, Java).
Синтаксис и семантика алгоритмического языка программирования. Типизация и структуризация программных данных.
Тема 1.3. Основные понятия алгоритмического языка С++ и системы программирования С++Builder (12 часов)
[1],c.81-109,118-140,839-902; [2],c.123-128;
Типизация и структуризация программных данных. Машинное представление данных основных типов – int, float, AnsiString. Простейшие операторы : присваивания, условный, циклический. Функции в C++. Общие свойства системы программирования Builder. Идеи визуального компонентного программирования. Программный объект, основные принципы его машинной реализации. Динамическое выделение памяти. Понятие свойств и методов объекта, их машинная реализация.
Программный проект в среде Builder, файлы проекта, правила создания нового проекта. Технология проектирования программного интерфейса, настройка свойств объекта, программирование обработчиков событий.
Раздел 2. ПРОГРАММИРОВАНИЕ ТИПОВЫХ АЛГОРИТМОВ
Тема 2.1. Программирование прямых алгоритмов (10 часов)
[1], c.145-155,198-202,782-785, 803-816;[2], с.67-76
Типовые задачи, приводящие к прямым алгоритмам, их алгоритмическое представление. Общая структура прямого алгоритма: точка входаустановка начальных значенийвычисления – вывод результатовостанов. Простейшие компоненты, необходимые для организации прямых алгоритмов : Label, Button, Edit. Установка начальных значений с помощью прёма инициализации, оператора присваивания, установки свойств на фазе design time , ввода с пульта на фазе run time.
Объявление переменных в программе, статические и динамические данные.
Преобразования форматов данных типа «Строка - число» и «Числострока». Особенности вычислений на базе целых чисел типа int. Диапазон представления данных, особенности целочисленного деления. Особенности вычислений на базе чисел с плавающей точкой типа float. Диапазон представления данных, вывод результатов в естественной форме и по формату с фиксированной точкой типа ffFormat.
Правила записи арифметических выражений, унарные и бинарные операции, приоритет операций. Встроенные математические функции. Дополнительные компоненты, используемые при программировании прямых алгоритмов: BitButton, MaskEdit, Panel, Memo, Image. Оператор
ShowMessage. Многооконные приложения.
Тема 2.2. Программирование разветвляющихся алгоритмов (8 часов)
[1], c.145-155, 198-202, 819-822 [2], с.76-85
Типовые задачи, приводящие к разветвляющимся алгоритмам, их алгоритмическое представление. Разновидности условного оператора: if…then и if…then else.
Логические выражения. Вложенные операторы, блоки. Оператор безусловного перехода goto. Операторы выхода из блока return и break. Принципы структурного программирования: понятие блока, локализация переменных, нарушение структуризации операторами goto.
Выбор одной альтернативы из многих. Компонент RadioGroup и оператор switch. Организация ветвлений в диалоговом режиме, встроенная функция MessageDlg.
Тема 2.3. Программирование циклических алгоритмов с известным количеством повторений (14 часов)
[1], c.145-155, 198-202, 822-824; [2], с.19-22, 85-88
Типовые задачи, приводящие к циклическим алгоритмам: обработка натурального ряда чисел, варианты обработки, алгоритмическое представление решения задач.
Организация циклов с помощью:
•условного и безусловного операторов;
•оператора цикла for;
•оператора цикла while.
Задачи, требующие разветвления в теле цикла: обработка натурального ряда чисел, расчёт табличных значений функций. Комбинация оператора цикла и условного оператора.
Тема 2.4. Программирование алгоритмов с подпрограммами (10 часов)
[1], c.788-800; [2], с.42-60
Типовые задачи, приводящие к алгоритмам с подпрограммами. Углубление понятия блока, локальные и глобальные переменные, область действия переменных.
Подпрограммы-процедуры и подпрограммы-функции. Формальные и фактические параметры. Описание и вызов подпрограмм. Передача данных подпрограмме и получение результатов, возвращаемое значение. Понятие типа функции, функции без определённого типа возвращаемого значения. Передача подпрограмме множества значений. Обмен данными с подпрограммой через глобальные переменные. Побочный эффект подпрограмм. Действия, производимые машиной при компиляции программы с процедурами, и при выполнении такой программы
Тема 2.5. Циклы с неизвестным количеством повторений (16 часов)
[1], c.822-826; [2], с.85-87
Рекурсия и итерация; итерационные циклы: суммы сходящихся рядов, извлечение квадратного корня методом последовательных итераций, решение уравнений методом деления пополам.
Раздел 3. МАССИВЫ
Тема 3.1. Числовые массивы (14 часов)
[1], c.155-170; [2], с.239-243, 264-271
Многострочный редактор Memo , компоненты ListBox. Работа со свойствами Items и Lines, основные методы и свойства.
Представление списков в виде массивов. Локальные и глобальные массивы. Внутренняя организация структур хранения: массивы, списки, очереди. Визуальное представление массивов, доступ к локальным и глобальным массивам.
Обработка одномерных числовых массивов: определение минимального и максимального элементов, вычисление среднего значения и среднего квадратичного отклонения в одно- и двумерных массивах. Обработка двумерных числовых массивов. Компоненты для представления двумерных массивов. Сетка StringGrid.
Тема 3.2. Строковые массивы (8 часов)
[1], c.168-170; [2], с.239-243
Элементарные функции обработки строк – соединение (конкатенация) и логические сравнения. Особенности представления и преобразования элементов строковых массивов. Обработка строковых массивов. Страница с закладками PageControl.
Тема 3.3. Методы сортировки и поиска в массиве (16 часов)
[10], c.13-502
Сортировка методом «всплывающего пузырька» , методом локального минимума. Прямой поиск в неупорядоченном массиве, в упорядоченном массиве, бинарный поиск.
Тема 3.4. Развитые структуры и алгоритмы (8 часов)
[10], c.502-561
Методы частных целей, подъемы ветвей и границ, эвристика. Сложные структуры данных (списки, деревья, сети). Потоки ввода-вывода; файлы.
Раздел 4. ГРАФИКА
Тема 4.1. Графические приемы построения изображений (10 часов)
[1], c.289-314б373-407; [2], с.298-305
Понятие холста (Canvas) как свойства компонентов, предназначенного для рисования. Процедурное и растровое построение изображений. Методы и свойства холста (Canvas), применяемые для программной прорисовки изображения. События формы, связанные с прорисовкой изображения Компоненты Image, свойства Canvas, Brush, Pen, методы процедурной графики.
Заключение.
В результате изучения вопросов, отражённых в данной учебной программы, студент осваивает методы элементарного программирования на языке С++ и приёмы разработки программных проектов в визуальной среде программирования.