Перейти к содержимому

Как создать двоичный файл в c

  • автор:

Создать двоичный файл, куда записать n целых чисел. Из файла создать массив, элементы которого являются простыми числами

Нужна помощь со второй частью задачи. Массив я сделал, но нужно чтобы элементы которые являются простыми числами должны располагаться после максимального значения файла. Не могу додуматься как сделать. Вот прога:

#include #include #include using namespace std; int main() < ofstream out("Q:\\C++\\massiv.txt"); setlocale(LC_ALL, "Rus"); srand(time(NULL)); const int n = 10; int m[n],i=0; for (int i = 0; i < n; i++) < m[i] = rand() % 21 - 10; out out > m[i]; > cout << "Массив = "; for (int i = 0; i < n; ++i) < cout cout

Отслеживать
219k 15 15 золотых знаков 119 119 серебряных знаков 230 230 бронзовых знаков
задан 21 мая 2020 в 5:24
23 5 5 бронзовых знаков
Вы создали не бинарный а текстовый файл
21 мая 2020 в 5:57

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Ну, я бы делал вашу задачу примерно так - учитывая, что требуется бинарный файл, а не текстовый, как сделали вы:

#include #include #include bool is_prime(unsigned int k) < if (k < 2 ||k%2 == 0) return false; for(unsigned int j = 3; j*j using namespace std; int main() < ofstream out("massiv.txt",ios::binary); srand(time(NULL)); const int n = 100; for (int i = 0; i < n; i++) < unsigned int x = rand() % 121 + 10; out.write((char*)&x,sizeof(x)); >out.close(); ifstream fin("massiv.txt",ios::binary); unsigned int m[n]; unsigned int m_size = 0; unsigned int k; while(fin.read((char*)&k,sizeof(k))) < if (is_prime(k)) m[m_size++] = k; >cout cout

Хотя на самом деле я бы работал с вектором. Да, и числа я брал беззнаковые, чтобы иметь дело только с натуральными числами (все же по определению простое число - это число натуральное, которое. ), и не думать - скажем, -5 - это простое или нет.

Двоичный редактор (C++)

Изменение таких ресурсов, как диалоговые окна, изображения или меню в двоичном редакторе , опасно. Неверное редактирование может повредить ресурс, сделав его нечитаемым в соответствующем специализированном редакторе.

Двоичный редактор позволяет изменять любой ресурс на двоичном уровне в шестнадцатеричном или в формате ASCII. Для поиска строк ASCII или шестнадцатеричных байтов можно также использовать команду "Найти" . Используйте двоичный редактор , только если необходимо просмотреть или внести незначительные изменения в пользовательские ресурсы или типы ресурсов, которые не поддерживаются средой Visual Studio. Двоичный редактор недоступен в выпусках Express.

  • Чтобы открыть двоичный редактор в новом файле, перейдите в меню "Новый >>файл", выберите тип файла, который нужно изменить, а затем щелкните стрелку раскрывающегося списка рядом с кнопкой "Открыть" и нажмите кнопку "Открыть с двоичным редактором".> Раскрывающийся список в диалоговом окне создания файла недоступен в Visual Studio 2019, но доступен в Visual Studio 2022.
  • Чтобы открыть двоичный редактор в существующем файле, перейдите в меню >"Открыть файл", выберите нужный файл, а затем щелкните стрелку раскрывающегося списка рядом с кнопкой "Открыть>" и нажмите кнопку "Открыть с>двоичным редактором".

Двоичный редактор открыт в файле Scribble.rc. mydata.rc. Файл разделен на три раздела. В левом разделе показан адрес с начала файла. В среднем разделе показаны столбцы шестнадцатеричных значений из файла. В правом разделе показаны символы ASCII, соответствующие шестнадцатеричным значениям.

В двоичном редакторе представлены только определенные значения ASCII (0x20 через 0x7E). Расширенные символы отображаются в виде периодов в правой области значений ASCII в редакторе двоичных файлов. Печатные символы — это значения ASCII от 32 до 126.

При использовании двоичного редактора во многих случаях можно щелкнуть правой кнопкой мыши контекстное меню команд, относящихся к ресурсу. Доступные команды зависят от ресурса, на который указывает курсор. Например, если щелкнуть правой кнопкой мыши при указании на двоичный редактор с выбранными шестнадцатеричными значениями, контекстное меню отображает команды "Вырезать", "Копировать" и "Вставить ".

Инструкции

В двоичном редакторе вы можете:

Открытие ресурса классического приложения Windows для редактирования в двоичном редакторе

  1. В окне представления ресурсоввыберите файл ресурсов, который необходимо изменить.
  2. Щелкните ресурс правой кнопкой мыши и выберите "Открыть двоичные данные".

Если вы используете окно представления ресурсов для открытия ресурса с форматом, который Visual Studio не распознает, например RCDATA или пользовательский ресурс, ресурс автоматически открывается в двоичном редакторе .

Открытие управляемого ресурса для редактирования в двоичном редакторе

  1. В Обозреватель решений выберите конкретный файл ресурсов, который требуется изменить.
  2. Щелкните правой кнопкой мыши ресурс и выберите "Открыть с помощью".
  3. В диалоговом окне Открыть с помощью выберите Двоичный редактор.

Редактор изображений и двоичный редактор можно использовать для работы с файлами ресурсов в управляемых проектах. Все управляемые ресурсы, которые нужно редактировать, должны быть связанными ресурсами. Редакторы ресурсов Visual Studio не поддерживают редактирование внедренных ресурсов.

Изменение ресурса

Если вы хотите использовать двоичный редактор в ресурсе, который уже редактируется в другом окне редактора, закройте другое окно редактора.

  1. Выберите байт, который вы хотите изменить. Клавиша TAB перемещает фокус между шестнадцатеричными и ASCII разделами двоичного редактора . Вы можете использовать клавиши "Вверх по странице" и "Вниз ", чтобы перемещаться по ресурсу на один экран одновременно.
  2. Введите новое значение. Значение сразу же изменяется как в шестнадцатеричных, так и в разделах ASCII, а фокус перемещается на следующее значение в строке.

Двоичный редактор принимает изменения автоматически при закрытии редактора.

Поиск двоичных данных

Вы можете искать строки ASCII или шестнадцатеричные байты. Например, чтобы найти Hello, можно найти строку Hello или его шестнадцатеричное значение, 48 65 6C 6C 6C 6F.

  1. Перейдите в меню "Изменить >поиск".
  2. В поле "Найти что" выберите предыдущую строку поиска в раскрывающемся списке или введите нужные данные.
  3. Выберите любой из параметров поиска и нажмите кнопку "Найти далее".

Создание настраиваемого ресурса или ресурса данных

Вы можете создать новый пользовательский или ресурс данных, поместив ресурс в отдельный файл с помощью обычного синтаксиса файла скрипта ресурсов (RC), а затем включив этот файл, щелкнув проект правой кнопкой мыши в Обозреватель решений и выбрав "Включить ресурс".

  1. Создайте RC-файл , который содержит настраиваемый ресурс или ресурс данных. Пользовательские данные в .rc файле можно вводить в виде строк, завершаемых значением NULL, или целыми числами в десятичном, шестнадцатеричном или восьмеричном формате.
  2. В Обозреватель решений щелкните правой кнопкой мыши RC-файл проекта и выберите "Ресурс включает".
  3. В поле "Директивы времени компиляции" введите #include инструкцию, которая дает имя файла, содержащего настраиваемый ресурс, например:

#include mydata.rc 

Другим способом создания пользовательского ресурса является импорт внешнего файла в качестве настраиваемого ресурса, см . инструкции по управлению ресурсами.

Для создания пользовательских ресурсов или ресурсов данных требуется Win32.

Бинарный файл

Для работы с бинарными файлами в языке C++ используется стандартная библиотека для работы с файлами (см. функции для работы с текстовыми файлами fscanf и fprintf), но с небольшими изменениями.

Так, например, для чтения бинарного файла применяется параметр «rb», а не обычный «r». Аналогично и с модификаторами записи «w», добавления «a», чтения и записи «r+», «w+», «a+»: «wb», «ab», «rb+», «wb+», «ab+». Как и для обычных файлов наличие буквы w обозначает, что файл будет создан в случае отсутствия, а, если файл уже есть, то его содержимое будет удалено и заменено новым. А наличие буквы a значит, что файл будет создан в случае отсутствия, но содержимое файла не будет уничтожено.

Весь процесс идет по аналогии с обычным текстовым файлом, но есть некоторые нюансы. Работа идет именно с битами, так что возможна запись или считывание различных управляющих символов, например, “\n”, который заканчивает строку и начинает новую.

Так же еще одним моментом служит произвольный доступ к данным в бинарном файле. Благодаря функции

Двоичные файлы

PrevNext

Под двоичным файлом понимается файл, содержащий элементы одного типа в специальном формате.

В языке Pascal такие файлы называются типизированными и описываются как file of .

В языке C++ для работы с двоичными файлами надо открывать их в режиме ios_base::binary; для чтения и записи элементов двоичных файлов в языке C++ надо использовать методы read и write со списком параметров вида ((char *)&x, sizeof(x)), где x - переменная, тип которой совпадает с типом элементов двоичного файла.

В языках платформы .NET для работы с двоичными файлами следует использовать класс FileStream, обеспечивающий прямой доступ к файловым элементам, и связанные с ним дополнительные классы BinaryReader и BinaryWriter, имеющие встроенные методы для ввода и вывода данных всех стандартных скалярных типов.

В языках Python и Ruby при открытии двоичных файлов необходимо добавлять символ b к строковому параметру, определяющему режим доступа к файлу, например, "rb" — открыть существующий двоичный файл на чтение, "wb" — создать двоичный файл и открыть его на запись, "r+b" — открыть существующей двоичный файл одновременно на запись и чтение. Стандартные функции языков Python и Ruby, связанные с вводом-выводом данных для двоичных файлов, не предусматривают прямой обработки числовых типов, поэтому при чтении и записи числовых данных могут потребоваться специальные методы unpack и pack (в языке Python эти методы реализованы в модуле struct).

В языке Java для работы с двоичными файлами удобно использовать класс RandomAccessFile, обеспечивающий прямой доступ к файловым элементам и имеющий встроенные методы для ввода и вывода данных всех стандартных скалярных типов.

В языке Julia варианты открытия двоичных файлов (на чтение, запись или на одновременное чтение и запись) не отличаются от вариантов открытия текстовых файлов. Для записи числовых данных в двоичный файл f надо использовать функцию write(f, a1, a2, …), где a1, a2, … — выражения соответствующего числового типа (Int32 или Float64). Для чтения числовых данных из двоичного файла f надо использовать функцию read(f, T), где в качестве T указывается требуемый числовой тип.

Условие вида «дан файл (целых чисел, вещественных чисел и т. д.)» означает, что в наборе исходных данных указано имя данного файла (текстовая строка), а сам исходный файл существует и находится в текущем каталоге. Если существование исходных файлов требуется проверять в ходе выполнения задания, то это особо оговаривается в формулировке задания. Элементы исходных файлов следует считывать с помощью стандартных процедур используемого языка программирования.

Если в задании требуется создать новый файл, то имя создаваемого файла также входит в набор исходных данных и обычно является последним элементом этого набора. Записывать элементы в создаваемые (или модифицируемые) файлы следует с помощью стандартных процедур используемого языка программирования.

Под размером типизированного файла всегда подразумевается количество содержащихся в нем элементов указанного типа (а не количество байтов, как это принято в операционной системе). В заданиях предполагается, что файловые элементы нумеруются от 1.

Если о минимальном размере исходного файла в задании ничего не сказано, то предполагается, что он равен 2 (т. е. файл содержит по крайней мере два элемента). Максимальный размер исходных файлов не устанавливается, поэтому при решении заданий не следует использовать вспомогательные массивы, содержащие все элементы исходных файлов, однако допускается использование вспомогательных файлов.

Двоичные файлы: основные операции

File1 . Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести True. Если файл с именем S создать нельзя, то вывести False.

File2° . Дано имя файла и целое число N (> 1). Создать файл целых чисел с данным именем и записать в него N первых положительных четных чисел (2, 4, …).

File3 . Дано имя файла и вещественные числа A и D. Создать файл вещественных чисел с данным именем и записать в него 10 первых членов арифметической прогрессии с начальным членом A и разностью D:

A, A + D, A + 2·D, A + 3·D, … .

File4 . Даны имена четырех файлов. Найти количество файлов с указанными именами, которые имеются в текущем каталоге.

File5 . Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести −1.

File6 . Дано целое число K и файл, содержащий неотрицательные целые числа. Вывести K-й элемент файла (элементы нумеруются от 1). Если такой элемент отсутствует, то вывести −1.

File7 . Дан файл целых чисел, содержащий не менее четырех элементов. Вывести первый, второй, предпоследний и последний элементы данного файла.

File8 . Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, а второй в текущем каталоге отсутствует. Создать отсутствующий файл и записать в него начальный и конечный элементы существующего файла (в указанном порядке).

File9 . Даны имена двух файлов вещественных чисел. Известно, что один из них (не обязательно первый) существует и является непустым, а другой в текущем каталоге отсутствует. Создать отсутствующий файл и записать в него конечный и начальный элементы существующего файла (в указанном порядке).

File10° . Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке.

File11 . Дан файл вещественных чисел. Создать два новых файла, первый из которых содержит элементы исходного файла с нечетными номерами (1, 3, …), а второй — с четными (2, 4, …).

File12 . Дан файл целых чисел. Создать два новых файла, первый из которых содержит четные числа из исходного файла, а второй — нечетные (в том же порядке). Если четные или нечетные числа в исходном файле отсутствуют, то соответствующий результирующий файл оставить пустым.

File13 . Дан файл целых чисел. Создать два новых файла, первый из которых содержит положительные числа из исходного файла (в обратном порядке), а второй — отрицательные (также в обратном порядке). Если положительные или отрицательные числа в исходном файле отсутствуют, то соответствующий результирующий файл оставить пустым.

File14 . Дан файл вещественных чисел. Найти среднее арифметическое его элементов.

File15 . Дан файл вещественных чисел. Найти сумму его элементов с четными номерами.

File16 . Дан файл целых чисел. Найти количество содержащихся в нем серий (т. е. наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.

File17 . Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла (серией называется набор последовательно расположенных одинаковых элементов, а длиной серии — количество этих элементов). Например, для исходного файла с элементами 1, 5, 5, 5, 4, 4, 5 содержимое результирующего файла должно быть следующим: 1, 3, 2, 1.

File18 . Дан файл вещественных чисел. Найти его первый локальный минимум (локальным минимумом называется элемент, который меньше своих соседей).

File19 . Дан файл вещественных чисел. Найти его последний локальный максимум (локальным максимумом называется элемент, который больше своих соседей).

File20 . Дан файл вещественных чисел. Найти общее количество его локальных экстремумов, т. е. локальных минимумов и локальных максимумов (определения локального минимума и локального максимума даны в заданиях File18 и File19).

File21 . Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных максимумов исходного файла в порядке возрастания (определение локального максимума дано в задании File19).

File22 . Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных экстремумов исходного файла в порядке убывания (определение локального экстремума дано в задании File20).

File23 . Дан файл вещественных чисел. Создать файл целых чисел, содержащий длины всех убывающих последовательностей элементов исходного файла. Например, для исходного файла с элементами 1.7, 4.5, 3.4, 2.2, 8.5, 1.2 содержимое результирующего файла должно быть следующим: 3, 2.

File24 . Дан файл вещественных чисел. Создать файл целых чисел, содержащий длины всех монотонных последовательностей элементов исходного файла. Например, для исходного файла с элементами 1.7, 4.5, 3.4, 2.2, 8.5, 1.2 содержимое результирующего файла должно быть следующим: 2, 3, 2, 2.

File25° . Дан файл вещественных чисел. Заменить в нем все элементы на их квадраты.

File26 . Дан файл вещественных чисел. Поменять в нем местами минимальный и максимальный элементы.

File27° . Дан файл целых чисел с элементами A1, A2, …, AN (N — количество элементов в файле). Заменить исходное расположение его элементов на следующее:

File28 . Дан файл вещественных чисел. Заменить в файле каждый элемент, кроме начального и конечного, на его среднее арифметическое с предыдущим и последующим элементом.

File29 . Дан файл целых чисел, содержащий более 50 элементов. Уменьшить его размер до 50 элементов, удалив из файла необходимое количество конечных элементов.

File30 . Дан файл целых чисел, содержащий четное количество элементов. Удалить из данного файла вторую половину элементов.

File31 . Дан файл целых чисел, содержащий более 50 элементов. Уменьшить его размер до 50 элементов, удалив из файла необходимое количество начальных элементов.

File32 . Дан файл целых чисел, содержащий четное количество элементов. Удалить из данного файла первую половину элементов.

File33 . Дан файл целых чисел. Удалить из него все элементы с четными номерами.

File34 . Дан файл целых чисел. Удалить из него все отрицательные числа.

File35 . Дан файл целых чисел, содержащий менее 50 элементов. Увеличить его размер до 50 элементов, записав в начало файла необходимое количество нулей.

File36 . Дан файл целых чисел. Удвоить его размер, записав в конец файла все его исходные элементы (в том же порядке).

File37 . Дан файл целых чисел. Удвоить его размер, записав в конец файла все его исходные элементы (в обратном порядке).

File38 . Дан файл целых чисел. Продублировать в нем все элементы с нечетными номерами.

File39 . Дан файл целых чисел. Продублировать в нем все числа, принадлежащие диапазону 5–10.

File40 . Дан файл целых чисел. Заменить в нем каждый элемент с четным номером на два нуля.

File41° . Дан файл целых чисел. Заменить в нем каждое положительное число на три нуля.

Обработка нетипизированных двоичных файлов

File42 . Даны два файла произвольного типа. Поменять местами их содержимое.

File43° . Дан файл произвольного типа. Создать его копию с новым именем.

File44 . Даны три файла одного и того же типа, но разного размера. Заменить содержимое самого длинного файла на содержимое самого короткого.

File45 . Даны три файла одного и того же типа, но разного размера. Заменить содержимое самого короткого файла на содержимое самого длинного.

File46 . Дана строка S0, целое число N (≤ 4) и N файлов одного и того же типа с именами S1, …, SN. Объединить содержимое этих файлов (в указанном порядке) в новом файле с именем S0.

File47 . Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.

Работа с несколькими числовыми файлами. Файлы-архивы

File48° . Даны три файла целых чисел одинакового размера с именами SA, SB, SC и строка SD. Создать новый файл с именем SD, в котором чередовались бы элементы исходных файлов с одним и тем же номером:

File49 . Даны четыре файла целых чисел разного размера с именами SA, SB, SC, SD и строка SE. Создать новый файл с именем SE, в котором чередовались бы элементы исходных файлов с одним и тем же номером (как в задании File48). «Лишние» элементы более длинных файлов в результирующий файл не записывать.

File50° . Даны два файла вещественных чисел с именами S1 и S2, элементы которых упорядочены по возрастанию. Объединить эти файлы в новый файл с именем S3 так, чтобы его элементы также оказались упорядоченными по возрастанию.

File51 . Даны три файла вещественных чисел с именами S1, S2 и S3, элементы которых упорядочены по убыванию. Объединить эти файлы в новый файл с именем S4 так, чтобы его элементы также оказались упорядоченными по убыванию.

File52 . Дана строка S0, целое число N (≤ 4) и N файлов целых чисел с именами S1, …, SN. Объединить их содержимое в новом файле-архиве с именем S0, используя следующий формат: в первом элементе файла-архива хранится число N, в следующих N элементах хранится размер (число элементов) каждого из исходных файлов, а затем последовательно размещаются данные из каждого исходного файла.

File53 . Дана строка S, целое число N (> 0) и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File52. Восстановить из файла-архива файл с номером N и сохранить его под именем S. Если файл-архив содержит данные из менее чем N файлов, то оставить результирующий файл пустым.

File54 . Дана строка S и файл-архив целых чисел, содержащий данные из нескольких (не более шести) файлов в формате, описанном в задании File52. Для каждого из файлов, содержащихся в архиве, найти среднее арифметическое всех его элементов (вещественное число) и записать найденные числа (в том же порядке) в файл вещественных чисел с именем S.

File55 . Дана строка S0, целое число N (≤ 4) и N файлов целых чисел с именами S1, …, SN. Объединить их содержимое в новом файле-архиве с именем S0, последовательно записывая в него следующие данные: размер (число элементов) первого исходного файла и все элементы этого файла, размер второго исходного файла и все его элементы, …, размер N-го исходного файла и все его элементы.

File56 . Дана строка S, целое число N (> 0) и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File55. Восстановить из файла-архива файл с номером N и сохранить его под именем S. Если файл-архив содержит данные из менее чем N файлов, то оставить результирующий файл пустым.

File57 . Даны строки S1, S2 и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File55. Создать новые файлы целых чисел с именами S1 и S2 и записать в первый из них начальные элементы всех файлов, содержащихся в архиве, а во второй — конечные элементы этих файлов (в том же порядке).

Символьные и строковые файлы

Строковым файлом называется двоичный файл, элементами которого являются текстовые строки.

В системах Borland Delphi, Lazarus и PascalABC.NET файловые переменные для строковых файлов необходимо описывать как file of ShortString; этот же тип следует указывать при описании переменных, которые используются в процедурах ввода-вывода для строковых файлов.

При выполнения заданий на языке C++ следует считать, что элементы строковых файлов имеют тип char[80].

При выполнении заданий на языках платформы .NET, а также на языках Python, Java Ruby и Julia следует считать, что элементами строковых файлов являются строки без маркеров конца строк, дополненные справа пробелами до 80 символов, поэтому в строке, прочитанной из строкового файла, может потребоваться удалить правые пробелы, а перед записью строки в строковый файл необходимо дополнить ее до 80 символов.

File58° . Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после первого символа пробела, включая и этот пробел.

File59 . Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после последнего символа пробела, включая и этот пробел.

File60 . Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные перед первым символом пробела, включая и этот пробел.

File61° . Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные перед последним символом пробела, включая и этот пробел.

File62 . Дан символьный файл. Упорядочить его элементы по возрастанию их кодов.

File63° . Дано целое число K (> 0) и строковый файл. Создать два новых файла: строковый, содержащий первые K символов каждой строки исходного файла, и символьный, содержащий K-й символ каждой строки (если длина строки меньше K, то в строковый файл записывается вся строка, а в символьный файл записывается пробел).

File64 . Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины (в том же порядке).

File65 . Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наибольшей длины (в обратном порядке).

File66 . Дан строковый файл. Создать новый строковый файл, в котором строки из исходного файла располагались бы в лексикографическом порядке, т. е. по возрастанию кодов их символов, начиная с первого символа.

File67° . Дан строковый файл, содержащий даты в формате «день/месяц/год», причем под день и месяц отводится по две позиции, а под год — четыре (например, «16/04/2001»). Создать два файла целых чисел, первый из которых содержит значения дней, а второй — значения месяцев для дат из исходного строкового файла (в том же порядке).

File68 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Создать два файла целых чисел, первый из которых содержит значения месяцев, а второй — значения лет для дат из исходного строкового файла (в обратном порядке).

File69 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Создать новый строковый файл, содержащий все летние даты из исходного файла (в том же порядке). Если даты с требуемым временем года в файле отсутствуют, то оставить результирующий файл пустым.

File70 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Создать новый строковый файл, содержащий все зимние даты из исходного файла (в обратном порядке). Если даты с требуемым временем года в файле отсутствуют, то оставить результирующий файл пустым.

File71 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Найти строку, содержащую самую раннюю весеннюю дату. Если даты с требуемым временем года в файле отсутствуют, то вывести пустую строку.

File72 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Найти строку, содержащую самую позднюю осеннюю дату. Если даты с требуемым временем года в файле отсутствуют, то вывести пустую строку.

File73 . Дан строковый файл, содержащий даты в формате, описанном в задании File67. Создать новый строковый файл, в котором даты из исходного файла располагались бы в порядке убывания.

Использование файлов для работы с матрицами

Матрицей размера M × N называется прямоугольная таблица чисел, содержащая M строк и N столбцов. Для работы с матрицами обычно используются двумерные массивы (см. задания группы Matrix). Данная подгруппа посвящена способам обработки матриц, хранящихся в типизированных файлах на внешних носителях (дисках). Как и в остальных заданиях на обработку файловых данных, при выполнении заданий из данной подгруппы не следует использовать вспомогательные массивы, содержащие все файловые элементы.

В заданиях данной подгруппы используются дополнительные понятия теории матриц. Приведем определения этих понятий.

Пусть A — матрица размера M × N. Матрица B называется транспонированной к матрице A, если она имеет размер N × M и ее элементы удовлетворяют следующему соотношению:

BI,J = AJ,I, I = 1, …, N, J = 1, … M.

Пусть A — матрица размера M × N, B — матрица размера N × P. Матрица C называется произведением матриц A и B (и обозначается A·B), если она имеет размер M × P и ее элементы удовлетворяют следующему соотношению:

CI,J = AI,1·B1,J + AI,2·B2,J + … + A1,N·BN,J, I = 1, …, M, J = 1, … P.

Квадратная матрица A называется верхнетреугольной, если все ее элементы, лежащие ниже главной диагонали, равны нулю (определение главной диагонали см. в задании Matrix80):

AI,J = 0, I > J.

Квадратная матрица A называется нижнетреугольной, если все ее элементы, лежащие выше главной диагонали, равны нулю:

Квадратная матрица A называется трехдиагональной, если равны нулю все ее элементы, не лежащие на главной диагонали и на двух диагоналях, примыкающих к главной:

AI,J = 0, |IJ| > 1.

File74° . Даны два целых числа I, J и файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Вывести элемент матрицы, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.

File75 . Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый файл, содержащий элементы матрицы, транспонированной к исходной.

File76 . Даны два файла вещественных чисел с именами SA и SB, содержащие элементы квадратных матриц A и B (по строкам). Создать новый файл с именем SC, содержащий элементы произведения A·B. Если матрицы A и B нельзя перемножать, то оставить файл SC пустым.

File77 . Даны два целых числа I, J и файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем первый элемент файла содержит количество столбцов матрицы. Вывести элемент матрицы, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.

File78 . Дан файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем первый элемент файла содержит количество столбцов матрицы. Создать новый файл той же структуры, содержащий матрицу, транспонированную к исходной.

File79 . Даны два файла вещественных чисел с именами SA и SB, содержащие элементы прямоугольных матриц A и B (по строкам), причем первый элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать файл той же структуры с именем SC, содержащий элементы произведения A·B. Если матрицы A и B нельзя перемножать, то оставить файл SC пустым.

File80 . Дан файл вещественных чисел, содержащий элементы верхнетреугольной матрицы (по строкам). Создать новый файл, содержащий элементы ненулевой части данной матрицы (по строкам).

File81 . Дан файл вещественных чисел, содержащий элементы нижнетреугольной матрицы (по строкам). Создать новый файл, содержащий элементы ненулевой части данной матрицы (по строкам).

File82 . Дан файл вещественных чисел, содержащий элементы трехдиагональной матрицы (по строкам). Создать новый файл, содержащий элементы ненулевой части данной матрицы (по строкам).

File83 . Даны два целых числа I, J и файл вещественных чисел, содержащий ненулевую часть верхнетреугольной матрицы (по строкам). Вывести порядок матрицы и ее элемент, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент находится в нулевой части матрицы, то вывести 0; если элемент отсутствует, то вывести −1.

File84 . Даны два целых числа I, J и файл вещественных чисел, содержащий ненулевую часть нижнетреугольной матрицы (по строкам). Вывести порядок матрицы и ее элемент, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент находится в нулевой части матрицы, то вывести 0; если элемент отсутствует, то вывести −1.

File85 . Даны два целых числа I, J и файл вещественных чисел, содержащий ненулевую часть трехдиагональной матрицы (по строкам). Вывести порядок матрицы и ее элемент, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент находится в нулевой части матрицы, то вывести 0; если элемент отсутствует, то вывести −1.

File86 . Дан файл вещественных чисел, содержащий ненулевую часть верхнетреугольной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

File87 . Дан файл вещественных чисел, содержащий ненулевую часть нижнетреугольной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

File88 . Дан файл вещественных чисел, содержащий ненулевую часть трехдиагональной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

File89 . Даны два файла вещественных чисел с именами SA и SB, содержащие ненулевые части верхнетреугольных матриц A и B (по строкам). Создать новый файл с именем SC, содержащий ненулевую часть произведения A·B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл SC пустым.

File90 . Даны два файла вещественных чисел с именами SA и SB, содержащие ненулевые части нижнетреугольных матриц A и B (по строкам). Создать новый файл с именем SC, содержащий ненулевую часть произведения A·B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл SC пустым.

PrevNext

Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *