Основы алгоритмизации и языки программирования

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВЛАДИВОСТОКСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНОМИКИ И СЕРВИСА
ИНСТИТУТ ИНФОРМАТИКИ, ИННОВАЦИЙ И БИЗНЕС-СИСТЕМ
КАФЕДРА МАТЕМАТИКИ И МОДЕЛИРОВАНИЯ
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ЯЗЫКИ
ПРОГРАММИРОВАНИЯ
Рабочая программа учебной дисциплины
Основная образовательная программа
080500.62 (38.03.05) Бизнес-информатика
Владивосток
Издательство ВГУЭС
2014
ББК **.**
Рабочая программа учебной дисциплины «Основы алгоритмизации и языки
программирования» составлена в соответствии с требованиями ООП: 080500.62 (38.03.05)
Бизнес-информатика, на базе ФГОС ВПО.
Составитель: Завертан А.В., канд. физ. - мат. наук
Утверждена на заседании кафедры математики и моделирования от 7.02.2011 г.,
протокол № 7, редакция 2014г., протокол №10 от 27.03.2014г.
Рекомендована к изданию учебно-методической комиссией Института информатики,
инноваций и бизнес – систем от 29.04.2014г., протокол №7.
© Издательство Владивостокский
государственный
университет
экономики и сервиса, 2014
ВВЕДЕНИЕ
Современное развитие вычислительной техники и информационных технологий
предполагает использование программных продуктов практически во всех областях
хозяйственной деятельности. Для современного специалиста желательно знать и понимать
основные принципы работы таких программных продуктов с целью их более эффективного
использования. Многие математические методы решения экономических и иных задач
основаны на алгоритмических действиях. Знакомство с основами алгоритмизации на примере
языка Pascal является для студентов существенным подспорьем при изучении таких
математических алгоритмов. Умение составлять компьютерные программы по
математическим алгоритмам может помочь студенту при выполнении практических работ,
связанных с алгоритмическими действиями.
Дисциплина «Основы алгоритмизации и языки программирования» предназначена для
ознакомления студентов основными методами и приемами
алгоритмизации и
программирования, а также основными структурами данных, используемых в современных
алгоритмических языках, на примере языка Pascal и среды программирования Turbo Delphi.
1. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ
1.1. Цели и задачи изучения дисциплины
Целью изучения дисциплины «Основы алгоритмизации и алгоритмические языки»
является формирование у студентов базовых компетенций в области программирования, в том
числе ознакомление студентов с понятием алгоритма, основными видами алгоритмов и
способами их составления, алгоритмами некоторых стандартных процессов. В качестве языка
обучения используется Object Pascal в реализации Turbo Delphi. Основной задачей
дисциплины является формирование у студента навыка перевода конкретной задачи на
алгоритмический язык.
1.2. Место учебной дисциплины в структуре ООП (связь с другими дисциплинами)
Дисциплина «Основы алгоритмизации и алгоритмические языки» относится к
вариативной части профессионального цикла. Изучение дисциплины «Основы
алгоритмизации и алгоритмические языки» базируется на знаниях, полученных в ходе
изучения следующих дисциплин математического и естественнонаучного цикла: «Дискретная
математика», «Линейная алгебра», «Математический анализ», «Информатика и
программирование модуль 1».
1.3. Компетенции обучающегося, формируемые в результате освоения учебной
дисциплины
Таблица 1. Формируемые компетенции
Название ООП
Блок
Компетенции
(сокращенное
название ООП)
ПК-15 – проектировать и
внедрять компоненты
ИТ-инфраструктуры
предприятия,
обеспечивающие
080500.62
достижение
БизнесБ.3 стратегических целей и
информатика
поддержку бизнеспроцессов
ПК-18- разрабатывать
контент и ИТ-сервисы
предприятия и Интернетресурсов
Знания/ умения/ владения (ЗУВ)
Знания:
Умения:
Владение:
Умения:
основные технологии
программирования;
проектировать и
внедрять ИС и ИКТ
методами и
инструментальными
средствами разработки
программ
разрабатывать контент и
ИТ-сервисы
предприятия и
Интернет-ресурсов
1.4. Основные виды занятий и особенности их проведения
Объем и сроки изучения дисциплины:
Курс читается для бакалавров второго курса в осеннем семестре в объеме 216 учебных
часов (6 зачетные единицы), из них аудиторных 68 час. На самостоятельное изучение
дисциплины бакалаврам выделяется 92 час. Промежуточный контроль по дисциплине —
экзамен.
Удельный вес занятий, проводимых в интерактивных формах, составляет 30 процентов
аудиторных занятий.
1.5. Виды контроля и отчетности по дисциплине
Контроль успеваемости студентов осуществляется в соответствии с рейтинговой системой
оценки знаний студентов.
Текущий контроль предполагает:
- проверку уровня подготовки студента при выполнении им лабораторных работ;
- опросы и дискуссии по основным моментам изучаемой темы.
Промежуточный контроль знаний осуществляется при проведении экзамена.
2.СТРУКТУРА И СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ
2.1 Темы лекций
Тема 1. Основы языка Pascal. Структура программы. Типы данных. (2 час.)
Идентификаторы. Типы переменных. Структура программы в Turbo Pascal. Оператор.
Оператор присваивания. Встроенные процедуры и функции. Идентификаторы, правила их
составления. Основные типы переменных: целый INTEGER, действительный REAL,
символьный CHAR, строковый STRING. Заголовок программы. Секция описания переменных,
типов, процедур и функций, тело программы. Операторы ввода-вывода READ, READLN,
WRITE, WRITELN. Оператор присваивания. Встроенные элементарные алгебраические
функции, целочисленные функции.
Тема 2. Логические выражения и условный оператор. (1 час.)
Оператор условия. Знаки логических операций. Тип BOOLEAN. Оператор IF-THEN-ELSE.
Оператор IF-THEN. Оператор множественного выбора CASE.
Тема 3. Целочисленная арифметика. (1 час)
Основы целочисленной арифметики. Операции целочисленного деления MOD и DIV.
Тема 4. Операторы циклов. (2 час.)
Оператор цикла FOR. Переменная – счетчик, циклы FOR-TO, FOR-DOWNTO. Работа с
файлами. Операторы цикла WHILE-DO, REPEAT-UNTIL. Условный цикл. Условие выхода из
цикла.
Тема 5. Работа с файлами. (2 час.)
Файловый тип переменной TEXT. Процедуры для открытия, закрытия файлов, файловые
функции. Типизированные и нетипизированные файлы.
Тема 6. Строки и другие структурированные типы данных. (1 час.)
Процедуры и функции для работы со строками. Процедуры преобразования строки в число
и наоборот, функции LENGTH, POS, COPY, DELETE. Записи и множества.
Тема 7. Массивы. (2 час.)
Тип данных массив. Размерность массива. Вложенный цикл для обработки массива.
Двойной цикл FOR для обработки элементов двумерного массива.
Тема 8. Сортировка и поиск. (2 час.)
Сортировка нахождением максимума, пузырьковая сортировка. Поиск в массиве.
Тема 9. Пользовательские процедуры и функции.(3 час.)
Подпрограммы. Объявление процедур и функций в программе. Параметры процедур и
функций. Тип функции. Вызов подпрограмм. Рекурсия. Модули. Структурный подход к
разработке программы.
Тема 10. Графика в Windows. (1 час)
Оконное приложение. Компоненты, их свойства и события. Библиотека компонентов.
Классы и объекты. Отображение графики с помощью TCanvas.
2.2 Перечень тем лабораторных занятий
Тема 1. Вычисления по формулам (1 час)
Структура простейшей программы. Секции программы. Операторы. Переменные.
Выражения в языке Паскаль. Консольный ввод-вывод. Составление программы для
вычисления значения выражения.
Тема 2. Оператор условия (2 часа)
Ветвления. Условный оператор IF. Полная и сокращенная форма оператора. Блочный
оператор, выполнение блоков. Составление программы, фрагмент которой выполняется при
соблюдении определенного условия. Использование оператора множественного выбора CASE.
Тема 3. Целочисленная арифметика (3 часа, метод мозгового штурма)
Операции целочисленного деления и получения остатка div и mod. Свойства
целочисленных операций. Составление алгоритма определения количества цифр в десятичной
записи целого числа с помощью целочисленных операций. Составление алгоритма перевода
числа из десятичной системы счисления в двоичную и обратно.
Тема 4. Оператор цикла (2 часа, метод анализа конкретных ситуаций (case-study))
Повторение операций. Циклы и их типы, условия выхода из цикла. Вечный цикл и
зацикливание. Операторы WHILE–DO, REPEAT–UNTIL. Цикл со счетчиком, оператор FOR.
Вычисление частичных сумм ряда. Вычисление элементов последовательностей, заданных
простыми рекуррентными соотношениями.
Тема 5. Работа с файлами (1 час).
Средства ЯП Pascal для работы с файлами. Файловые переменные и работа с ними. Чтение
и запись в текстовый файл. Вывод результата выполнения программы в файл.
Тема 6. Работа со строками (2 часа).
Строковый тип данных. Строковые переменные и операции над ними. Разбор строки с
помощью pos, copy и delete.
Тема 7. Работа с массивами. Часть 1. Одномерные массивы (1 час)
Создание одномерного массива. Использование переменных- индексов для доступа к
элементам массива. Обработка элементов одномерного массива в цикле. Загрузка элементов
массива из файла и сохранение их в файл.
Тема 8. Работа с массивами. Часть 2. Многомерные массивы (2 часа)
Вложенные циклы при работе с многомерными массивами. Использование целочисленной
арифметики для вычисления индексов. Загрузка и сохранение многомерного массива в
текстовый файл с сохранением табличной структуры.
Тема 9. Пользовательские процедуры и функции (4 часа, метод мозгового штурма)
Объявление подпрограмм в ЯП Pascal. Рекурсия и ее использование при составлении
алгоритмов. Вычисление числовых последовательностей, заданных рекуррентными
соотношениями, с помощью рекурсии. Альтернативная реализация алгоритма без рекурсии с
помощью дополнительных переменных и циклов.
Тема 10. Основы программирования в Windows (2 часа)
Создание простого Windows-приложения средствами Delphi/Lazarus. Элементы графики в
windows. Рисование на поверхности формы.
3.ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
Лекционные занятия проводятся с использованием мультимедийного оборудования,
позволяющего демонстрацию слайдов и методики применения среды программирования.
Лабораторные работы проводятся в компьютерном классе с использованием ППП "Turbo
Delphi".
При проведении лабораторных занятиях применяются следующие интерактивные методы
обучения:
- метод «мозгового штурма»: метод представляет собой разновидность групповой
дискуссии, которая характеризуется сбором всех вариантов решений, гипотез и предложений,
рожденных в процессе осмысления какой-либо проблемы, их последующим анализом с точки
зрения перспективы дальнейшего использования или реализации на практике;
- метод анализа конкретных ситуаций (case-study) — метод активизации учебнопознавательной деятельности обучаемых, при котором студенты и преподаватели участвуют в
непосредственном обсуждении деловых ситуаций или задач.
4.МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ КУРСА
4.1. Перечень и тематика самостоятельных работ студентов по дисциплине
Самостоятельная работа студентов заключается в изучении с помощью источников из
основного и дополнительного списков литературы следующих тем: структурированные типы
данных, типизированные и нетипизированные файлы, алгоритмы сортировки и поиска, а
также в выполнении аудиторных лабораторных работ.
4.2. Контрольные вопросы для самостоятельной оценки качества освоения учебной
дисциплины.
1. Опишите структуру программы на языке Pascal.
2. Что такое идентификатор?
3. Что в списке можно рассматривать как идентификаторы: FIO, ФИО, 33719, X, Y, >=, $,
&, Summa, _Rezult
4. Перечислите основные типы переменных.
5. В чем разница между оператором «=» и «:=»?
6. Что такое переменная и чем она характеризуется?
7. Перечислите основные типы данных языка Pascal.
8. Какие значения может принимать переменная типа BOOLEAN?
9. Что такое ветвление?
10. Какая форма ветвления называется неполной?
11. Перечислите операторы цикла языка Pascal.
12. Перечислите структурированные типы данных языка.
13. Какой структурированный тип допускает обращение к своим элементам по индексу?
14. Какой структурированный тип может содержать разнотипные элементы?
15. Что такое базовый тип массива?
16. Какого типа может быть индекс массива?
17. Что такое многомерный массив?
18. Что такое строка? В чем различие между строкой и массивом символов?
19. В чем разница между операторами деления «/» и «div»?
20. К операндам какого типа применим оператор «mod»?
21. Что такое файл? В чем разница между файлом и переменной файлового типа?
22. Какие типы файлов вы знаете?
23. Какие операторы используются для чтения из файла и записи в файл?
24. Что такое процедура? Что такое функция? В чем различие между ними?
25. Что такое параметр процедуры? Какое значение он принимает в процессе ее
выполнения?
26. Объясните смысл понятия «Рекурсия».
27. Что такое модуль? В чем смысл дробления программы на модули?
28. В чем суть структурного подхода к разработке программы?
4.3. Методические рекомендации по организации СРС
В процессе изучения дисциплины «Основы алгоритмизации и алгоритмические языки у
студента может возникнуть потребность в самостоятельной дополнительной проработке
теоретического материала, предоставленного преподавателем во время лекционных занятий.
В качестве пособия по структурам языка PASCAL выбрано справочное пособие Мизрохи
С.В., как содержащее все необходимые сведения по структуре и синтаксису языка,
изложенные в естественной и доступной форме. Использование студентом других источников
информации по структурам языка и основам алгоритмов всячески приветствуется.
4.4. Рекомендации по работе с литературой
В качестве справочных пособий при изучении языка Pascal рекомендуется использовать
самоучитель О.А. Меженного, а также учебник Е.Р. Алексеева, О.В. Чесноковой и др.
При выполнении лабораторных работ используется сборник методических указаний и
контрольных заданий Лугового Р.А. Данный сборник содержит 10 разделов, соответствующих
темам лабораторных занятий. В каждом разделе приведен пример решенной задачи составленной программы на языке Pascal с комментариями, а также 20 заданий для
самостоятельного выполнения.
При необходимости закрепления навыка решения задач по программированию
используется сборник задач Абрамова С.А. и др.
5.УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ
ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
5.1. Основная литература
1. Луговой Р.А. Основы алгоритмизации и алгоритмические языки. – Владивосток: Изд.
ВГУЭС, 2002.
2. Рапаков Г. Г. Программирование на языке Pascal: учебное пособие для вузов / Г. Г.
Рапаков, С. Ю. Ржеуцкая; Вологодский гос. техн. ун-т. - СПб. : БХВ-Петербург, 2005.
3. Попов В. Б.Паскаль и Дельфи [Текст] : учебный курс / В. Б. Попов. - СПб.: Питер, 2005.
4. Delphi. Советы программистов / под ред. В. Озерова. - 2-е изд., доп. - СПб.: СимволПлюс, 2003.
5. В. Д. Колдаев, Основы алгоритмизации и программирования. - М.: ФОРУМ : ИНФРА-М,
2012.
6. О. Л. Голицына, И. И. Попов, Основы алгоритмизации и программирования. - М.:
ФОРУМ, 2010.
5.2. Дополнительная литература.
1. Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. Free Pascal и Lazarus: Учебник по
программированию. – М., ДМК-пресс, 2010.
2. Меженный О.А. Самоучитель TURBO PASCAL. – Диалектика, 2008.
3. Голицына О. Л. Основы алгоритмизации и программирования / О.Л.Голицына,
И.И.Попов. - М.: ФОРУМ: ИНФРА-М, 2004.
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ
ДИСЦИПЛИНЫ
Техническое и лабораторное обеспечение: аудитория с мультимедийным оборудованием
для проведения лекционных занятий, компьютерный класс с установленным ППП «Turbo
Delphi» для проведения лабораторных работ.
7. СЛОВАРЬ ОСНОВНЫХ ТЕРМИНОВ
Алгоритм — набор инструкций, описывающих порядок действий исполнителя для
достижения результата решения задачи за конечное число действий.
Идентификатор — это специальное наименование, имя элементарных данных, программ
или других объектов, которые запрашиваются, обрабатываются и выдаются на выход ЭВМ.
Для переменных величин (данных) требуется четко различать имя и значение величины (напр.,
имя переменной x, значение — 0, 1 и т. д.).
Переменная — это идентификатор, определяющий данные. Обычно это имя, скрывающее
за собой область памяти с хранящимися там данными. Переменная может иметь тип,
характеризующий множество значений, которые она может принимать. В программировании,
переменные, как правило, обозначаются одним или несколькими словами или символами,
такими, как «time», «_x», «foo123» и тому подобное.
Программа — предварительное описание предстоящих событий или действий.
Процедура — это независимая именованная часть программы, которую после
однократного описания можно многократно вызвать по имени из последующих частей
программы для выполнения определенных действий.
Подпрограмма — поименованная или иным образом идентифицированная часть
компьютерной программы, содержащая описание определённого набора действий.
Подпрограмма может быть многократно вызвана из разных частей программы. В языках
программирования для оформления и использования подпрограмм существуют специальные
синтаксические средства. Подпрограммы часто используются для многократного выполнения
стереотипных действий над различными данными. Подпрограмма обычно имеет доступ к
объектам данных, описанным в основной программе (по крайней мере, к некоторым из них),
поэтому для того, чтобы передать в подпрограмму обрабатываемые данные, их достаточно
присвоить, например, глобальным переменным. Для обеспечения контролируемой передачи
параметров в подпрограмму и возврата результатов из неё используется механизм параметров.
Параметры описываются при описании подпрограммы (в её заголовке) и могут использоваться
внутри процедуры аналогично переменным, описанным в ней. При вызове процедуры
значения каждого из параметров указываются в команде вызова (обычно после имени
вызываемой подпрограммы).
Тип определяет множество допустимых значений, которые может тот или иной объект, а
также множество допустимых операций, которые применимы к нему. Кроме того, тип
определяет формат внутреннего представления данных в памяти ПК. Типы подразделяются на
простые и структурированные. К простым типам относятся порядковые и вещественные типы.
Структурированный тип данных – это множество элементов данных (компонент) с
одним именем. В отличие от данных скалярного типа, которые могут принимать одно
значение, данные структурированного типа могут принимать множество значений одного типа
(регулярный тип, например, массивы), либо разных типов (комбинированные типы, например,
записи).
Функция — это подпрограмма специального вида, которая, кроме получения параметров,
выполнения действий и передачи результатов работы через параметры имеет ещё одну
возможность — она может возвращать результат. Вызов функции является, с точки зрения
языка программирования, выражением, он может использоваться в других выражениях или в
качестве правой части присваивания.
Download