Помогите срочно. Решить через змсо или змск (как написано в условии)
1. Дан одномерный массив размерностью 20, заполненный случайным
образом числами диапазона -12…56. Найти среднее арифметическое
элементов с нечетными номерами.
2. В массиве хранится информация о максимальной скорости каждой из 40
марок легковых автомобилей. Определить двух самых быстрых автомобилей.
3. В одномерном массиве А размерностью 20, определить количество
нулевых элементов и записать на их место индексы этих элементов. Массив
заполнить случайными числами из диапазона -5…10.
4. Составьте программу формирования из массива A[N] двух массивов, в
которых первый массив заполнен предшествующими минимальному, а
второй - остальными элементами. Элементы массива ввести с клавиатуры.
Ответы
Ответ:
Объяснение:
const
n=40;
var
a:array[1..n] of integer;
i,amax,n1,nn:integer;
begin
Randomize;
Writeln('Элементы массива');
amax:=0;
for i := 1 to n do
begin
a[i]:=Random(61)+170; { [170..230] }
Write(a[i]:4);
if amax<a[i] then
begin amax:=a[i]; n1:=i; nn:=i end
else
begin if amax=a[i] then nn:=i end
end;
Writeln;
Writeln('Номер первого автомобиля ',n1,', последнего- ',nn)
end.
Элементы массива
185 202 226 209 200 183 219 181 228 181 206 171 182 210 226 187 214 229 219 219 219 206 229 183 178 177 197 199 180 186 183 203 191 194 214 197 215 194 221 187
Номер первого автомобиля 18, последнего- 23
===== PascalABC.NET =====
// 1
begin
var a := ArrRandom(20, -12, 56);
a.Println;
a.Where((s, i) -> i.IsEven).Average.Println;
end.
// 2
begin
var a := ReadArrInteger(40); // ввод с клавиатуры
a.OrderDescending.Take(2).Println
end.
// 3
begin
var a := ArrRandom(20, -5, 10);
a.Println;
Println('Нулевых элементов:',a.Count(p -> p = 0));
a.Transform((v,i) -> v = 0 ? i + 1 : v);
a.Println
end.
// 4
begin
var n := ReadInteger('n =');
var a :=ReadArrInteger('Вводите:', n);
var i := a.IndexMin;
var b := a[:i];
b.Println;
var c := a[i:];
c.Println
end.