Двумерные массивы
Напишите программу, которая осуществляет обработку информации по одному из условий, заданных ниже.
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 – Примеры работы со строками