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

0 голосов

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


спросил от (15 баллов) в категории Информатика
оставил комментарий от Доцент (53.1k баллов)

язык?

оставил комментарий от (15 баллов)

Pascal

оставил комментарий от Доцент (53.1k баллов)

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

2 Ответы
0 голосов
ответил от Доцент (53.1k баллов)
 
Лучший ответ

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

оставил комментарий от (15 баллов)

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

оставил комментарий от Доцент (53.1k баллов)

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

оставил комментарий от (15 баллов)

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

оставил комментарий от Доцент (53.1k баллов)

:)

0 голосов
ответил от Супер Кандидат Наук (38.6k баллов)

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

оставил комментарий от Доцент (53.1k баллов)

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

оставил комментарий от Супер Кандидат Наук (38.6k баллов)

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

оставил комментарий от Доцент (53.1k баллов)

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

оставил комментарий от Доцент (53.1k баллов)

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]);

оставил комментарий от Доцент (53.1k баллов)

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.

...