TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

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

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

FAQ

Ссылки

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

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

От автора

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

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

Пример

Поменять местами два элемента с номерами k1 и k2, где k1 и k2 вводятся с клавиатуры.

Решение

Опишем процедуру, которой будем передавать номера переставляемых элементов и массив.

Procedure Swap (k1, k2: Integer; Var m: myarray);
Var x : Integer;
Begin
x: =m[k1]; m[k1]:=m[k2]; m[k2]:=x;
End;

Примечание. Задача о перестановке двух элементов с заданными свойствами сводится к этой задаче - надо найти только их номера.

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

Пример

Дан одномерный массив А, состоящий из 2n элементов. Поменять местами первую и вторую его половины.

Решение

Пусть массив А состоит из 10 элементов, то есть n = 5:

1, 12, 23, 3, 7, 13, 27, 6, 9, 11.

Тогда, если мы поменяем местами первую и вторую его половины, то получим такой массив А:

13, 27, 6, 9, 11, 1, 12, 23, 3, 7.

Заметим, что мы меняем местами элементы с номерами 1 и n + 1, 2 и n + 2 и так далее, последняя пара - n и 2n. Поэтому можно вывести правило перестановки - элемент с номером i меняется местами с элементом с номером n + i. Поэтому, используя процедуру Swap из примера 1, можно в основной программе сделать так:

For i := 1 To n Do Swap (i, i+n, A).

Содержание 

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

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

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