
- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Часть 2 __184__
- •Содержание дисциплины
- •1. Индивидуальные практические занятия, их характеристика
- •2. Контрольные работы, их характеристика
- •3. Курсовой проект, его характеристика
- •4. Литература
- •4.1. Основная
- •4.2. Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Протокол согласования учЕбной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
- •Теоретический раздел Введение
- •1. Основные типы данных
- •1.1. Общие сведения
- •1.2. Данные типа int
- •1.3. Данные типа char
- •1.4. Модификаторы доступа const и volatile
- •1.5. Данные вещественного типа (с плавающей точкой)
- •1.6. Элементарный ввод-вывод
- •1.7. Структура простой программы на языке Си
- •2. Операции и выражения
- •2.1. Выражение и его интерпретация
- •2.2. Основные операции
- •2.2.1. Арифметические операции
- •2.2.2. Побитовые логические операции
- •2.2.3. Операции сдвига
- •2.2.4. Операция присваивания
- •2.2.5. Операция sizeof
- •2.2.6. Преобразование типов в выражениях
- •2.2.7. Операция преобразования типов
- •2.2.8. Приоритеты в языке Си
- •3. Операторы управления вычислительным процессом
- •3.1. Оператор if
- •3.2. Операции отношения
- •3.3. Логические операции
- •3.4. Операция запятая
- •3.5. Операция условия ?:
- •3.6. Оператор безусловного перехода goto
- •3.7. Оператор switch
- •`` ` `3.8. Операторы цикла
- •3.8.1. Оператор for
- •3.8.2. Оператор while
- •3.8.3. Оператор do...While
- •3.9. Оператор break
- •3.10. Оператор continue
- •4. Массивы и указатели
- •4.1. Одномерные массивы и их инициализация
- •4.2. Многомерные массивы и их инициализация
- •4.3. Объявление указателей
- •4.4. Операции над указателями
- •1) Взятие адреса
- •2) Косвенная адресация или разыменование указателя
- •3) Увеличение или уменьшение значения указателя на целое число
- •4) Разность указателей
- •5) Сравнение указателей
- •6) Присваивание указателей друг другу
- •4.6. Связь между указателями и массивами
- •4.7. Динамическое распределение памяти
- •4.8. Массивы указателей
- •5. Функции
- •5.1. Общие сведения
- •5.2. Область видимости переменных
- •5.2.1. Локальные переменные
- •5.2.2. Глобальные переменные
- •5.3. Передача параметров в функцию
- •5.4. Рекурсивные функции
- •5.5. Использование функций в качестве параметров функций
- •5.6. Указатели на функции
- •5.7. Структура программы на Си
- •5.8. Передача параметров в функцию main()
- •6. Строки
- •7. Классы хранения и видимость переменных
- •7.1. Общие сведения
- •7.2. Автоматический класс хранения (auto)
- •7.3. Регистровый класс хранения (register)
- •7.4. Статический класс хранения (static)
- •7.5. Внешний класс хранения (extern)
- •7.6. Заключение
- •8. Структуры, объединения и перечисления
- •8.1. Общие сведения
- •8.2. Инициализация структурных переменных
- •8.3. Вложенные структуры
- •8.4. Указатели на структуры
- •8.5. Массивы структурных переменных
- •8.6. Передача функциям структурных переменных
- •8.7. Оператор typedef
- •8.8. Поля битов в структурах
- •8.9. Объединения
- •8.10. Перечисления
- •9. Динамические структуры данных
- •9.1. Общие сведения
- •9.2. Связные списки
- •9.2.1. Односвязные списки
- •9.2.2. Двусвязные списки
- •9.2.3. Циклические списки
- •9.3. Стеки
- •9.4. Очереди
- •9.5. Деревья
- •9.5.1. Понятие графа
- •9.5.2. Бинарные деревья
- •10. Файлы
- •10.1. Общие сведения
- •10.2. Открытие и закрытие файлов
- •10.3. Функции ввода-вывода для работы с текстовыми файлами
- •10.4. Произвольный доступ к файлу
- •10.5. Функции ввода-вывода для работы с бинарными файлами
- •11. Директивы препроцессора
- •11.1. Основные понятия
- •11.2. Директива #include
- •11.3. Директивы препроцессора #define и #undef
- •11.3.1. Символические константы
- •11.3.2. Макросы с параметрами
- •11.3.3. Директива #undef
- •11.4. Условная компиляция
- •11.5. Директивы # и ##
- •12. Модульное программирование
- •13. Введение в объектно-ориентированное программирование
- •13.1. Постановка задачи
- •13.2. Решение задачи средствами Си
- •13.5. Наследование
- •13.6. Перегрузка
- •13.7. Ссылочный тип
- •Литература
- •Приложение 1. Рекомендации по оформлению текстов программ
- •Тесты к теоретическому разделу Вопросы к разделу 1. Основные типы данных
- •Вопросы к разделу 2. Операции и выражения
- •Вопросы к разделу 3. Операторы управления вычислительным процессом
- •Вопросы к разделу 4. Массивы и указатели
- •Вопросы к разделу 5. Функции
- •Вопросы к разделу 6. Строки
- •Вопросы к разделу 7. Классы хранения и видимость переменных
- •Вопросы к разделу 8. Структуры, объединения и перечисления
- •Вопросы к разделу 9. Динамические структуры данных
- •Вопросы к разделу 10. Файлы
- •Вопросы к разделу 11. Директивы препроцессора
- •Вопросы к разделу 12. Модульное программирование
- •Вопросы к разделу 13. Введение в ооп
- •Правильные ответы на вопросы тестов к теоретическому разделу
- •Вопросы к теоретическому зачету
- •Варианты индивидуальных заданий
- •Контрольная работа №2
- •Варианты индивидуальных заданий
- •Индивидуальные практические работы Указания к выбору варианта индивидуальных практических работ
- •Индивидуальная практическая работа № 1. Массивы и строки
- •Варианты индивидуальных заданий
- •Индивидуальная практическая работа № 2. Динамические структуры данных
- •Варианты индивидуальных заданий
Министерство образования Республики Беларусь
Учреждение образования
Белорусский государственный университет информатики и радиоэлектроники
Факультет непрерывного и дистанционного обучения
Кафедра программного обеспечения информационных технологий
Электронный учебно-методический комплекс
по дисциплине
Языки программирования
Часть 1
Язык Cи
Для студентов дистанционной формы обучения
специальности I-40 01 01
«Программное обеспечение информационных технологий»
Минск 2010
Общие сведения Сведения об эумк
Электронный учебно-методический комплекс по дисциплине «Языки программирования (часть 1)» предназначен для студентов дистанционной формы обучения по специальности I-40 01 01 «Программное обеспечение информационных технологий».
Электронный учебно-методический комплекс составлен на основе рабочей учебной программы по курсу «Языки программирования», утверждённой деканом факультета непрерывного и дистанционного обучения «___» _________ 20___, регистрационный № УД _______________ и рабочего учебного плана специальности I-40 01 01 «Программное обеспечение информационных технологий».
Составитель:
В.В. Бахтизин, заведующий кафедрой программного обеспечения информационных технологий Учреждения образования «Белорусский государственный университет информатики и радиоэлектроники», кандидат технических наук, доцент.
Рассмотрен и рекомендован к изданию на заседании кафедры программного обеспечения информационных технологий, протокол № ____ от __.__.20___.
Одобрен и рекомендован к изданию Методической комиссией факультета компьютерных систем и сетей, протокол № __ от __.__.20___.
Методические рекомендации по изучению дисциплины
Программа дисциплины «Языки программирования» (ЯП) для студентов дистанционной формы обучения составлена в соответствии с требованиями образовательного стандарта специальности «Программное обеспечение информационных технологий» (ПОИТ).
С учетом специфики дистанционного обучения большинство тем теоретического курса представлены более детально и снабжены большим количеством примеров по сравнению с их изложением для студентов дневной формы обучения.
С учетом взаимосвязи дисциплин специальности ПОИТ в дисциплине ЯП изучается алгоритмический язык программирования Си и язык Ассемблер.
Дисциплина ЯП разделена на две части, соответствующие третьему и четвертому семестру обучения.
В состав комплекта материалов по первой части дисциплины ЯП для студентов дистанционной формы обучения в настоящее время входят следующие компоненты:
методические указания к изучению 1-й части дисциплины;
учебное пособие (теоретическая часть комплекта);
набор тестов по каждой теме теоретической части;
контрольные работы;
индивидуальные практические работы;
перечень вопросов к зачету.
Первая часть дисциплины содержит следующие темы:
Основные характеристики языка Си. Общий синтаксис алгоритмического языка Си. Типы данных. Элементарный ввод/вывод. Структура программы на Си.
Операции. Операции и выражения. Операция присваивания. Арифметические и побитовые операции. Преобразование типов. Приоритеты в Си.
Операторы управления вычислительным процессом. Принятие решений. Условный оператор if. Операции отношения. Логические операции. Операция условия. Оператор switch. Циклы for, while, do...while. Операция запятая. Операторы break, continue.
Работа с указателями. Указатели. Операции с указателями.
Массивы. Объявление. Связь массивов и указателей. Инициализация массивов. Динамическое распределение памяти. Массивы указателей и их инициализация.
Строки. Объявление. Работа со строками.
Структуры. Объявление. Доступ к элементам структуры. Оператор typedef. Указатели на структуру. Массивы структур. Поля. Объединения. Перечисления.
Функции. Объявление функции. Передача параметров функциям. Рекурсивные функции. Передача массивов функциям.
Динамические структуры данных. Структуры, ссылающиеся на себя. Списки, кольца. Операции над списками. Стеки. Операции над стеками. Очереди. Операции над очередями.
Бинарные деревья. Объявление бинарного дерева. Операции над бинарными деревьями.
Файлы. Типы файлов. Функции для работы с файлами.
Препроцессор языка Си. Макроподстановка без параметров и с параметрами. Управление компиляцией.
Для успешного освоения 1-й части дисциплины «Языки программирования» рекомендуется следующая последовательность ее изучения.
Изучение теоретической темы.
Темы желательно изучать в том порядке, в котором они представлены в лекционном курсе. Сложность каждой последующей темы возрастает. Поэтому их лучше изучать последовательно.
Тестирование теоретических знаний по изученной теме.
Для самопроверки полученных по изученной теме знаний предлагается пройти тестирование. С этой целью по каждой теме лекционного курса создан достаточно большой набор контрольных вопросов. Тестирование заключается в выборе правильных ответов на поставленные контрольные вопросы. Для выбора предлагается не менее трех ответов на каждый вопрос. При этом только один ответ является правильным.
Выполнение контрольной работы по теме (если она предусмотрена).
По первой части дисциплины предусмотрены две контрольные работы.
Первая работа посвящена теме «Структуры» и заключается в решении задачи, полученной от преподавателя. К выполнению данной работы следует приступать после изучения темы «Структуры».
Вторая работа посвящена теме «Файлы». К выполнению данной работы следует приступать после изучения темы «Файлы. Типы файлов. Функции для работы с файлами».
Выполнение индивидуальной практической работы по теме (если она предусмотрена).
Перед выполнением работы необходимо изучить соответствующую тему теоретической части. Выполнение работы заключается в написании и отладке программы, соответствующей выбранному варианту индивидуального задания. Зачет по работе выставляется в том случае, если студент правильно выполнил индивидуальное задание.
По первой части дисциплины предусмотрены две индивидуальные практические работы (индивидуальные практические работы с использованием информационно-коммуникационных технологий).
Первая работа посвящена теме «Массивы и строки» и заключается в решении задачи в соответствии с индивидуальным заданием.
Вторая работа посвящена теме «Динамические структуры данных» и заключается в решении задачи в соответствии с индивидуальным заданием.
Обратите внимание, что текст программы должен содержать подробные текстовые пояснения и быть представлен в Microsoft Word.
Номер вашего варианта равен 1 плюс остаток от целочисленного деления номера вашей зачетной книжки (его двух последних цифр, стоящих после дефиса) на тридцать.
Итоговой формой контроля знаний по первой части дисциплины ЯП является зачет.
К зачету допускаются студенты, правильно выполнившие соответствующие контрольные и индивидуальные практические работы.
Зачет включает в себя два теоретических вопроса и задачу. Теоретические вопросы и задачи относятся к темам, разделам и подразделам теоретической части дисциплины. По материалу, не вошедшему в теоретическую часть, вопросы не предусмотрены.