Поменять местами наибольший и наименьший элементы одномерного массива — Pascal(Паскаль)

uses Crt;
const
  MAX = 10; {zadaem razmer massiva}
var
  mas           : array[1..MAX] of integer; {opredeliaem massiv celih chisel}
  i             : byte; {dopolnitelnie peremennie}
  loc           : integer;
  maxy, miny    : byte; {budut hranit' nomera naibolsh i naimesh elementov
                         massiva}
 
procedure Vivod;     {vivod massiva na ekran}
var
  il            : byte;
 
begin
  for il:=1 to MAX do Write (mas[il],' ');
  Writeln;
end;
 
begin
   ClrScr;
  for i:=1 to MAX do begin {formiruem massiv, koroche vnosim v massiv
    dannie}
    Write('Vvedi ',i,' element :>');
    Readln(mas[i]);
  end;
 
  Writeln('Ishodniy massiv:');
  Vivod;
 
  maxy:=1; {zadaem max element massiva, kak 1 element}
  for i:=1 to MAX do
    if (mas[maxy]<mas[i]) then maxy:=i;
    {esli nash element menshe, chem i-tiy elm, to maxy:=i}
  miny:=1; {zadaem mix element massiva, kak 1 element}
  for i:=1 to MAX do
    if (mas[miny]>mas[i]) then miny:=i;
    {esli nash element bolshe, chem i-tiy elm, to miny:=i}
 
  {mi nashli naibolshiy -mas[maxy] i naimenshiy -mas[miny] elementy
  teper ih meniaem :) }
  loc:=mas[maxy];
  mas[maxy]:=mas[miny];
  mas[miny]:=loc;
 
  Writeln('Konechiy massiv:');
  Vivod;
 
  ReadKey; {oshidanie nashatia na knopku}
end.

Следующий вариант

uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,imn,imx:byte;
    x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(50);
  write(a[i]:4);
 end;
writeln;
writeln;
imn:=1;
imx:=1;
for i:=1 to n do
if a[i]<a[imn] then imn:=i
else if a[i]>a[imx] then imx:=i;
writeln('Минимальный  элемент a[',imn,']=',a[imn]);
writeln('Максимальный элемент a[',imx,']=',a[imx]);
x:=a[imn];a[imn]:=a[imx];a[imx]:=x;
writeln('Обмен элементов:');
for i:=1 to n do
write(a[i]:4);
readln
end.

Leave a Comment

9 + 1 =