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

4244

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

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Никитенкова С.П.

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

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

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

для обучающихся по дисциплине «Программирование» по направлению подготовки 09.03.03 Прикладная информатика

профиль Прикладная информатика в экономике

Нижний Новгород

2016

УДК 004.9

Никитенкова С.П. / Программирование [Электронный ресурс]: учеб.-метод. пос. / С.П. Никитенкова; Нижегор. гос. архитектур. - строит. ун-т – Н. Новгород: ННГАСУ, 2016. – 19 с.– 1 электрон. опт. диск

(CD-RW).

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

Учебно-методическое пособие предназначено для обучающихся в ННГАСУ по дисциплине «Программирование» по направлению подготовки 09.03.03 Прикладная информатика, профиль Прикладная информатика в экономике.

Учебно-методическое пособие ориентировано на обучение в соответствии с календарным учебным графиком и учебным планом по основной профессиональной образовательной программе направления 09.03.03 Прикладная информатика, профиль Прикладная информатика в экономике, утверждённым решением учёного совета ННГАСУ от 02.09.2016 г. (протокол № 1).

© С.П. Никитенкова, 2016 © ННГАСУ, 2016

2

Оглавление

 

1. Общие положения ..........................................................................................................................

4

1.1

Цели изучения дисциплины и результаты обучения ...........................................................

4

1.2

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

4

1.3

Порядок освоения материала..................................................................................................

6

2. Методические указания по подготовке к лекциям......................................................................

7

2.1

Общие рекомендации по работе на лекциях.........................................................................

7

2.2

Общие рекомендации при работе с конспектом лекций......................................................

7

2.3

Общие рекомендации по изучению материала лекций .......................................................

7

2.4

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

9

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

10

3.1

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

10

3.2

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

10

Задача 1...............................................................................................................

10

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

14

4.1

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

14

4.2

Темы для самостоятельного изучения.................................................................................

15

4.3

Учебно-методическое обеспечение самостоятельной работы ..........................................

15

4.4

Задания для самостоятельной работы .................................................................................

16

5. Методические указания по организации курсовых работ........................................................

18

3

1. Общие положения

1.1 Цели изучения дисциплины и результаты обучения

Основными целями освоения учебной дисциплины «Программирование» являются:

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

В процессе освоения дисциплины студент должен Знать:

основные конструкции языков программирования высокого уровня на примере языка С/C++,

основы построения схем алгоритмов, принципы работы компиляторов,

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

классификацию языков программирования и тенденции их развития;

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

Уметь:

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

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

Владеть:

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

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

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

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

Материал дисциплины сгруппирован по следующим разделам:

1. Понятие языка программирования.

4

Понятия языка программирования. Многообразие языков программирование. История и эволюция языков программирования. Основные понятия программирования. Понятие алгоритма. Жизненный цикл программного обеспечения. Парадигмы программирования: структурного программирования, объектно-ориентированного программирования, функционального программирования, логического программирования. Тенденции развития языков программирования.

2. Разработка программного обеспечения.

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

3. Алгоритмизация и программирование

Понятие алгоритма. Линейный, разветвляющийся и циклический алгоритмы. Структурное программирование. Теорема Бёма — Якопини как основное положение структурного программирования, согласно которому любой исполняемый алгоритм может быть преобразован к структурированному виду, то есть такому виду, когда ход его выполнения определяется только при помощи трёх структур управления: последовательной, ветвлений и повторов или циклов. Нисходящее проектирование

4. Базовые основы программирования на языке C/C++.

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

5. Синтаксис языка C/C++.

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

6. Структурированные типы данных. Массивы.

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

7. Работа с файлами.

5

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

8. Структуры и Объекты.

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

1.3 Порядок освоения материала

Материал дисциплины изучается в соответствии с порядком, определённым в следующей таблице:

 

 

Таблица 1

 

Порядок освоения дисциплины

 

 

 

 

Раздел дисциплины

№№ предшествующих разделов

 

 

 

1

Понятие языка программирования.

-

 

 

 

2

Разработка программного обеспечения.

1

 

 

 

3

Алгоритмизация и программирование

1,2

 

 

 

4

Базовые основы программирования на языке C/C++.

1,2,3

 

 

 

5

Синтаксис языка C/C++.

3,4

 

 

 

6

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

3,4,5

 

 

 

7

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

5,6

 

 

 

8

Структуры и Объекты.

5,6,7

 

 

 

6

2. Методические указания по подготовке к лекциям

2.1 Общие рекомендации по работе на лекциях

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

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

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

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

2.2Общие рекомендации при работе с конспектом лекций

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

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

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

2.3Общие рекомендации по изучению материала лекций

Раздел 1. Понятие программирование— 3 лекции.

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

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

7

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

Раздел 2. Алгоритмизация и программирование — 3 лекции.

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

Понятие алгоритма. Разработка алгоритма. Свойства алгоритма. Линейный, разветвляющийся и циклический алгоритмы. Структурное программирование. Теорема Бёма — Якопини как основное положение структурного программирования, согласно которому любой исполняемый алгоритм может быть преобразован к структурированному виду, то есть такому виду, когда ход его выполнения определяется только при помощи трёх структур управления: последовательной, ветвлений и повторов или циклов. Нисходящее проектирование

Раздел 3. Программирование на языке С/C++— 8 лекции.

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

Базовые типы данных: целочисленные , числа с плавающей точкой, символьный, логический. Переменные и константы. Операции и выражения. Преобразования типов. Условный оператор. Оператор множественного выбора switch . Циклы: с предусловием , с постусловием, цикл for . Управление циклами . Ввод-вывод . Ввод-вывод из языка C . Потоковый ввод-вывод С++. Функции . Функции, возвращаемые значения, параметры и аргументы. Объявление и определение функций. Локальные и глобальные переменные. Дополнительные сведения о функциях. Рекурсия. Структурированные типы данных. Массивы. Объявление массивы. Одномерные и многомерные массивы. Типовые задачи на массивы: сортировка одномерных массивов, перемножение матриц, транспонирование матриц и т.д. Массивы и функции. Массив как аргумент функции. Понятие указателей. Ссылки в C++. Связь указателей и массивов. Вычисления с указателями. Передача аргументов функций как указателей. Динамические массивы. Строки и символьные массивы данных. Функции для работы со строчным типом данных. Запись и чтение информации файла. Шифрование текстовых данных. Потоки и файлы. Основы файловой системы. Указатель файла, открытие файла, закрытие файла, запись символа, чтение символа и т.д. Буферный ввод/вывод. Функции fread() и fwrite(). Ввод/вывод при прямом доступе. Бинарные файлы. Модульный принцип разработки программы.

Раздел 4. Структуры и Объекты — 8 лекции.

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

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

8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9

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

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

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

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

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

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

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

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

Задача 1.

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

Задача 2.

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

Задача 3.

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

 

2cos2 x 1,

если n 2,

 

 

если n 3,

4cos3 x 3cos x,

y

8cos4 x 8cos2 x 1,

если n 4,

 

16cos5 x 20cos3 x 5cos x, если n 5.

10

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