СТРОКОВЫЙ ТИП ДАННЫХ.
МНОГОМЕРНЫЕ МАССИВЫ.
Многомерные массивы – это матрицы, имеющие строки и столбцы. Если в форме описания массива задан один индекс, массив называется одномерным, если два – двумерным, если n – n-мерным. Такие матрицы можно описать следующим образом:
1) typet=array[1..3,1..4] of real;
var A:t;
2) typet=array[1..3] of array[1..4] of real;
var A:t;
В первом случае описывается каждый тип индекса, затем указывается простой базовый тип элементов массива real.
Во втором случае сначала описывается тип данных индекса [1..3], затем указывается сложный базовый тип array[1..4] of real;, который в свою очередь содержит описание типа другого индекса и простого базового типа элементов массива.
Если в программе необходимо выделить отдельные строки матрицы, то удобно ввести такое описание:
typet1=array[1..4] of real;
t=array[1..3] of t1;
varA:t;
B:t1;
Значения двумерного массива вводятся и выводятся аналогично одномерному массиву с помощью вложенного оператора цикла с параметром:
а) fori:=1 to 10 doб) for i:=1 to10 do
forj:=1 to 15 do for j:=1 to 15 do
readln(A[i,j]); writeln(A[i,j]);
Пример:
Определить количество положительных и отрицательных элементов матрицы А(10х15).
Решение:
program mas;
var a:array[1..10,1..15] of real;
pl,otr,i,j:integer;
begin
for i:=1 to 10 do
for j:1 to 15 do
begin
writeln(‘a[‘,i:2,’,’,j:2,’]=’);
readln(a[i,j])
end;
pl:=0;
otr:=0;
for i:=1 to 10 do
for j:=1 to 15 do
if a[i,j]>0 then pl:=pl+1 else otr:=otr+1;
writeln(‘pl=’,pl:9:2,’ otr=’,otr:9:2)
end.
Помимо числовой информации компьютер может обрабатывать символьную информацию. Pascal оперирует с символьной информацией, которая может быть представлена отдельными символами или строками символов.
Для хранения и обработки отдельных символов используется переменные типа char. Значением переменной типа char может быть любой символ. Переменная символьного типа должна быть объявлена в разделе описания переменных. Как и любая переменная программы, переменная типа char может получить значение в результате выполнения операторов присваивания или ввода. Если символьная переменная получает значение в результате выполнения операции присваивания, то справа от знака := должно стоять выражение типа char или символьная константа – символ, заключенный в двойные кавычки. Переменную типа char можно сравнить с другой переменной типа char или символьной константой. Сравнение основано на том, что каждому символу поставлено в соответствии число, причем символу ‘0' соответствует число меньшее, чем символу ‘9’, символу ‘A’ – меньшее, чем ‘B’, символу ‘Z’ – меньшее, чем ‘a’. Таким образом, можно записать:
‘0’<’1’< …<’9’< …<’A’<’B’< …<’Z’<’a’< …<’z’
Символам русского алфавита соответствуют числа большие, чем символам латинского алфавита, при этом справедливо следующее:
‘А’<’Б’<’В’< … <’Ю’<’Я’<’а’<’б’<’в’< … <’э’<’ю’<’я’.
Последовательность символов называется строкой. Для хранения и обработки последовательностей символов (строк) можно использовать массив символов. Помимо массивов символов для хранения и обработки строк можно использовать переменные типа string,за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Строковые данные могут использоваться в программе в качестве констант. Недопустимо применение строковых переменных в качестве селектора в операторе case. Определение строкового типа устанавливает максимальное количество символов которое может содержать строка. Переменную строкового типа можно определить через описание типа в разделе определения типов:
type <имя типа> = string [максимальная длина строки];
var <имя переменной> : <имя типа>;
или непосредственно в разделе описания переменных:
var <имя переменной> : string [максимальная длина строки];
Строка в языке Pascal трактуется как цепочка символов. (Для строки их N символов отводится N+1 байт; N байт – для хранения символов строки, а один байт – для значения текущей длины строки.) К любому символу в строке можно обратиться, указав его номер. В самом начале строки (под нулевым номером) расположен байт, содержащий значение текущей длины строки.
… | N+1 | N |