с информатикой умоляю,
Составьте программу вычисления количества корней для каждого из трех квадратных уравнений с данными коэффициентами, используя подпрограмму вычисления количества корней квадратного уравнения Ax2+Bx+C=0 (A, B, C - вещественные параметры, А<>0) по значению дискриминанта D:=b2-4ac.
Протокол работы программы:
A1= 3.00 B1= -15.00 C1= 12.00
A2= 1.00 B2= -3.00 C2= 3.00
A3= 1.00 B3= 5.00 C3= 7.00
количество корней первого уравнения = 2
количество корней второго уравнения = 0
количество корней третьего уравнения = 0
var
t:boolean;
d:integer;
begin
t := true;
d := 2;
while t and (d*d <= x) do
begin
if x mod d = 0 then
t := false;
d := d + 1
end;
prime := t
end;
function order(x:integer):boolean;
var
t:boolean;
d:integer;
begin
d := -1;
repeat
t := x mod 10 > d;
d := x mod 10;
x := x div 10
until not t or (x = 0);
order := t
end;
var
t:boolean;
i,k,n:integer;
begin
t := false;
read(k,n);
for i := k to n do
if prime(i) then
if order(i) then
begin
write(i,' ');
t := true
end;
if not t then
write(0)
end.
procedure G(n: integer);forward;
Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы.
После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:
Вызов процедуры F и выполнение
* n = 12
* n = 12
Вызов процедуры G и выполнение
* n = 11
* n = 11
Вызов процедуры F и выполнение
* n = 9
* n = 9
Вызов процедуры G и выполнение
* n = 8
* n = 8
Вызов процедуры Fи выполнение
* n = 6
* n = 6
Вызов процедуры G и выполнение
* n = 5
* n = 5
Вызов процедуры F и выполнение
* n = 3
* n = 3
Вызов процедуры G и выполнение
* n = 2
* n = 2
Вызов процедуры F и выполнение
* n = 0