Статья Автор: Лебедев Дмитрий Алексеевич

Решения по файлам для SDO_Комплект №16

Имеется текстовый файл с одной строкой текста. Напишите программу, которая выводит на экран эту строку в обратном порядке.


Входные данные

Вводится имя файла.


Выходные данные

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

Примечание 1. Считайте, что исполняемая программа и указанный файл находятся в одной папке.

Примечание 2. Если бы файл содержал строку:
qwert asdf
то результат был бы
fdsa trewq



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


Входные данные

Вводится имя файла.


Выходные данные

Программа должна вывести строки указанного файла в обратном порядке, каждую на новой строке.

Примечание 1. Считайте, что исполняемая программа и указанный файл находятся в одной папке.

Примечание 2. Если бы файл содержал строки:
Первая строка
Вторая строка
Третья строка

то результат был бы
Третья строка
Вторая строка
Первая строка

ВНИМАНИЕ!!! Пустые строки



Имеется текстовый файл в котором записаны строки текста. Напишите программу, которая выводит все строки наибольшей длины из файла, не меняя их порядок.


Входные данные

Вводится имя файла.


Выходные данные

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

Примечание 1. Считайте, что исполняемая программа и указанный файл находятся в одной папке.

Примечание 2. Если бы файл содержал строки:
One
Twenty one
Two
Twenty two

то результат был бы
Twenty one
Twenty two



Имеется текстовый файл.
В файле могут быть записаны целые неотрицательные числа и все что угодно. Числом назовем последовательность одной и более цифр, идущих подряд (число всегда неотрицательно).

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


Входные данные

Вводится имя файла.


Выходные данные

Программа должна вывести сумму всех чисел, записанных в файле.

Примечание 1. Считайте, что исполняемая программа и указанный файл находятся в одной папке.

Примечание 2. Если бы файл содержал строки:
 123   jhjk
bhjip456qwerty
1x2y3 4 5 6
sfsd 0 dfgfd
10abc20de30pop5 5 5 5


то результат был бы
680



Имеется текстовый файл, набранный латиницей. Напишите программу, которая выводит количество букв латинского алфавита, слов и строк. Выведите три найденных числа в формате, приведенном в примере.


Входные данные

Вводится имя файла.


Выходные данные

Программа должна вывести три найденных числа в формате, приведенном в примере.

Примечание 1. Считайте, что исполняемая программа и указанный файл находятся в одной папке.

Примечание 2. Если бы файл содержал строки:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.

то результат был бы
Input file contains:
108 letters 
20 words 
4 lines 

Примечание 3. Словом называется последовательность из непробельных символов. Например, строка

abc a21 67pop    qwert bo7ok 83456

содержит 6 слов: abc, a21, 67pop, qwert, bo7ok, 83456



В текстовом файле, имя которого вводится с клавиатуры, находятся строчки, представляющие из себя цепочки из символов латинского алфавита X, I, V. Найдите длину самой длинной подцепочки, состоящей из символов X. В ответе укажите номер строки и длину (нумерация строк начинается с 1) в одной строке через пробел. Если такого символа нет, то вывести "Nо". Ответ запишите в новый файл output.txt.

Примечание:

Содержание файла file1.txt

XXXIVXXVIIXXXXXXXV
VXXXXXXXXXXVI
VVVIIVVVVIII



В текстовом файле, имя которого вводится с клавиатуры, находятся строчки, представляющие из себя цепочки из символов латинского алфавита X, I, V. Найдите в каждой строке самую  длинную подцепочку, не содержащую римское число 15 (XV). Если таких несколько, то первую от начала строки. В новый файл output.txt выведите эти подцепочки - каждую на новой строке.

Примечание:

Содержание файла file1.txt

XXXIVXXVIIXXXXXXXV
VXXXXXXXXXXVI
VVVIIVVVVIII
 

ВНИМАНИЕ!!! Замена с разделителем!



Однажды Жака Фреско спросили
"Если ты такой умный, почему не богатый?"
Жак не стал отвечать на столь провокационный вопрос, вместо этого он задал загадку спрашивающему:
"Были разноцветные козлы. Сколько?"
"Сколько чего?"
"Сколько из них составляет более 7% от общего количества козлов?"

В текстовом файле записано несколько строк.

 В первой строке написано слово COLOURS, далее идет список всех возможных цветов козлов. Затем идет строка со словом GOATS, и далее непосредственно перечисление козлов разных цветов. Перечень козлов включает только строки из первого списка.

Напишите программу создания файла output.txt и вывода в него списка козлов, которые удовлетворяют условию загадки от Жака Фреско.

Формат входных данных
На вход программе подается имя файла.

Формат выходных данных
Программа должна создать файл с именем output.txt и вывести в него в алфавитном порядке названия цветов козлов, которые удовлетворяют условию загадки Жака Фреско.

Примечание 1. Считайте, что исполняемая программа и указанные файлы находятся в одной папке.

Примечание 2. Если бы исходный файл содержал строки:

COLOURS
Pink goat
Green goat
Black goat
GOATS
Pink goat
Pink goat
Black goat
Pink goat
Pink goat
Black goat
Green goat
Pink goat
Black goat
Black goat
Pink goat
Pink goat
Black goat
Black goat
Pink goat

то файл output.txt имел бы вид:

Black goat
Pink goat

ВНИМАНИЕ!!! Осторожно - правильное считывание!!!


Робот стоит в левой верхней клетке матрицы, размером n x m. Робот может выполнять ровно 2 команды: сместиться на 1 ячейку вправо, сместиться на 1 ячейку вниз. Определите сколькими способами робот может попасть из левой верхней ячейки в правую нижнюю, используя только команды, доступные ему.

Формат входных данных
На вход программе подаются два натуральных числа n и m, записанные через пробел.

Формат выходных данных

Одно целое число - ответ на задачу.

Для примера:

Ввод Результат
1 1
1


На вход программе поступают два числа n и m - размеры матрицы.
Необходимо создать матрицу размером n x m. Заполнить данную матрицу случайными  целыми числами от -100 до 100. Затем решить следующую задачу: робот находится в левой верхней клетке данной матрицы, он может ходить вправо на 1 ячейку, вниз на 1 ячейку, по диагонали на одну ячейку. Посетив ячейку, робот забирает число (прибавляет к накапливаемой сумме), хранящееся в этой ячейке, это также относится к начальной и конечной клетке маршрута. Найдите наибольшую и наименьшую сумму, которую может получить робот, придя из из начальной ячейки в правую нижнюю. 

Ответ запишите в файл output.txt. Запишите в первой строке  файла размеры матрицы, вначале n, потом m, разделите их одним пробелом. Затем, начиная со следующей строки, запишите матрицу размером n на m, построчно, в каждой строке ровно одна строка матрицы, ячейки этой строки разделены пробелами. В последней строке выведите максимальную и минимальную возможную сумму, разделив их пробелом.

Например, если были бы даны числа 3, 2 и при заполнении случайными числами получилась бы матрица

-31 14
49 -37
-94 -44

То нужно было бы вывести

3 2
-31 14
49 -37
-94 -44
-26 -120

Входные данные:
Числа n и m, разделенные пробелом

Выходные данные:
n и m, разделённые пробелом,  матрица размером n x m, заполненная случайными числами, максимальная и минимальная сумма.


Печать