Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2011, 15:27   #1
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию С# Исправить ошибку

Код:
class Program

{

private static double GetTailorsRow(double х, int e)

{double result = 0;

for (int n = 0; n <= e; n++)

{

result += GetTailorsElement(х, n);

 }

return result;

 }

private static double GetTailorsElement(double х, int N)

{

if (Math.Abs(х) >= 1 || N < 0)

{

return 0;

 }

if (N == 0)

{

return х;

}

double a = 1; // числитель

double b = 1; // знаменатель

for (int n = 1; n <= N; n++)

{

a *= 2 * n - 1;

b *= 2 * n;

}

a *= Math.Pow(х, (2 * N + 1));

b *= 2 * N + 1;

return a / b;

}

static void Main(string[] args)

{

string buf;

while (true)

{ Console.WriteLine(" 1 - мишень ,2 - график, 3 - Ряд Тейлора, 4 - Выход.");

buf = Console.ReadLine();

switch (buf)

{

case "1":

{

Double x, y, r;//x=y=R=0

Console.WriteLine("Введите R = ");

r = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Введите X и y ");

x = Convert.ToDouble(Console.ReadLine());

y = Convert.ToDouble(Console.ReadLine());

if (x >= 0 && y >= 0 && ((x - r) * (x - r) + y * y) <= r * r)//1-я Четверть

{

Console.WriteLine("ПОПАЛ!!!");

return;

}

{

if (x <= 0 && y <= 0 && x >= -r && Math.Pow(x + r, 2) + Math.Pow(y + r, 2) >=r*r)//3-я Четверть

{

Console.WriteLine("ПОПАЛ!!!");

return;

}

}

Console.WriteLine("мимо");

Console.WriteLine(" повторить - пункт_1 ");

break;

}

case "2":

{

Console.WriteLine("Введите R=");

int R = Convert.ToInt32(Console.ReadLine());

Double Y = 0;

Console.WriteLine("_____________________");

Console.WriteLine("|    x    |    Y    |");

Console.WriteLine("|_________|_________|");

for (int X = -(R + 5); X <= 6; X += (int)Math.Ceiling((double)(R + 11) / 20))

{

if (X < (-5 - R * 2)) Y = double.NaN;

else if (X < -5)

{

 Y = R - Math.Sqrt(Math.Pow(R, 2) - Math.Pow(X + 5, 2));



                          }

else if (X < -4)//2

 {

Y = R;

                                }

else if (X < 0)//3

{

Y = -X * R / 4;

                                }



else if (X < Math.PI)//4

{

Y = Math.Sin(X);

                          }

else Y = X - Math.PI;

Console.WriteLine("|{0,7:f}|{1,7:f}|", X, Y);

Console.WriteLine("|_________|_________|");

break;

                            }

                        }

case "3":

                        {

double Xstart = 0.1; // X начальное

double Xend = 0.8; // X конечное

double dx = 0.1;  // шаг

int E = 10;

Console.WriteLine(" BBедите Xn и Xk ");

Xstart = double.Parse(Console.ReadLine());

Xend = Double.Parse(Console.ReadLine());

Console.WriteLine("_____________________________");

Console.WriteLine("|    x    |    F    |    E  |");

Console.WriteLine("|_________|_________|_______|");

for (double х = Xstart; х <= Xend; х += dx)

                            {

double row = GetTailorsRow(х, E);

Console.WriteLine("| {0:0.00000} | {1:0.00000} |   {2}  |", х, row, E);

Console.WriteLine("|_________|_________|_______|");

                            }

Console.ReadLine();

}

break;

case "4":

return;

default: Console.WriteLine(" Введите нужную клавишу! ");

break;
в case "2": выдает ошибку:
Цитата:
Ошибка 1 Управление не может передаваться вниз от одной метки case ("case "2":") к другой C:\Users\Костя\AppData\Local\Tempor ary Projects\ConsoleApplication1\Progra m.cs 82 21 ConsoleApplication1
и тут тоже
Код:
for (int X = -(R + 5); X <= 6; X += (int)Math.Ceiling((double)(R + 11) / 20))
Цитата:
Предупреждение 2 Обнаружен недостижимый код C:\Users\Костя\AppData\Local\Tempor ary Projects\ConsoleApplication1\Progra m.cs 91 60 ConsoleApplication1
помогите пожалуйста исправить.
PROkaZZZniK вне форума Ответить с цитированием
Старый 20.11.2011, 19:41   #2
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию

Кто нибудь может подсказать что не так?
PROkaZZZniK вне форума Ответить с цитированием
Старый 20.11.2011, 20:29   #3
Necare
Форумчанин
 
Аватар для Necare
 
Регистрация: 22.10.2010
Сообщений: 145
По умолчанию

Код:
  case "2":
                        {
                            Console.WriteLine("Введите R=");
                            int R = Convert.ToInt32(Console.ReadLine());
                            Double Y = 0;
                            Console.WriteLine("_____________________");
                            Console.WriteLine("|    x    |    Y    |");
                            Console.WriteLine("|_________|_________|");

                            for (int X = -(R + 5); X <= 6; X =X+ (int)Math.Ceiling((double)(R + 11) / 20))
                            {

                                if (X < (-5 - R * 2)) Y = double.NaN;

                                else if (X < -5)
                                {

                                    Y = R - Math.Sqrt(Math.Pow(R, 2) - Math.Pow(X + 5, 2));



                                }

                                else if (X < -4)//2
                                {

                                    Y = R;

                                }

                                else if (X < 0)//3
                                {

                                    Y = -X * R / 4;

                                }



                                else if (X < Math.PI)//4
                                {

                                    Y = Math.Sin(X);

                                }

                                else Y = X - Math.PI;

                                Console.WriteLine("|{0,7:f}|{1,7:f}|", X, Y);

                                Console.WriteLine("|_________|_________|");

                               

                            }
                            break;
                        }
ты break не там поставил, его надо было ставить на одну скобку нижу.
До последней точки с запятой в коде...
Necare вне форума Ответить с цитированием
Старый 20.11.2011, 22:49   #4
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Очевидно у вас в case 2 не хватает закрывающихся фигурных скобок у предложений с if. То есть вы записываете предложение if. открываете фигурную скобку для предлоежинй блока кода, но закрывающейся фигурной скобки у вас я не обнаружил.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибку в коде Gared Помощь студентам 1 20.05.2011 20:48
подпрограммы, исправить ошибку tymac9n Общие вопросы C/C++ 0 19.05.2011 19:42
Исправить ошибку Delphi Kati Помощь студентам 3 13.10.2010 19:27
Исправить ошибку LLIypLLIyH Помощь студентам 5 16.06.2008 16:50