Лекция "Строковые типы данных в языке Турбо Паскаль"

Медиа
Лекции
docx
Информатика
СCУЗ, ВУЗ
11.03.2017
Данные строкового типа – это последовательность символов переменной длины. Такой тип еще называют типом string. Он во многом похож на одномерный массив символов, однако, в отличие от последнего, количество символов в строке–переменной может меняться от 0 до N, где N – максимальное количество символов в строке. Тип данных string определяется следующим образом (рис. 13): Описание строкового типа состоит из ключевого слова string, после которого в квадратных скобках указано максимальное количество символов строки данного типа. Это количество может выражаться с помощью целой константы или имени целой константы. Если максимальный размер строки не указан, то он автоматически принимается равным 255 – максимально возможная длина строки.
билет 15 тема2.docx
билет 15 тема2 62 Строковые типы данных в языке Турбо Паскаль Данные строкового типа – это последовательность символов переменной длины. Такой тип еще называют типом string. Он во многом похож на одномерный массив символов, однако, в отличие от последнего, количество символов в строке–переменной может меняться от 0 до N, где N – максимальное количество символов в строке. Тип данных string определяется следующим образом (рис. 13): Описание строкового типа состоит из ключевого слова string, после которого в квадратных скобках указано максимальное количество символов строки данного типа. Это количество может выражаться с помощью целой константы или имени целой константы. Если максимальный размер строки не указан, то он автоматически принимается равным 255 – максимально возможная длина строки. (Существуют еще ASCIIZ–строки, длина которых может достигать 65536 символов, но для работы с такими строками нужна особая директива компилятору). Длина переменной такого типа может динамически изменяться между 1 и значением константы. Символы в строке следует воспринимать как пронумерованные в интервале от 1 до значения константы. Операции над строками Строки можно присваивать, сливать и сравнивать. Присваивание последовательности символов строковым переменным осуществляется с помощью оператора присваивания. С правой стороны оператора присваивания может находиться произвольное строковое выражение, а с левой имя строковой переменной. В Турбо Паскале существуют два пути обработки переменных типа string. Первый путь предполагает обработку всей строки как единого целого, то есть единого объекта. Второй путь рассматривает строку как составной объект, состоящий из отдельных символов, то есть элементов типа char, которые при обработке доступны каждый в отдельности. Так, первый путь предоставляет возможность присвоения строковой переменной за одну операцию значения целой строки символов: str_1 := ‘Это строка!’. Присваиваемое значение строки, так же как и отдельный символ типа char, заключается в апострофы. Если апострофы опущены, то компилятор Пример: type cities = string [20]; names = string [12]. Переменные типа cities – строкового типа, то есть строки символов, состоящие максимально из 20 символов. Переменные типа names максимально могут состоять из 12 символов. Переменные можно объявить следующим образом: var ci: array [1..20] of char; na: array [1..12] of char. В этом случае говорят, что ci и na – символьные вектора. Символьные вектора можно рассматривать как строковые переменные, представляющие последовательности постоянной длины. Благодаря такой интерпретации имена символьных векторов и имена их элементов могут использоваться в строковых выражениях там, где могут использоваться имена строковых переменных. В этом примере при вводе можно записать сколько угодно символов, но с помощью readln(s) можно считать максимум 10 символов, так как по описанию переменная s может содержать максимум 10 символов. Прочие символы игнорируются. Считываемых символов может быть и меньше 10.
рассматривает приведенный фрагмент текста как числовую величину или как идентификатор. Второй подход обеспечивает доступ к отдельным символам строки по номеру их позиции: str_1 [1] := ‘Э’; str_1 [2] := ‘т’; str_1 [3] := ‘o’; str_1 [4] :=’ ‘; str_1 [5] := ‘c’; str_1 [6] := ‘т’; str_1 [7] := ‘p’; str_1 [7] := ‘o’; str_1 [8] := ‘к’; str_1 [9] := ‘a’; str_1 [10] := ‘!’ 63  Основные процедуры и функции  обработки строковых данных. Примеры
Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной.Пример. var word: string; begin write (‘Введите, пожалуйста, слово: ‘); readln (word); writeln (‘Это слово состоит из ’, length(word) : 3, ‘ букв!’) end. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы. Функция Upcase Функция Length Функция Copy Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа, поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.Пример. var word : string; i : byte; begin word := ‘Фирма Microsoft’; for i := 1 to length (word) do word [i] := upcase (word[i]); writeln (word); {Выводится текст “ Фирма MICROSOFT”} end. Функция Сopy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая функцию copy, необходимо указывать следующие параметры: 1) имя строки, из которой должен извлекаться копируемый фрагмент; 2) позицию в строке, начиная с которой будет копироваться фрагмент; 3) число копируемых символов.Пример. var ws: string [79]; w1,w2,w3 : string [20]; begin ws := ‘фотографирование’; w1 := copy (ws, 1, 4); writeln (w1); w2 := copy (ws, 5, 4); writeln (w2); w3 := copy (ws, 10, 3); writeln (w3); end. В результате выполнения программы на экран выводится: фото граф ров С помощью функции Pos осуществляется поиск определенного фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции в строке, с которой фрагмент Функция Pos
начинается. Если в строке фрагмент не найден, то функция возвращает ноль. var ws : string [79]; sw : string [20]; p : byte; begin ws := ‘Электрификация’; sw := ‘Эл’; p := Pos (sw,ws); writeln(p); sw := ‘три’; p := Pos (sw,ws); writeln(p); sw := ‘к’; p := Pos (sw,ws); writeln(p); end. В результате выполнения программы на экране появляется: 1 5 4 Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск. Большие и маленькие буквы считаются различными символами. Процедуры Insert и Delete Процедура Insert вставляет в исходную строку какую-либо другую строку, начиная с указанной позиции. Оператор Insert (w1, ws, 4); вставит строку w1 в строку ws перед 4–ой позицией. Процедура Delete удаляет в исходной строке фрагмент определенной длины, начинающийся с указанной позиции. Оператор Delete (ws, 2, 3); удаляет из строки ws фрагмент, состоящий из трех символов и начинающийся со второй позиции. var ws : string [79]; sw : string [20]; begin ws := ‘компьютеризация’; writeln (ws); delete (ws, 1, 7); writeln (ws); delete (ws, 3, 2); writeln (ws); sw := ‘Г’; insert(sw, ws, 1); writeln (ws); sw := ‘не’; insert(sw, ws, 3); writeln (ws); end. В результате работы данной программы на экран будут выведены компьютеризация еризация ерация Герация Генерация Во избежание ошибок при применении процедур Insert и Delete указанные в списке параметров позиции должны обязательно присутствовать в обрабатываемых строках. Процедура Str следующие строки: Процедура Str (x [:width [:decimals]], st) преобразует число х любого вещественного или целого типов в строку символов st. Параметры width и decimals, если они присутствуют, задают формат преобразования. Width определяет общую ширину поля, выделенного под
соответствующее символьное представление вещественного или целого числа х, а decimals – количество символов в дробной части (имеет смысл только в том случае, когда х – вещественное число). var y : integer; x : real; st : string [8];begin y := 45; str(y, st); writeln (st); y := 45; str(y:3, st); writeln (st);y := -2; str(y:5, st); writeln (st); := st); str(x:6:2, Вывод на экране дисплея:45,_45,_ _ _-2,_4.6Е+01,_4.568Е+,_45.68,_ 45.678; str(x:7, st); writeln (st);str(x:10, st); writeln (st); writeln (st); str(x:8:3, st); writeln (st);end. _45.678 x Процедура Val Процедура val (st, x, code) преобразует строку символов st во внутреннее представление целой или вещественной переменной х, которое определяется типом этой переменной. Параметр code содержит ноль, если преобразование прошло успешно, и тогда в х помещается результат преобразования, в противном случае он содержит номер позиции в строке st, где обнаружен ошибочный символ, и в этом случае содержимое х не меняется. Пробелы в строке st могут присутствовать лишь в начале. var x : real; y : integer; st : string; begin st := ’45.678'; val(st,x,y); writeln (x:6:3,’ ‘,y); x := 0; st := ‘3,1415’; val(st,x,y); writeln (x:6:3,’ ‘,y); st := ‘ 45.678’; val(st,x,y); writeln (x:6:3,’ ‘,y); st := ’45.6 ‘; val(st,x,y); writeln (x:6:3,’ ‘,y); end. Результат выполнения программы:45.678 0, 0.000 2,45.678 0, 0.000 5 {запятая - недопустимый символ}
прямая ссылка
Публикация обрабатывается. Зайдите на страницу позже.
Друзья! Добро пожаловать на обновленный сайт «Знанио»!

Если у вас уже есть кабинет, вы можете войти в него, используя обычные данные.

Что-то не получается или не работает? Мы всегда на связи ;)