- •Нижегородский государственный университет им. Н.И. Лобачевского (ннгу)
- •Учебно-методическое пособие по курсу «программирование (язык си)»
- •1. Содержательное описание курса
- •1.1. Цели освоения дисциплины
- •1.2. Место дисциплины в структуре основных образовательных программ
- •1.3 Формирование компетенций
- •1.4 Требования к результатам освоения дисциплины «Программирование (с)»
- •2. Структура курса «Программирование (с)»
- •2.1 Плановая нагрузка
- •2.2. Содержание разделов дисциплины
- •10. Типы, определяемые пользователем.
- •3. Лабораторный практикум
- •3.1. Общие положения о выполнении лабораторных работ
- •3.2. Тематические задания по курсу «Программирование (язык си).
- •If (условие) оператор;
- •& Конъюнкция (логическое и)
- •| Дизъюнкция (логическое или)
- •1. Массивы символов.
- •2. Числовые массивы.
- •1. Передача параметров в функции.
- •2. Рекурсивные функции.
- •3.3. Рекомендации по выполнению лабораторных работ
- •Задача Джонсона. Обработки n деталей на 2 станках.
- •Модификация задачи Джонсона.
- •4. Учебно-методическое обеспечение самостоятельной работы студентов.
- •4.1. Вопросы для контроля
- •4.2. Критерии оценок
- •4.3. Учебно-методическое и информационное обеспечение дисциплины «Программирование (с)»
- •Оглавление
- •Учебно-методическое пособие по курсу «программирование (язык си)»
- •603950, Нижний Новгород, пр. Гагарина, 23.
2.2. Содержание разделов дисциплины
1. ВВЕДЕНИЕ В ЯЗЫК С.
История создания языка С. Сравнение с другими языками программирования. Структура программы на языке С. Основные понятия: алфавит, константы, идентификаторы, ключевые слова, комментарии к программе, директивы препроцессора.
2. ПРЕПРОЦЕССОР ЯЗЫКА С.
Директива #define, создание и использование макросов. Предопределенные макроимена. Директива #include. Директивы условной компиляции.
3. ТИПЫ ДАННЫХ, ВЫРАЖЕНИЯ И ОПЕРАЦИИ.
Базовые типы данных. Модификаторы типов. Арифметические, логические, битовые операции, операции сравнения. Дополнительные операции (инкрементация, декрементация, условное присваивание, скобки, операция запятая, операция sizeof). Конструирование выражений. Явное и неявное преобразование типов в арифметических выражениях.
4. ОПЕРАТОРЫ УПРАВЛЕНИЯ ПРОГРАММОЙ.
Пустой оператор. Операторы - выражения. Блок операторов. Операторы цикла while, do-while, for. Операторы break и continue. Операторы return, exit(). Операторы условия if, switch.
5. УКАЗАТЕЛИ, МАССИВЫ И АДРЕСНАЯ АРИФМЕТИКА.
Работа с адресами и массивами в языке С. Описание адресных переменных и массивов. Операции нахождения адреса и косвенной адресации. Адресная арифметика и работа с указателями. Многомерные массивы, указатели, указатель на указатель, индексированный указатель, массивы указателей.
6. ОБРАБОТКА СИМВОЛЬНЫХ СТРОК.
Определение строк и строковых констант. Инициализация строк. Указатели и строки. Библиотечные функции работы со строками. Реализация библиотечных функций. Массивы строк.
7. ФУНКЦИИ И СТРУКТУРА ПРОГРАММЫ.
Создание и использование простой функции. Формальные и фактические параметры функции. Передача аргументов в функции. Массивы как аргументы функций. Возвращаемое значение. Прототип функции. Рекурсивные функции. Аргументы функции main. Многофайловая программа. Область видимости переменных. Классы памяти и работа с переменными. Автоматические, статические и внешние переменные.
8. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.
Статические и динамические массивы. Функции выделения, перераспределения и освобождения памяти: malloc(), calloc(), realloc(), free(). Выделение памяти для одномерных и многомерных массивов.
9. ВВОД, ВЫВОД И СТАНДАРТНАЯ БИБЛИОТЕКА ВВОДА-ВЫВОДА.
Основные понятия: потоки и файлы; текстовые и бинарные потоки; идентификация файлов и потоков. Последовательный ввод-вывод: открытие и закрытие файлов; ввод-вывод символов, строк, целых чисел; форматированный символьный ввод-вывод; ввод-вывод блоков данных. Прямой файловый ввод-вывод: основные понятия; позиционирование локатора файловой позиции, функции получения адреса. Обновление информации в файле. Функции консольного ввода-вывода.
10. Типы, определяемые пользователем.
Структуры. Массивы структур. Указатели на структуры. Структуры в качестве аргументов функций. Структуры данных: стек, очередь, списки, бинарные деревья. Объединения. Битовые поля. Перечислимый тип. Переименование типов - typedef.
3. Лабораторный практикум
3.1. Общие положения о выполнении лабораторных работ
Лабораторные работы в компьютерных классах служат для самостоятельной работы студентов над учебными задачами с целью выработки и закрепления практических навыков программирования, полученных в рамках теоретического курса «Программирование (язык С)». Лабораторные занятия предполагают изучение студентами интегрированной среды программирования Microsoft Visual Studio, а также подготовку и отладку программ по каждому из разделов курса.
Форматированный ввод-вывод. Типы данных.
Явное и неявное преобразование типов
Разветвляющиеся и циклические алгоритмы
Битовые операции
Массивы
Указатели и массивы
Работа со строками
Оформление программ с использованием функций
Определяемые пользователем типы: структуры, объединения, битовые поля.
Библиотеки ввода-вывода. Работа с файлами
Задания на лабораторные работы определяются преподавателем из списка задач, приведенных ниже.
