0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 56
1

Не все ветви кода возвращают значения

03.12.2016, 23:11. Показов 2523. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ребят помогите, после завтра сдавать лабу, вот задание
Постройте таблицу значений функции y=f(x) для х[a, b] с шагом h.
Замечание
При решении задачи разработайте две версии метода f так, чтобы их сигнатуры соответствовали следующим описаниям:
static double f (double x)
static void f (double x, out double y)
Название: Безымянный.png
Просмотров: 79

Размер: 2.3 Кб
вот код написал, пишет что не все ветви кода возвращают значения,что за фигня, может код не так написал
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
class Program
{
static void Main(string[] args)
{
int a = 0;
int b = 0;
int h = 0;
double y = 0;
Console.WriteLine("Введите нижний диапазон: ");
Read(ref a);
Console.WriteLine("Введите верхний диапазон: ");
Read(ref b);
Console.WriteLine("Введите шаг: ");
Read(ref h);
Console.WriteLine();
 
if ((b > a) && (h < (b - a)) && (h > 0))
{
Console.WriteLine(" 1 способ | 2 способ\n{0,11}", "|");
 
for (double x = a; x <= b; x += h)
{
f(x);
Console.Write("{0,9} |", f(x));
f(x, out y);
Console.WriteLine(" {0}", y);
}
}
else
{
Console.WriteLine("Проверьте значения");
}
Console.ReadKey();
}
 
static void Read(ref int n)
{
bool f = false;
while (!f)
{
f = int.TryParse(Console.ReadLine(), out n);
if (f == false)
{
Console.WriteLine("Неверные данные. Попробуйте снова!");
}
}
}
 
static double f (double x)
{
if (x < 1)
{
Math.Pow(x * x - 1, 2);
 
 
}
else
if (x > 1)
 
{
Math.Pow(1/ 1+x , 2);
 
}
else
if (x == 1)
return 0;
}
 
static void f(double x, out double y)
{
y = 0;
if (x < 1)
{
y = Math.Pow(x * x - 1, 2);
}
else
if ( x > 1)
{
y = Math.Pow(1 / 1 + x, 2);
}
else
if (x==1)
{
y=0;
}
}
}
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2016, 23:11
Ответы с готовыми решениями:

Свойство, не все ветви кода возвращают значения
public class Point { int x; int y; public int Abcissa { ...

Возвращение значения в result: не все ветви кода возвращают значение
Доброго времени суток, есть такой код: private string class1 (string var) { ...

Ругается, что не все ветви кода возвращают значения, как поправить?
public static int BinarySearch(int array, int value) { int low = 0; ...

Исправить ошибку "не все ветви кода возвращают значения"
Помогите исправить ошибку &quot;не все ветви кода возвращают значения&quot; static void Main(string...

9
Эксперт .NET
5870 / 4747 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
03.12.2016, 23:27 2
alex2456,
нужно возвращать результаты расчета:
C#
1
return Math.Pow(x * x - 1, 2);
и во втором условии также.
А последнее условие не нужно, достаточно
C#
1
2
else
    return 0;
1
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 56
03.12.2016, 23:28  [ТС] 3
все равно ошибка!
0
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 895
03.12.2016, 23:29 4
при беглом взгляде ошибка в методе static double f (double x)
думаю, что имелось ввиду следующее:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static double f (double x)
{
double y;
if (x < 1)
{
y =Math.Pow(x * x - 1, 2);
 
 
}
else
if (x > 1)
 
{
y =Math.Pow(1/ 1+x , 2);
 
}
else
if (x == 1)
y = 0;
return y;
}
1
46 / 38 / 26
Регистрация: 11.08.2016
Сообщений: 139
03.12.2016, 23:29 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static double f (double x)
{
if (x < 1)
{
Math.Pow(x * x - 1, 2);
 
 
}
else
if (x > 1)
 
{
Math.Pow(1/ 1+x , 2);
 
}
else
if (x == 1)
return 0;
}
функция возвращает значение только при последнем условии, в остальных случаях - ничего не возвращает. Поэтому и ошибка
upd: пока писал ответ, уже выше ответили лучше
1
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 56
03.12.2016, 23:32  [ТС] 6
спасибо за ответ, написал вот так, ошибка прошла ,правильно?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static double f(double x)
        {
            double y = 0;
            if (x < 1)
            {
                y = Math.Pow(x * x - 1, 2);
 
 
            }
            else
            if (x > 1)
 
            {
                y = Math.Pow(1 / 1 + x, 2);
 
            }
            else
            if (x == 1)
                y = 0;
            return y;
        }
0
Эксперт .NET
5870 / 4747 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
03.12.2016, 23:36 7
Лучший ответ Сообщение было отмечено alex2456 как решение

Решение

alex2456,
Ошибка была во втором выражении. Нужно
C#
1
2
3
4
5
6
7
8
9
static double f(double x)
{
    if (x < 1)
        return Math.Pow(x * x - 1, 2);
    else if (x > 1)
        return 1 / Math.Pow(1 + x, 2);
    else
        return 0;
}
1
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 56
03.12.2016, 23:38  [ТС] 8
спасибо за ответ, понял всё
0
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 895
04.12.2016, 00:09 9
нет, так как вы предлагаете работать не будет. почему - не знаю, наверно, разработчики решили перестраховаться, и даже в случае, если все ветви условия возвращают значения, код компилироваться не будет. нужно возвращать значение именно в конце функции. что, вообщем-то логично: как компилятор поймет все ты условия предусмотрел или нет. ввобщем, такой код в плюсах рабочий, в шарпе - нет.
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
04.12.2016, 00:29 10
minore, вот это компилируется:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
 
class Program
{
    static int Main(string[] args)
    {
        double x = new Random().NextDouble();
        if (x > 0.5)
        {
            Console.WriteLine(x);
            return 5546;
        }
        else
        {
            Console.WriteLine("A");
            return -1;
        }
    }
}
0
04.12.2016, 00:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2016, 00:29
Помогаю со студенческими работами здесь

Не все ветви кода возвращают значение
Подскажите где косяк. Нужен метод который берет каждый элемент массива и ищет повторяется ли он...

Не все ветви кода возвращают значение
В методе Answer не все ветви кода возвращают значение, хотя return в конце есть ...

Не все ветви кода возвращают значение
&quot;....F(int)&quot;: не все ветви кода возвращают значение В чём ошибка и как исправить? Заранее...

Не все ветви кода возвращают значение
Написал метод прогонки.Вот он public static double MetodProgonki(int N,double a,double b,double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru