Составить программу для вычисления величины S по формуле - Pascal ABC (14388)

Формулировка задачи:

Составить программу для вычисления величины S по формуле: Код программы:
var
b : array[1..10] of real;
z : array[1..15] of real;
s : real;
i : integer;
s1,s2,s3 : real;
begin
 
  s1 := 0;
  s2 := 0;
  s3 := 1;
 
  write('Через пробел введите 10-ть чисел для массива b: ');
  for i := 1 to 10 do read(b[i]);
  write('Через пробел введите 15-ть чисел для массива z: ');
  for i := 1 to 15 do read(z[i]);
 
  for i := 1 to 10 do s1 := s1 + sin(b[i]); // первое слагаемое числителя
  for i := 1 to 10 do s2 := s2 + cos(sqr(b[i])); // второе слагаемое числителя
  for i := 1 to 15 do s3 := s3 * sin(z[i]); // знаменатель
 
  writeln('s1 = ',s1);
  writeln('s2 = ',s2);
  writeln('s3 = ',s3);
 
  s := (s1+s2+1)/s3;
  writeln('S = ',s);
 
end.
Здесь нужно выполнять проверку знаменателя на то что он не равен нулю? Добавлено через 2 часа 48 минут Ой, только там не сумма косинусов, а косинус суммы. Наверное код должен быть таким:
var
b : array[1..10] of real;
z : array[1..15] of real;
s : real;
i : integer;
s1,s2,s3 : real;
begin
 
  s1 := 0;
  s2 := 1;
  s3 := 1;
 
  write('Через пробел введите 10-ть чисел для массива b: ');
  for i := 1 to 10 do read(b[i]);
  write('Через пробел введите 15-ть чисел для массива z: ');
  for i := 1 to 15 do read(z[i]);
 
  for i := 1 to 10 do s1 := s1 + sin(b[i]); 
  for i := 1 to 10 do s2 := s2*sqr(b[i]); 
  for i := 1 to 15 do s3 := s3 * sin(z[i]); 
 
  writeln('s1 = ',s1:4:2);
  writeln('s2 = ',s2:4:2);
  writeln('s3 = ',s3:4:2);
 
  s := (s1+cos(s2)+1)/s3;
  writeln('S = ',s:4:2);
 
end.
Добавлено через 11 минут Да и тут опять ошибся. Сумма квадратов, а не произведение

Код к задаче: «Составить программу для вычисления величины S по формуле - Pascal ABC (14388)»

textual
var
b : array[1..10] of real;
z : array[1..15] of real;
i,k : integer;
s1,s2,p,s : real;
begin
s1 := 0;
s2 := 0;//сумма=0
p := 1;
writeln('Через пробел введите 10-ть чисел для массива b: ');
for i := 1 to 10 do
 begin
  read(b[i]);
  s1:=s1+b[i];
  s2:=s2+sqr(b[i])
 end;
writeln('Через пробел введите 15-ть чисел для массива z: ');
for k:=1 to 15 do
 begin
  read(z[k]);
  p:=p*sin(z[k]);
 end;
writeln('s1 = ',s1:0:2);
writeln('s2 = ',s2:0:2);
writeln('p = ',p:0:8);//может оказаьбся очень маленьким
if p=0 then write('S не определено')
else
 begin
  s:=(s1+cos(s2)+1)/p;
  writeln('S = ',s:4:2);
 end;
 
end.

12   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ