Предмет: Информатика, автор: Olivka0

сделать в паскале при помощи процедур

Приложения:

Аноним: Эта задача была решена. Вчера или позавчера - точно не помню.
Olivka0: там без процедур
Аноним: Может быть, не помню, хоть и сам решал.
Аноним: Она слишком простая, процедуры только увеличат объем писанины )))
Olivka0: ну вот увы(9(
Аноним: Хороший пример того, как НЕ НАДО использовать процедуры )))
Olivka0: так могли бы помочь?)
Аноним: Сейчас сделаю из той...
Olivka0: спасибо заранее))

Ответы

Автор ответа: Аноним
1
PascalABC.NET 3.4.0, сборка 1670 от 23.05.2018
Внимание! Если программа не работает, обновите версию!

procedure В_Круге(x,y:array of real; var r:array of boolean);
// Каждый элемент r[i] равен True, если точка с координатами (x[i],y[i])
// лежит внутри единичного круга c центром в точке (2;-3)
begin
  r:=x.Zip(y,(p,q)->Sqr(p-2)+Sqr(q+3)<1).ToArray
end;

procedure ПроизведениеАбсцисс(x:array of real; r:array of boolean;
    var res:real);
begin
  res:=x.Where((v,i)->r[i]).Aggregate(1.0,(p,q)->p*q)
end;

procedure СуммаОрдинат(y:array of real; r:array of boolean;
    var res:real);
begin
  res:=y.Where((v,i)->r[i]).Sum
end;

begin
  var n:=ReadInteger('n=');
  var x:=SeqRandom(n,0,40).Select(t->t/10).ToArray;
  Writeln('Массив Х:'); x.Println;
  Writeln('Введите элементы массива Y:');
  var y:=ReadArrReal(n);
  var b:=new boolean[n];
  В_круге(x,y,b);
  var Px,Sy:real;
  ПроизведениеАбсцисс(x,b,Px);
  СуммаОрдинат(y,b,Sy);
  Writeln('Произведение абсцисс ',Px,', сумма ординат ',Sy)
end.
Приложения:

Аноним: Замечание: PascalABC.NET позволяет использовать в именах не только латинские буквы и цифры, но также буквы других алфавитов - кириллицу, греческие и т.д.
Аноним: Вы согласны, что программа из-за этих процедур получилась длиннее и даже менее понятной? )))
Аноним: Это потому, что тело каждой процедуры содержит одну строку и проще написать ее в основной программе, чем городить заголовок процедуры, параметры, вызов этой процедуры...
Аноним: Видимо, смысл задания был в том, чтобы показать, как процедуры упрощают программу, а получился противоположный эффект.
Похожие вопросы
Предмет: Математика, автор: Mммммм