![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
Файл – это набор данных, размещенный на внешнем носителе и рассматриваемый в процессе обработки как единое целое. Каждый файл завершается маркером конца файла (end-of-file marker или EOF) или указанным числом байтов, записанным в служебную структуру данных.
| Задание | Краткие теоретические сведения | ||||||
| 1. Выполнить программу, записанную в данном пункте. Дополнить программу операторами считывания файла и вывода на экран его содержимого. | Пример программы на языке С, которая открывает файл а.txt на диске f, записывает в него строку символов (слово «привет») и закрывает файл.
Файл открывается с помощью fopen. Здесь "w"означает, что файл открывается для записи и, если он существует, то содержимое файла стирается.
Если файл не открывается, то в программе выдается сообщение.
Функция fwrite записывает содержимое переменной stдлинойstrlen(st), fp- указатель на файл, в который производится запись.
Файл закрывается с помощью функции fclose.
| ||||||
| 2. Выполнить программу, записанную в правой части. Изменить программу так, чтобы выводились на экран все предложения с 1 по n. |
Пример. Пусть в текстовом файле “b.txt” на диске f записано несколько предложений. Конец предложения обозначен точкой.
Ввести номер предложения n и вывести из текстового файла на экран предложение с этим номером.
В программе на языке С открывается файл, с помощью функции fseekустанавливается текущая позиция в файле на конец и функцией ftellопределяется размер содержимого файла. Далее с помощью функции fseekустанавливается текущая позиция в файле на начало и происходит чтение информации функцией fread и поиск точки.
| ||||||
| 3. Опробовать программму, записанную в правой части, с различными режимами работы. Записать условие задачи. |
|
4. В соответствии со своим вариантом разработать программу для работы с файлами на языке С. В задании использовать бинарные файлы (с расширением bin).
| № варианта | Условие задачи |
| Даны два файла вещественных чисел с именами A и B, содержащие элементы прямоугольных матриц M1 и M2 (по строкам), причем начальный элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать файл той же структуры с именем C, содержащий произведение M1·M2. Если матрицы M1 и M2 нельзя перемножать, то оставить файл C пустым. | |
| Даны два файла вещественных чисел с именами A и B, содержащие элементы прямоугольных матриц M1 и M2 (по строкам), причем начальный элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать файл той же структуры с именем C, содержащий сумму M1+M2. | |
| Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам), причем начальный элемент файла содержит значение количества столбцов матрицы. Создать новый файл той же структуры, содержащий матрицу, транспонированную к исходной. | |
| Дан файл целых чисел с элементами A(i), i = 0,..., N–1 (N - размер файла). Заменить исходное расположение его элементов на следующее: A(0), A(N–1), A(1), A(N–2), A(2),.... | |
| Компоненты файла A– целые (отличные от нуля) числа, причем из них первые 10 положительных чисел, затем 10 отрицательных, и т.д. Получить файл B, в котором записаны сначала 5 положительных чисел, затем 5 отрицательных и т.д. | |
| Даны три файла целых чисел одинакового размера с именами A, B и C. Создать новый файл с именем D, в котором чередовались бы элементы исходных файлов с одним и тем же номером: a0, b0, c0, a1, b1, c1, a2, b2, c2,.... | |
| Компоненты файла A – вещественные числа (положительные и отрицательные). Определить и вывести на экран порядковый номер того из них, которое наиболее близко к введенному пользователем целому числу. | |
| Компоненты файла A – целые числа, значения которых повторяются. Получить файл B, образованный из A числами, которые встречаются в A ровно 2 раза. | |
| Компоненты файла A– целые числа, значения которых повторяются. Получить файл B, образованный из A исключением повторных вхождений одного и того же числа. | |
| Компоненты файла A – целые (отличные от нуля) числа: х, y1,... yn. Вывести на экран два члена этой последовательности, среднее арифметическое которых ближе всего к х. | |
| Компоненты файла A – целые (отличные от нуля) числа, причем положительных чисел столько же, сколько отрицательных. Получить файл B, в котором не было бы двух соседних чисел с одинаковым знаком (сохранить порядок следования чисел). | |
| Компоненты файла A – целые числа, значения которых повторяются. Получить файл B, образованный из A числами, которые встречаются в A более 2 раз. | |
| Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам), причем начальный элемент файла содержит значение количества столбцов матрицы. Создать новый файл той же структуры, содержащий k-ую строку исходной матрицы. | |
| Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам), причем начальный элемент файла содержит значение количества столбцов матрицы. Создать новый файл той же структуры, содержащий k-ый столбец исходной матрицы. | |
| Даны два файла целых чисел с именами A и B. Получить новый файл с именем C, который содержит сумму элементов файлов A и B. | |
| Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам), причем начальный элемент файла содержит значение количества столбцов матрицы. Создать новый файл той же структуры, содержащий k-ый столбец исходной матрицы. |
В начало практикума
Лабораторная работа № 4. Работа с файлами на языке С++
Для обработки файлов в C++ должны быть включены заголовочные файлы < iostream > и < fstream >, а также следует использовать стандартное пространство имен- using namespace std;
| Задание | Краткие теоретические сведения | ||
| 1. В правой части приведен пример программы на языке С++, которая открывает файл (имя которого вместе с расширением нужно ввести с клавиатуры), читает из файла число и возводит его в квадрат. Затем происходит запись результата вычислений в файл. Предварительно надо записать число в исходный файл. Выполнить программу, используя различные имена файлов. |
| ||
| 2. Изучить ввод и вывод структур в файл, выполнив программы, записанные в правой части. Проверить, появился ли файл FIRMA.DAT среди файлов проекта. | Если программа должна вводить или выводить такие данные, как структуры или массивы, то можно использовать методы readи write.
Пример. Программа слева использует метод write для вывода содержимого структуры с информацией о работнике (фамилия, возраст, зарплата) в файл FIRMA.DAT.
В программе справа используется метод read для чтения из файла информации о служащем.
| ||
| 3. Выполнить программу, записанную в данном пункте. Проверить правильность работы программы. |
Пример. Пусть дано число k и строковый файл на дискеf с именем Name1, содержащий непустые строки.
Создать два новых файла: строковый с именем Name2, содержащий последние k символов каждой строки исходного файла (если строка короче k символов, то она сохраняется целиком), и символьный с именем Name3, содержащий k-й символ каждой строки (если строка короче k, то в файл Name3 записывается пробел).
|
4. В соответствии со своим вариантом разработать программу для работы с файлами на языке С++. Предварительно создать текстовый файл F1 не менее чем из 10 строк и записать в него информацию.
| № варианта | Условие задачи |
| Скопировать в файл F2 только четные строки из F1. Подсчитать размер файлов F1 и F2 (в байтах). | |
| Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А». Подсчитать количество слов в F2. | |
| Скопировать из файла F1 в файл F2 строки, начиная с К до К+5. Подсчитать количество гласных букв в файле F2 | |
| Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры. Подсчитать количество строк, которые начинаются на букву «А» в файле F2. | |
| Скопировать из файла F1 в файл F2 строки, начиная с 4. Подсчитать количество символов в последнем слове F2. | |
| Скопировать из файла F1 в файл F2 строки, начиная с N до K. Подсчитать количество согласных букв в файле F2. | |
| Скопировать из файла F1 в файл F2 все строки, которые содержат только одно слово. Найти самое длинное слово в файле F2. | |
| Скопировать из файла F1 в файл F2 все строки, кроме той строки, в которой больше всего гласных букв. Напечатать номер этой строки. | |
| Скопировать из файла F1 в файл F2 все строки, начинающиеся на букву «А» и заканчивающиеся на букву «С», расположенные между строками с номерами N1 и N2. Определить количество слов в первой строке файла F2. | |
| Скопировать из файла F1 в файл F2 все строки, в которых нет слов, совпадающих с первым словом. Определить количество согласных букв в первой строке файла F2. | |
| Скопировать из файла F1 в файл F2 все строки, которые содержат только одно слово. Найти самое короткое слово в файле F2. | |
| Скопировать из файла F1 в файл F2 все строки, в которых есть слова, совпадающие с первым словом. Определить количество согласных букв в последней строке файла F2. | |
| Скопировать из файла F1 в файл F2 все строки, в которых более 2 слов. Определить номер слова, в котором больше всего гласных букв. | |
| Скопировать из файла F1 в файл F2 все строки, в которых содержится два одинаковых слова. Определить номер слова, в котором больше всего букв «А». | |
| Скопировать из файла F1 в файл F2 все строки, в которых содержится не менее двух одинаковых слов. Определить номер слова, в котором больше всего цифр. | |
| Скопировать из файла F1 в файл F2 все строки, в которых есть слова, совпадающие со вторым словом. Определить количество цифр в последней строке файла F2. |
В начало практикума
Дата публикования: 2015-02-18; Прочитано: 2497 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
