Двумерные массивы

Напишите программу, которая осуществляет обработку информации по одному из условий, заданных ниже.

1. Задана целочисленная квадратная матрица A размерностью N:

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

b.Найти минимальный элемент, расположенный на главной диагонали матрицы A, а из элементов строки и столбца, на пересечении которых он находится, сформировать одномерный массив B

c.Среди элементов, расположенных ниже главной диагонали матрицы A, найти те элементы, которые удовлетворяют условию K1 £ Ai,j £ K2 (K1, K2 – произвольные числа), и сформировать из них одномерный массив B

d.Найти номер строки матрицы A, наиболее удаленной от первой строки, если расстояние Sмежду строками LиK матрицы определяется по формуле:

e.Найти «седловую» точку матрицы – такой элемент Ai,j,который является наибольшим в строке iи наименьшим в столбце j. Если такого элемента нет, то выдать соответствующее сообщение.

f.Сформировать одномерный массив B,элементы которого Bi равны true, если элементы i-й строки матрицы Aупорядочены по возрастанию, и false –в противном случае

g.Сформировать одномерный массив B,элементы которого Bj равны 1, если хотя бы один элемент j-го столбца матрицы Aбольше суммы элементов этого столбца, и 0 –в противном случае.

2. Из массивов X(N) и Y(M) построить квадратную матрицу AразмерностьюK (K= ) таким образом, чтобы элементы массива X были расположены на главной диагонали и выше ее.

3. Задана целочисленная матрица A размерностью N×Mи массив X(N).Обнулить строки матрицы с номером K,для которогоX[K] ³ 0.

4. Задана целочисленная матрица A размерностью N×M.СоседямиэлементаAi,j,матрицы Aбудем считать элементы AK,L, для которых i-1£ K £i+1иj-1£ L £j+1; (K, L) ¹ (i, j).Сформироватьматрицу Bпутем «сглаживания» матрицы A –заменой каждого элемента A средним арифметическим его соседей.

5. Заданы целочисленные матрицы A, B размерностью N×M.Поменять местами столбец матрицы A,где расположен минимальный элемент, со столбцом матрицы B, где расположен максимальный элемент.

6. Заданы целочисленные квадратные матрицы A, B размерностью N.Вывести на экран значения той матрицы, которая содержит больше строк, с положительной суммой элементов.

7. Заданы целочисленные квадратные матрицы A, B размерностью N.Поменять местами строку матрицыA,которая содержит только положительные элементы и имеет минимальный номер в матрице A, со столбцом матрицы B, номер которого совпадает с номером найденной строки матрицы A.Если строка в матрице A не найдена, то выдать соответствующее сообщение.

Строки

Строка – это последовательность символов.

В программе на языке Object Pascal можно определить некоторую максимальную длину строки (таблица 3.1), а фактически строки могут содержать меньшее количество символов или не содержать их совсем (пустая строка). При выполнении программы длина строки может изменяться.

Таблица 3.1 Строковые типы в языке Object Pascal

Тип Максимальная длина
ShortString AnsiString String String[<Длина>] WideString 255 (символы ASCII) ~231 (~2 Гб, символы ASCII) 255 или ~2 Гб ( {$H- } – ShortString, {$H+} – AnsiString ) ShortString, максимальная длина = Длина ~230 (~1 Гб, символы Unicode)

Строковые типы AnsiString, WideStringфизически представляют последовательность символов, ограниченную в конце нулевым символов (так как это принято в языкахC/C++).

Физическое представление типа ShortString приведено на рисунке 3.1.

Рисунок 3.1 – Физическое представление строки ShortString

Вы можете использовать индексирование для получения значения символа строки. Например, S[i] – значение i-го символа строки S.

Существует множество операций над строками, наиболее важные их них следующие:

§ Операция конкатенации(+) применяется для объединения двух строк в одну результирующую строку

§ Операции отношения ( =, <>, >, <, >=, <= ) используются для сравнения двух строк. При сравнении строк используется понятие лексикографического (алфавитного) порядка. Результат выполнения операций отношения над строками имеет логический тип

§ Выбор подстроки при помощи позиционного индекса.Это операция выделяет подстроку (непрерывную последовательность символов) по позиции ее первого символа в исходной строке и указанной длине подстроки

§ Выбор подстроки на основе сопоставления с образом.Операция поиска в строке подстроки, соответствующей заданному образцу (символу или последовательности символов)

§ Форматирование ввода-вывода. Использование строк для облегчения форматирования данных при выводе или вводе.

В языке Object Pascal реализованы многие из этих операций.

На рисунке 3.2 приведены некоторые из них:

Процедуры:

Delete(St, Poz, N)– удаление N символов строки St, начиная с позиции Poz.

Insert(St1, St2, Poz) – вставка строки St1 в строку St2, начиная с позиции Poz.

Функции:

Copy(St, Poz, N) – возвращает подстроку из строки St, начиная с символа в позиции Pozи длиной N символов

Length(St) – возвращает длину строки St.

Pos(St1, St2) – поиск первого появление подстроки St1в строке St2. Результат – позиция символа, начиная с которого подстрока St1расположена встроке St2;в противном случае – 0.

IntToStr(n)– преобразование целого числа n в строку.

StrToInt(St)– преобразование строки St в целое число.

 

Рисунок 3.2 – Примеры работы со строками