51432

Работа со строками

Лабораторная работа

Информатика, кибернетика и программирование

Дана строка символов, представляющих собой арифметическое выражение. Преобразовать это выражение так, чтобы все плюсы заменить на минусы, все знаки деления на знаки умножения.

Русский

2014-02-11

36 KB

1 чел.

Московский государственный технический университет им. Н.Э. Баумана

Калужский филиал

Отчет по лабораторной работе №6

«Работа со строками»

Вариант 27

Выполнил: студентка группы ЭВМ-81

Щукина А.К.

Проверил: Смирнов С.Г.

Калуга, 2013

Условие

Дана строка символов, представляющих собой арифметическое выражение. Преобразовать это выражение так, чтобы все плюсы заменить на минусы, все знаки деления на знаки умножения.

Листинг программы

domains

s = string

predicates

change(s,s) % ЗАМЕНА СИМВОЛА НА ДРУГИЕ СИМВОЛЫ

reverse(s) % ВЫВОД СТРОКИ СИМВОЛОВ

clauses

 reverse("").

reverse(S):- frontchar(S,C,TS), reverse(TS), write(C).

change("",S1):- reverse(S1), nl.

change(S,S1):- frontstr(1,S,C,TS), C="+", concat("-",S1,CS), change(TS,CS);

      frontstr(1,S,C,TS), C="/", concat("*",S1,CS), change(TS,CS).

change(S,S1):- frontstr(1,S,C,TS), concat(C,S1,CS), change(TS,CS).

goal

Str = "X = (Y+1)/(Z-(2/Y))+7",

write("MY STRING:"), nl,

write(Str), nl,

Write("RESULT:"), nl,

change(Str, ""), nl.

Скриншот

Рис. 1