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

Консольное приложение для решения квадратных уравнений, исправить код

13.06.2012, 23:52. Показов 5910. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здрасте.
Только начал изучать 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a,b,c,ch;
            double x1, x2, d;
            Console.WriteLine("Решение квадратных уравнений v. 1.0");
            ch = 4;
            Console.WriteLine("Введите коэффициент а:");
            a = Console.Read();
            Console.WriteLine("Введите коэффициент в:");
            b = Console.Read();
            Console.WriteLine("Введите коэффициент с:");
            c = Console.Read();
            d = (b*b)- (ch * a * c);
            Console.WriteLine("Дескрименант(D)= "+d);
            Console.Read();
            if (d < 0)
            {
                Console.WriteLine("Дескриминант меньше 0");
            }
            else
            {
                    x1 = ((-1 * b - Math.Sqrt(d)) / 2 * a);
                    x2 = ((-1 * b - Math.Sqrt(d)) / 2 * a);
                    if (x1 == x2)
                    {
                        Console.WriteLine("Ответ: Х=" + x1);
                        Console.Read();
                    }
                    else
                    {
                        Console.WriteLine("Ответ: Х1= " + x1 + ", Х2= " + x2);
                        Console.Read();
                    }
            }
            Console.WriteLine("Нажмите <Enter> для выхода!");
            Console.Read();
        }
    }
}
Но значения эта программа берет какие-то непонятные.
Заведомо правильное решение достигается при: а=1, в=4, с=4 (Ответ: -2)

Помогите отыскать проблему.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2012, 23:52
Ответы с готовыми решениями:

Приложение для решения квадратных уравнений
Здравствуйте, проблема такая, нужно написать форму для решения квадратного уравнения. На форме 3...

Программа для решения квадратных уравнений
Изучаю VB не давно, решил составить прогу для решение кв. уравнений помогите что я не так делаю? ...

Программа для решения квадратных уравнений
Здравствуйте! Я написал программу, решающую квадратные уравнения. Все работает. Только есть одна...

Программа для решения квадратных уравнений
В общем надо написать прогу для расчета корней квадратного уравнения. Вот что у меня получилось: ...

4
98 / 98 / 46
Регистрация: 21.03.2012
Сообщений: 378
14.06.2012, 00:18 2
x1 = ((-1 * b - Math.Sqrt(d)) / 2 * a);
x2 = ((-1 * b - Math.Sqrt(d)) / 2 * a); // тут плюс
0
1 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 23
14.06.2012, 00:27  [ТС] 3
не суть важно так как эта программа присваивает неправилиные значения переменным а,в и с((
0
98 / 98 / 46
Регистрация: 21.03.2012
Сообщений: 378
14.06.2012, 00:33 4
У вас много ошибок, при получении данных из консоли они имеют тип string, ваши переменные int, собственно следует сделать конвертацию и так как вы указывайте какую переменную вводите то надо заменить Read() на ReadLine() (- перенос курсора на новую строку, как то так)
a = Convert.ToInt16(Console.ReadLine());
b = Convert.ToInt16(Console.ReadLine());
и тд, так же в конце лучше использовать Console.ReadKey(); для задержки консоли (ну чтобы сразу не закрывалась)
1
12 / 12 / 1
Регистрация: 22.03.2012
Сообщений: 29
14.06.2012, 00:37 5
Ваша проблема:
Возврат управления методом Read блокируется до ввода входных символов с клавиатуры; метод возвращает управление после нажатия пользователем клавиши Enter. В ответ на нажатие клавиши ВВОД во входные данные добавляется зависящая от платформы последовательность символов, идентифицирующая конец строки (например, в Windows добавляется последовательность символов "возврат каретки"-"перевод строки"). Последующие вызовы метода Read извлекают пользовательский ввод по одному символу за раз. После извлечения последнего символа метод Read снова блокирует возврат управления и цикл повторяется.



Следовательно - вместо a = Console.Read(); используйте a = Convert.ToInt16(Console.ReadLine());

Добавлено через 54 секунды
опоздал
1
14.06.2012, 00:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2012, 00:37
Помогаю со студенческими работами здесь

Исправить код метод Ньютона для решения систем нелинейных уравнений под нужное условие
Данный код для решения системы ax+tg(xy)=0; (y^2-b^2)+lnx=0 Перепишите его,пожалуйста для...

Написать программу для решения квадратных уравнений
Написать программу, которая реализует решение квадратного уравнения y=ax2+bx+c. При условии, если...

Цикл(Доработать прогу для решения квадратных уравнений)
Написал прогу для решения квадратных уравнений,но как известно она вычисляет только раз и потом уже...

Создание програмы для решения квадратных и кубических уравнений
Здравствуйте Уважаемые форумчане, с недавнего времени я задался целью сделать программу для решения...


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

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

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