Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие для учеников .doc
Скачиваний:
12
Добавлен:
18.12.2018
Размер:
2.27 Mб
Скачать

Примечания

  1. Задачу удаления строки, удовлетворяющей заданному условию, можно решить этим же способом, достаточно толь­ко найти ее номер.

  2. Используя данную процедуру, можно решить еще одну задачу − удаление всех строк, которые обладают некоторым свойством.

§49. Перестановка элементов массива Перестановка двух элементов Пример 1

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

Решение

Можно эту задачу решить несколькими способами. Первый способ аналогичен перестановке элементов в одномерном массиве, когда в процедуру передаются индексы элементов и массив, в котором надо их поме­нять. Тогда процедура может быть такой:

Program Example_124;

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]:=c;

End;

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

Program Example_125;

Procedure Swap(Var x, у: Integer);

Var z: Integer;

Begin

z:=x; x:=y; y:=z;

End;

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

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

Пример 2

Поменять местами столбцы с номерами l1 и l2. Эту задачу также можно решить несколькими спо­собами. Составим процедуру, в которую будем переда­вать номера столбцов, и массив, в котором надо их переставить. Кроме того, добавим проверку коррект­ности ввода данных номеров, так как если столбца с данным номером нет, то и переставлять ничего не надо. В самой процедуре можно использовать, например, процедуру Swap

Program Example_126;

Procedure Swap2(l1, l2: Integer;

Var x: dmyarray);

Var i: Integer;

Begin

If (l1<1) Or (l1>m)) Or (l2<1)

Or (12>m)) Then

Writeln ('Ввод неправильный')

Else

For i:=1 To m Do

Swap(x[i, l1], x[i, l2]);

End;

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

For i:=1 То m Do

Swap1(i, l1, i, l2, x);

§50. Строковый тип данных

Строкой называется последовательность заданной дли­ны, состоящая из символов.

Строки (переменные типа String) могут быть объяв­лены, например, следующим образом:

Var Str1: String[30]; Str2: String;

При объявлении строковой переменной в квадрат­ных скобках может указываться длина строки. Если дли­на строки не указана, то она принимается равной 255. Максимальная длина строки также равна 255. В дан­ном случае в первой строке может содержаться макси­мум 30 символов, а во второй − 255. Надо заметить, что строка похожа на одномерный массив символов: она имеет определенную длину (не больше некоторого числа), к каждому символу можно обратиться по его номеру (как в массиве) – Str1[i] − это обраще­ние к i−му элементу строки Str1.

Переменные типа String выводятся на экран по­средством стандартных процедур Write и Writeln и вводятся с помощью стандартных процедур Readln и Read. To есть вводятся и выводятся не поэлементно, как массивы, а целиком.

Примечание. Если при вводе задать символов больше, чем максимально допустимо, то лишние символы будут проигно­рированы.