Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 9

Кортежи: Не удается неявно преобразовать тип "System.Tuple<double, double>" в "string"

02.06.2016, 14:22. Показов 3457. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите.Как устранить ошибку? Ошибка CS0029 Не удается неявно преобразовать тип "System.Tuple<double, double>" в "string".
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
using System;
 
namespace ConsoleApplication3
   
{
    class Program
    {
        static void Main(string[] args)
        {
            
            try
            {
                double a, b, c;
                Console.WriteLine("Введите a");
                a = Convert.ToDouble(Console.ReadLine());
                if (a ==0)
                { Console.WriteLine("это не квадратное уравнение");
                    Console.ReadKey();
                }
                else
                {
                    Console.WriteLine("Введите b");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("Введите c");
                    c = Convert.ToDouble(Console.ReadLine());
 
                    QuadraticEquation equation = new QuadraticEquation(a, b, c);
                    string result = equation.Compute();
 
                    Console.WriteLine(result);
                    Console.ReadKey();
                }
            }  
            catch (FormatException)
            {
                Console.WriteLine("неверный формат");
                Console.ReadKey();
            }
            
        }
        public class QuadraticEquation
        {
           
 
 
 
            public QuadraticEquation(double a, double b, double c)
            {
                _a = a;
                _b = b;
                _c = c;
            }
            private double _a;
            private double _b;
            private double _c;
            
            private double D
            {
                get { return _b * _b - 4 * _a * _c; }
            }
 
            private double x1
            {
                get { return (-_b + Math.Sqrt(D)) / 2 * _a; }
            }
 
            private double x2
            {
                get { return (-_b - Math.Sqrt(D)) / 2 * _a; }
            }
 
            public string Compute()
            {
                var res=new Tuple<double, double>(x1, x2);
 
                double x = -_b / 2 * _a;
                if (D == 0)
 
                    return ("x=" + x);
                if (D < 0)
                    return ("Корней нет");
                return res;
            }
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2016, 14:22
Ответы с готовыми решениями:

Ошибка: Не удается неявно преобразовать тип "System.Func<double, double>" в "double"
Помогите решить проблему using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

Не удается неявно преобразовать тип double в тип bool
static double func1 (double x) { double y = x + 1; return y; } static void...

Не удается неявно преобразовать тип double в тип int
class Program { static void Main(string args) { double k = 0; Random r = new...

5
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
02.06.2016, 14:34
petrooooo,
зачем кортеж, если Compute строку возвращает. И знаменатель в скобки.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private double x1
{
    get { return (-_b + Math.Sqrt(D)) / (2 * _a); }
}
 
private double x2
{
    get { return (-_b - Math.Sqrt(D)) / (2 * _a); }
}
 
public string Compute()
{
    if (D == 0)
        return ("x=" + x1);
    if (D < 0)
        return ("Корней нет");
    return "x1=" + x1 + " x2=" + x2;
}
0
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 9
02.06.2016, 14:45  [ТС]
а как сделать, чтобы был кортеж?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
02.06.2016, 15:07
petrooooo,
C#
1
2
3
4
5
6
public Tuple<double, double> Compute()
{
    if (D < 0)
        return null;
    return new Tuple<double, double>(x1, x2);
}
Но тогда строку для вывода нужно собирать в Main:
C#
1
2
3
4
5
6
7
8
QuadraticEquation equation = new QuadraticEquation(a, b, c);
Tuple<double, double> rez = equation.Compute();
string result = "Корней нет";
if (rez != null)
{
    result = "x1=" + rez.Item1 + " x2=" + rez.Item2;
}
Console.WriteLine(result);
0
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 9
02.06.2016, 15:21  [ТС]
по прежнему ошибка CS0029 Не удается неявно преобразовать тип "string" в "System.Tuple<double, double>".
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
89
90
91
92
using System;
 
namespace ConsoleApplication3
   
{
    class Program
    {
        static void Main(string[] args)
        {
            
            try
            {
                double a, b, c;
                Console.WriteLine("Введите a");
                a = Convert.ToDouble(Console.ReadLine());
                if (a == 0);//ошибка"возможно, ошибочный пустой оператор
                { Console.WriteLine("это не квадратное уравнение");
                    Console.ReadKey();
                  }//здесь требует } 
                else
                {
                    Console.WriteLine("Введите b");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("Введите c");
                    c = Convert.ToDouble(Console.ReadLine());
 
                    QuadraticEquation equation = new QuadraticEquation(a, b, c);
                    Tuple<double, double> rez = equation.Compute();
                    string result = "Корней нет";
                    if (rez != null)
                    {
                        result = "x1=" + rez.Item1 + " x2=" + rez.Item2;
                    }
                    Console.WriteLine(result);
                    
                    Console.ReadKey();
                }
            }  
            catch (FormatException)
            {
                Console.WriteLine("неверный формат");
                Console.ReadKey();
            }
            
        }
        public class QuadraticEquation
        {
          
 
           
 
 
            public QuadraticEquation(double a, double b, double c)
            {
                _a = a;
                _b = b;
                _c = c;
            }
            private double _a;
            private double _b;
            private double _c;
 
            private double D
            {
                get { return _b * _b - 4 * _a * _c; }
            }
 
            private double x1
            {
                get { return (-_b + Math.Sqrt(D)) / (2 * _a); }
            }
 
            private double x2
            {
                get { return (-_b - Math.Sqrt(D)) / (2 * _a); }
            }
 
            public Tuple<double, double> Compute()
            {
               
 
                double x = -_b / 2 * _a;
                if (D == 0)
 
                    return ("x=" + x);
                if (D < 0)
                    return (null);
                return new Tuple<double, double>(x1, x2);
            } 
        }
    }
}
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
02.06.2016, 16:14
Цитата Сообщение от petrooooo Посмотреть сообщение
Не удается неявно преобразовать тип "string" в "System.Tuple<double, double>"
Теперь сравните свой метод Compute и мой. Мой возвращает либо null, если корней нет, либо элемент Tuple, но ни разу не строку.
И зачем в методе что-то считать, если все расчеты выполняются в свойствах x1 и x2?
А если нужно учесть вариант с одним корнем с использованием кортежа, то в Main:
C#
1
2
3
4
5
6
7
8
9
10
11
QuadraticEquation equation = new QuadraticEquation(a, b, c);
Tuple<double, double> rez = equation.Compute();
string result = "Корней нет";
if (rez != null)
{
    if (rez.Item1 == rez.Item2)
        result = "x=" + rez.Item1;
    else
        result = "x1=" + rez.Item1 + " x2=" + rez.Item2;
}
Console.WriteLine(result);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2016, 16:14
Помогаю со студенческими работами здесь

Ошибка в коде: не удается неявно преобразовать тип 'double' в 'int'
Здравствуйте, подскажите, пожалуйста, в чем ошибка? Мне нужно, чтобы в выводе была формула: Пи * a * (b-c).

Математические операции в цикле: Не удается неявно преобразовать тип double в float
Подчеркивает всю формулу красным. У массива A и констант alpha и beta типы float. Пишет, что &quot;не удается неявно преобразовать тип...

Не удается неявно преобразовать тип "string" в "double"
double A = new double; double B = new double; double C = new double; double z = 0; ...

Не удается неявно преобразовать тип "string" в "double"
Не удается неявно преобразовать тип &quot;string&quot; в &quot;double&quot;. Из-за того что программа не видит последовательность выполнения, что...

Не удается неявно преобразовать тип string в System.Collection.Generic.Queue<int>
Такая во ошибка не удаеться неявно преобразовать тип string в System.Collection.Generic.Queue&lt;int&gt; public static void Counter(int...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru