Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 22.05.2010
Сообщений: 5

Требуются комментарии к коду, TPG

23.05.2011, 20:18. Показов 1407. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
объясните, пожалуйста, как это работает и то, что здесь используется(препод может тыкнуть пальцем в любое и спросить, а теории я даже найти не могу, вроде вся она вообще на инглише)
в общем, я понял, что здесь определяется тип данных "операция над строкой"
process - кач-ве аргумента строка, возвращает строку, модифицированную в соотвествии с указанным действием
processAll - аналогично, только список действий
deleteAll - принимает 2 строки, удаляет из 2й все символы первой

сам код(добрые люди кинули):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import tpg
class  Operation:
    def __init__( self, op, **attrs ):
        self.op = op
        self.attrs = attrs
    def __str__(self):
        s = ''
        for k in (self.attrs).keys():
            s += ' ' + str(self.attrs[k])
        return self.op + s 
 
def printLst(Lst):
    print '[',
    for i in range(len(Lst)):
        if i < len(Lst) - 1:
            print Lst[i],', ',
        else:
            print Lst[i],
    print ']'
    
class OpTrans(tpg.Parser):
    r"""
    separator spaces: '\s+' ;
    token char: '.' ;
    
    START/s -> '\[' (Operation/p $ s = [p] $ (',' Operation/p $ s.append(p) $)* | $ s = [] $)'\]' ;
    Operation/p -> 'Add'/c char/ch $ p = Operation(c, symb = ch) $
                 | 'Replace'/c char/ch1 char/ch2 $ p = Operation(c, symb1=ch1, symb2=ch2) $
                 | 'Clear'/c   $ p = Operation(c) $
                 | 'Delete'/c char/ch $ p = Operation(c, sm = ch) $ ;
    """
    
opTrans = OpTrans()
operdations = '[Delete m]'
operations = '[Replace m a, Delete b, Add N]'
#operTr = []
operTr = opTrans(operations)
printLst(operTr)
 
def processAll(listOp,s):
    for o in listOp:
        if o.op == 'Add':
            s=o.attrs['symb']+s
        if o.op == 'Clear':
            s=""
        if o.op == 'Replace':
            s1=""
            for i in s:
                if i==o.attrs['symb1']:
                    s1+=o.attrs['symb2']
                else:
                    s1+=i
            s=s1
        if o.op == 'Delete':
            s2=""
            for i in s:
                if i!=o.attrs['sm']:
                    s2+=i
            s=s2
    return s
 
b='bmbrbm'
s2="N"
 
print processAll(operTr,b)
 
def f(s):
    for i in s:
        print i,' '
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2011, 20:18
Ответы с готовыми решениями:

Требуются комментарии к коду c++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; void add_one(int x){ int i=0; while (x!=0){ x=0; ...

требуются комментарии, пожалуйста
#wrap { width: 960px; margin: 0 auto; text-align: center; } body { background: url(../images/main-bg.jpg) repeat-x; background-color:...

Требуются пояснения по коду
Вот код: #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; volatile int n; DWORD WINAPI Add(LPVOID iNum) { ...

1
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
24.05.2011, 02:51
отступы в питоне являются аналогом фигурных скобок в C
поэтому стирание отступов равносильно стиранию фигурных скобок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2011, 02:51
Помогаю со студенческими работами здесь

Требуются пояснения по коду
Кто-нибудь напишите какие-нибудь пояснения, хоть некоторые. using System; using System.Collections.Generic; using System.Timers;...

Требуются пояснения по коду
Приветствую. Штурмую тут методичку, и некоторые моменты не ясны: class person { int age; ... public: … void...

Требуются пояснения к коду с datrie
здравствуйте, нашёл в инете пример: import string import datrie # pip install datrie trie = datrie.Trie(string.ascii_lowercase) ...

Комментарии к коду
Всем привет! Прошу помочь с написанием комментариев к прилагаемому коду. Что смог - написал. Есть некоторые моменты, которые не...

Комментарии к коду
Ребят, не могу разобраться с кодом) Что, где и за что отвечает? Если можно по каждой строчке) Пожалуйста) class Program { static...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru