Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод-вывод элементов матрицы




Матрица

Пример 34

Встроенные процедуры и функции обработки строк

В Турбо-Паскале имеется несколько стандартных процедур и функций, предназначенных для обработки строковых переменных. Приведем наиболее полезные из них:

Concat (S1[,S2,...,Sn]: string): string - функция возвращает строку, полученную в результате сцепления строк S1, S2,...,Sn. (эквивалентна операции конкатенации);
Copy (St: string; Index: integer; Count: integer): string - функция возвращает подстроку, выделенную из исходной строки St длиной Count символов, начиная с символа с номером Index;
Delete (var St: string; Index, Count: integer) - процедура удаляет из строки St подстроку длиной Count символов, начиная с символа с номером Index исходной строки;
Insert (Subst: string; var St: string; Index: integer) - процедура вставляет подстроку Subst в исходную строку St, начиная с символа с номером Index исходной строки;
Pos (Subst, St: string): byte - функция отыскивает первое вхождение подстроки Subst в строке St и возвращает номер позиции, с которой она начинается; если вхождение не установлено, возвращается 0. Более подробный список стандартных процедур и функций Турбо-Паскаля приведен в [9].

В качестве примера обработки строковых переменных рассмотрим функцию определения первого вхождения строки Str2 в строку Str1, начиная с символа с номером N в строке Str1 (пример 34).
Пример вызова функции: K = PosN (2, 'abcabc', 'ab'); Переменная K получит значение 4.

Исходные данные: Str1, Str2, N
Результат: PosN - номер символа строки Str1, с которого начинается вхождение строки Str2;
  PosN = 0, если вхождение не установлено.

 

function PosN(N: integer; Str1,Str2: string): integer; {определение первого вхождения строки Str2 в строку Str1, начиная с номера N} var I, J, K: integer; D1, D2: integer; {длины строк Str1, Str2} Fl: boolean; {флаг} begin D1:= Length(Str1); D2:= Length(Str2); PosN:= 0; {инициализация} if (D1 - N + 1 >= D2) and (N > 0) then {вхождение возможно} begin Fl:= FALSE; I:= N; K:= D1-D2+1; while not Fl and (I <= K) do {цикл просмотра возможных вхождений} begin Fl:= TRUE; J:= 1; while Fl and (J <= D2) do {цикл проверки вхождения Str2 в Str1, начиная с I-го символа строки Sr1} begin if Str2[J] <> Str1[I+J-1] then Fl:= FALSE; J:= J + 1; end; I:= I+1; end; if Fl then PosN:= I-1 {если Fl = TRUE, то вхождение установлено} end; end;

 

Развитый математический аппарат обработки элементов матрицы определил широкое использование этой структуры данных. В памяти ЭВМ матрицы хранятся по строкам. Соответственно ввод и вывод элементов матрицы в программе осуществляется построчно. Приведем фрагмент программы, осуществляющей построчный ввод элементов матрицы A типа Matr:

type Matr = array[1..5,1..5] of integer; объявлен тип матрицы 5*5 элементов} var A: Matr; {объявлена матрица A целого типа} N, M, I, J: integer;... write('Введите количество строк < = 5 '); read(N); write('Введите количество столбцов < = 5 '); read(M); for I:= 1 to N do for J:= 1 to M do read(A[I,J]);

При выводе матрицы в программе необходимо предусмотреть смену строки экрана, когда заканчивается каждая строка матрицы, например:

writeln('Вывод матрицы'); for I:= 1 to N do begin for J:= 1 to M do write(A[I,J]:5);{вывод строки матрицы} writeln;{смена строки экрана} end;

Если размерность матрицы достаточно велика, то можно осуществить вывод с заданным числом элементов в строке, например:

writeln('Вывод матрицы по 4 элемента в строке'); for I:= 1 to N do begin for J:= 1 to M do begin write(A[I,J]:7); if J Mod 4 = 0 then writeln; {смена строки после вывода 4-х элементов} end; writeln; {вывод каждой новой строки матрицы с новой строки экрана} end;

Этот фрагмент выводит элементы каждой строки матрицы следующим образом: 4 элемента по 7 позиций в строке экрана, оставшиеся M-4 элементов - в следующей строке. После чего осуществляется смена строки экрана и вывод очередной строки матрицы.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 670; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.