Главная страница
Навигация по странице:

  • Вариант 9 Дан текстовый файл. Используя дек

  • Код программы

  • Результаты работы

  • дек. Вариант 9 Дан текстовый файл. Используя


    Скачать 28.98 Kb.
    НазваниеВариант 9 Дан текстовый файл. Используя
    Дата27.11.2022
    Размер28.98 Kb.
    Формат файлаdocx
    Имя файладек.docx
    ТипПрограмма
    #815859

    Цель работы


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

    Вариант 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

    Результат работы:



    Если посмотреть входной файл, то можем убедиться, что все работает верно и цифры расположены в том же порядке.



    Вывод

    Я изучил структуру данных дек и понял, как ее реализовать. Эта структура позволяет довольно просто реализовать добавление и удаление элементов, а также они могут записываться и считываться как с конца, так и сначала.


    написать администратору сайта