Помогите решить две задачи пожалуйста! 1) Придумайте выражение, которое с помощью mod,...

0 голосов
31 просмотров

Помогите решить две задачи пожалуйста!
1) Придумайте выражение, которое с помощью mod, div, сложения, вычитания и умножения (без циклов и тому подобного):
Находит количество цифр, больших 6 в данном числе.
2) Помогите написать программу решения неравенства ax2 + bx + c > 0.
p.s. Пишу на Lazarus...
Код(неправильно считает при а=0):
var valueA,valueB,valueC,discriminant,valueX1,valueX2,valueX:real;
begin
writeln('Введите коэффициенты a,b,c(после ввода нажмите Enter):');
readln(valueA,valueB,valueC);
if valueA=0 then valueX:=valueB*valueX+valueC else // delete and customize
discriminant:=valueB*valueB-4*valueA*valueC;
writeln('Дискриминант равен: ',discriminant:1:0);
if discriminant>0 then
begin
valueX1:=(-valueB+sqrt(discriminant))/(2*valueA);
valueX2:=(-valueB-sqrt(discriminant))/(2*valueA);
if valueX1>valueX2 then
begin
valueX:=valueX1;
valueX1:=valueX2;
valueX2:=valueX;
writeln('Значение x1 и x2: ', valueX1,valueX2);
end;
end;
if valueA>0 then
begin
if discriminant>0 then write('x<',valueX1:0:1,' or x>',valueX2:0:1)
else write('Значение x - любое число');
end
else
begin
if discriminant>0 then write('x>',valueX1:0:1,' and x<',valueX2:0:1)<br> else write('Решений нет');
end;
readln;
end.


Заранее огромное спасибо!


Информатика (35 баллов) | 31 просмотров
0

Во втором пункте у тебя решение уравнения, а не неравенства

Дан 1 ответ
0 голосов
var a, b, c, d, x1, x2, t: real;
begin 
    writeln('Программа для решения неравенства ax^2 + bx + c > 0'); 
    write('Введите коэффициенты a, b, c: '); 
    readln(a, b, c); 
    if a = 0 then begin
        if b = 0 then
        begin        

            if c > 0 then writeln('(-∞; +∞)')                   
                       else writeln('ø')       
        end
       
        else if b > 0 then writeln('(', -c / b : 0 : 3, '; +∞)')             

                           else writeln('(-∞; ', -c / b, ')') 
    end 
    else 
    begin   
        d := b * b - 4 * a * c;   
        if d = 0 then
        begin     
            x1 := -b / (2 * a);     
            if a > 0 then writeln('(-∞; ', x1, ') U (', x1, '; +∞)')               
                       else writeln('ø')   
        end   
        else if d > 0 then   
        begin     
            x1 := (-b - sqrt(d)) / (2 * a);     
            x2 := (-b + sqrt(d)) / (2 * a);     
            if x1 > x2 then     
            begin       
                t := x1;       
                x1 := x2;       
                x2 := t     
            end;     
            if a > 0 then writeln('(-∞; ', x1, ') U (', x2, '; +∞)')               
                       else writeln('(', x1, '; ', x2, ')')   
        end   
        else   
        begin     
            if a > 0 then writeln('(-∞; +∞)')               
                       else writeln('ø')   
        end 
    end
end.
(13.3k баллов)