
- •Часть 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. Динамические структуры данных
- •Варианты индивидуальных заданий
Вопросы к теоретическому зачету
Данные типа int
Данные типа char
Модификаторы доступа const и volatile
Данные вещественного типа (с плавающей точкой)
Элементарный ввод-вывод
Арифметические операции
Побитовые логические операции
Операции сдвига
Операция присваивания
Операция sizeof
Преобразование типов в выражениях
Операция преобразования типов
Приоритеты в языке Си
Оператор if
Операции отношения
Логические операции
Операция запятая
Операция условия ?:
Оператор безусловного перехода goto
Операторы switch
Операторы цикла. Оператор for. Оператор while. Оператор do...while
Оператор break. Оператор continue
Одномерные массивы и их инициализация
Многомерные массивы и их инициализация
Объявление указателей. Операции над указателями
Тип void
Связь между указателями и массивами
Динамическое распределение памяти
Массивы указателей
Функции. Область видимости переменных. Локальные и глобальные переменные
Передача параметров в функцию
Рекурсивные функции
Использование функций в качестве параметров функций
Указатели на функции
Структура программы на Си
Передача параметров в функцию main()
Строки
Классы хранения и видимость переменных. Классы auto и register
Классы хранения и видимость переменных. Классы static и extern
Структуры. Инициализация структурных переменных. Вложенные структуры
Указатели на структуры. Массивы структурных переменных
Передача функциям структурных переменных. Оператор typedef
Поля
Объединения
Перечисления
Односвязные списки
Стеки
Очереди
Бинарные деревья
Файлы. Общие сведения. Открытие и закрытие файлов
Функции ввода-вывода для работы с текстовыми файлами
Произвольный доступ к файлу
Функции ввода-вывода для работы с бинарными файлами
Директива препроцессора #include
Директивы препроцессора #define и #undef
Директивы условной компиляции
Практический раздел
Контрольные работы
Указания к выбору варианта контрольных работ
Номер вашего варианта равен: 1 плюс остаток от целочисленного деления номера вашей зачетной книжки (его двух последних цифр, стоящих после дефиса) на тридцать.
Контрольная работа №1
Тема работы. СТРУКТУРЫ. Для заданного варианта составить программу на языке Си. Программа должна содержать подробные комментарии.
Варианты индивидуальных заданий
1. Дана ведомость абитуриентов. В каждой строке записана фамилия абитуриента, его постоянное место жительства (город), средний балл аттестата.
Распечатать в алфавитном порядке список абитуриентов, проживающих в Минске, и определить их количество.
2. Дана ведомость абитуриентов. В каждой строке записана фамилия абитуриента, средний балл аттестата.
Определить средний балл аттестата по университету и распечатать список абитуриентов, средний балл которых не ниже среднего балла по университету. Список должен быть отсортирован по алфавиту.
3. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны его номер, пункт назначения, время вылета. Определить все номера рейсов, и времена их вылета для заданного пункта назначения.
4. У администратора железнодорожных касс хранится информация о свободных местах в поездах по всем направлениям на ближайшую неделю. Данная информация представлена в следующем виде: дата выезда, конечный пункт назначения, время отправления, число свободных мест. Выдать на печать информацию о поездах, следующих до Москвы.
5. Написать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должна содержать номер группы, фамилию студента, средний балл за последнюю сессию. Необходимо распечатать списки по группам. В каждой группе фамилии студентов разместить в порядке убывания среднего балла.
6. Имеется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит фамилию и дату постановки на учет. Список упорядочен по дате постановки на учет. В течение года выделяется 5 квартир. Вывести на экран весь список с указанием ожидаемого года получения квартиры.
7. В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книг, год издания. Определить, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ"). Если имеются, то выдать на печать фамилии авторов, название и год издания всех таких книг.
8. Информация о сотрудниках предприятия содержит:
фамилию;
оклад;
номер отдела.
Требуется по каждому отделу определить сотрудника, у которого максимальная зарплата.
9. Информация о сотрудниках предприятия содержит:
фамилию;
оклад;
номер отдела.
Требуется по каждому отделу определить сумму зарплат.
10. Список товаров, имеющихся на складе, включает:
наименование товара;
стоимость товара.
Вывести в алфавитном порядке список товаров, стоимость которых превышает 100000 рублей.
11. Список товаров, имеющихся на складе, включает:
наименование товара;
дата поступления товара на склад.
Вывести в алфавитном порядке список товаров поступивших на склад в феврале месяце.
12. Для получения места в общежитии формируется список студентов, который включает:
фамилию;
номер группы;
доход на одного члена семьи.
Вывести список студентов в порядке уменьшения дохода на одного члена семьи.
13. В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:
номер рейса;
пункт назначения;
время прибытия на конечный пункт.
Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше 21 часа.
14. На междугородной АТС информация о разговорах содержит:
дату разговора;
название города;
время разговора;
тариф.
Вывести по каждому городу общее время разговора с ним и сумму.
15. На междугородной АТС информация о разговорах содержит:
дату разговора;
название города;
время разговора;
тариф.
Вывести общее время разговора и сумму за 30 марта.
16. Информация о сотрудниках фирмы включает:
фамилию;
табельный номер;
количество проработанных часов за месяц;
почасовой тариф.
Вывести размер заработной платы каждого сотрудника фирмы.
17. Информация об участниках спортивных соревнований содержит:
название команды;
фамилию игрока;
возраст игрока.
Вывести название и средний возраст самой молодой команды.
18. Информация об участниках спортивных соревнований содержит:
фамилию игрока;
название команды;
рост игрока.
Вывести название и средний рост самой рослой команды.
19. Информация об участниках спортивных соревнований содержит:
фамилию игрока;
название команды;
вес игрока.
Вывести название и средний вес самой легкой команды.
20. Для книг, хранящихся в библиотеке, задаются:
автор;
название;
год издания.
Вывести список книг с фамилиями авторов в алфавитном порядке, изданных после 2000 года.
21. Для книг, хранящихся в библиотеке, задаются:
автор;
название;
год издания.
Вывести список книг заданного автора.
22. Различные цеха завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают:
наименование;
количество;
номер цеха.
Для заданного цеха необходимо вывести количество выпущенных изделий по каждому наименованию.
23. Информация о сотрудниках предприятия содержит:
фамилию;
номер отдела;
стаж работы.
Вывести список сотрудников по отделам в порядке убывания стажа.
24. Для участия в конкурсе исполнителей необходимо заполнить анкету с данными:
фамилия;
год рождения;
класс музыкального инструмента (скрипка, фортепиано);
занятое место.
Вывести список лауреатов конкурса по классам инструментов в порядке занятых мест.
25. Элементами структуры являются:
фамилия студента;
номер группы;
место проживания (в общежитии или нет).
Вывести отсортированный по алфавиту список проживающих в общежитии студентов и их количество.
26. Информация об участниках спортивных соревнований между командами России и Беларуси содержит:
страну участника;
фамилию;
занятое место.
За каждое место присуждается следующее количество очков:
1 место – 6 очков, 2 место – 5 очков, 3 место – 4 очка. Вывести списки спортсменов каждой команды, отсортировать их по алфавиту и подсчитать количество очков, набранное командами.
27. В магазине содержатся сведения об ассортименте игрушек. Структура записи:
название игрушки;
цена;
возрастные границы, например, 2 – 5, т.е. от 2 до 5 лет.
Вывести на печать название игрушек, которые подходят детям от 1 до 3 лет.
28. В магазине содержатся сведения об ассортименте игрушек. Структура записи:
название игрушки;
цена.
Вывести на печать стоимость самой дорогой игрушки и ее наименование.
29. В магазине содержатся сведения об ассортименте игрушек. Структура записи:
название игрушки;
стоимость.
Вывести на печать названия игрушек, стоимость которых не превышает 10000 руб.
30. Информация о сотрудниках предприятия содержит:
фамилию;
номер отдела;
год рождения.
Вычислить средний возраст сотрудников по отделам.