This shows you the differences between two versions of the page.
project_3_sergeenkov [2017/04/14 13:27] tatyana.berlenko created |
project_3_sergeenkov [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Чекер для работы с файловой системой - вычисление выражения ====== | ||
- | |||
- | ===== Задача ===== | ||
- | |||
- | ==== Общая постановка задачи ==== | ||
- | |||
- | |||
- | Задана иехархия папок и файлов по следующим правилам: | ||
- | |||
- | * Название папок может быть только "add" или "mul" | ||
- | * В папках могут находиться другие вложенные папки и/или текстовые файлы | ||
- | * Текстовые файлы имеют произвольное имя с расширением .txt | ||
- | * Содержимое текстовых файлов представляет собой строку, в которой через пробел записано некоторое количество целых чисел | ||
- | |||
- | Требуется написать программу, которая запускается в корневой дирректории, содержащей одну папку с именем "add" или "mul", вычисляет и выводит на экран результат выражения состоящего из чисел в поддиректориях по следующим правилам: | ||
- | |||
- | - Если в папке находится один или несколько текстовых файлов, то математическая операция определяемая названием папки (add = сложение, mul = умножение) применяется ко всем числам всех файлов в этой папке | ||
- | - Если в папке находится еще одна или несколько папок, то сначала вычисляются значения выражений, определяемые ими, а после используются уже эти значения | ||
- | |||
- | |||
- | === Пример === | ||
- | |||
- | (Программа в момент запуска находится в дирректории root) | ||
- | {{:second.png?200|}} | ||
- | |||
- | file.txt: 1 | ||
- | file1.txt: 10 | ||
- | file2.txt: 2 2 | ||
- | file3.txt: 7 | ||
- | file4.txt: 1 2 3 | ||
- | file5.txt: 3 -1 | ||
- | |||
- | |||
- | === Решение: === | ||
- | |||
- | 226 | ||
- | |||
- | |||
- | Выражение в данном случае имеет вид: (((1+1))+((1+2+3+3+-1)*7*2*2)) | ||
- | |||