Определить индекс элемента массива, значение которого наиболее близко к заданному k - Pascal ABC

Формулировка задачи:

Помогите пожалуйста составить программу. Ввести с клавиатуры одномерный массив, состоящий из 10 элементов и число k. Определить индекс элемента массива, значение которого наиболее близко к k. Если это значение меньше k, то поменять местами этот элемент и последний, если больше k, то поменять местами этот элемент и первый. На экран вывести исходный массив в одну строку, новый массив в одну строку и индекс найденного элемента.Отсортировать новый массив методом выбора. Вывести отсортированный массив на экран.

Код к задаче: «Определить индекс элемента массива, значение которого наиболее близко к заданному k - Pascal ABC»

textual
const n=10;
var a:array[1..n] of integer;
    k,i,j,p,mn,x:integer;
begin
writeln('Введите ',n,' целых чисел');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
write('Введите целое число k=');
readln(k);
p:=1;
mn:=abs(k-a[1]);
for i:=2 to n do
if abs(k-a[i])<mn then
 begin
  mn:=abs(k-a[i]);
  p:=i;
 end;
writeln('Введенный массив');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('Индекс наиболее близкого к числу ',k,'=',p);
if a[p]>k then
 begin
  x:=a[n];
  a[n]:=a[p];
  a[p]:=x;
 end
else
 begin
  x:=a[1];
  a[1]:=a[p];
  a[p]:=x;
 end;
writeln('Обмен элементов');
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n-1 do
 begin
  k:=i;
  for j:=i+1 to n do
  if a[j]<a[k] then k:=j;
  x:=a[i];
  a[i]:=a[k];
  a[k]:=x;
 end;
writeln('Отсортированный массив');
for i:=1 to n do
write(a[i],' ');
end.

10   голосов, оценка 3.800 из 5


СОХРАНИТЬ ССЫЛКУ