TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

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

Перестановка двух элементов

Пример 14

Поменять местами два элемента массива А с заданными координатами (номерами строки и столбца).

Решение

Можно эту задачу решить несколькими способами.

Способ 1 - по аналогии с перестановкой в одномерном массиве, когда в процедуру передаются индексы элементов и массивов, в котором надо их поменять. Тогда процедура может быть такой:

Procedure Swap1(k1, l1, k2, l2: Integer; Var x: dmyarray);
Var c : Integer;
Begin
c:=x[k1,l1]; x[k1,l1]:=x[k2,l2]; x[k2,l2]:=x;
End;

Способ 2. Вспомним процедуру Swap, которая меняет местами значения двух целых переменных.

Procedure Swap(Var x, y: Integer);
Var z : Integer;
Begin
z:=x; x:=y; y:=z;
End;

А теперь обратимся к ней, передавая данные элементы: Swap(A[k1,l1], A[k2,l2]).

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

Пример 15

Поменять местами столбцы с номерами 11 и 12.

Эту задачу также можно реализовать несколькими способами. Мы составим процедуру. Ей будем отправлять номера этих столбцов и массив, в котором надо выполнить это действие. Кроме того, добавим проверку корректности ввода данных номеров, так как если столбца с данным номером нет, то и переставлять ничего не надо. В самой процедуре можно использовать любую из процедур примера 1, например Swap.

Procedure Swap2(l1, l2: Integer; Var x: dmyarray);
Var i : Integer;
Begin
If ((l1<1) Or (l1>m)) Or ((l2<1) Or (l2>m))
Then Writeln ('Ввод неправильный')
Else
For i:=1 To m Do Swap(x[i,l1], x[i,l2]);
End;

Если применять первую - Swap1, то после проверки правильности ввода данных будет такое обращение:

For i := 1 To m Do Swap1(i, l1, i, l2,x)

 Содержание

На главную страницу
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz