Написать программу в Паскале, которая вычисляет среднее арифметическое ненулевых...

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

Написать программу в Паскале, которая вычисляет среднее арифметическое ненулевых элементов массива М[1..100], элементы которого вычисляются по формуле: М[i]=sin(i)*cos(i)

Очень нужно, пожалуйста.


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

А зачем массив, если есть формула, дающая значение?

0

Спроси это у моего учителя информатики, пожалуйста.

0

Ну тогда вот вариант решенея, только боюсь, не поймет его ваш учитель...

0

// 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

И результат: -0.00136006072493969

0

не примет, да:с

0

вот очень грустно, когда хочешь стать отличником, а информатика все портит

0

Если не примет, значит пока еще не научился так писать программы))))

0

Жизнь показывает, что чем хуже учитель разбирается в предметет, тем сильнее он "зажимает" учеников.

0

Это и понятно: тогда они не поднесут ему вопроса лишнего)))

Дан 1 ответ
0 голосов
Правильный ответ
1. Вот так сейчас решают подобные задачи:

// 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
(142k баллов)