лб 3. сибирский государственный университет геосистем и технологий
Скачать 0.69 Mb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГЕОСИСТЕМ И ТЕХНОЛОГИЙ» (СГУГИТ) ОТЧЕТ ЛАБОРАТОРНАЯ РАБОТА 3. РАБОТА С ФАЙЛАМИ Выполнил обучающийся группы ОЗИ2-1.20.1 Балалин В.Ю Проверил к.т.н., доцент кафедры картографии и геоинформатики Бугаков П. Ю. Новосибирск – 2021 Цель работы: освоить принципы обмена данными с файлами средствами языка С и С++. Задание 1. Составить блок схему алгоритма и написать программу со следующей спецификацией. Пользователем вводятся с клавиатуры целые числа до тех пор, пока сумма четных чисел не превысит число, записанное в файле predel.txt. Вывести в файл kolmax.txt общее количество введённых чисел и максимальное из них. Описание выполненных действий: 1) Написал программу решения задачи (Рис 1,2) 2) Составил блок схему решения задачи (Рис 3) Рисунок 1. Программа решения задачи Рисунок 2. Программа решения задачи (ч2) Рисунок 3. Блок-схема решения задачи Задача 2. Составить блок-схему алгоритма и написать программу со следующей спецификацией. Программа считывает из файла startgame.txt целое число. Пользователь начинает отгадывать это число, вводя с клавиатуры произвольные числа. Программа реагирует на ввод очередного числа подсказкой, например, “Введенное число больше загаданного” или “Введенное число меньше загаданного”. Процесс завершается, если пользователь ввел определённое число. Записать в файл “endgame.txt” введенные числа и их общее количество. В программе использовать файловые потоки. Описание выполненных действий: 1) Написал программу решения задачи (Рис 4) 2) Составил блок-схему решения задачи (Рис 5) Рисунок 4. Программа решения задачи Рисунок 5. Блок-схема решения задачи Ответы на контрольные вопросы: 1) Сделать указатели для файлов; открыть файл; проверить открылся ли файл/существует ли он, если это файл для чтения; считать/записать информацию, закрыть файл. 2) Для сохранения изменённой в нём информации 3) r – только чтение, w – только перезапись, a – дозапись файла, + - чтение и запись, b – работа с бинарном файлом 4) В случае, когда файл не был открыт, функция fopen() возвращает нулевой указатель. Это можно использовать с условием if (file==0) или if (file==NULL). При выполнении условия выводим ошибку и закрываем программу/ делаем так, чтобы файл появился (этой же программой можно создать нужный файл и заполнить, например, случайным числом) и пытаемся открыть его опять. В общем, в зависимости от ситуации. 5) Такие же, что и нефайловые аналоги printf(), scanf() + возможность записывать обычные символы без преобразования в файл. 6) Ну, пусть будет перезапись значения из одного файла в другой через переменную в программе, как самая короткая программа, пришедшая в голову: #include using namespace std; int maun() { int x; ifstream fin; ofstream fout; fin.open(“input.txt”); fin>>x; fin.close(); fout.open(“output.txt”); fout<< x; fout.close(); return 0; } 7) + Задача 2 |