Двоичные (типизированные) файлы: группа File
Условие вида «дан файл (целых чисел, вещественных чисел и т. д.)» означает, что в наборе исходных данных указано имя данного файла (текстовая строка), а сам исходный файл существует и находится в текущем каталоге. Если существование исходных файлов требуется проверять в ходе выполнения задания, то это особо оговаривается в формулировке задания. Если в задании требуется создать новый файл, то имя создаваемого файла также входит в набор исходных данных и обычно является последним элементом этого набора. Под размером двоичного типизированного файла всегда подразумевается количество содержащихся в нем элементов указанного типа (а не количество байтов, как это принято в операционной системе). В заданиях предполагается, что файловые элементы нумеруются от 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. Дан файл целых чисел с элементами A_1, A_2, …, A_N (N — количество элементов в файле). Заменить исходное расположение его элементов на следующее: A_1, A_N, A_2, A_{N-1}, A_3, … .
Решение задачи, на языке: Паскаль
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. Дана строка S_0, целое число N (\le 4) и N файлов одного и того же типа с именами S_1, …, S_N. Объединить содержимое этих файлов (в указанном порядке) в новом файле с именем S_0.
Решение задачи, на языке: Паскаль
File47. Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.
Решение задачи, на языке: Паскаль
Обработка нескольких числовых файлов. Файлы-архивы
File48. Даны три файла целых чисел одинакового размера с именами S_A, S_B, S_C и строка S_D. Создать новый файл с именем S_D, в котором чередовались бы элементы исходных файлов с одним и тем же номером: A_1, B_1, C_1, A_2, B_2, C_2, … .
Решение задачи, на языке: Паскаль
File49. Даны четыре файла целых чисел разного размера с именами S_A, S_B, S_C, S_D и строка S_E. Создать новый файл с именем S_E, в котором чередовались бы элементы исходных файлов с одним и тем же номером (как в задании File48). «Лишние» элементы более длинных файлов в результирующий файл не записывать.
Решение задачи, на языке: Паскаль
File50. Даны два файла вещественных чисел с именами S_1 и S_2, элементы которых упорядочены по возрастанию. Объединить эти файлы в новый файл с именем S_3 так, чтобы его элементы также оказались упорядоченными по возрастанию.
Решение задачи, на языке: Паскаль
File51. Даны три файла вещественных чисел с именами S_1, S_2 и S_3, элементы которых упорядочены по убыванию. Объединить эти файлы в новый файл с именем S_4 так, чтобы его элементы также оказались упорядоченными по убыванию.
Решение задачи, на языке: Паскаль
File52. Дана строка S_0, целое число N (\le 4) и N файлов целых чисел с именами S_1, …, S_N. Объединить их содержимое в новом файле-архиве с именем S_0, используя следующий формат: в первом элементе файла-архива хранится число N, в следующих N элементах хранится размер (число элементов) каждого из исходных файлов, а затем последовательно размещаются данные из каждого исходного файла.
Решение задачи, на языке: Паскаль
File53. Дана строка S, целое число N (> 0) и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File52. Восстановить из файла-архива файл с номером N и сохранить его под именем S. Если файл-архив содержит данные из менее чем N файлов, то оставить результирующий файл пустым.
Решение задачи, на языке: Паскаль
File54. Дана строка S и файл-архив целых чисел, содержащий данные из нескольких (не более шести) файлов в формате, описанном в задании File52. Для каждого из файлов, содержащихся в архиве, найти среднее арифметическое всех его элементов (вещественное число) и записать найденные числа (в том же порядке) в файл вещественных чисел с именем S.
Решение задачи, на языке: Паскаль
File55. Дана строка S_0, целое число N (\le 4) и N файлов целых чисел с именами S_1, …, S_N. Объединить их содержимое в новом файле-архиве с именем S_0, последовательно записывая в него следующие данные: размер (число элементов) первого исходного файла и все элементы этого файла, размер второго исходного файла и все его элементы, …, размер N-го исходного файла и все его элементы.
Решение задачи, на языке: Паскаль
File56. Дана строка S, целое число N (> 0) и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File55. Восстановить из файла-архива файл с номером N и сохранить его под именем S. Если файл-архив содержит данные из менее чем N файлов, то оставить результирующий файл пустым.
Решение задачи, на языке: Паскаль
File57. Даны строки S_1, S_2 и файл-архив целых чисел, содержащий данные из нескольких файлов в формате, описанном в задании File55. Создать новые файлы целых чисел с именами S_1 и S_2 и записать в первый из них начальные элементы всех файлов, содержащихся в архиве, а во второй — конечные элементы этих файлов (в том же порядке).
Решение задачи, на языке: Паскаль
Cимвольные и строковые файлы
Строковым файлом называется двоичный типизированный файл, элементами которого являются текстовые строки, хранящиеся в участках памяти одинакового размера.
File58. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после первого символа пробела, включая и этот пробел.
Решение задачи, на языке: Паскаль
File59. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после последнего символа пробела, включая и этот пробел.
Решение задачи, на языке: Паскаль, C++
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 \times N называется прямоугольная таблица чисел, содержащая M строк и N столбцов. Для работы с матрицами обычно используются двумерные массивы (см. задания группы Matrix). Данный пункт посвящен способам обработки матриц, хранящихся в двоичных типизированных файлах на внешних носителях (дисках). Как и в остальных заданиях на обработку файловых данных, при выполнении заданий из данного пункта не следует использовать вспомогательные массивы, содержащие все файловые элементы. В заданиях данного пункта используются дополнительные понятия теории матриц. Приведем определения этих понятий.
Пусть A — матрица размера M \times N. Матрица B называется транспонированной к матрице A, если она имеет размер N \times M и ее элементы удовлетворяют следующему соотношению: B_{I,J} = A_{J,I}, I = 1, …, N, J = 1, …, M.
Пусть A — матрица размера M \times N, B — матрица размера N \times P. Матрица C называется произведением матриц A и B (и обозначается A*B), если она имеет размер M \times P и ее элементы удовлетворяют следующему соотношению: C_{I,J} = A_{I,1}*B_{1,J} + A_{I,2}*B_{2,J} + … + A_{I,N}*B_{N,J}, I = 1, …, M, J = 1, …, P.
Квадратная матрица A порядка M называется верхнетреугольной, если все ее элементы, лежащие ниже главной диагонали, равны нулю (определение главной диагонали см. в задании Matrix80): A_{I,J} = 0, I > J.
Квадратная матрица A порядка M называется нижнетреугольной, если все ее элементы, лежащие выше главной диагонали, равны нулю: A_{I,J} = 0, I < J. Квадратная матрица A порядка M называется трехдиагональной, если равны нулю все ее элементы, не лежащие на главной диагонали и на двух диагоналях, примыкающих к главной: A_{I,J} =0, | I — J | > 1.
File74. Даны два целых числа I, J и файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Вывести элемент матрицы, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.
Решение задачи, на языке: Паскаль
File75. Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый файл, содержащий элементы матрицы, транспонированной к исходной.
Решение задачи, на языке: Паскаль
File76. Даны два файла вещественных чисел с именами S_A и S_B, содержащие элементы квадратных матриц A и B (по строкам). Создать новый файл с именем S_C, содержащий элементы произведения A*B. Если матрицы A и B нельзя перемножать, то оставить файл S_C пустым.
Решение задачи, на языке: Паскаль
File77. Даны два целых числа I, J и файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем первый элемент файла содержит количество столбцов матрицы. Вывести элемент матрицы, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.
Решение задачи, на языке: Паскаль
File78. Дан файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем первый элемент файла содержит количество столбцов матрицы. Создать новый файл той же структуры, содержащий матрицу, транспонированную к исходной.
Решение задачи, на языке: Паскаль
File79. Даны два файла вещественных чисел с именами S_A и S_B, содержащие элементы прямоугольных матриц A и B (по строкам), причем первый элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать файл той же структуры с именем S_C, содержащий элементы произведения A*B. Если матрицы A и B нельзя перемножать, то оставить файл S_C пустым.
Решение задачи, на языке: Паскаль
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. Даны два файла вещественных чисел с именами S_A и S_B, содержащие ненулевые части верхнетреугольных матриц A и B (по строкам). Создать новый файл с именем S_C, содержащий ненулевую часть произведения A*B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл S_C пустым.
Решение задачи, на языке: Паскаль
File90. Даны два файла вещественных чисел с именами S_A и S_B, содержащие ненулевые части нижнетреугольных матриц A и B (по строкам). Создать новый файл с именем S_C, содержащий ненулевую часть произведения A*B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл S_C пустым.
Решение задачи, на языке: Паскаль
Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.
Другие задачи по программированию, для проверки своих знаний.
file 59 c++
Как то так получилось: http://coolcode.ru/reshaem-zadachi-abramyan-na-c-file59/ Как то громоздко… но как уменьшить не знаю…
file 36 на c++ можно?