Написать программу в паскале, которая вычисляет среднее арифметическое ненулевых элементов массива м[1..100], элементы которого вычисляются по формуле: м[i]=sin(i)*cos(i) нужно, .
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var k:=20; var a:=ArrRandom(k,-50,50); a.Println; var n:=ReadInteger('Введите число циклических сдвигов влево:') mod k; if n>0 then a:=(a[n:]+a[:n]).ToArray; a.Println end.
BEGIN writeln('a). Введите два целых числа'); write('Первое число: '); readln(a); write('Второе число: '); readln(b);
if (a=b) then writeln('Числа равны.') else if (a<b) then writeln('Наименьшее число = ', a) else writeln('Наименьшее число = ', b); writeln('');
write('б). Введите число: '); readln(a); if (a>0) then begin b:=a-30; writeln('Число неотрицательное. ', a,'-30=',b); end else if (a<0) then begin b:=a+70; writeln('Число отрицательное. ', a,'+70=',b); end else writeln('Число равно 0'); writeln('');
write('с). Введите целое число: '); readln(a); if odd(a) then writeln('Число ', a,' нечетное') else writeln('Число ', a,' четное');
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969