дек. Вариант 9 Дан текстовый файл. Используя
Скачать 28.98 Kb.
|
Цель работыИспользуя технологию модульного программирования разработать программу обработки данных, содержащихся в заранее подготовленном файле, в соответствии с индивидуальным заданием. Применить динамическую структуру указанного в задании вида: стек, очередь или дек. Программа должна включать модуль, содержащий набор всех необходимых средств (типов, подпрограмм и т.д.) для решения поставленной задачи. Вариант 9 Дан текстовый файл. Используя дек, переписать содержимое его строк в новый текстовый файл, перенося при этом в конец каждой строки все входящие в нее цифры, сохраняя исходный порядок следования среди цифр и среди остальных символов строки. Выполнение Реализация дека на языке программирования python. class Deque: def __init__(self): self.items = [] def isEmpty(self): # проверка на пустоту return self.items == [] def addFront(self, item): # добавить в начало self.items.append(item) def addRear(self, item): # добавить в конец self.items.insert(0, item) def removeFront(self): # удалить из начала return self.items.pop() def removeRear(self): # удалить из конца return self.items.pop(0) Код программы file = open("output.txt", "w") d = Deque() s = "" with open('input.txt') as f: # считываем наш файл for line in f: b = line.strip() # считываем каждую строку s = ' '.join(b.split()) # убираем лишние пробелы k = 0 i = 0 while i < len(s) - k: if s[i] in '0123456789': # если встретили цифру d.addFront(s[i]) # записываем в начало дека s = s.replace(s[i], '', 1) # удаляем из нашей строки k += 1 i -= 1 i += 1 file.write(s) # после всех действий записываем сначала строку while not d.isEmpty(): file.write(d.removeRear()) # пока дек не пуст считваем с конца file.write("\n") # ставим символ enter Результаты работы Входные данные (строка, где в начале идут символы, а потом цифры) в файле output.txt Результат работы: Если посмотреть входной файл, то можем убедиться, что все работает верно и цифры расположены в том же порядке. Вывод Я изучил структуру данных дек и понял, как ее реализовать. Эта структура позволяет довольно просто реализовать добавление и удаление элементов, а также они могут записываться и считываться как с конца, так и сначала. |