Pascaler
О проекте Теоретический материал Тестирование Архив задач
Войти в личный кабинет



О проекте


Преподавателям


Тема: Перестановка элементов массива.

Рассмотрим задачу о перестановки двух столбцов (аналогично и для строк), так как многие задачи используют именно это действие.

Задача. Поменять местами столбцы с номерами 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 различных теста.

Задачи для самостоятельного решения

  1. В квадратном массиве поменять местами строку и столбец, на пересечении которых находится ноль. Если такого элемента нет, то вывести сообщение об этом.


  2. Поменять местами каждые две строки массива.


  3. В каждой строке переставить первый отрицательный и последний положительный элементы. Поменять местами столбцы, в которых находятся первый встреченный максимальный и последний минимальный элементы. Если такого столбца или строки нет, то вывести сообщение об этом.


  4. Если количество столбцов нечетно, то поменять первый и средний столбец, если четно, то средние два столбца поменять с первым и последним соответственно.


  5. Поменять местами первую строку и строку, в которой находится первый нулевой элемент.


  6. В двумерном массиве переставить строки следующим образом: первую с последней, вторую с предпоследней и так далее. Если строк нечетное количество, то средняя останется неизменной, иначе средние строки тоже меняем местами.


  7. Дан двумерный массив. Расставить его столбцы следующим образом: последний, предпоследний, ..., второй, первый.


  8. Дан двумерный массив. Начиная с первой строки, сдвинуть все строки на две вниз, а последние две перенести на место первых двух строк.


  9. Первые k столбцов сдвинуть назад, а последние k поставить на место первых.


  10. Дан двумерный массив. Расставить его строки следующим образом: первая, последняя, вторая, предпоследняя, третья, ... .


  11. Начиная с k-го столбца, сдвинуть их вперед, а первые k поставить на место последних.

Файл сохраните на дискете, листинг сдайте учителю для оценки.

Вернуться назад
2003—2012 © Группа «Vimedia»
Проект «Pascaler» — лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.