// PascalABC.NET 3.2, сборка 1431 от 28.04.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-20,20).Select(i->i/10).ToArray; Write('Массив: '); a.Println; Writeln('Сумма элементов с нечетными номерами: ', a.Where((x,i)->i.IsEven).Sum); var i1:=a.FindIndex(x->x<0); var i2:=a.FindLastIndex(x->x<0); Write('Вторая искомая сумма: '); if i2=i1 then Writeln(0) else Writeln(a[i1+1:i2].Sum); Write('Сжатый массив: '); a:=a.Where(x->abs(x)>1).ToArray; a.Println; end.
Пример n= 10 Массив: 1.8 0.2 1 -2 0.1 0.4 -1 1.2 -1.4 0.6 Сумма элементов с нечетными номерами: 0.5 Вторая искомая сумма: 0.7 Сжатый массив: 1.8 -2 1.2 -1.4
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-20,20).Select(i->i/10).ToArray;
Write('Массив: '); a.Println;
Writeln('Сумма элементов с нечетными номерами: ',
a.Where((x,i)->i.IsEven).Sum);
var i1:=a.FindIndex(x->x<0);
var i2:=a.FindLastIndex(x->x<0);
Write('Вторая искомая сумма: ');
if i2=i1 then Writeln(0)
else Writeln(a[i1+1:i2].Sum);
Write('Сжатый массив: ');
a:=a.Where(x->abs(x)>1).ToArray; a.Println;
end.
Пример
n= 10
Массив: 1.8 0.2 1 -2 0.1 0.4 -1 1.2 -1.4 0.6
Сумма элементов с нечетными номерами: 0.5
Вторая искомая сумма: 0.7
Сжатый массив: 1.8 -2 1.2 -1.4
===== С++ 17 =====
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double *a = new double[n];
srand(time(NULL));
for(int i = 0; i < n; i++)
{
a[i] = rand() * 10.0 / RAND_MAX - 5;
cout << a[i] << " ";
}
cout << endl;
// - 1 -
double s = 0;
for(int i = 0; i < n; i += 2)
s += a[i];
cout << "Сумма элементов с нечетными номерами равна " << s << endl;
// - 2 -
int k = -1;
for(int i = 1; i < n; i++)
if(a[i] < 0)
{
k = i;
break;
}
if(k < 1)
cout << "Нет отрицательных элементов\n";
else
{
s = 0;
for(int i = 1; i < k; i++)
s += a[i];
cout << "Сумма между первым и первым отрицательным элементом равна "
<< s << endl;
}
// - 3 -
k = 0;
for(int i = 0; i < n; i++)
if(abs(a[i]) <= 1)
k++;
if(k > 0)
{
k = n - k;
double *b = new double[k];
for(int i = 0, j = 0; i < n; i++)
if(abs(a[i]) > 1)
{
b[j] = a[i];
j ++;
}
for(int i = 0; i < k; i++)
cout << b[i] << " ";
cout << endl;
delete [] b;
}
else
cout << "Нечего удалять\n";
delete [] a;
return 0;
}