Заполнить массив С из 20 элементов следующим образом: первые 10 элементов случайные числа...

0 голосов
51 просмотров

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


Информатика (15 баллов) | 51 просмотров
0

язык?

0

Pascal

0

люба яиз разновидностей? ок

Дано ответов: 2
0 голосов
Правильный ответ

//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.

(53.1k баллов)
0

Прости друг, мы так не пишем, так бы отметил как лучший :(

0

телепатов нет, как вы там пишете не известно, это надо оговаривать в задании)

0

Я сейчас еще 1 задачу выложу с другой страницы, сделай как тот чел, помечу как лучший))

0

:)

0 голосов

//Сегодня буду скучным
//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]    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.

(38.6k баллов)
0

а не получается нормальный перенос строк?

0

Слишком люблю Хром. Уже отредактировал.

0

немного покороче

0

const
n = 20;

var
ar: array[1..n] of integer;
i, s, k, min, j: integer;

begin
randomize;

for i := 1 to 10 do
ar[i] := random(15 + 21) - 15;
for i := 11 to 17 do
ar[i] := i * 6;
for i := 18 to n do
readln(ar[i]);

0

s := 0;
k := 0;
min := ar[11];
writeln('Array:');
for i := 1 to n do
begin
write(ar[i], ' ');
if i mod 2 = 0 then s := s + ar[i];
if ar[i] > 0 then k := k + 1;
if (i > 10) and (min > ar[i]) then min := ar[i];
end;
writeln;
writeln('Sum=', s);
writeln('Count of positive elements=', k);
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], ' ');
end.