Условие «дан текстовый файл» означает, что в наборе исходных данных указано имя данного файла (текстовая строка). Все исходные файлы в заданиях данной группы считаются существующими. Если в задании требуется создать новый файл, то имя создаваемого файла также входит в набор исходных данных (и, как правило, является последним элементом этого набора). Максимальный размер исходных файлов не устанавливается, поэтому при решении заданий не следует использовать вспомогательные массивы, содержащие все элементы исходных файлов, однако допускается использование вспомогательных файлов. Используемые в заданиях двоичные файлы удовлетворяют условиям, которые перечислены в начале раздела «Двоичные (типизированные) файлы».
Основные операции с текстовыми файлами
Text1. Дано имя файла и целые положительные числа $$N$$ и $$K$$. Создать текстовый файл с указанным именем и записать в него $$N$$ строк, каждая из которых состоит из $$K$$ символов «*» (звездочка).
Решение задачи, на языке: Паскаль
Text2. Дано имя файла и целое число $$N$$ $$(0<N<27)$$. Создать текстовый файл с указанным именем и записать в него $$N$$ строк: первая строка должна содержать строчную (то есть маленькую) латинскую букву «a», вторая — буквы «ab», третья — буквы «abc» и т. д.; последняя строка должна содержать $$N$$ начальных строчных латинских букв в алфавитном порядке.
Решение задачи, на языке: Паскаль
Text3. Дано имя файла и целое число $$N$$ $$(0<N<27)$$. Создать текстовый файл с указанным именем и записать в него $$N$$ строк длины $$N$$; строка с номером $$K$$ $$(K=1,…,N)$$ должна содержать $$K$$ начальных прописных (то есть заглавных) латинских букв, дополненных справа символами «*» (звездочка). Например, для $$N=4$$ файл должен содержать строки «A***», «AB**», «ABC*», «ABCD».
Решение задачи, на языке: Паскаль
Text4. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).
Решение задачи, на языке: Паскаль
Text5. Дана строка $$S$$ и текстовый файл. Добавить строку $$S$$ в конец файла.
Решение задачи, на языке: Паскаль
Text6. Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.
Решение задачи, на языке: Паскаль
Text7. Дана строка $$S$$ и текстовый файл. Добавить строку $$S$$ в начало файла.
Решение задачи, на языке: Паскаль
Text8. Даны два текстовых файла. Добавить в начало первого файла содержимое второго файла.
Решение задачи, на языке: Паскаль
Text9. Дано целое число $$K$$ и текстовый файл. Вставить пустую строку перед строкой файла с номером $$K$$. Если строки с таким номером нет, то оставить файл без изменений.
Решение задачи, на языке: Паскаль
Text10. Дано целое число $$K$$ и текстовый файл. Вставить пустую строку после строки файла с номером $$K$$. Если строки с таким номером нет, то оставить файл без изменений.
Решение задачи, на языке: Паскаль
Text11. Дан текстовый файл. Продублировать в нем все пустые строки.
Решение задачи, на языке: Паскаль
Text12. Дана строка $$S$$ и текстовый файл. Заменить в файле все пустые строки на строку $$S$$.
Решение задачи, на языке: Паскаль
Text13. Дан непустой текстовый файл. Удалить из него первую строку.
Решение задачи, на языке: Паскаль
Text14. Дан непустой текстовый файл. Удалить из него последнюю строку.
Решение задачи, на языке: Паскаль
Text15. Дано целое число $$K$$ и текстовый файл. Удалить из файла строку с номером $$K$$. Если строки с таким номером нет, то оставить файл без изменений.
Решение задачи, на языке: Паскаль
Text16. Дан текстовый файл. Удалить из него все пустые строки.
Решение задачи, на языке: Паскаль
Text17. Даны два текстовых файла. Добавить в конец каждой строки первого файла соответствующую строку второго файла. Если второй файл короче первого, то оставшиеся строки первого файла не изменять.
Решение задачи, на языке: Паскаль
Text18. Дано целое число $$K$$ и текстовый файл. Удалить из каждой строки файла первые $$K$$ символов (если длина строки меньше $$K$$, то удалить из нее все символы).
Решение задачи, на языке: Паскаль
Text19. Дан текстовый файл. Заменить в нем все прописные русские буквы на строчные, а все строчные — на прописные.
Решение задачи, на языке: Паскаль
Text20. Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.
Решение задачи, на языке: Паскаль
Text21. Дан текстовый файл, содержащий более трех строк. Удалить из него последние три строки.
Решение задачи, на языке: Паскаль
Text22. Дано целое число $$K$$ $$(0<K<10)$$ и текстовый файл, содержащий более $$K$$ строк. Удалить из файла последние $$K$$ строк.
Решение задачи, на языке: Паскаль
Text23. Дано целое число $$K$$ $$(0<K<10)$$ и текстовый файл, содержащий более $$K$$ строк. Создать новый текстовый файл, содержащий $$K$$ последних строк исходного файла.
Решение задачи, на языке: Паскаль
Анализ и форматирование текста
Text24. Дан текстовый файл. Найти количество абзацев в тексте, если абзацы отделяются друг от друга одной или несколькими пустыми строками.
Решение задачи, на языке: Паскаль
Text25. Дано целое число $$K$$ и текстовый файл. Удалить из файла абзац с номером $$K$$ (абзацы отделяются друг от друга одной или несколькими пустыми строками). Пустые строки, предшествующие и следующие за удаляемым абзацем, не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.
Решение задачи, на языке: Паскаль
Text26. Дан текстовый файл. Найти количество абзацев в тексте, если первая строка каждого абзаца начинается с $$5$$ пробелов («красная строка»). Пустые строки между абзацами не учитывать.
Решение задачи, на языке: Паскаль
Text27. Дано целое число $$K$$ и текстовый файл. Удалить из файла абзац с номером $$K$$ (абзацы выделяются с помощью красной строки — см. задание Text26). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.
Решение задачи, на языке: Паскаль
Text28. Дан текстовый файл. Абзацы выделяются в нем с помощью красной строки (см. задание Text26), а пустых строк нет. Вставить между соседними абзацами по одной пустой строке (в начало и конец файла пустые строки не добавлять).
Решение задачи, на языке: Паскаль
Text29. Дан текстовый файл. Вывести первое слово текста наибольшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.
Решение задачи, на языке: Паскаль
Text30. Дан текстовый файл. Вывести последнее слово текста наименьшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.
Решение задачи, на языке: Паскаль
Text31. Дано целое число $$K$$ и текстовый файл. Создать строковый файл и записать в него все слова длины $$K$$ из исходного файла. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит слов длины K, то оставить результирующий файл пустым.
Решение задачи, на языке: Паскаль
Text32. Дан символ $$C$$ — прописная (заглавная) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, начинающиеся на эту букву (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.
Решение задачи, на языке: Паскаль
Text33. Дан символ $$C$$ — строчная (маленькая) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, содержащие хотя бы одну букву $$C$$ (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.
Решение задачи, на языке: Паскаль
Text34. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять текст по правому краю, добавив в начало каждой непустой строки нужное количество пробелов (ширину текста считать равной $$50$$).
Решение задачи, на языке: Паскаль
Text35. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять текст по центру, добавив в начало каждой непустой строки нужное количество пробелов (ширину текста считать равной $$50$$). Строки нечетной длины перед центрированием дополнять слева пробелом.
Решение задачи, на языке: Паскаль
Text36. Дан текстовый файл, содержащий текст, выровненный по правому краю. Выровнять текст по центру, удалив из каждой непустой строки половину начальных пробелов. В строках с нечетным количеством начальных пробелов перед центрированием удалять первый начальный пробел.
Решение задачи, на языке: Паскаль
Text37. Дан текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста разделяются одной пустой строкой. Выровнять текст по ширине (то есть и по левому, и по правому краю), увеличив в каждой непустой строке (кроме последних строк абзацев) количество пробелов между словами, начиная с последнего пробела в строке (ширину текста считать равной $$50$$).
Решение задачи, на языке: Паскаль
Text38. Дано целое число $$K$$ $$(> 25)$$ и текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста отделяются друг от друга одной пустой строкой. Отформатировать текст так, чтобы его ширина не превосходила $$K$$ позиций, и выровнять текст по левому краю, сохранив деление на абзацы. Пробелы в конце строк удалить. Сохранить отформатированный текст в новом текстовом файле.
Решение задачи, на языке: Паскаль
Text39. Дано целое число $$K$$ $$(> 25)$$ и текстовый файл, содержащий текст, выровненный по левому краю. Абзацы выделяются в нем с помощью красной строки ($$5$$ начальных пробелов), а пустых строк нет. Отформатировать текст так, чтобы его ширина не превосходила $$K$$ позиций, и выровнять текст по левому краю, сохранив деление на абзацы. Пробелы в конце строк удалить. Сохранить отформатированный текст в новом текстовом файле.
Решение задачи, на языке: Паскаль
Текстовые файлы с числовой информацией
В заданиях на обработку текстовых файлов с числовой информацией предполагается, что изображения вещественных чисел, содержащиеся в текстовых файлах, удовлетворяют стандартным правилам используемого языка программирования (в частности, дробная часть отделяется от целой части десятичной точкой).
Text40. Даны два файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти числа, расположенные в два столбца шириной по $$30$$ символов (в первом столбце содержатся числа из первого исходного файла, во втором — из второго файла). В начало и конец каждой строки текстового файла добавить разделитель «|» (код 124). Числа выравниваются по правому краю столбца.
Решение задачи, на языке: Паскаль
Text41. Даны три файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти числа, расположенные в три столбца шириной по $$20$$ символов (в каждом столбце содержатся числа из соответствующего исходного файла). В начало и конец каждой строки текстового файла добавить разделитель «|» (код 124). Числа выравниваются по левому краю столбца.
Решение задачи, на языке: Паскаль
Text42. Даны вещественные числа $$A$$, $$B$$ и целое число $$N$$. Создать текстовый файл, содержащий таблицу значений функции $$\sqrt{x}$$ на промежутке $$[A, B]$$ с шагом $$(B-A)/N$$. Таблица состоит из двух столбцов: с аргументами $$x$$ ($$10$$ позиций, из них $$4$$ под дробную часть) и со значениями $$x$$ ($$15$$ позиций, из них $$8$$ под дробную часть). Столбцы выравниваются по правому краю.
Решение задачи, на языке: Паскаль
Text43. Даны вещественные числа $$A$$, $$B$$ и целое число $$N$$. Создать текстовый файл, содержащий таблицу значений функций $$\sin(x)$$ и $$\cos(x)$$ на промежутке $$[A, B]$$ с шагом $$(B-A)/N$$. Таблица состоит из трех столбцов: с аргументами $$x$$ ($$8$$ позиций, из них $$4$$ под дробную часть) и со значениями $$\sin(x)$$ и $$\cos(x)$$ (по $$12$$ позиций, из них $$8$$ под дробную часть). Столбцы выравниваются по правому краю.
Решение задачи, на языке: Паскаль
Text44. Дан текстовый файл, каждая строка которого изображает целое число, дополненное слева и справа несколькими пробелами. Вывести количество этих чисел и их сумму.
Решение задачи, на языке: Паскаль
Text45. Дан текстовый файл, каждая строка которого изображает целое или вещественное число, дополненное слева и справа несколькими пробелами (вещественные числа имеют ненулевую дробную часть). Вывести количество чисел с ненулевой дробной частью и их сумму.
Решение задачи, на языке: Паскаль
Text46. Дан текстовый файл, каждая строка которого содержит изображения нескольких чисел, разделенные пробелами (вещественные числа имеют ненулевую дробную часть). Создать файл вещественных чисел, содержащий (в том же порядке) все числа из исходного файла, имеющие ненулевую дробную часть.
Решение задачи, на языке: Паскаль
Text47. Дан текстовый файл, каждая строка которого изображает целое или вещественное число, дополненное слева и справа несколькими пробелами (вещественные числа имеют ненулевую дробную часть). Вывести количество целых чисел и их сумму.
Решение задачи, на языке: Паскаль
Text48. Дан текстовый файл, каждая строка которого содержит изображения нескольких чисел, разделенные пробелами (вещественные числа имеют ненулевую дробную часть). Создать файл целых чисел, содержащий все целые числа из исходного файла (в том же порядке).
Решение задачи, на языке: Паскаль
Text49. Дан текстовый файл и файл целых чисел. Добавить в конец каждой строки текстового файла изображение соответствующего числа из файла целых чисел. Если файл целых чисел короче текстового файла, то оставшиеся строки текстового файла не изменять.
Решение задачи, на языке: Паскаль
Text50. Дан текстовый файл. В каждой его строке первые $$30$$ позиций отводятся под текст, а оставшаяся часть — под вещественное число. Создать два файла: строковый файл, содержащий текстовую часть исходного файла, и файл вещественных чисел, содержащий числа из исходного файла (в том же порядке).
Решение задачи, на языке: Паскаль
Text51. Дан текстовый файл, содержащий таблицу из трех столбцов вещественных чисел. Ширина столбцов таблицы и способ их выравнивания являются произвольными, специальных символов-разделителей таблица не содержит. Создать три файла вещественных чисел, каждый из которых содержит числа из соответствующего столбца таблицы (в том же порядке).
Решение задачи, на языке: Паскаль
Text52. Дан текстовый файл, содержащий таблицу из трех столбцов целых чисел. В начале и в конце каждой строки таблицы, а также между ее столбцами располагается символ-разделитель. Ширина столбцов таблицы, способ их выравнивания и вид символа-разделителя являются произвольными. Создать файл целых чисел, содержащий сумму чисел из каждой строки исходной таблицы.
Решение задачи, на языке: Паскаль
Дополнительные задания на обработку текстовых файлов
Text53. Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания, встретившиеся в текстовом файле (в том же порядке).
Решение задачи, на языке: Паскаль
Text54. Дан текстовый файл. Создать символьный файл, содержащий все символы, встретившиеся в тексте, включая пробел и знаки препинания (без повторений). Символы располагать в порядке их первого появления в тексте.
Решение задачи, на языке: Паскаль
Text55. Дан текстовый файл. Создать символьный файл, содержащий все символы, встретившиеся в тексте, включая пробел и знаки препинания (без повторений). Символы располагать в порядке возрастания их кодов.
Решение задачи, на языке: Паскаль
Text56. Дан текстовый файл. Создать символьный файл, содержащий все символы, встретившиеся в тексте, включая пробел и знаки препинания (без повторений). Символы располагать в порядке убывания их кодов.
Решение задачи, на языке: Паскаль
Text57. Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) русской буквы и создать строковый файл, элементы которого имеют вид «<буква>-<число ее появлений>» (например, «а-25»). Буквы, отсутствующие в тексте, в файл не включать. Строки упорядочить по возрастанию кодов букв.
Решение задачи, на языке: Паскаль
Text58. Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) русской буквы и создать строковый файл, элементы которого имеют вид «<буква>-<число ее появлений>» (например, «а-25»). Буквы, отсутствующие в тексте, в файл не включать. Строки упорядочить по убыванию числа появлений букв, а при равном числе появлений — по возрастанию кодов букв.
Решение задачи, на языке: Паскаль
Text59. Дана строка $$S$$, состоящая из $$10$$ цифр, и файл с русским текстом. Зашифровать файл, выполнив циклическую замену каждой русской буквы, стоящей на $$K$$-й позиции строки, на букву того же регистра, расположенную в алфавите на $$S_K$$-м месте после шифруемой буквы (для $$K=11$$ снова используется смещение $$S_1$$ и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.
Решение задачи, на языке: Паскаль
Text60. Дана строка и файл с русским текстом, зашифрованным по правилу, описанному в задании Text59. Данная строка представляет собой первую расшифрованную строку текста. Расшифровать остальные строки и заменить в файле зашифрованный текст на расшифрованный. Если информации для расшифровки недостаточно, то исходный файл не изменять.
Решение задачи, на языке: Паскаль
Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.
Другие задачи по программированию, для проверки своих знаний.
Почему когда захожу на текст выходит раздел файл
Спасибо, что сказали. Поправил.