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

Решение квадратного уравнения

05.11.2013, 20:13. Показов 4994. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет,только начал изучение C#,сдавал лабу преподавателю,он засчитал,но сказал на следующую пару усовершенствовать код,т.к он некорректен,подскажите пожалуйста...
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace my_lab2
{
    class Program
    {
        static string a, b, c;
        static double a1, b1, c1, d, x1, x2;
 
        static void Main(string[] args)
        {
            input();
            if (!double.TryParse(a, out a1) || !double.TryParse(b, out b1) || !double.TryParse(c, out c1)) //трайпарс это функция которая читает если число то записывает число ,а если буква то записывает о в а1.
                Console.WriteLine("Ошибка ввода");
            else
            {
                discrimenant();
                reshenie();
            }
            Console.Read();
        }
 
        private static void input()
        {
            Console.WriteLine("Уравнение типа axx+bx+c=0");
            Console.WriteLine();
            Console.WriteLine("Введите a!=0:");
            a = Console.ReadLine();
            Console.WriteLine("Введите b:");
            b = Console.ReadLine();
            Console.WriteLine("Введите c:");
            c = Console.ReadLine();
 
        }
        private static void discrimenant()
        {
            d = b1 * b1 - 4 * a1 * c1;
            Console.WriteLine("d = {0}", d);
        }
 
        private static void reshenie()
        {
            if (a1 == 0)
            {
                Console.WriteLine("Нельзя делить на 0");
            }
            if (d > 0)
            {
                x1 = ((-b1) + Math.Sqrt(d)) / (2 * a1);
                Console.WriteLine("x1 ={0} ", x1);
                x2 = ((-b1) - Math.Sqrt(d)) / (2 * a1);
                Console.WriteLine("x2 ={0} ", x2);
            }
            if (d == 0)
            {
                x1 = ((-b1) + Math.Sqrt(d)) / (2 * a1);
                Console.WriteLine("x1 ={0} ", x1);
            }
            if (d < 0)
            {
                Console.WriteLine("Дискрименант меньше 0");
            }
        }
    }
}
Добавлено через 50 минут
ап!!хелп!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2013, 20:13
Ответы с готовыми решениями:

Решение квадратного уравнения.
Дано квадратное уравнение в виде (то есть пользователь вводит такую строчку) +-aX^2+-bx+-c=h или +-aX^4+-bx^2+-c=h где h-произвольное...

Решение квадратного уравнения
Помогите!!! Очень нужна помощь!!! Нужно разработать класс Квадратное уравнение, т.е. Ax2+bx+c. Коэффициенты уравнения следует хранить...

Решение квадратного уравнения
Добрый день всем! В общем написал простенькую &quot;решалку&quot; квадратных уравнений на консоли. Вот код: using System; using...

12
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.11.2013, 20:18
Мой старый вариант:
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
using System;
 
namespace Quadrature
{
    internal class QuadraticEquation
    {
        public double A { get; private set; }
        public double B { get; private set; }
        public double C { get; private set; }
 
 
        public QuadraticEquation(double a, double b, double c)
        {
            A = a;
            B = b;
            C = c;
        }
 
 
        public Tuple<double, double> Solve()
        {
            double D = B * B - 4 * A * C;
            if (D < 0) return null;
            return new Tuple<double, double>((-B + Math.Sqrt(D)) / (2 * A), (-B - Math.Sqrt(D)) / (2 * A));
        }
    }
 
 
    internal class Program
    {
        private static void Main()
        {
            var e = new QuadraticEquation(1, 5, 6);
            Console.WriteLine(e.Solve());
            Console.ReadKey();
        }
    }
}
1
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
05.11.2013, 20:19
Psilon,

Не по теме:

+1, благодаря тебе вспомнил про Tuple).

0
0 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 4
05.11.2013, 21:22
Делал квадратное уравнение в VS надеюсь разберешься
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
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int a, b, c;
            double otv1, otv2, d;
            a = Convert.ToInt32(textBox3.Text);
            b = Convert.ToInt32(textBox1.Text);
            c = Convert.ToInt32(textBox2.Text);
            label.Text = "x1";
            label4.Text = "x2";
            if (a == 0 && b == 0 && c == 0) {label.Text = "Любое число" ;label4.Text = "Люблое число";} else
                    {
                        if (a == 0 && b == 0) { label.Text = "Нет решения"; label4.Text = "Нет решения"; } else
                            {
                                if (a == 0)
                                {
                                    otv1 = -(c) / b;
                                    label.Text = otv1.ToString();
                                    label4.Text = "Один корень";
                                } 
                                else
                                {
                                    d = b * b - 4 * a * c;
                                    otv1 = 0;
                                    otv2 = 0;
                                    if (d > 0) otv1 = -(b) + Math.Sqrt(d) / 2 * a;
                                    if (d > 0) otv2 = -(b) - Math.Sqrt(d) / 2 * a;
                                    if (d == 0) otv1 = -(b) / (2 * a);
                                    if (d == 0) otv2 = -(b) / (2 * a);
                                    label.Text = otv1.ToString();
                                    label4.Text = otv2.ToString();
                                    if (d < 0) label.Text = "Нет решения";
                                    if (d < 0) label4.Text = "Нет решения";
                                }
                            }
                }
          }
    }
}
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 17
05.11.2013, 22:00  [ТС]
Всем спасибо за ответы,но я не знаком с Tuple и мы пока еще не разбирали формы..
мне надо подкорректировать код,который я указал выше..а я не знаю что можно еще придумать
0
0 / 0 / 1
Регистрация: 05.11.2013
Сообщений: 4
05.11.2013, 22:08
Ну вот смотри в том коде что отправил я, учтено
1 а, б, ц =0 (корень любой)
2 а,б=0 (решения нет)
3 a=0 (корень один, считается по формуле -(ц)/б)
На сколько я понимаю у тебя этого нет, попробуй реализовать.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.11.2013, 23:08
waltner, а что с ним знакомится? Обычная структура, которая имеет два поля указанного типа, в данном случае два поля double. Можешь создать свою структуру
C#
1
2
3
4
5
public struct MyTuple
{
   public double A;
   public double B;
}
разницы никакой.
Прям как в анекдоте, сидят две первоклассницы, одна другой
-сколько будет 7+8?
вторая
-не знаю, мы до 15 еще не учили...
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 4
23.03.2014, 15:39
Цитата Сообщение от el Taco Посмотреть сообщение
Ну вот смотри в том коде что отправил я, учтено
1 а, б, ц =0 (корень любой)
2 а,б=0 (решения нет)
3 a=0 (корень один, считается по формуле -(ц)/б)
На сколько я понимаю у тебя этого нет, попробуй реализовать.
a не может быть = 0! На 0 делить нельзя. Если вы забыли как корни находятся, то напоминаю:
Цитата Сообщение от el Taco Посмотреть сообщение
if (d > 0) otv1 = -(b) + Math.Sqrt(d) / 2 * a; if (d > 0) otv2 = -(b) - Math.Sqrt(d) / 2 * a;
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.03.2014, 15:59
sossisska, по этой логике уравнение x + 1 = 0 не имеет решения, т.к. это уравнение ax2+bx+c = 0, где a = 0, b = 1, c = 1, я правильно понял?
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 4
23.03.2014, 20:53
x + 1 = 0 - это не квадратное уравнение)))))

Добавлено через 6 минут
Цитата Сообщение от Psilon Посмотреть сообщение
sossisska, по этой логике уравнение x + 1 = 0 не имеет решения, т.к. это уравнение ax2+bx+c = 0, где a = 0, b = 1, c = 1, я правильно понял?
Вот определение:
Квадра́тное уравне́ние — алгебраическое уравнение общего вида
ax^2 + bx + c = 0,
где x — свободная переменная, a, b, c — коэффициенты, причём a НЕ РАВНО 0.
Википедия вам в помощь))) Учите матчасть.
0
162 / 154 / 73
Регистрация: 03.03.2014
Сообщений: 368
23.03.2014, 21:10
Кстати сказать, если дискриминант меньше нуля это не означает, что нет решения. Это означает, что нет решения среди действительных значений. Интересно бы было взглянуть на решение с комплексными числами, т.е. с мнимой частью, или как это называется.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.03.2014, 21:30
Not_Jon_Skeet, ничего особо сложного...

Добавлено через 37 секунд
sossisska, школьная математика не вершина человеческого гения...

А википедия никогда не была серьезным источником для пруфов.
0
Заблокирован
23.03.2014, 22:39
waltner, для начала:
Code
1
2
3
4
5
6
7
8
9
10
11
12
Уравнение типа axx+bx+c=0
 
Введите a!=0:
0
Введите b:
2
Введите c:
3
d = 4
Нельзя делить на 0
x1 =NaN
x2 =-бесконечность
если пользователь все таки ввел а = 0, то не следует выводить остальные записи. Используете else.
(метод reshenie())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2014, 22:39
Помогаю со студенческими работами здесь

Решение квадратного уравнения
Всем добрый вечер,нужно мне решить задачу с квадратным уравнением.Думал,что тут сложного?Дискриминант вычислил и все дела,считай. Но вот...

Решение квадратного уравнения
Помогите пожалуйста, необходимо создать метод, который решает квадратное уравнение, коэффициенты a, b, c задаются во входных параметрах.

Решение квадратного уравнения
Начал изучать c#.Попытался сделать простую программу для вычисления квадратных корней. Всё бы отлично, если бы не один момент. Не переводит...

Решение квадратного уравнения
Подскажите, что здесь не так, я ввожу данные, но после ввода консоль закрывается using System; using System.Collections.Generic; ...

Решение квадратного уравнения ax2+bx+c=0
Решение квадратного уравнения ax2+bx+c=0. Ввести a,b,c и найти корни квадратного уравнения. Если дискриминант меньше нуля, вывести...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь 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. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru