Заполнить массив с из 20 элементов следующим образом: первые 10 элементов случайные числа из интервала (-15, 21), следующие 7 по формуле i*6, остальные ввести с клавиатуры. распечатать массив в строчку. найти: а) сумму четных элементов б) количество положительных элементов в) найти минимальный элемент во второй половине массива г) отсортировать массив по убыванию

мяв1 мяв1    1   30.07.2019 14:50    0

Ответы
marmeladka0907 marmeladka0907  03.10.2020 17:35
//Сегодня буду скучным
//Pascal ABC.NET v3.1 сборка 1219

Const
 n=20;

Var
 ar:array[1..n] of integer;
 i,s,k,min,j:integer;
begin
 randomize;
 min:=2147483647;
 for i:=1 to 10 do
 ar[i]:=random(-15,21);
 for i:=11 to 17 do
 ar[i]:=i*6;
 for i:=18 to n do
 readln(ar[i]);
 writeln('Array:');
 for i:=1 to n do
 write(ar[i]:4);
 writeln;
 i:=2;
 while i<>n+2 do
 begin
 s:=s+ar[i];
 i:=i+2;
 end;
 writeln('Sum=',s);
 for i:=1 to n do
 if ar[i]>0 then k:=k+1;
 writeln('Count of positive elements=',k);
 for i:=10 to n do
 if min>ar[i] then min:=ar[i];
 writeln('Min=',min);
 for i:=1 to n-1 do
  for j:=i+1 to n do
   if ar[i]<ar[j] then
    begin
     k:=ar[i];
     ar[i]:=ar[j];
     ar[j]:=k;
    end;
 writeln('Sorted array:');
 for i:=1 to n do
 write(ar[i]:4);
end.
ПОКАЗАТЬ ОТВЕТЫ
Инокеньтий007 Инокеньтий007  03.10.2020 17:35
//PascalABC.NET 3.1 сборка 1239
begin
    var a := ArrRandomInteger(10, -15, 21) + ArrGen(7, i -> i * 6, 11) + ReadArrInteger(3);
    a.Println;
    Println('а) сумму четных элементов = ', a.Where(x -> x mod 2 = 0).Aggregate((s, x)-> s + x));
    Println('б) количество положительных элементов = ', a.Count(x -> x > 0));
    Println('в) найти минимальный элемент во второй половине массива = ', a.Skip(10).Min);
    Println('г) отсортировать массив по убыванию = ');
    a := a.SortedDescending.ToArray;
    a.Println;
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика