Статистика
Всего в нашей базе более 4 327 660 вопросов и 6 445 973 ответов!

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

10-11 класс

Timurka302 26 авг. 2013 г., 15:09:39 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
KCK28
26 авг. 2013 г., 16:56:15 (10 лет назад)

Как-то так
procedure SqRoot(a,b,c: real; var x1,x2: real; var ok: boolean); { a,b,c – коэффициенты уравнения x1,x2 – корни уравнения ok = True – решение есть ok = False – решения нет } var d: real; // дискриминант begin d: = Sqr(b) -4*a*c; if d < 0 then ok: = False // уравнение не имеет решения else begin ok: = True; x1: = (-b + Sqrt(d)) / (2*a); x2: = (b + Sqrt(d)) / (2*a); end; end;

+ 0 -
Tanyagribaleva
26 авг. 2013 г., 19:47:11 (10 лет назад)

procedure SqRoot(a, b, c: real; var x1, x2: real; var nroots: integer);
{Корни квадратного уравнения с коэффициентами a,b,c.
 nroots - количество найденных действительных корней
 n=0: корни мнимые, х1 - вещественная часть, х2 - мнимая;
 n=1: корни действительные и равные, х1=х2;
 n=2: корни действительные и разные, х1, х2}
var
  d: real;
begin
  d := sqr(b) - 4 * a * c;
  if d < 0 then
  begin
    nroots := 0;
    x1 := -b / (2 * a);
    x2 := sqrt(-d) / (2 * a);
  end
  else if d = 0 then
  begin
    nroots := 1;
    x1 := -b / (2 * a);
    x2 := x1
  end
  else
  begin
    nroots := 2;
    d := sqrt(d);
    x1 := (-b - d) / (2 * a);
    x2 := (-b + d) / (2 * a)
  end
end;

{тестирование}
var
  a2, a1, a0, x1, x2: real;
  n: integer;

begin
  repeat
    write('Введите коэффициенты уравнения: ');
    readln(a2, a1, a0);
    if abs(a2) + abs(a1) > 0 then
    begin
      SqRoot(a2, a1, a0, x1, x2, n);
      case n of
        0: writeln('Корни мнимые: ', x1:0:6, '-I*', x2:0:6, ', ',x1:0:6, '+I*', x2:0:6);
        1: writeln('Корни действительные и равные: ', x1:0:6);
        2: writeln('Корни действительные и разные: ', x1:0:6, ', ', x2:0:6)
      end
    end
  until abs(a2) + abs(a1) = 0
end.

Тестовое решение:

Введите коэффициенты уравнения: 3 -2.5 1
Корни мнимые: 0.416667-I*0.399653, 0.416667+I*0.399653
Введите коэффициенты уравнения: -3 5 2
Корни действительные и разные: 2.000000, -0.333333
Введите коэффициенты уравнения: 4 -6 2.25
Корни действительные и равные: 0.750000
Введите коэффициенты уравнения: 0 0 0



Ответить

Другие вопросы из категории

20-04-2014 11:01:55

3 уровень 15. Заданы координаты (на плоскости) вершин четырехугольника. Определить, является ли он: а) ромбом;

Паскаль

Задан целочисленный массив A[n]. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых происходит смена знака.

Читайте также

1) Написать программу для вычисления суммы цифр пятизначного числа , введенного с клавиатура

2) Заданы действительные числа a , b , c и d . Написать программу нахождения полусуммы наименьшего и наибольшего из них.
3) Написать программу для вычисления суммы цифр числа , введенного с клавиатуры

Помогите прошу

ЛБ- 70 Разработайте алгоритм для вычисления площади треугольника: s = 1/2ah, где а – длина основания треугольника, h – его высота.

ВБ- 71 Разработайте схему алгоритма, который проверяет, не превосходит ли сумма двух действительных чисел А и В числа 100. Если не превосходит, установить значение флага F=0, иначе установить значение флага F=1. Вывести значение F.

ЦА-10 Разработайте схему алгоритма для вычисления суммы S первых n целых чисел. Предусмотрите ввод значения n с клавиатуры. Текущее значение целого числа имеет имя i (i = 1, 2, .., n).

Помогите создать программу на паскаль:

Разработать
программу в соответствии со своим вариантом: создать структуру типа «запись», выполнить
обработку данных.



Вы находитесь на странице вопроса "Помогите разработать программу в delphi для вычисления квадратных уравнений.", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.