Сделай Сам Свою Работу на 5

СИМВОЛЬНЫЕ МАССИВЫ И СТРОКИ





Символьными называют массивы, элементами которых являются символы. Такие массивы традиционно использовались для представления символьной информации, например, различных текстов. Обработка символьных массивов в Паскале имеет некоторые особенности.

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 Все материалы защищены законодательством РФ.