Множества: анализатор формул (С Delphi на C#)
Формулировка задачи:
В Delphi имеется возможность создания множества типа char и проверить входят ли элементы множества в строку:
Как создать такое в C#?
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);
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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д