2015-01-17 4 views
-3

У меня есть жесткая программа на C, для которой я не понимаю требований. Вопросительный говорится следующее:C пользовательское правило перезаписи


Напишите программу, которая читает слово, число к и несколько строк, каждой из которых с помощью правила переписывания: заглавная буква, = и строка. Переписывание слова заменяет каждую букву, которая имеет правило с заданной строкой; другие символы не меняются. Распечатайте строку, полученную путем перезаписи начального слова k раз.

Пример:

B+AxB 
2 
A=AB 
B=A 

печатает

AB+ABAxAB 

Спасибо большое, я бы очень признателен за помощь, так как я даже не понимаю, это требование. Надеюсь, кто-то может указать мне в правильном направлении.

+4

Это очень интересная программа , что ты сделал до сих пор? сообщение это здесь пожалуйста. –

+0

Я не понимаю, как он получил этот выход. Не могли бы вы объяснить мне это? –

+4

Число во второй строке указывает, сколько раз вы применяете правила (A = AB, B = A), в этом случае B + AxB при первой замене расширяется до A + ABxA, а затем во второй замене AB + ABAxAB – DGomez

ответ

4

Число во второй строке говорит вам, сколько раз вы применять правила A=AB и B=A в этом случае B+AxB при первой замене расширяются до A+ABxA, а затем во второй замене AB+ABAxAB

2

Поскольку файл имеет это содержание

B+AxB 
2 
A=AB 
B=A 

Я полагаю, что 2 означает количество раз, чтобы применить правила, так что здесь мы идем, первым мы имеем

B+AxB 

затем A должен могут быть заменены на AB, поэтому

B+(A->AB)xB -> B+ABxB 
(B->A)+ABx(B->A) -> A+ABxA 

th во второй раз

(A->AB)+(A->AB)Bx(A->AB) -> AB+ABBxAB 
AB+AB(B->A)xA -> AB+ABAxAB 

Обратите внимание, что замена должна производиться только в исходном месте.

Смежные вопросы