СИМВОЛЬНЫЕ МАССИВЫ И СТРОКИ
Символьными называют массивы, элементами которых являются символы. Такие массивы традиционно использовались для представления символьной информации, например, различных текстов. Обработка символьных массивов в Паскале имеет некоторые особенности.
1. Объявляя символьный массив как константу, значения символов можно указывать поэлементно:
Const d: array [1..10] of char = (‘m’, ’f’, ’a’, ’g’, ’c’, ’v’, ’u’, ’e’, ’y’, ’l’, ’9’);
или целиком, используя строковую константу, длина которой должна строго соответствовать размеру массива:
Const d: array [1..10] of char = (‘mfagcvueyl9’);
2. Присвоить значение символьному массиву также можно целиком, используя строковую константу, длина которой должна совпадать с длиной массива:
Var S: array[1..10] of char; … S:=’Пример один’;
3. При вводе элементы символьного массива нельзя разделять пробелами, так как пробел будет восприниматься как символ:
Var S: array[1..10] of char; … For I:=1 to 10 do Read(S[i]); Readln;
4. Символьный массив можно выводить поэлементно в цикле, как обычный одномерный массив, а можно – целиком, одним оператором Write или Writeln: Writeln(S);
5. В операторе вывода допускается использование операции слияния символьных массивов, обозначаемой символом «+». Результатом этой операции будет новый символьный массив, число элементов которого равно сумме размеров исходных массивов, а значениями элементов – элементы исходных массивов, последовательно записанные друг за другом:
Writeln(St1+’ ‘+St2);
6. Работа с одномерными символьными массивами осуществляется поэлементно, как с обычными массивами.
Строки.Для упрощения работы с символьными массивами в Паскале существует специальный тип данных – строковый (рис. 6). Целое без знака - это максимальная длина строки, которая не должна превышать 255 байт. Если длина не указана, то по умолчанию принимается максимальное значение – 255 символов, т.е., строка представляет собой одномерный символьный массив, индексы которого изменяются от 0 до максимального значения, указанного при объявлении строкового типа. Следовательно, физическая длина строки на единицу превышает максимальную.
Объявление переменных строкового типа, так же как и массивов, можно выполнить двумя способами:
· В операторе объявления переменных, например:
Var S1, S2: string[40]; S: string;
· С предварительным объявлением типов, например: Type S40=string[40]; St: string;
Var S1, S2: S40; S: St;
Рис. 6. Синтаксическая диаграмма <Объявление строкового типа>
Вводить значения строк можно с помощью одного оператора Readln(S), а выводить с помощью оператора Writeln(S).
Обрабатываются строки как символьные массивы, с помощью счетного или другого цикла:
Var S: String[20]; …
Readln(S);
For i:=1 to 20 do If S[i]=’A’ then k:=k+1;
Writeln(S);…
Над строковыми значениями определены операции отношения <, £, >, ³, =, <>, а также операции сложения + (конкатенации). Для этих операций справедливы правила: более короткая строка меньше длинной; при равных длинах строк происходит сопоставление элементов строк с учетом лексикографической упорядоченности значений элементов типа CHAR.
Специальные операции над строками:
Concat(x1,x2,…,xn) – в результате получается строка, полученная сложением строк х1,х2,…,хn;
Copy(x,y,z) – в строке х, начиная с позиции у, выделяется подстрока длиной z;
Length(x) – определяется длина строки х по количеству символов;
Pos(x,s) – определяется номер позиции первого вхождения подстроки х в строку s, если вхождение отсутствует, то в результате получается 0;
Str(f,x) – число f преобразуется в символьную строку х;
Delete(x,y,z) – из строки х удаляется, начиная с позиции у, подстрока z;
Insert(x,s,y) – в строку s, начиная с позиции у, вставляется подстрока х;
Val(x,f,z) – строка х преобразуется в числовое представление f, в z при успешном преобразовании помещается 0.
ПРИЛОЖЕНИЕ (варианты заданий)
Вариант 1.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Найти сумму чисел массива.
Вариант 2.Дан двухмерный массив чисел А(n,n), где n – количество строк и столбцов в массиве. Найти сумму чисел, находящихся выше главной диагонали массива.
Вариант 3.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Дано число k. Определить, сколько чисел в массиве, больших k.
Вариант 4.Даны два одномерных массива чисел А(n) и В(n), где n – количество элементов в массиве. Вычислить новый массив С(n)= А(n)+ В(n).
Вариант 5.Даны два одномерных массива чисел А(n) и В(n), где n – количество элементов в массиве. Подобрать такие элементы из массивов А(n) и В(n), так чтобы произведение А(n)хВ(n) было наибольшим.
Вариант 6.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Определить номера стоки и столбца наименьшего элемента массива.
Вариант 7.Дан одномерный массив чисел А(n), где n – количество элементов в массиве. Определить номера наибольшего элемента массива.
Вариант 8.Даны два одномерных массива координат точек Х(n) и У(n), где n – количество точек. Определить номера точек, лежащих в первой четверти Декартовой системы координат.
Вариант 9.Дан двухмерный массив чисел А(n,n), где n – количество строк и столбцов в массиве. Обнулить элементы массива, лежащие на и ниже главной диагонали массива.
Вариант 10.Дана двухмерная матрица чисел А(n,n), где n – количество строк и столбцов в массиве. Транспонировать матрицу.
Вариант 11.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Найти произведение чисел массива.
Вариант 12.Дан двухмерный массив чисел А(n,n), где n – количество строк и столбцов в массиве. Найти сумму чисел, находящихся ниже главной диагонали массива.
Вариант 13.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Дано число k. Определить, сколько чисел в массиве, меньших k.
Вариант 14.Даны два одномерных массива чисел А(n) и В(n), где n – количество элементов в массиве. Вычислить новый массив С(n)= А(n)- В(n).
Вариант 15.Даны два одномерных массива чисел А(n) и В(n), где n – количество элементов в массиве. Подобрать такие элементы из массивов А(n) и В(n), так чтобы произведение А(n)хВ(n) было наименьшим.
Вариант 16.Дан двухмерный массив чисел А(n,m), где n – количество строк, m – количество столбцов в массиве. Определить номера стоки и столбца наибольшего элемента массива.
Вариант 17.Дан одномерный массив чисел А(n), где n – количество элементов в массиве. Определить номера наименьшего элемента массива.
Вариант 18.Даны два одномерных массива координат точек Х(n) и У(n), где n – количество точек. Определить номера точек, лежащих в второй четверти Декартовой системы координат.
Вариант 19.Дан двухмерный массив чисел А(n,n), где n – количество строк и столбцов в массиве. Обнулить элементы массива, лежащие на и выше главной диагонали массива.
Вариант 20.Дана двухмерная матрица чисел А(n,n), где n – количество строк и столбцов в массиве. Транспонировать матрицу.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|