
- •Часть 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. Динамические структуры данных
- •Варианты индивидуальных заданий
Контрольная работа №2
Тема работы. ФАЙЛЫ. Для заданного варианта составить программу на языке Си. Программа должна содержать подробные комментарии.
Варианты индивидуальных заданий
1. Разработать программу, которая формирует файл F1, содержащий целые числа, и переписывает этот файл в другой файл - F2, помещая в него из F1 только положительные числа.
2. Разработать программу, переписывающую в текстовый файл Т2 содержимое текстового файла Т1, но без строк, содержащих числа.
3. Разработать программу сортировки (упорядочения по возрастанию значений элементов) файла, содержащего целые числа.
4. Разработать программу, которая формирует на основе текстового файла Т1 файл Т2, разбивая Т1 на строки так, чтобы каждая строка оканчивалась либо точкой с запятой, либо содержала 30 любых литер, кроме точки с запятой. В качестве Т1 можно использовать файл с исходным текстом разработанной программы.
5. Разработать программу формирования файла, содержащего сведения о студентах. Каждый элемент этого файла должен содержать следующие данные: номер группы; фамилию; год рождения; средний балл за последнюю сессию. Предусмотреть возможность добавления, удаления и корректировки записей.
6. Разработать программу перекодировки текстового файла, заменив в нем заглавные буквы строчными.
7. Сформировать базу данных результатов экзамена студентов. Разработать программу, которая удаляет соответствующие записи из файла тех, чья оценка меньше 5 и помещает их в другой файл.
8. Разработать программу вывода на экран текстового файла. Вывод следует организовать таким образом, чтобы выполнялось выравнивание по правой границе путем вставки между словами необходимого количества пробелов. В качестве исходного файла можно использовать файл с исходным текстом разработанной программы.
9. Разработать программу слияния двух отсортированных по убыванию значений элементов файлов F1 и F2. Результатом слияния должен быть файл F3, элементы которого упорядочены по возрастанию.
10. Разработать программу, объединяющую несколько файлов, содержащих списки студенческих групп, в один результирующий файл. Запись производится в алфавитном порядке.
11. Имеется телефонный справочник. Каждая запись в нем состоит из фамилии и телефона. Список фамилий уже упорядочен по алфавиту. Организовать в файле поиск методом быстрой сортировки. Найти по фамилии телефон.
12. Дан файл, содержащий информацию об успеваемости студентов, где содержится фамилия, номер группы, средний балл за последнюю сессию. Переписать в другой файл студентов, в порядке уменьшения среднего балла.
13. Даны файлы F1 и F2. Переписать с сохранением порядка следования компоненты F1 в файл F2, а компоненты F2 – в файл F1.
14. Дан файл F. Определить, являются ли два первых символа файла цифрами.
15. Дан файл F. Получить файл G, образованный из файла F заменой всех его прописных (больших) латинских букв одноименными строчными (малыми) русскими буквами.
16. Разработать программу, которая записывает в файл F3 сначала компонент файла F1, затем компонент файла F2 с сохранением порядка.
17. Разработать программу определения: совпадают ли компоненты файла F1 с компонентами файла F2. Если нет, то определить номера 1-го и 2-го компонента, в которых есть отличие.
18. Дан файл А. Записать в файл В компоненты файла А в обратном порядке.
19. Задан текстовый файл F1, состоящий из произвольной последовательности буквенных символов. Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены, и переписать новый текст в файл F2.
20. Переписать компоненты файла F1 в файл F2, заменив при этом каждый восклицательный знак точкой, а каждое двоеточие – тремя точками.
21. Компоненты файла F1 – натуральные числа. Переписать в файл F2 все нечетные числа.
22. Составить программу записи в файл F1 всех чисел файла F2, кратных 5, а в файл F3 – всех отрицательных чисел, кратных 3.
23. Дан файл F1, который содержит данные о студентах групп (фамилия – имя – возраст). Создать файл F, который будет содержать данные о студентах, имеющих наибольший возраст.
24. Дан файл А, компоненты которого являются целыми числами. Записать в файл В все четные числа файла А, а в файл С – все нечетные. Порядок следования чисел сохраняется.
25. Дан файл А, компоненты которого являются целыми числами. Получить файл В, образованный из файла А исключением повторных вхождений одного и того же числа.
26. Дан текстовый файл А. Переписать в файл В все компоненты файла А с заменой в них символа 0 на символ 1 и наоборот.
27. Дан текстовый файл А. Исключить пробелы, стоящие в концах его строк. Результат поместить в файл А1.
28. Дан текстовый файл А. Переписать компоненты файла А в файл А1, вставляя в начало каждой строки по одному пробелу. Порядок компонент должен быть сохранен.
29. Дан файл А, компоненты которого являются целыми числами. Записать в файл А1 все повторяющиеся числа файла А, а в файл А2 – числа, которые встречаются один раз. Порядок следования чисел сохраняется.
30. Даны два файла. Составить программу слияния этих файлов в один по алгоритму – цифра вставляется после двух символов.