Вопрос задан 10.06.2023 в 09:50. Предмет Информатика. Спрашивает Вуйтикова Алёна.

Написать на Python Компьютерный вирус атаковал файловую систему суперкомпьютера и повредил

контроль за правами доступа к файлам. Для каждого файла известен набор операций, которые могут быть применены к нему: писать (W), читать (R), выполнить (X). Первая строка содержит число n – количество файлов, содержащихся в файловой системе. Следующие n строк содержат имена файлов и разрешенные операции с ними, разделенные пробелами. Следующая строка содержит целое число m – количество операций с файлами. В следующих m строках записаны операции, выполняемые над файлами. К одному файлу можно обращаться многократно. Для каждого запроса программа должна напечатать OK, если запрошенная операция с файлом возможна, или Access denied, если операцию выполнить невозможно. Вхідні дані: 4 helloworld.py R X pinglog W R scripts R goodluck X W R 5 read scripts write helloworld.py execute scripts read pinglog write pinglog Вихідні дані: OK Access denied Access denied OK OK
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Красіцький Юрій.

n = int(input()) # количество файлов

files = {} # словарь для хранения разрешенных операций с файлами

# заполнение словаря files

for i in range(n):

name, *ops = input().split()

files[name] = set(ops)

m = int(input()) # количество операций с файлами

# обработка операций с файлами

for i in range(m):

op, name = input().split()

if op == 'read' and 'R' in files[name]:

print('OK')

elif op == 'write' and 'W' in files[name]:

print('OK')

elif op == 'execute' and 'X' in files[name]:

print('OK')

else:

print('Access denied')

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример решения вашей задачи на языке Python:

python
def check_file_permissions(permissions, operations): file_permissions = {} for permission in permissions: file, perms = permission.split() file_permissions[file] = set(perms) results = [] for operation in operations: op, file = operation.split() if file in file_permissions: if op in file_permissions[file]: results.append("OK") else: results.append("Access denied") else: results.append("Access denied") return results # Считываем входные данные n = int(input()) permissions = [] for _ in range(n): permissions.append(input()) m = int(input()) operations = [] for _ in range(m): operations.append(input()) # Проверяем разрешения и выводим результаты results = check_file_permissions(permissions, operations) for result in results: print(result)

Программа сначала считывает количество файлов n и их разрешения из входных данных. Затем считывается количество операций m и сами операции. Функция check_file_permissions принимает разрешения и операции в качестве аргументов и проверяет, возможно ли выполнить каждую операцию с файлом. Результаты проверки сохраняются в списке results. Наконец, результаты выводятся на экран.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос