Выполнить в массиве обмен значениями максимального элемента и элемента,имеющего заданное значение(использовать функции нахождения номера максимально элемента, нахождения номера элемента,имеющего заданное значение, и процедуру обмена значениями двух элементов) — Pascal(Паскаль)

uses crt;
const n=20;
type matrix=array[1..n]of integer;
var m:matrix;
i,k:integer;
 
function max(a:matrix):integer;
var i:integer;
begin
 max:=1;
 for i:=2 to n do if a[i]>a[max] then max:=i;
end;
 
function num(a:matrix;k:integer):integer;
var i:integer;
begin
 num:=0;
 for i:=1 to n do if a[i]=k then
 begin
  num:=i;
  break;
 end;
end;
 
procedure swap(var a:matrix; n1,n2:integer);
var b:integer;
begin
 b:=a[n1];
 a[n1]:=a[n2];
 a[n2]:=b;
end;
 
begin
 clrscr;
 write('Введите массив -> ');
 for i:=1 to n do read(m[i]);
 readln;
 write('Искомое значение -> ');
 readln(k);
 if num(m,k)>0 then
 begin
   swap(m,num(m,k),max(m));
   writeln('Преобразованный массив');
   for i:=1 to n do write(m[i],' ');
 end else write('В массиве нет искомого элемента!'); 
 readln;
end.

Leave a Comment

32 + = 36