О проекте
|
Тема: Перестановка элементов массива.Рассмотрим задачу о перестановки двух столбцов (аналогично и для строк), так как многие задачи используют именно это действие. Задача. Поменять местами столбцы с номерами m1 и m2. Эту задачу можно реализовать несколькими способами. Мы составим две процедуры, причем процедура обмена столбцами содержит в себе процедуру обмена значениями двух переданных ей ячеек массива. Рассмотрите их. Procedure Swap2(Var X : MyArray2; n, m, m1, m2 : integer;); Var i, j : integer; Procedure Swap1(Var elem1, elem2 : integer); Var z : integer; Begin z:=elem1; elem1:=elem2; elem2:=z; End; Begin if((m1<1) or (m1>m)) or ((m2<1) or (m2>m)) then writeln('?') else for i := 1 to m do Swap1(X[i, m1], X[i, m2]); End; |
Вопрос. Какое сообщение должно быть выведено оператором writeln вместо знака вопроса и почему? Задание. Выберите с учителем задачи из предложенного списка. Решите их, применяя подпрограммы, приготовьте для проверки 3-4 различных теста. Задачи для самостоятельного решения- В квадратном массиве поменять местами строку и столбец, на пересечении которых находится ноль. Если такого элемента нет, то вывести сообщение об этом.
- Поменять местами каждые две строки массива.
- В каждой строке переставить первый отрицательный и последний положительный элементы. Поменять местами столбцы, в которых находятся первый встреченный максимальный и последний минимальный элементы. Если такого столбца или строки нет, то вывести сообщение об этом.
- Если количество столбцов нечетно, то поменять первый и средний столбец, если четно, то средние два столбца поменять с первым и последним соответственно.
- Поменять местами первую строку и строку, в которой находится первый нулевой элемент.
- В двумерном массиве переставить строки следующим образом: первую с последней, вторую с предпоследней и так далее. Если строк нечетное количество, то средняя останется неизменной, иначе средние строки тоже меняем местами.
- Дан двумерный массив. Расставить его столбцы следующим образом: последний, предпоследний, ..., второй, первый.
- Дан двумерный массив. Начиная с первой строки, сдвинуть все строки на две вниз, а последние две перенести на место первых двух строк.
- Первые k столбцов сдвинуть назад, а последние k поставить на место первых.
- Дан двумерный массив. Расставить его строки следующим образом: первая, последняя, вторая, предпоследняя, третья, ... .
- Начиная с k-го столбца, сдвинуть их вперед, а первые k поставить на место последних.
Файл сохраните на дискете, листинг сдайте учителю для оценки.
|