1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГЕОДЕЗИИ И КАРТОГРАФИИ» (МИИГАиК) Утвержден Учебно-методической комиссией МИИГАиК от «____»__________2014__ г. УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» ДЛЯ ФКГ Москва 2014 год 2 1. Пояснительная записка Цели и задачи курса Курс «Информатика» знакомит студентов современными методами программирования на языках высокого уровня С и С++ для решения различных инженерно-геодезических и организационных задач. Дисциплина «Информатика» является одной из базовых дисциплин инженерного цикла, посвященных программированию на языках высокого уровня. Дипломированные специалисты, занятые в области картографии и геодезии, должны обладать знаниями и практическими навыками по программированию вычислительных средств. В курсе излагаются сведения о языках программирования С и С++. Целью изучения курса «Информатика» является: подготовка студентов к деятельности, связанной с использованием вычислительной техники; формирование профессиональных компетенций, определяющих способность студента к использованию теоретических знаний и практических навыков при разработке, анализе и применении существующих программных средств, а также разработке или модификации программ для решения своих профессиональных задач. В результате изучения курса «Технология программирования» студент должен демонстрировать следующие результаты обучения: иметь представление о синтаксисе и грамматике языков программирования С/С++, их особенностях, различиях между собой и отличии от других языков программирования высокого уровня, а также области наиболее предпочтительного их использования; о современных средствах разработки программ на языках высокого уровня; технологиях программирования и методах анализа эффективности алгоритмов решения прикладных задач; знать правила написания программ на языках С и С++, их 3 редактирования, отладки и тестирования, а также знать современные технологии проектирования, разработки структуры программы и разработки программного модуля, их тестирования и отладки; уметь формализовать поставленную задачу; выбирать необходимые инструментальные средства для разработки программ, уметь строить алгоритмы решения инженерно-геодезических и научно-исследовательских задач; составлять, тестировать, отлаживать и оформлять программы на языках высокого уровня С и С++, включая объектно-ориентированные программы. Виды занятий и методики обучения При реализации программы дисциплины «Информатика» в часы, отведенные для аудиторных занятий (154 ч), занятия проводятся: в виде лекций (36 ч) в больших потоковых аудиториях, с использованием меловой доски; в виде лабораторных работ (118 ч) в компьютерном классе с использованием электронной интерактивной доски Polyvision; в виде самостоятельной работы студентов под руководством преподавателя по выполнению индивидуальных расчетно-графических работ. Формы контроля Рубежный контроль В течение семестра студенты, руководствуясь учебно-тематическим планом, выполняют лабораторные работы. Выполнение всех работ является обязательным для обучающихся. Студенты, не выполнившие в полном объёме лабораторные работы, не допускаются кафедрой к сдаче экзамена. Итоговый контроль по курсу Для контроля усвоения данной дисциплины учебным планом предусмотрен – экзамен. Оценка за зачет является итоговой по дисциплине и проставляется в Приложении к диплому. 4 Методические рекомендации по изучению дисциплины 2. советы по планированию и организации времени, необходимого на изучение дисциплины, рекомендации по использованию материалов учебно-методического комплекса, № п/ п 1 1 2 3 4 5 6 рекомендации по работе с литературой; советы по подготовке к экзамену (зачёту); 3. Учебно-тематический план курса 3.1. Семестр 1 Раздел ДИСЦИПЛИНЫ 2 Введение в языки программирования С/С++. Среда программирования Borland C++ Builder 6 Простейшая программа Hello world! Имена переменных. Комментарии. Типы и размеры данных: char, int, float, double, void Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. Циклы while, for, do-while. Инструкции break и continue. Функции и структура программ на С. Аргументы функции. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические ВИДЫ АУДИТОРНОЙ РАБОТЫ (ЗАНЯТИЙ) СРС (ЧАС) (ЧАС) ЛЕКЦ Семи ПРАК ЛАБО ИИ нары ТИРА- 3 4 ЧЕСК ИЕ ТОРН ЫЕ 5 6 2 2 2 2 2 2 2 2 2 2 2 10 7 5 7 8 9 операции над указателями. Массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Представление об объектах и объектноориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. Управление доступом к элементам класса. Общие (public), частные (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. Понятие о наследовании. Простое наследование и защищенные (protected) элементы. Множественное наследование. Аттестация (зачет) ИТОГО: 2 8 2 2 2 8 18 60 4. Программа дисциплины (содержание курса) Раздел 1. Введение в язык С/С++ Введение в языки программирования С/С++. Среда программирования Borland C++ Builder 6. Простейшая программа Hello world! Имена переменных. Комментарии. Типы и размеры данных: char, int, float, double, void. Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. Раздел 2. Основные конструкции языка С Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Функции и структура программ на С. Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. Раздел 3. Более сложные конструкции языка С 6 Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Основные сведения о структурах. Структура point. Доступ к членам структуры. Раздел 4. Основные конструкции языка С++ Представление об объектах и объектно-ориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. Управление доступом к элементам класса. Общие (public), частные (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. Понятие о наследовании. Простое наследование и защищенные (protected) элементы. Множественное наследование. Иерархия классов. Понятие о друзьях (frend) класса. Определение количества друзей. Понятие о функциях – друзьях. Перегрузка функций. Использование ссылок в С++. Планы практических (лабораторных) занятий 5. 6. №№ НАИМЕНОВАНИЕ ЛАБОРАТОРНЫХ РАБОТ РАЗДЕЛА ДИСЦИП П ЛИНЫ / П 1. 1. ОЗНАКОМЛЕНИЕ СОСТАВЛЕНИЕ 2. 2. СОСТАВЛЕНИЕ 3. 3. СОСТАВЛЕНИЕ С РАБОТОЙ IDE BORLAND C++ BUILDER. ПРОГРАММЫ HELLO, WORLD. ОСВОЕНИЕ ФУНКЦИЙ РЕДАКТИРОВАНИЯ, КОМПИЛИРОВАНИЯ, ЗАПУСКА И ОТЛАДКИ ИСПОЛНЯЕМОГО КОДА. ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТА РАБОТЫ ПРОГРАММЫ. И ОТЛАДКА ПРОГРАММ НА ВЫЧИСЛЕНИЕ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ: POW(), SQRT(), LOG(), LOG10(), EXP(), SIN(), COS(), TAN(), ASIN(), ACOS(), ATAN() И ДРУГИХ ИЗ СТАНДАРТНОЙ МАТЕМАТИЧЕСКОЙ БИБЛИОТЕКИ С. И ОТЛАДКА ПРОГРАММ С ЛИНЕЙНЫМ АЛГОРИТМОМ НА ВЫЧИСЛЕНИЕ ДЛИН ДУГ МЕРИДИАНОВ. ЗАПУСК ПРОГРАММЫ ПЕРЕВОДА ГРАДУСОВ ФАРЕНГЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ. ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ КОДА И УДОБОЧИТАЕМОСТИ СОСТАВЛЕННОЙ ПРОГРАММЫ. 7 4. 4. ЛИНЕЙНЫЕ АЛГОРИТМЫ. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ПРЕОБРАЗОВАНИЕ УГЛОВ, ПРЕДСТАВЛЕННЫХ В ГРАДУСНОЙ МЕРЕ (ГРАДУСЫ, МИНУТЫ, СЕКУНДЫ) В ВЕЩЕСТВЕННОЕ ЧИСЛО РАДИАН И ОБРАТНОЕ ПРЕОБРАЗОВАНИЕ. 5. 5. ВЫДАЧА МАТЕРИАЛОВ ДОМАШНЕЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ №1 НА СОСТАВЛЕНИЕ И ОТЛАДКУ ПРОГРАММ ВЫЧИСЛЕНИЯ ВЫСОТЫ, БИССЕКТРИСЫ И МЕДИАНЫ ПРОИЗВОЛЬНОГО ТРЕУГОЛЬНИКА ИСПОЛЬЗОВАНИЕМ ТЕОРЕМ СИНУСОВ И КОСИНУСОВ. С 6. 6. ПОВТОРЯЮЩИЕСЯ ДЕЙСТВИЯ. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА РАЗЛИЧНЫЕ ТИПЫ ЦИКЛОВ, ВКЛЮЧАЯ ВЛОЖЕННЫЕ (WHILE, FOR, DO – WHILE) ДЛЯ НАХОЖДЕНИЯ РАЗЛИЧНЫХ СУММ И ПРОИЗВЕДЕНИЙ. 7. 7. ВЕТВЛЕНИЯ. СОСТАВЛЕНИЕ 8. 8. СОСТАВЛЕНИЕ И ОТЛАДКА 9. 9. РЕШЕНИЕ ПРЯМОЙ ГЕОДЕЗИЧЕСКОЙ ЗАДАЧИ, ИСПОЛЬЗУЯ СТРУКТУРУ ТОЧКА (STRUCT POINT) И ПЕРЕДАЧА СТРУКТУРЫ В ФУНКЦИЮ ДЛЯ ВЫЧИСЛЕНИЙ. 10. 10. 11. 11. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С КЛАССАМИ: EMPCLASS И CLASSFUN (ДОПОЛНЕНИЕ PEDIGREE). СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С ОБЩИМИ И ЧАСТНЫМИ ЭЛЕМЕНТАМИ: INFOHIDE. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С КОНСТРУКТОРОМ И ДЕСТРУКТОРОМ: CONSTRUС И DESTRUСT. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ПЕРЕГРУЗКУ ОПЕРАТОРОВ: OPOVERLD. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА НАСЛЕДОВАНИЯ: MGP_EMP (ИЛИ BOOKCARD). СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ: COMPUTER. И ОТЛАДКА ПРОГРАММ НА ОСНОВНЫЕ ТИПЫ УСЛОВНЫХ ИНСТРУКЦИЙ (IF, IF – ELSE, ВЛОЖЕННЫЕ КОНСТРУКЦИИ ELSE - IF. И ПЕРЕКЛЮЧАТЕЛЬ SWITCH). ПРОГРАММ НА ПРОСТЕЙШИЕ ВИДЫ ПРЯМОЙ И ОБРАТНОЙ ГЕОДЕЗИЧЕСКОЙ ЗАДАЧИ. 6. Темы курсовых работ Данный вид работы не предусмотрен учебным планом. 7. Методические рекомендации по выполнению курсовых работ Данный вид работы не предусмотрен учебным планом. 8 8. Контрольные вопросы по курсу (вопросы к зачету семестр 1) 1. Разработка программ: написание кода, компилирование, редактирование и отладка в среде Borland Builder 6. Понятие о языках низкого и высокого уровня. Семейство языков высокого уровня С и С++. Особенности программирования консольных приложения и приложений под Windows. 2. Имена переменных. Комментарии. Типы и размеры данных. Типы констант: целая десятичная, восьмеричная, шестнадцатеричная, с плавающей точкой. 3. Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Преобразования типов. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. 4. Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. 5. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Инструкция goto и метки. 6. Функции и структура программ на С. Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. 7. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. 8. Основные сведения о структурах. Структура point. Доступ к членам структуры. Вложенные структуры (struct rect). Операции над структурами. Передача структур в функции. Указатель на структуру. 9. Представление об объектах и объектно-ориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. 9 Управление доступом к элементам класса. Общие (public), частные 10. (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. Понятие о наследовании. Простое наследование и защищенные 11. (protected) элементы. Множественное наследование. Иерархия классов 9. Варианты контрольных работ для студентов заочной формы обучения Данный вид работы не предусмотрен учебным планом. 10. Методические рекомендации по выполнению контрольных работ студентами заочного отделения Данный вид работы не предусмотрен учебным планом. 11. Список основной и дополнительной литературы а) основная литература: 1· Керниган Б., Ритчи Д. Язык программирования Си. Изд. «Финансы и статистика», М., 1992г. 2· Страуструп Б. Язык программирования С++. Изд. «Радио и связь», М., 1991г. 3· Березин Б.И., Березин С.Б. Начальный курс С и С++. Изд. «ДИАЛОГ-МИФИ», М., 2000г б) дополнительная литература: 1· Бобровский С. Самоучитель программирования на языке С++ в системе Borland C++ Builder 5.0. Изд. «ДЕСС КОМ». М., 2001г. 2· Джамса К. Учимся программировать на языке С++. Изд. «Мир», М., 1999г. 12. Выписка из федерального государственного образовательного стандарта (ФГОСТа) В результате изучения курса «Информатика» студент должен: знать: 10 принципы и базовые концепции технологии программирования, языки процедурного и объектно-ориентированного программирования; уметь: применять информационные технологии при проектировании информационных систем; использовать языки и системы программирования, пакеты математических программ для решения профессиональных задач; владеть: навыками практического использования вычислительных машин (ЭВМ) и программирования; электронно-