Функция при вызове возвращает одно и то же значение - C#
Формулировка задачи:
Здравствуйте, столкнулся со странным багом: При вызове одной и той же функции несколько раз, которая случайно генерирует математическое выражение на си и возвращает строку с данным выражением, она возвращает одну и ту же строку:
Теперь, если ее вызвать из другой функции несколько раз, она вернет одну и ту же строку. Хотя если поставить брекпоинт на первую строку
то все проходит нормально. В чем дело?
private string GetExampleEasy() { string Rezult = ""; Random A = new Random(); int N; //выбираем один из трех шаблонов switch (A.Next(1, 4)) { //x1*pow(x,x2)+k - где x1,x2,k = {-5;5}; x1,x2 != 0 и != -1 case 1: //вычисляем x1 //x1 не должен равнятся 0 и -1 do { N = A.Next(-5, 6); } while ((N == 0) || (N == -1)); if (N != 1) { Rezult += N.ToString(); Rezult += "*"; } //вычисляем x2 //степень не должна равнятся 0 do { N = A.Next(-5, 6); } while (N == 0); if (N != 1) { Rezult += "pow(x,"; Rezult += N.ToString(); Rezult += ")"; } else { Rezult += "x"; } N = A.Next(-5, 6); if (N > 0) { Rezult += "+" + N.ToString(); } else if (N < 0) { Rezult += N.ToString(); } break; //sqrt(x1*pow(x,x2))+k case 2: Rezult += "sqrt("; //вычисляем x1 //x1 не должен равнятся 0; x1 = {-3,3} do { N = A.Next(-3, 4); } while ((N == 0) || (N == -1)); if (N != 1) { Rezult += N.ToString(); Rezult += "*"; } //вычисляем x2 //степень не должна равнятся 0 do { N = A.Next(-5, 6); } while (N == 0); if (N != 1) { Rezult += "pow(x,"; Rezult += N.ToString(); Rezult += "))"; } else { Rezult += "x)"; } N = A.Next(-5, 6); if (N > 0) { Rezult += "+" + N.ToString(); } else if (N < 0) { Rezult += N.ToString(); } break; //sqrt(x1*pow(x,x2)+k) case 3: Rezult += "sqrt("; //вычисляем x1 //x1 не должен равнятся 0; x1 = {-3,3} do { N = A.Next(-3, 4); } while ((N == 0) || (N == -1)); int K = N; if (N != 1) { Rezult += N.ToString(); Rezult += "*"; } //вычисляем x2 //степень не должна равнятся 0 do { N = A.Next(-5, 6); } while (N == 0); if (N != 1) { Rezult += "pow(x,"; Rezult += N.ToString(); Rezult += ")"; } else { Rezult += "x"; } do { N = A.Next(-3, 4); } while (K == N); if (N > 0) { Rezult += "+" + N.ToString(); } else if (N < 0) { Rezult += N.ToString(); } Rezult += ")"; break; } return Rezult; }
string Rezult = "";
Решение задачи: «Функция при вызове возвращает одно и то же значение»
textual
Листинг программы
static
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д