Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Массивы и матрицы.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
345 Кб
Скачать
☆

Сдвиг массива на k элементов влево или вправо

Было

1 2 3 4 5

Стало

5 1 2 3 4

Сдвиг влево на k элементов:

var

   a:array[1..100] of integer;

   i,r,n,k,j:integer;

begin

 read(n,k);  {k îáîçГ*Г*Г·Г*ГҐГІ âåëè÷èГ*Гі ñäâèãГ*}

 for i:=1 to n do

  read(a[i]);

 for i:=1 to k do

  begin

   for j:=1 to n do

    if (j=1) then r:=a[j] else a[j-1]:=a[j];

   a[n]:=r;

  end;

 for i:=1 to n do

  write(a[i],' ');

 readln

end.

Сдвиг на k элементов вправо:

var

   a:array[1..100] of integer;

   i,r,n,k,j:integer;

begin

 read(n,k);  {k îáîçГ*Г*Г·Г*ГҐГІ âåëè÷èГ*Гі ñäâèãГ*}

 for i:=1 to n do

  read(a[i]);

 for i:=1 to k do

  begin

   for j:=n downto 1 do

    if (j=n) then r:=a[n] else a[j+1]:=a[j];

   a[1]:=r;

  end;

 for i:=1 to n do

  write(a[i],' ');

 readln

end.

Поиск минимума/максимума и их индексов

var a:array[1..100]of integer;

N,i,min,max:integer;

 

begin

 write('N -> ');

 readln(N); {считываем размер массива}

 write('Input array -> ');

 for i:=1 to N do read(a[i]); {считываем сам массив}

 readln;

 min:=1;

 max:=2;

 for i:=1 to N do if a[i] > a[max] then max:=i else if a[i] < a[min] then min := i;

 writeln('MAX = A[',max,'] = ', a[max]);

 writeln('MIN = A[',min,'] = ', a[min]);

 readln;

end.

Поиск минимума/максимума и их индексов в двумерном массиве (матрице)

var a:array[1..100,1..100]of integer;

N, M, i, j, mini, minj, maxi, maxj :integer;

 

begin

 write('N, M -> ');

 readln(N, M); {считываем размер матрицы}

 write('Input matrix -> ');

 for i:=1 to N do for j:=1 to M do

 begin

  write('A[',i,',',j,'] -> ');

  readln(a[i, j]);

 end; {считываем саму матрицу}

 readln;

 mini:=1;

 minj:=1;

 maxi:=2;

 maxj:=2;

 for i:=1 to N do for j:=1 to M do if a[i,j] > a[maxi, maxj] then

 begin

  maxi := i;

  maxj := j;

 end else if a[i, j] < a[mini, minj] then

 begin

  mini := i;

  minj := j;

 end;

 writeln('MAX = A[',maxi,',',maxj,'] = ', a[maxi, maxj]);

 writeln('MIN = A[',mini,',',minj,'] = ', a[mini, minj]);

 readln;

end.

Работа с элементами выше/ниже/на главной/побочной диагоналях

var a:array[1..100,1..100]of integer;

N, M, i, j :integer;

 

begin

 write('N, M -> ');

 readln(N, M); {считываем размер матрицы}

 write('Input matrix -> ');

 for i:=1 to N do for j:=1 to M do

 begin

  write('A[',i,',',j,'] -> ');

  readln(a[i, j]);

 end; {считываем саму матрицу}

 readln;

 

 writeln('Главная диагональ');

 for i:=1 to N do

 begin

  write(a[i,i],' '); {вы можете не только просто выводить элементы, но и работать с ними. Достаточно знать индексацию нужных элементов}

 end;

 writeln;

 

 writeln('Побочная диагональ');

 for i:=1 to N do

 begin

  write(a[i,N-i+1],' ');

 end;

 writeln;

 

 writeln('Ниже главной');

 for i:=2 to N do

 for j:=1 to i-1 do

 begin

  write(a[i,j],' ');

 end;

 writeln;

 

 writeln('Выше главной');

 for i:=1 to N-1 do

 for j:=i+1 to N do

 begin

  write(a[i,j],' ');

 end;

 writeln;

 

 writeln('Выше побочной');

 for i:=1 to N-1 do

 for j:=1 to N-i do

 begin

  write(a[i,j],' ');

 end;

 writeln;

 

 writeln('Ниже побочной');

 for i:=2 to N do

 for j:=N-i+2 to N do

 begin

  write(a[i,j],' ');

 end;

 writeln;

 readln;

end.