Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6108

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
720.53 Кб
Скачать

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

Раздел 2. Основы алгоритмизации.

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

Этапы разработки программы. Определение цели задачи, ее содержание и общий подход к решению, эффективность используемого алгоритма. Определение исходных данных и результат, ограничения на их значения. Разработка или выбор алгоритма решения задачи. Формирование общей структуры программы с последующей детализацией и разбивкой на подпрограммы, способ хранения информации (набор переменных, массивов и т. п.). Кодирование — запись алгоритма на языке программирования. Отладка и тестирование программы. Анализ результатов.

Раздел 3. Операторы и инструкции языка программирования.

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

Базовые типы данных: целочисленные , числа с плавающей точкой, символьный, логический. Переменные и константы. Операции и выражения. Преобразования типов. Условный оператор. Оператор множественного выбора switch . Циклы: с предусловием , с постусловием, цикл for . Управление циклами . Ввод-вывод . Ввод-вывод из языка C . Потоковый ввод-вывод С++.

Раздел 4. Функции.

Цель: учитывая особенности языка C++, проектировать и реализовывать высокоэффективные программы;

Функции. Декомпозиция задачи на подзадачи. Программирование сверху вниз и снизу вверх. Входные и выходные данные подпрограммы. Область видимости имен. Локальные и глобальные идентификаторы Вызов процедуры и функции. Аргументы формальные и фактические. Структурная декомпозиция. Функции, возвращаемые значения, параметры и аргументы. Объявление и определение функций. Локальные и глобальные переменные. Дополнительные сведения о функциях. Рекурсия.

Раздел 5. Структурированные типы данных. Массивы.

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

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

11

мерные массивы. Типовые задачи на массивы: сортировка одномерных массивов, перемножение матриц, транспонирование матриц и т.д. Массивы и функции. Массив как аргумент функции. Понятие указателей. Ссылки в C++. Связь указателей и массивов. Вычисления с указателями. Передача аргументов функций как указателей. Динамические массивы. Строки и символьные массивы данных. Функции для работы со строчным типом данных.

Раздел 6. Указатели. Операции над указателями.

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

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

Раздел 7. Файлы. Модули

Цель: научить реализовывать чтение и вывод данных из файла, реализовать работу с файловой системой.

Понятие файла. Текстовые и бинарные файлы. Последовательный и произвольный методы доступа к файлам. Заголовочный файл и функции для организации последовательного доступа. Режимы открытия файлов. Особенности произвольного доступа к элементам бинарных файлов. Алгоритмы формирования, просмотра и корректировки файлов. Запись и чтение информации файла. Шифрование текстовых данных. Потоки и файлы. Основы файловой системы. Указатель файла, открытие файла, закрытие файла, запись символа, чтение символа и т.д. Буферный ввод/вывод. Функции fread() и fwrite(). Ввод/вывод при прямом доступе. Бинарные файлы. Модульный принцип разработки программы.

Раздел 8. Структуры

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

Понятие структуры. Массив структур. Динамические структуры. Запись и чтение структуры из файла. Введение в Объектно-ориентированное программирование. Понятие класса и объекта. Сравнение структурного и объектно-ориентированного подхода к разработке программ.

Раздел 9. Объектно-ориентированная парадигма программирования.

Цель: научить реализовывать методы объектно-ориентированного проектирования

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

12

морфизм. Сравнение структурного и объектно-ориентированного подхода к разработке программ.

Раздел 10. Классы, объекты, интерфейсы

Цель: изучение методов разработки классов и создания объектов в объектноориентированном программировании.

Определение класса. Объекты. Создание и уничтожение объектов класса. Конструкторы и деструкторы. Способы реализации инкапсуляции. Интерфейс и реализация контейнерных классов для моделирования структур данных. Статические члены класса. Вложенные и локальные классы. Примеры описания и использования классов. Сериализация/ десериализация. Абстракция и инкапсуляция. Модификаторы доступа и наследование. Статический и динамический полиморфизм. Абстрактный класс. Интерфейс. Отличие. Переопределение, перегрузка и сокрытие методов.

Раздел 11. Наследование

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

Организация иерархии классов. Интерфейсы. Модификаторы доступа. Абстрактные классы и виртуальные функции. Множественное наследование. Проблема множественного наследования. Виртуальное наследование как средство разрешения коллизий

Раздел 12. Полиморфизм

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

Концепция полиморфизма "один интерфейс, множество методов". Виды полиморфизма. Статический полиморфизм. Перегрузка функций, методов, операторов и т.д. Динамический полиморфизм. Виртуальные функции и методы.

Раздел 13. Массивы и Коллекции.

Цель: научить выбирать тип коллекции, наилучшим образом подходящим для решения за-

дачи,

Способы группировки объектов: массив объектов и коллекция. Преимущество коллекций и массивов. Стандартизация обработки групп объектов с помощью коллекций. Интерфейсы коллекций.

Раздел 14. Графика. 2D и 3D графика. Визуализация данных. Анимация

13

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

Основные графические классы. Графические примитивы. Методы класса Graphics. Построение графиков

Раздел 15. Многопоточное программирование

Цель: научить разрабатывать многопоточные приложения

Потоки и процессы. Класс Thread. Назначение приоритета потока. Управление и синхронизация потоков. Параллелизм, многопоточность, асинхронность: разница и примеры применения

2.4Контрольные вопросы

1.Понятие алгоритма. Алгоритмические системы. Исполнители алгоритма.

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

3.Алгоритмизация и этапы разработки алгоритма.

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

5.Типы алгоритмов: линейный, условный, циклический, рекурсивный и эвристический.

6.Обзор языков программирования. Языки программирования С и С++.

7.Основные парадигмы программирования: императивная, модульная, объектноориентированная.

8.Языки программирования высокого и низкого уровня.

9.Основные этапы проектирования и разработки программы.

10.Жизненный цикл программного продукта.

11.Процесс трансляции (компиляторы и интерпретаторы)

12.Структура программы на С и С++. Заголовочные файлы и компоновка программы.

13.Этапы построения математической модели. Математические вычисления на языке C/C++.

14.Понятие типа данных. Простые и структурированные типы данных.

15.Указатели и адресная арифметика.

16.Объявления и определения функций. Аргументы функций.

17.Одномерные и многомерные массивы.

18.Работа с файлами. Операции чтения-записи. Текстовые и двоичные файлы.

19.Алгоритмы поиска и сортировки в массиве.

20.Символьные массивы и строки. Обработка строк.

21.Структуры. Массивы структур.

22.Динамическое выделение памяти. Динамические массивы.

23.Односвязные и двухсвязные списки.

14

24.Модульное программирование.

25.Структура сложных систем.

26.Объектно-ориентированная декомпозиция.

27.Объектная модель. Основные концепции.

28.Объектно-ориентированное программирование

29.Процессы объектно-ориентированного анализа и проектирования.

30.Структура. Классы и объекты.

31.Основные концепции объектно-ориентированного программирования

32.Абстракция и инкапсуляция.

33.Модификаторы доступа и наследование

34.Статический и динамический полиморфизм

35.Абстрактный класс. Интерфейс. Отличие.

36.Виды наследований. Наследование конструкторов.

37.Переопределение, перегрузка и сокрытие методов

38.Сериализация/ десериализация.

39.Поток и процесс. Управление потоком.

40.Синхронизация потоков.

41.Событийное управление

42.Тестирование программ. Полнота тестирования

15

3. Методические указания по подготовке к практическим занятиям

3.1Общие рекомендации по подготовке к практическим занятиям

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

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

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

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

3.2Примеры задач для практических занятий

Задачи для раздела 1,2.

Задача 1.

Три точки заданы своими координатами. Найти наиболее удаленные друг от друга точки. Координаты первой точки - (a, b); второй точки – (c, d); третьей точки - (e, f).

Задача 2.

Напечатать числа в порядке возрастания, найти среднее из чисел a, b, c .

Задача 3.

При заданных n, x вычислить значение y:

 

2 cos2 x 1,

 

 

если n 2,

 

4cos

3

x 3cos x,

 

если n 3,

 

 

 

y

8cos 4 x 8 cos2

x 1,

если n 4,

 

 

 

5

x 20 cos

3

x 5 cos x, если n 5.

16cos

 

 

16

Задача 4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Построить таблицы функции y 3sin

 

x 0.35 x 3.8 . Пусть x0=2

(начальное значение); xk=3

(конечное значение); h=0.1 (шаг изменения x).

 

 

 

 

 

 

Задача 5.

 

 

 

 

 

 

 

 

 

 

 

Вычислить сумму

S

членов последовательности

действительных чисел

xi , где i 0,1, , 5 .

5

 

 

 

 

 

 

 

 

 

 

 

S xi .

 

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

 

 

 

 

 

 

 

 

Задача 6.

 

 

 

 

 

 

 

 

 

 

 

Вычислить элементы векторов ai и bi ,

i 0,1, , 6 ,

 

 

 

 

 

 

 

ai ai 1 bi 1 2, bi

 

, i 1, , 6

 

 

 

 

если a0 1000 , b0

1,

ai 1bi 1

 

 

 

 

Задача 7.

 

 

 

 

 

 

 

 

 

 

 

Дана последовательность a , i 1, , n

. Получите max( a a , a

a

, a a

n 2

, ) , где n 6 .

 

 

i

 

 

 

 

1 n 2

n 1

3

 

Задачи для раздела 3.

Задача 1

Расположить элементы массива a в обратном порядке. Инициализация элементов массива: a[10]={0, 1,2,3,4,5,6,7,8,9}.

Задача 2

Переставить элементы введенной текстовой строки в обратном порядке. Длина строки не более 80 символов. Строка должна вводиться с клавиатуры.

Задача 3

Скопировать вторую строку s2 в конец первой строки s1. Строки должны вводиться с клавиатуры.

Задача 4

Удалить из строки s1 все символы, входящие в строку s2. Строки должны вводиться с клавиатуры.

Задача 5

17

Дана квадратная матрица a размерностью 5х5 и вектор b размерностью 5. Заменить заданный столбец матрицы a на вектор b. Номер столбца матрицы a вводить с клавиатуры. Матрицу и вектор инициализировать в программе.

Задача 6

Дана квадратная матрица a размерностью 4х4 и вектор b размерностью 4. Заменить заданную строку матрицы a на вектор b. Номер строки матрицы a вводить с клавиатуры. Матрицу и вектор инициализировать в программе.

Задача 7 Осуществить транспонирование квадратной матрицы размерностью 6х6. Матрицу инициализировать в программе.

Задача 8 Подсчитать количество слов в строке, которая не может начинаться и заканчиваться пробелами и

между словами можно ставить только один пробел.

Задача 9 Подсчитать количество слов в строке, которая не может начинаться с пробелов, но может заканчи-

ваться ими. Учесть наличие двух и более пробелов между словами (два и более пробелов считать за один).

Задача 10 Подсчитать количество слов в строке, которая может начинаться с пробелов и заканчиваться про-

белами (два и более пробелов считать за один).

Задача 11 Подсчитать во введенной строке количество букв ‘Л’ и количество букв ‘И’.

Задача 12 Подсчитать во введенной строке количество сочетаний букв ‘НЕ’.

Задачи для раздела 4.

Задача 1

Таблица содержит геометрические точки, заданные на плоскости Oxy. Определить прямоугольник, в который попадают все указанные точки. Стороны прямоугольника выбрать ориентированными вдоль координатных осей.

Задача 2 Таблица содержит информацию о книгах: фамилия автора, название книги, количество страниц,

тираж и цену. Определить самую дорогую и самую массовую книги.

Задача 3

18

Таблица содержит набор комплексных чисел z x i y .Среди всех чисел, модуль которых превышает заданное значение, найти такое, модуль которого является наименьшим. Вычисление мо-

дуля комплексного числа производится по формуле z x2 y2 .

Задача 4 Таблица содержит описания товаров, имеющихся в продаже в торговой организации. Описание

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

Задача 5 В таблице собраны сведения об успеваемости студентов одной группы по некоторой дисциплине.

Информация об отдельном студенте включает в себя ФИО студента и отметки (сдано или не сдано) по каждой из 4 лабораторных работ. Выдать список студентов, имеющих задолженности, и подсчитать общее число таких студентов.

Задача 6 Таблица содержит информацию о кадрах некоторой организации. Информация о каждом сотруд-

нике включает его ФИО, должность, табельный номер и номер отдела, в котором он работает. Зная количество отделов в организации, подсчитать, сколько сотрудников работает в каждом из них.

Задача 7 В таблице собраны сведения о покупках товаров, произведенных в торговой организации. Каждая

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

Задача 8

Таблица содержит геометрические точки, заданные в полярных координатах , R . Определить прямоугольник в плоскости Oxy, в который попадают все указанные точки x Rcos , y Rsin . Стороны прямоугольника выбрать ориентированными вдоль координатных осей.

Задача 9 Таблица содержит информацию о статьях в научном журнале: фамилия автора, название, место

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

Задача 10 Таблица содержит информацию о результатах подписки на газеты: название, шифр, стоимость

подписки на год, число подписчиков. Выдать справку об общей сумме полученных денег. Какая газета самая дорогая?

Задача 11 Таблица содержит информацию о результатах баскетбольной встречи: ФИО игрока, его номер,

19

очки. Вывести номер лучшего игрока встречи и количество набранных им очков.

Задача 12 Таблица содержит информацию о результатах сессии некоторой группы: ФИО студента, оценки

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

Задача 13 Таблица содержит информацию о результатах сбора изделий рабочими за день: ФИО рабочего,

табельный номер, количество изделий. Найти общее количество собранных за день изделий. Вывести табельный номер рабочего, который собрал наибольшее число изделий.

Задача 14 Создать каталог библиотеки из трех книг (по информатике). Он должен содержать шифр книги,

УДК, ФИО автора, название книги, год издания, признак наличия книги. Найти книгу с заданным шифром и выдать информацию о наличии данной книги.

Задачи для раздела 10.

Задача 1. Напишите программу, реализующую функции простейшего онлайн банкомата. Доступ к одному и тому же сберегательному счету имеет несколько человек, каждый из них может внести или снять деньги Задача 2. Разработать систему бронирования и резервирования места в концертном зале удаленно.

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

Задачи для раздела 13.

Задача. Разработать приложение автоматической обработки данных в выбранной предметной области.

Задачи для раздела 14.

Задача. Разработать приложение, используя 2D и 3D графические возможности языка, визуализирующее физический эксперимент (виртуальная физическая лаборатория)

4. Методические указания по организации самостоятельной работы

4.1 Общие рекомендации для самостоятельной работы

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

Целями самостоятельной работы студентов являются:

- систематизация и закрепление полученных теоретических знаний и практических умений

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]