Обработка массивов
Двумерные массивы
Алгоритмы удаления, вставки и перестановки элементов
Задача 1. Дан двумерный массив размерностью 8х7, заполненный случайным образом.
- Поменять местами средние строки с первой и последней.
- Вставить между средними строками первую строку.
- Удалить все столбцы, в которых первый элемент больше последнего.
- Заменить все элементы первых трех столбцов на их квадраты.
USES Crt;
VAR
A:ARRAY[0..8,0..7] OF INTEGER; A1:ARRAY[0..9,0..7] OF INTEGER;
A2:ARRAY[0..8,0..7] OF INTEGER;
I,J,K:BYTE; PP:INTEGER;
BEGIN
ClrScr; Randomize;
{ Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы }
WriteLn(' Значения элементов двумерного массива');
FOR I:=1 TO 8 DO Begin
FOR J:=1 TO 7 DO Begin
A[I,J]:=Random(15); Write(A[I,J]:3);
End; WriteLn;
End; WriteLn;
{ 1. Поменять местами строки }
WriteLn(' Средние строки поменялись местами с первой и последней');
FOR J:=1 TO 7 DO Begin
PP:=A[1,J]; A[1,J]:=A[4,J]; A[4,J]:=PP;
PP:=A[5,J]; A[5,J]:=A[8,J]; A[8,J]:=PP;
End;
{ Вывод измененного массива }
FOR I:=1 TO 8 DO Begin
FOR J:=1 TO 7 DO
Write(A[I,J]:3);
WriteLn;
End; ReadLn;
{ 2. Вставка }
WriteLn(' Первая строка вставлена между средними строками');
K:=0;
FOR I:=1 TO 8 DO Begin
Inc(K);
FOR J:=1 TO 7 DO Begin
A1[K,J]:=A[I,J]; Write(A1[K,J]:3);
End; WriteLn;
IF I=4 THEN Begin
Inc(K);
FOR J:=1 TO 7 DO Begin
A1[K,J]:=A[1,J]; Write(A1[K,J]:3);
End; WriteLn;
End;
End; Writeln; ReadLn;
{ 3. Удаление}
WriteLn(' Столбцы, в которых первый элемент > последнего, удалены');
K:=0;
FOR J:=1 TO 7 DO
IF A[1,J]<=A[8,J] THEN Begin
Inc(K);
FOR I:=1 TO 8 DO
A2[I,K]:=A[I,J];
End;
{ Вывод измененного массива }
FOR I:=1 TO 8 DO Begin
FOR J:=1 TO K DO
Write(A2[I,J]:3);
WriteLn;
End; ReadLn;
{ 4. Замена }
WriteLn(' Элементы первых трех столбцов заменены на их квадраты');
FOR I:=1 TO 8 DO Begin
FOR J:=1 TO 7 DO Begin
IF J<=3 THEN A[I,J]:=Sqr(A[I,J]); Write(A[I,J]:4);
End; WriteLn;
End;
End.
.....................................................................................................................................
Практические задания
.....................................................................................................................................
Дан двумерный массив размером 5х6, заполненный случайным образом.
- Поменять местами средние строки.
- Вставить после столбцов, содержащих максимальный элемент массива, столбец из нулей.
- Удалить все столбцы, в которых первый элемент больше заданного числа А.
- Заменить максимальный элемент каждой строки на противоположный.