Смекни!
smekni.com

Методические указания к выполнению контрольных работ по дисциплине "Основы программирования" (стр. 1 из 40)

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

Основы программирования"

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

Для выполнения контрольной работы необходимо использовать учебное пособие [1] и практикум [2] (см. список литературы).

Основные темы, которые входят в данную дисциплину:

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

2. Особенности алгоритмов.

3. Форма записи алгоритмов. Блок-схема алгоритма.

4. Понятие алгоритма в терминах математической теории множеств.

5. Математические методы, используемые при анализе алгоритмов.

6. Методы доказательства корректности алгоритма.

Задания для контрольных работ

Студент должен выполнить самостоятельно задание. Номер задачи для каждого студента определяется числом i – номером варианта. Номер варианта – это номер студента в журнале. Если это число больше 15, то для оп­ределения номера задачи от числа iнужно вычесть 15 или 30.

Например, по выбору преподавателя необходимо выполнить задание 1-1 или задание 1-3.

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

В задании 1-3 необходимо найти формулу для нахождения n-го слагаемого представленного числового ряда. Доказать, что эта формула верна. Составить алгоритм нахождения суммы числового ряда с заданной точностью. Алгоритм представить в виде блок-схемы.


Список литературы

Основная:

1. Емельянов А.А., Власова Е.А., Денисов Д.В., Емельянова Н.З. Основы программирования для информатиков и инженеров: Часть 1 / Под ред. А.А. Емельянова. – М.: ММИЭИФП, 2004. – 208 с.

2. Емельянов А.А., Власова Е.А., Емельянова Н.З. Практикум по основам программирования для информатиков и инженеров / Под ред. А.А. Емельянова. – М.: ММИЭИФП, 2004. – 162 с.

3. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1989. – 360 с.

4. Кнут Д. Искусство программирования для ЭВМ: в 3т. – М.: Мир, 1978.

Дополнительная:

5. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения: Пер. с англ. – М.: Мир, 1982. – 386 с.

6. Лэнгсам И., Огенстайн М., Тененбаум А. Структуры данных для персо­нальных ЭВМ. – М.: Мир, 1989.

7. Сибуя М., Ямамото Т. Алгоритмы обработки данных. – М.: Мир, 1986.

8. Фокс Дж. Программное обеспечение и его разработка: Пер. с англ. – М.: Мир, 1985. – 368 с.


УЧЕБНАЯ ПРОГРАММА

Цель дисциплины, её место в учебном процессе

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

Задачи: составлять программы на алгоритмическом языке С++, знать принципы работы в среде программирования VisualC++, работать с массивами, структурами, списками, осуществлять отладку программ в среде программирования VisualC++.

Сфера профессионального использования

Язык «С++» (по-русски произносится как «си плюс плюс») в настоящее время является одним из самых популярных языков программирования. Это универсальный язык программирования, для которого характерны экономичность выражения, современный поток управления и структуры данных, богатый набор операторов.

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

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

Для изучения данной дисциплины студент должен знать:

· математика;

· информатика (школьный курс);

· основы программирования.

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

Тема 1. Обзор языка С++

Структура программы на языке С++. Среда программирования Visual C++. Переменные и константы. Оператор цикла. Работа с массивами. Массивы символов. Функции.

Тема 2. Типы операции и выражения

Имена переменных. Типы и размеры данных. Константы. Описания Арифметические операции. Операции отношения и логические операции. Преобразование типов. Операции увеличения и уменьшения. Побитовые логические операции. Операции и выражения присваивания. Условные выражения. Старшинство и порядок вычисления.

Тема 3.Поток управления

Операторы и блоки. Конструкция if-else. Конструкция else-if. Переключатель switch. Циклы while и for. Цикл do-while. Оператор break. Оператор continue. Оператор goto и метки.

Тема 4.Функции и структура программ

Основные сведения. Функции, возвращающие нецелые значения. Аргументы функций. Внешние переменные. Правила, определяющие область действия. Статические переменные. Регистровые переменные. Рекурсия. Препроцессор языка «C». Заголовочные файлы.

Тема 5. Указатели и массивы

Указатели и адреса. Указатели и аргументы функций. Указатели и массивы. Адресная арифметика. Указатели символов и функции. Многомерные массивы. Массивы указателей; указатели указателей. Указатели и многомерные массивы. Командная строка аргументов. Указатели на функции.

Тема 6. Структуры

Основные сведения. Структуры и функции. Массивы структур. Указатели на структуры. Структуры, ссылающиеся на себя; двоичные деревья. Поиск в таблице. Битовые поля. Объединения.

Тема 7. Динамическое распределение памяти. Работа со списками

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

Тема8. Ввод, вывод и форматные преобразования данных

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

Учебно-методическая и научная литература

3.1. Емельянов А.А., Власова Е.А., Денисов Д.В., Емельянова Н.З. Основы программирования для информатиков и инженеров: Часть 1 / Под ред. А.А. Емельянова. – М.: ММИЭИФП, 2004. – 208 с.

3.2. Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: ДИАЛОГ-МИФИ, 1996. – 288 с.

3.3. Джехани Н. Программирование на языке Си. - М.: Радио и связь, 1988.3.4. Керниган Б., Ритчи Д. Язык программирования Си.\ Пер. с англ., 3-е изд. испр. - СПб.: «Невский Диалект», 2001. – 352 с.

3.5. Крупник А. Изучаем С++. – СПб.:Питер, 2003. – 251 с.

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

3.7. Подбельский В.В. Язык Си++. - М.: Финансы и статистика, 1995.

3.8. Уэйт М., Прата С., Мартин Д. Язык.Си. Руководство для начинающих: Пер. с англ. - М.: Мир, 1988. - 512 с.


УЧЕБНОЕ ПОСОБИЕ

В первой части книги в систематической форме излагаются основы теории алгоритмизации и практики программирования на языке «С».

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

В следующих двух частях будут изложены объектно-ориентированное программирование на С++ и программирование Windows-приложений на С/С++.

Книга ориентирована на студентов вузов, обучающихся по специальностям «Прикладная информатика (по областям)» и «Информационные системы».


СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕ. 6

ВВЕДЕНИЕ 8

В.1. Том Сойер рисует на заборе. 8

В.2. Сид выполняет команды.. 9

В.3. Программисты.. 10

В.4. Язык С++. 11

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ АЛГОРИТМИЗАЦИИ И.. 12

ПРОГРАММИРОВАНИЯ.. 12

1.1. Основные понятия алгоритмизации. 12

1.2. Особенности алгоритмов. Программы.. 16

1.3. Математическая индукция. 23

1.4. Обобщенный алгоритм Евклида. 26

2. ПЕРВЫЕ ШАГИ «НАЧИНАЮЩИХ». 33

2.1. Давайте начнем, пожалуй! 34

2.2. Переменные и арифметика. 37

2.3. Оператор for 42

2.4. Символические константы.. 43

2.5. Набор полезных программ. 44

2.6. Массивы.. 52

2.7. Функции. 55

2.8. Аргументы: вызов по значению.. 57

2.9. Массивы символов. 58

2.10. Область действия: внешние переменные. 61

2.11. Некоторые оптимистичные выводы.. 64

3. ТИПЫ, ОПЕРАЦИИ И ВЫРАЖЕНИЯ.. 66

3.1. Имена переменных. 66

3.2. Типы и размеры данных. 66

3.3. Константы.. 68

3.4. Описания. 70

3.5. Арифметические операции. 71

3.6. Операции отношения и логические операции. 72

3.7. Преобразование типов. 73

3.8. Операции увеличения и уменьшения. 77

3.9. Побитовые логические операции. 80

3.10. Операции и выражения присваивания. 82

3.11. Условные выражения. 83

3.12. Старшинство и порядок вычисления. 85

4. ПОТОК УПРАВЛЕНИЯ.. 88

4.1. Операторы и блоки. 88

4.2. Конструкция if-else. 88

4.3. Конструкция else-if 90

4.4. Переключатель switch. 92

4.5. Циклы while и for 94

4.6. Цикл do-while. 98

4.7. Оператор break. 99

4.8. Оператор continue. 100

4.9. Оператор goto и метки. 101

5. ФУНКЦИИ И СТРУКТУРА ПРОГРАММ.. 103

5.1. Основные сведения. 103

5.2. Функции, возвращающие нецелые значения. 107

5.3. Еще об аргументах функций. 110

5.4. Внешние переменные. 111

5.5. Правила, определяющие область действия. 116