Есть ответ 👍

Программирование циклических алгоритмов. вычислить количество отрицательных значений sin(fi)на интервале [а,b] с заданным шагом

180
497
Посмотреть ответы 3

Ответы на вопрос:

vasiljev255
4,5(27 оценок)

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 - малое число.
lera5252
4,7(41 оценок)

// 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.
zarraban
4,6(23 оценок)

Uses crt;   var a,b,s,i: integer;   begin  clrscr;   readln(a);   readln(b);   for i: =a to b do  begin  s: =s+i;   end;   writeln(s);   readln;   end.

Популярно: Информатика