Предмет: Информатика,
автор: nightmare666666
Помогите,пожалуйста)
Дан массив из 20-ти элементов случайных чисел.Найти номера двух соседних элементов наименее отличающихся друг от друга.
Скиньте решение в паскале)
Заранее спасибо)
Ответы
Автор ответа:
0
var
arr: array [1.. 20] of integer;
i, ind, diff: integer;
begin
i := 0;
ind := 0;
diff := maxint;
randomize;
for i := 1 to 20 do
begin
arr[i] := random(100);
write(arr[i], ' ');
end;
writeln(' ');
for i := 1 to 19 do
if abs(arr[i] - arr[i + 1]) < diff then
begin
diff := abs(arr[i] - arr[i + 1]);
ind := i;
end;
writeln(ind, ' ', ind + 1);
end.
arr: array [1.. 20] of integer;
i, ind, diff: integer;
begin
i := 0;
ind := 0;
diff := maxint;
randomize;
for i := 1 to 20 do
begin
arr[i] := random(100);
write(arr[i], ' ');
end;
writeln(' ');
for i := 1 to 19 do
if abs(arr[i] - arr[i + 1]) < diff then
begin
diff := abs(arr[i] - arr[i + 1]);
ind := i;
end;
writeln(ind, ' ', ind + 1);
end.
Автор ответа:
0
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(20,-50,50); a.Println;
var im:=a.Pairwise.Select(t->Abs(t[0]-t[1])).ToArray.IndexMin;
Println(a[im],a[im+1]);
end.
Пример
7 -46 48 -46 -1 -33 40 -30 -45 -47 -5 14 21 -15 -17 -36 39 5 22 -19
-45 -47
Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(20,-50,50); a.Println;
var im:=a.Pairwise.Select(t->Abs(t[0]-t[1])).ToArray.IndexMin;
Println(a[im],a[im+1]);
end.
Пример
7 -46 48 -46 -1 -33 40 -30 -45 -47 -5 14 21 -15 -17 -36 39 5 22 -19
-45 -47
Аноним:
Пример того, как далеко современный паскаль ушел от того, на котором писали деды и отцы нынешних школьников. Фактически, 2 строки кода вместо 20.
Похожие вопросы
Предмет: География,
автор: najmusinura
Предмет: Информатика,
автор: jthut
Предмет: Математика,
автор: ruz064
Предмет: Математика,
автор: dasha38936
Предмет: Алгебра,
автор: 107642217122000