СТРОКОВЫЙ ТИП ДАННЫХ.

МНОГОМЕРНЫЕ МАССИВЫ.

Многомерные массивы – это матрицы, имеющие строки и столбцы. Если в форме описания массива задан один индекс, массив называется одномерным, если два – двумерным, если 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