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

0 голосов

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

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


спросил от (77 баллов) в категории Информатика
оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от (77 баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от (77 баллов)

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

оставил комментарий от (77 баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

1 Ответ
0 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ
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
...