// pascalabc.net 3.2, сборка 1425 от 22.04.2017 // внимание! если программа не работает, обновите версию! begin var a,b,h,fi: real; write('укажите границы интервала табуляции и шаг: '); read(a,b,h); var k: =0; fi: =a; while fi< =b+0.1*h do begin if sin(fi)< 0 then k+=1; fi+=h end; writeln('отрицательных значений- ',k) end. пример укажите границы интервала табуляции и шаг: -6 5 0.2 отрицательных значений- 25 вариант для большого количества промежуточных точек, снижающий влияние накапливающейся из-за возможной неточности представления вещественных чисел, погрешности: // pascalabc.net 3.2, сборка 1425 от 22.04.2017 // внимание! если программа не работает, обновите версию! begin var a,b,h,fi: real; write('укажите границы интервала табуляции и шаг: '); read(a,b,h); var n: =trunc((b-a)/h)+1; var k: =0; for var i: =1 to n do begin fi: =a+h*(i-1); println(fi,sin(fi)); if sin(fi)< 0 then k+=1 end; writeln('отрицательных значений- ',k) end.
juliaydodova
15.10.2022
Var a,b,h,fi,y: real; k,i: integer; begin writeln('a, b, h: '); readln(a,b,h); k: =0; fi: =a-h; for i: =1 to round((b-a)/h)+1 do begin fi: =fi+h; y: =sin(fi); if y< 0 then k: =k+1; writeln(fi: 4: 1,' ',y: 5: 3); end; writeln('k = ',k); end. пример: a, b, h: -0.5 0.5 0.1 -0.5 -0.479 -0.4 -0.389 -0.3 -0.296 -0.2 -0.199 -0.1 -0.100 -0.0 -0.000 0.1 0.100 0.2 0.199 0.3 0.296 0.4 0.389 0.5 0.479 k = 6 ps. значения, близкие к 0, можно не учитывать. в этом случае вместо y< 0 можно написать, например, условие abs(y)< eps, где eps - малое число.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Построить блок схему по уравнению используя постусловие repeatm=2шаг=1