сделать в паскале при помощи процедур
Сделать в паскале при поддержки процедур
Задать свой вопрос
Пяткина
Танюха
Эта задача была решена. Вчера либо позавчера - точно не помню.
Вова Кузовков
там без процедур
Kruglushina Liza
Может быть, не помню, хоть и сам решал.
Ауцграф
Тимур
Она очень обычная, процедуры только увеличат объем писанины )))
Sofja Letniskaja
ну вот увы(9(
Карина Петрашик
Хороший пример того, как НЕ НАДО использовать процедуры )))
Камилла Шлычкова
так могли бы посодействовать?)
Валентина
Сейчас сделаю из той...
Патасюк
Анна
спасибо заблаговременно))
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)-gt;Sqr(p-2)+Sqr(q+3)lt;1).ToArray
end;
procedure ПроизведениеАбсцисс(x:array of real; r:array of boolean;
var res:real);
begin
res:=x.Where((v,i)-gt;r[i]).Aggregate(1.0,(p,q)-gt;p*q)
end;
procedure СуммаОрдинат(y:array of real; r:array of boolean;
var res:real);
begin
res:=y.Where((v,i)-gt;r[i]).Sum
end;
begin
var n:=ReadInteger('n=');
var x:=SeqRandom(n,0,40).Select(t-gt;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.
Внимание! Если программа не работает, обновите версию!
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)-gt;Sqr(p-2)+Sqr(q+3)lt;1).ToArray
end;
procedure ПроизведениеАбсцисс(x:array of real; r:array of boolean;
var res:real);
begin
res:=x.Where((v,i)-gt;r[i]).Aggregate(1.0,(p,q)-gt;p*q)
end;
procedure СуммаОрдинат(y:array of real; r:array of boolean;
var res:real);
begin
res:=y.Where((v,i)-gt;r[i]).Sum
end;
begin
var n:=ReadInteger('n=');
var x:=SeqRandom(n,0,40).Select(t-gt;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 дозволяет использовать в именах не только латинские буковкы и числа, но также буковкы иных алфавитов - кириллицу, греческие и т.д.
Тамара Павлуцкая
Вы согласны, что программа из-за этих процедур вышла длиннее и даже наименее понятной? )))
Денчик Везумский
Это потому, что тело каждой процедуры содержит одну строку и проще написать ее в главный программке, чем городить заголовок процедуры, характеристики, вызов этой процедуры...
Элина Столыгова
Видимо, смысл задания был в том, чтоб показать, как процедуры упрощают программу, а вышел обратный эффект.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Облако тегов