Const N = 13; Var A:array[1..N] of integer; i,k:integer; Begin Randomize; k:=0; Write('Исходный массив:'); For i:= 1 to N do Begin A[i]:=random(21)-10; Write(' ',A[i]); if A[i] < 0 then Begin k:=k+1; A[i]:=2 End; End; WriteLn; WriteLn('Количество отрицательных элементов: ',k); Write('Новый массив:'); For i:= 1 to N do Write(' ',A[i]) End.
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.
N = 13;
Var
A:array[1..N] of integer;
i,k:integer;
Begin
Randomize;
k:=0;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(' ',A[i]);
if A[i] < 0 then
Begin
k:=k+1;
A[i]:=2
End;
End;
WriteLn;
WriteLn('Количество отрицательных элементов: ',k);
Write('Новый массив:');
For i:= 1 to N do
Write(' ',A[i])
End.
Пример работы программы:
Исходный массив: -1 -9 7 -2 -5 -3 -1 6 3 -6 9 8 -10
Количество отрицательных элементов: 8
Новый массив: 2 2 7 2 2 2 2 6 3 2 9 8 2
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 - малое число.