Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
vasque
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 6
1

Квадратное уравнение

22.09.2012, 17:24. Просмотров 1179. Ответов 1
Метки нет (Все метки)

Здравствуйте
Помогите кто может:
задали сделать кв.уравнение в консольном проекте, причём 2-мя способами тиоремой Виета и общим методом.И тут у меня проблема: я сделал так, что бы программа давала выбор каким способом вот тут решать..но вот тут проблема:
при невозможности решить тиоремой Виета, хотя а=1 программа стаётв ступор..
и когда a>1 то программа выдаёт сообщение..но можно ли как то сделать, что бы она сразу переходила на оюбщий метод после этого сообщения
вот код:
Delphi
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
program kv;
                       {$APPTYPE CONSOLE}
 uses SysUtils;
 
 
var a,b,c,x1,x2, D: real;
st: string;
 
begin
writeln('pozvyazok kvadratnogo rivnyanna');
writeln('input a');
readln(a);
writeln('inpub b');
readln(b);
writeln('input c');
readln (c);
if a=0 then
if b=0 then
 
begin
writeln ('rivnyanna rozvyazkiv nemae');
readln;
end;
 
Writeln ('Viberit" metod rozvyazky Natisnit" Y - tiorema Vieta Natisnit" N - zagal"na formula');
readln(st);
if (st = 'Y') or (st='y')  then
 Begin
if a=1 then
repeat
  begin
    x1:=random(1000)-100;
    x2:=random(1000)-100;
    end;
 
 
    until (x1+x2=b) and (x1*x2=c)
    else
    begin
    c:=c*a;
    repeat
    begin
     x1:=random(1000)-100;
     x2:=random(1000)-100;
     end;
     begin
     if a<>1 then
  writeln('rivnyanna namojlivo rozvyazaty Tioremou Vieta');
  readln;
      end;
     until (x1+x2=b) and (x1*x2=c);
    x1:=x1/a;
    x2:=x2/2;
  end;
  writeln('x1=',x1:9:3);
  writeln('x2=',x2:9:3);
 
 
  writeln('press enter');
   readln;
  halt;
  end
  else
  if(st='n') or (st='N') then
 
 
  begin
 
  D:=sqr(b)-4*a*c;
  writeln('D=',d);
  if D<0 then
  begin
  writeln('Rivnyannya ne mae diysnyh rozvyanziv');
    readln;
  end;
  x1:=(-b-sqrt(d))/(2*a);
  x2:=(-b+sqrt(d))/(2*a);
  writeln(x1);
  writeln(x2);
  readln;
  end;
 
end.
заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 17:24
Ответы с готовыми решениями:

Квадратное уравнение
Дано квадратное уравнение.Определите, чему равен дискриминант,являются ли корни действительными...

Квадратное уравнение
1. Обеспечить проверку входных данных, условие существования квадратного уравнения. 2. Программа...

Квадратное уравнение
Прога работает, но не правильно, пишет: 'уравнение не имеет корней' на любое введеное число,...

Квадратное уравнение
Подскажите,плиз.Вот я составила программу по вычислению квадратного корня,но у меня почему-то...

Квадратное уравнение delphi
Скажите пожалуйсто где ошибка? x1.Caption :=...

1
HighPredator
5697 / 2018 / 723
Регистрация: 10.12.2010
Сообщений: 5,794
Записей в блоге: 3
22.09.2012, 18:49 2
Теорема Виета позволяет только "угадать" корни уравнения. Вводятся с клавиатуры по-любому действительные числа, так что не факт что p и q станут целыми. Как тут угадать? Можно прямо перебрать диапазон (-100;+100). Только это долго и скучно, а главное почти бесполезно.
Ладно, теперь по делу. Предположим, что все здорово и q и p у нас целые. В таком случае, наверное имеет смысл найти все целые делители q, перебрать их и найти два таких, что дают в сумме p. Если не найдем, то тогда решать общим методом.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2012, 18:49

Решить квадратное уравнение
y=2x+5 помогите решить квадратное уравнение Delphi)

Квадратное уравнение delphi 7
Задание: Разработать консольное приложение, содержащее класс TEquation с методом Roots для решения...

Квадратное уравнение с комплексными числами
Поделитесь прогой, кому не жалко. Очень надо. Добавлено через 11 часов 54 минуты ауу,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru