Дан вещественный вектор a (a1, a2, …, an). переменной p присвоить значение, равное произведению компонентов вектора a, принадлежащих отрезку [x, y]. печатать p и вектор a.
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandomReal(ReadInteger('n='),-99,99); a.Println; var x,y:real; Write('Введите границы интервала для произведения: '); Read(x,y); var p:=a.Where(q->(q>=x) and (q<=y)).Aggregate(1.0,(x,y)->x*y); Writeln('p=',p) end.
Пример n= 10 11.0202379617934 -21.4386138983251 17.4840150235612 -92.4701039881772 8.05400941383746 -23.9996788990682 85.7269244402307 -27.4690603960627 -72.6577002609417 61.1870779274903 Введите границы интервала для произведения: -20 30.8 p=1551.83047486587
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandomReal(ReadInteger('n='),-99,99); a.Println;
var x,y:real;
Write('Введите границы интервала для произведения: ');
Read(x,y);
var p:=a.Where(q->(q>=x) and (q<=y)).Aggregate(1.0,(x,y)->x*y);
Writeln('p=',p)
end.
Пример
n= 10
11.0202379617934 -21.4386138983251 17.4840150235612 -92.4701039881772 8.05400941383746 -23.9996788990682 85.7269244402307 -27.4690603960627 -72.6577002609417 61.1870779274903
Введите границы интервала для произведения: -20 30.8
p=1551.83047486587
#include <vector>
using namespace std;
int main() {
cout << "Введите вектор (0, чтобы закончить):\n";
float in;
vector<float> a;
while (true) {
cin >> in;
if (in == 0)
break;
else
a.insert(a.end(), in);
}
float p, x, y;
cout << "x = ";
cin >> x;
cout << "y = ";
cin >> y;
p = 1;
for (int i = 0; i < a.size(); i++) {
if ( (a[i] >= x) && (a[i] <= y) )
p *= a[i];
}
cout << "p = " << p << '\n'
<< "a[]:";
for (int i = 0; i < a.size(); i++) {
cout << a[i] << ' ';
}
return 0;
}