Множества: анализатор формул (С Delphi на C#)

Узнай цену своей работы

Формулировка задачи:

В Delphi имеется возможность создания множества типа char и проверить входят ли элементы множества в строку:
procedure TParser.Preparation(var s: String; variables: TVar);
const
  operators: set of AnsiChar = ['+','-','*', '/', '^'];
var
  i: Integer;
  figures: set of AnsiChar;
begin
figures := ['0', '1','2','3','4','5','6','7','8','9', DecimalSeparator] + variables;
i := 1;
repeat
  if CharInSet(s[i], figures) then
    begin
      insert('#', s, i);
      i := i + 2;
      while CharInSet(s[i], figures) do
        i := i + 1;
      insert('#', s, i);
      i := i + 1;
    end;
  i := i + 1;
until
  i > Length(s);
Как создать такое в C#?

P.S. Нужно переписать анализатор формул на C

#.

Решение задачи: «Множества: анализатор формул (С Delphi на C#)»

textual
Листинг программы
public string Preparation(string str, char variables)
        {
            var operators = new HashSet<char> { '+', '-', '*', '/', '^' };
            var digits = new HashSet<char> { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
            digits.Add(variables);
            int i = 0;
            while (i < str.Length) 
            {
                if (digits.Contains(str[i]))
                {
                    str.Insert(i, "#");
                    i += 2;
                    while (digits.Contains(str[i]))
                        i++;
                    str.Insert(i, "#");
                    i++;
                }
                i++;
            }
            return str;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5