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. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Побитовые операторы (побитовое И, ИЛИ, исключающее ИЛИ, НЕ, сдвиг ВИДЫ АУДИТОРНОЙ РАБОТЫ (ЗАНЯТИЙ) СРС (ЧАС) (ЧАС) ЛЕКЦ Семи ПРАК ЛАБО ИИ нары ТИРА- 3 4 ЧЕСК ИЕ ТОРН ЫЕ 5 6 2 2 2 2 2 2 2 2 2 2 2 10 7 5 7 8 9 влево, сдвиг вправо). Упрощенная форма оператора присваивания. Условное выражение: ( z = (a > b)? a :b). Функции и структура программ на С. Аргументы функции. Классы памяти: auto, static, register, extern. Блочная структура С программ. Си-препроцессор. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Основные сведения о структурах. Структура point. Доступ к членам структуры. Вложенные структуры (struct rect). Операции над структурами. Аттестация (зачет) ИТОГО: 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. Упрощенная форма оператора присваивания. Приоритет и очередность вычислений операторов. Функции и структура программ на С. 6 Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. Макроподстановки с помощью #define и отмена макроподстановки #undef. Директива #define с параметрами. Раздел 3. Более сложные конструкции языка С Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Основные сведения о структурах. Структура point. Доступ к членам структуры. Операции над структурами. Передача структур в функции. Указатель на структуру. Доступ к членам структуры через указатель: обычная (*p).x и короткая p->x форма записи. Планы практических (лабораторных) занятий 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. ПРИЕМКА И ОТЛАДКА ПРОГРАММ НА ОСНОВНЫЕ ТИПЫ УСЛОВНЫХ ИНСТРУКЦИЙ (IF, IF – ELSE, ВЛОЖЕННЫЕ КОНСТРУКЦИИ ELSE - IF. И ПЕРЕКЛЮЧАТЕЛЬ SWITCH). ПРОГРАММ НА ПРОСТЕЙШИЕ ВИДЫ ПРЯМОЙ И ОБРАТНОЙ ГЕОДЕЗИЧЕСКОЙ ЗАДАЧИ. ДОМАШНЕЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ ТИПОВЫХ ОШИБОК, ДОПУЩЕННЫХ В ПРОГРАММАХ №1. АНАЛИЗ 6. Темы курсовых работ Данный вид работы не предусмотрен учебным планом. 7. Методические рекомендации по выполнению курсовых работ Данный вид работы не предусмотрен учебным планом. 8 8. Контрольные вопросы по курсу (вопросы к зачету семестр 1) 1. Разработка программ: написание кода, компилирование, редактирование и отладка в среде Borland Builder 6. Понятие о языках низкого и высокого уровня. Семейство языков высокого уровня С и С++. Особенности программирования консольных приложения и приложений под Windows. 2. Имена переменных. Комментарии. Типы и размеры данных. Типы констант: целая десятичная, восьмеричная, шестнадцатеричная, с плавающей точкой. 3. Объявления переменных. Арифметические операторы. 4. Операторы отношения и логические операторы. Преобразования типов. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. 5. Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. 6. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Упрощенная форма оператора присваивания. Приоритет и очередность вычислений операторов. 7. Функции и структура программ на С. Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. 8. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). 9. Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. 10. Основные сведения о структурах. Структура point. Доступ к членам структуры. Вложенные структуры (struct rect). Операции над структурами. Передача структур в функции. Указатель на структуру. 9. Варианты контрольных работ для студентов заочной формы 9 обучения Данный вид работы не предусмотрен учебным планом. 10. Методические рекомендации по выполнению контрольных работ студентами заочного отделения Данный вид работы не предусмотрен учебным планом. 11. Список основной и дополнительной литературы а) основная литература: 1· Керниган Б., Ритчи Д. Язык программирования Си. Изд. «Финансы и статистика», М., 1992г. 2· Страуструп Б. Язык программирования С++. Изд. «Радио и связь», М., 1991г. б) дополнительная литература: 1· Бобровский С. Самоучитель программирования на языке С++ в системе Borland C++ Builder 5.0. Изд. «ДЕСС КОМ». М., 2001г. 2· Джамса К. Учимся программировать на языке С++. Изд. «Мир», М., 1999г. 12. Выписка из федерального государственного образовательного стандарта (ФГОСТа) В результате изучения курса «Информатика» студент должен: знать: принципы и базовые концепции технологии программирования, языки процедурного и объектно-ориентированного программирования; уметь: применять информационные технологии при проектировании информационных систем; использовать языки и системы программирования, пакеты математических программ для решения профессиональных задач; владеть: навыками практического использования вычислительных машин (ЭВМ) и программирования; электронно-