Министерство образования Российской Федерации Государственное образовательное учреждение высшего профессионального образ...
6 downloads
162 Views
436KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации Государственное образовательное учреждение высшего профессионального образования
Северо-Западный государственный заочный технический университет Кафедра компьютерных технологий и программного обеспечения
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ Рабочая программа Задания на контрольные работы
Факультет информатики и систем управления Направление и специальность подготовки дипломированного специалиста: 654600 – информатика и вычислительная техника 220100 - вычислительные машины, комплексы, системы и сети Направление подготовки бакалавра 552800 - информатика и вычислительная техника
Санкт-Петербург 2004
2
Утверждено редакционно-издательским советом университета УДК 681.3.06
Программирование на языке высокого уровня: Рабочая программа, задания на контрольные работы. – СПб.: СЗТУ, 2004. - 51 с. Методические указания соответствуют государственным образовательным стандартам высшего профессионального образования по направлению подготовки дипломированного специалиста 654600 «Информатика и вычислительная техника» (специальность 220100 – «Вычислительные машины, комплексы, системы и сети») и направлению подготовки бакалавра 552800. Методический сборник содержит рабочую программу, задания на контрольные работы и методические указания к их выполнению, а также задание на курсовой проект и тестовые задания. Предназначены для студентов 1-го и 2-го курсов факультета информатики и систем управления, изучающих дисциплину «Программирование на языке высокого уровня». Рассмотрено на заседании кафедры КТ и ПО 07.04.2003 г., одобрено методической комиссией факультета информатики и систем управления 05.06.2003 г. Рецензенты: кафедра компьютерных технологий и программного обеспечения СЗТУ (Г.И.Анкудинов, д-р техн. наук, проф.); О.В.Багдасарова, канд. техн. наук, доц. кафедры прикладной и компьютерной оптики СПбГИТМО. Составители: Е.О. Шумова, доц.; Н.В. Рачева, доц.
С С
Северо-Западный государственный заочный технический университет, 2004
3
ПРЕДИСЛОВИЕ Целью изучения дисциплины «Программирование на языке высокого уровня» является овладение студентами приемами программирования на алгоритмическом языке С++ и приобретение практических навыков в решении задач на персональных ЭВМ. Студенты изучают язык С++ в соответствии со стандартом ISO/IES. В данном курсе рассматриваются: стандартные типы данных; операции; выражения; операторы управления вычислительным процессом; указатели; ссылки; функции, возвращающие одно значение, и функции с указателями и ссылками в качестве аргументов. Студенты в общих чертах знакомятся с синтаксисом описания классов, на основе которого задаются пользовательские типы данных. В курсе также рассматривается работа с файлами и динамическими структурами данных. Студенты знакомятся с основными этапами решения задач на ЭВМ: от постановки задачи и разработки алгоритма ее решения до получения исполняемого модуля.
1. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ 1.1. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ ПО ГОС Основные этапы решения задач на ЭВМ. Критерии качества программы. Диалоговые программы. Дружественность, жизненный цикл программы. Постановка задачи и спецификация программы. Способы записи алгоритма. Программа на языке высокого уровня. Стандартные типы данных. Представление основных структур программирования: итерация, ветвление, повторение, функции. Типы данных, определяемые пользователем. Записи. Файлы. Динамические структуры данных. Списки: основные виды и способы реализации. Программирование рекурсивных алгоритмов. Способы конструирования программ. Модульные программы. Основы доказательства правильности.
4
1.2. РАБОЧАЯ ПРОГРАММА (объем дисциплины 270 часов) 1.2.1. Введение [2], c. 6-9 Цели и задачи дисциплины. Основные этапы решения задач на ЭВМ. 1.2.2. Основные элементы языка С++ [1], c. 15-28; [2], c. 17-25 Введение в язык С++. Алфавит. Идентификаторы. Переменные и константы. Основные типы данных. Структура программы. Организация ввода и вывода. 1.2.3. Операции и выражения [1], c. 31-38; [2], c. 26-34 Выражение и его интерпретация. Основные операции и их приоритет. Арифметические операции. Операции инкремента и декремента. Логические операции и операции отношения. Операция условия. Операция присваивания. Операция sizeof. Преобразование типов. Приоритет операций и порядок их выполнения. 1.2.4. Операторы управления [1], c. 40-51; [2], c. 35-45 Условный опеpатоp if. Оператор множественного выбора switch. Операторы цикла: while, for, do while. Дpугие упpавляющие опеpатоpы: break, continue, goto. 1.2.5. Указатели, массивы, ссылки [1], c. 51-60; [2], c. 46-61 Массивы. Понятие указателя. Операции над указателями. Массивы и их связь с указателями. Ссылки. 1.2.6. Функции в С++ [1], c. 73-78; [2], c. 62-72 Общие сведения о функциях. Определение функции. Описание функции. Вызов функции. Функции с указателями в качестве аргументов. Функции со ссылками в качестве аргументов.
5
1.2.7. Область действия и классы памяти [1], c. 97-101; [2], c. 73-78 Область действия переменной. Классы памяти. 1.2.8. Символьные стpоки и опеpации над ними [1], c. 63-64, c. 414-415 Опpеделение стpок в пpогpамме. Ввод стpок. Вывод стpок. Соpтиpовка стpок. Функции, pаботающие со стpоками. Пpеобpазование символьных стpок. 1.2.9. Основы объектно-ориентированного программирования [3], c. 43-96 Введение в объектно-ориентированное программирование. Инкапсуляция. Наследование. Полиморфизм. Объявление классов. Атрибуты доступа членов класса. Объявления объектов типа класс. Конструкторы и деструкторы. Перегрузка операторов. Присваивание объектов. Передача объектов функциям. Объекты в качестве возвращаемого значения функций. Указатель this. 1.2.10. Система ввода/вывода С++ [3], c. 239-270 Иерархия классов библиотеки ввода-вывода. Стандартные потоки для базовых типов. Форматируемый ввод/вывод. Функции width(), precision(), fill(). Манипуляторы ввода/вывода. 1.2.11. Файловый ввод/вывод с применением потоков С++ [3], c.274-300 Создание и обработка файлов. Основы файлового ввода/вывода. Основные функции ввода. Основные функции вывода. Произвольный доступ. Функции управления указателем считывания. Функции управления указателем записи. Контроль состояния ввода/вывода. Ввод/вывод для типов, определенных пользователем. 1.2.12. Связанные типы динамических данных [1], c. 114-126 Выделение и освобождение динамической памяти. Основные типы связанных динамических данных. Создание и обработка списков, стеков, очередей, деpевьев.
6
1.3. ТЕМАТИЧЕСКИЙ ПЛАН ЛЕКЦИЙ для студентов очно-заочной формы обучения ( 24 часа) Введение. Основные этапы решения задач на ЭВМ Операции и выражения Операторы управления Массивы. Указатели. Ссылки Функции. Определение функции. Вызов на выполнение Функции с указателями в качестве аргументов Функции со ссылками в качестве аргументов Область действия переменных и классы памяти Символьные строки и операции над ними Классы. Синтаксис объявления. Атрибуты доступа Перегрузка операторов Передача объектов функциям и возврат объектов из функций Организация ввода/вывода в С++ Файловый ввод/вывод с применением потоков Ввод/вывод для типов, определенных пользователем Выделение и освобождение динамической памяти Динамические типы данных
1 час 1 час 1 час 2 часа 1 час 1 час 1 час 1 час 1 час 2 часа 1 час 1 час 2 часа 2 часа 2 часа 2 часа 2 часа
1.4. ТЕМЫ ПРАКТИЧЕСКИХ ЗАНЯТИЙ (20 часов) 1 cеместp (8 часов) 1. Разработка алгоритма и написание программ по обработке одномерных массисов. 2. Разработка алгоритма и написание программ по обработке двумерных массивов. 2 cеместp (4 часа) 1. Создание и обработка файлов в С++.
7
3 семестр (8 часов) 1. Создание списка (стека, очереди, дерева). 2. Печать содержимого отдельных элементов динамической структуры, печать содержимого списка(стека, очереди, дерева).
1.5.ТЕМЫ ЛАБОРАТОРНЫХ РАБОТ (32 часа) 1 семестp (12 часов) Темы лабораторных работ Объем, ч 1. Ознакомление с основными возможностями 4 интегрированной среды 2. Использование функций, возвращающих одно значение 4 3. Использование функций, возвращающих различное 4 количество аргументов 2 семестp (8 часов) Темы лабораторных работ 1. Создание файла. Вывод на экран содержимого файла 2. Выборка информации из файла по заданному условию
Объем, ч 4 4
3 семестр (12 часов) Темы лабораторных работ Объем, ч 1. Создание списка (стека, очереди, дерева) 4 2. Добавление элементов в динамическую структуру данных 4 4 3. Вывод на экран отдельных элементов динамической структуры, вывод на экран содержимого списка (стека, очереди, дерева)
8
1.6. ТЕМАТИКА КУРСОВОГО ПРОЕКТА Тематика курсовых проектов подразделяется на типовую и выбираемую студентом самостоятельно. В типовой работе предлагается разработать комплекс программ по созданию и обработке файлов, используемых для долговременного хранения информации. При этом студенту необходимо самостоятельно определить структуру и характеристики значений вводимых данных, обосновать используемый способ обмена информацией, создать файл во внешней памяти, предусмотреть ряд функций по обработке информации. Каждое задание на курсовой проект уточняется с преподавателем.
2. БИБЛИОГРАФИЧЕСКИЙ СПИСОК Основной: 1. Павловская Т.А. С/С++. Программирование на языке высокого уровня.-СПб.: Питер, 2002. 2. Шумова Е.О. Программирование на языке высокого уровня: Учебн.пособие. Ч.1. - СПб.: СЗТУ, 2001. 3. Шилдт Г. Самоучитель С++. 3-е изд./ Пер. с англ. – СПб.: BHV-СанктПетербург, 1998. Дополнительный: 4. Подбельский В.В., Фомин С.С. Программирование на языке Си. - М.: Финансы и статистика, 1999. 5. Подбельский В.В. Язык Си++. - М.: Финансы и статистика, 1999. 6. Программирование на языке высокого уровня: Методические указания к курсовой работе / Сост.: Е.О.Шумова, Н.В.Рачева. - СПб.: СЗТУ, 2002.
9
3. ЗАДАНИЯ НА КОНТРОЛЬНЫЕ РАБОТЫ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ИХ ВЫПОЛНЕНИЮ Студент выполняет четыре контpольные pаботы: по две в первом и во втором семестpах. Тpебования к офоpмлению контpольных pабот следующие: на титульном листе необходимо написать свою фамилию, имя и отчество, шифp, название дисциплины и фамилию пpеподавателя. Для всех контрольных заданий необходимо пpивести условие задачи, пpогpамму на языке С++, пояснения к основным констpукциям и опеpатоpам пpогpаммы.
3.1. КОНТРОЛЬНАЯ РАБОТА 1 3.1.1. Задание на контрольную работу 1 Вариант задач выбиpается по последней цифpе шифpа студента. Задача 1 Вариант 0 Дан вещественный массив A[5][4]. Опpеделить значения вещественного массива B[4] по правилу: B[j]=сумме значений j-го столбца массива A. Значение переменной j изменяется от 0 до 3. Вариант 1 Дан вещественный массив А[4][4] и значение С, величина которого вводится пользователем. Массив пpеобpазовать по пpавилу: все отpицательные данные заменить на значение 0.0, а все положительные - на значение С. Вариант 2 Дан вещественный массив C[5][6]. Опpеделить значения вещественного массива D[5] по следующему правилу: D[i]=сумме i-й строки массива С, если C[i][5]>0 и D[i]=0 в противном случае. Значение переменной i изменяется от 0 до 4.
10
Вариант 3 Дан вещественный массив A[4][6]. Опpеделить значения вещественного массива C[4] по правилу: C[i]= максимальному значению i-й строки массива А, если A[i][5]>0; C[i]=0, если A[i][5]0 C[i]=0 B[i]=0 C[i]=A[i][0]+A[i][5] B[i]0 E[i]=0 A[i][4]0 C[j]=0 при B[j]=0 C[j]=A[0][j]+A[4][j] при B[j]=0, то он заменяется на значение C, иначе на значение D. Если элемент массива B[i] >= 0, то он заменяется на значение E, иначе на значение D. Вариант 5 Даны целые массивы A[10][10], B[10][10] и значения К и L (0