Методические указания для выполнения лабораторных работ по дисциплине
И НФОРМАТИКА
Специальность:
СОД
к. ф. - м. н., доц. каф. Информатика Белинская С.И.
Лабораторная работа № 7
Строковые переменные
Теоретическая часть
Общие положения
Строковая переменная – цепочка символов, заключающаяся в апострофы
Тип строковой переменной – STRING
Похож на одномерный массив символов – ARRAY [1..N] OF CHAR
Длина строки - 255
Описание в разделе TYPE
Type
Group=String[10];
Var
Gr1, Gr2: Group;
Описание в разделе описания переменных
Var
FAM:String[15];
Name:String[10];
SPEC:String;
Строковая переменная занимает в памяти количество байт, равное длине строки
Выделяется еще один байт (нулевой) для хранения значения длины строки
Пример
Var
FAM:String[15];
…..
If Fam[1]=‘A’
Then Writeln(‘Фамилия’, FAM,’ начинается на А’);
Пример 1
Var
FAM:String[15];
N:Byte;
….
FAM:=‘Иванов’;
N:=ORD(FAM[0]);
Writeln(‘В фамилии ’,FAM,N:2,’ символов’);
Ввод строковой переменной
Ввод осуществляется:
С помощи оператора присвоения;
С помощи процедуры ReadLn;
С помощи типизированной переменной
Пример 1:
Marka_ibm:=‘Pentium-4’
Пример 2:
Var
Fam,name:string[15];
….
Writeln(‘Введите фамилию’);
ReadLn(Fam);
Writeln(‘Введите имя’);
ReadLn(name);
Пример 3
Const
Vyz=‘Иргупс’;
Операции со строковыми переменными
К строковым переменным применима операция конкатенации (сцепления), обозначаемая символом «+». При выполнении этой операции к первой строке добавляется вторая строка, при этом их общая длина не должна превышать 255 символов, например:
Var
STUVDENT: String;
FAM: String [15];
NAME: String [10];
FAC: String [5);
FAM:= 'Марков';
NAME:= 'Николай';
FAС:= 'Электротехнического';
STUDENT: = FAM+NAME+, '-студент'. +FAC+, 'факультета';
WriteLn (STUDENT);
Будет напечатано: Марков Николай-студент электротехнического факультета.
Кроме операции конкатенации, к строковым переменным применимы операции отношения: (=,<>,>,<,>=,<=,).
При сравнении надо учитывать, что коды символов цифр меньше кодов латинских и русских букв, коды латинских букв меньше кодов русских букв, коды строчных букв меньше кодов прописных букв.
цифры - 48 -57;
строчные латинские - 65 -90;
прописные латинские - 97 -122;
например:
'А'(лат) < 'а'(лат)
'А'(лат)<'А'(рус)
'5' > '45'
'Speed' < 'speed'
'date' = 'date'.
Встроенные функции и процедуры для строкового типа
Функция CONCAT (сцепление) типа STRING
Обращение к функции:
CONCAT (STl,ST2,[STn]: STRING): STRING
При выполнении функции строки STl,ST2,..STn сцепляются без пробелов в порядке перечисления. Длина полученной последовательности не должна превышать 255 позиций. Функция CONCAT по результату аналогична операции сцепления, т.е. для строк А и В
CONCAT (А,В) = А+В
Var
ST1.ST2.ST3: String [10];
ST1:= 'Студент'; ST2:= 'отличник'; ST3:= CONCAT(ST1, 'Марков', ST2)
WriteLn (ST3)
Будет напечатано - Студент Марков - отличник.
Функция COPY (копирование) типа STRING
Обращение к функции:
COPY (ST : STRING; N,M : INTEGER): STRING
Функция COPY выделяет из строкового выражения ST подстроку, начиная с позиции N в строке ST длинной М. N и М - целые числа. Если N+M больше длины строки, то выделяется часть символов в пределах строки.
Если N больше длины строки ST, то выделяется пустая строка.
Процедура в TURBO-PASCAL - это особым образом оформленный фрагмент программы, имеющий собственное имя. Работа процедуры осуществляется по ее вызову с указанным именем. Для обмена информацией между основной программой и процедурой используются один или несколько параметров вызова.
Функция отличается от процедуры тем, что результат работы возвращается в виде значения этой функции, и вызов функции может использоваться наряду с другими операндами в выражениях.
Основные действия над строковыми переменными осуществляются с помощью встроенных процедур и функций. Результатом работы процедур и функций могут быть либо строка, либо число. В первом случае процедуры и функции называются строковыми, во втором - числовыми.
Var
ST1, ST2, ST3, ST4 : String [15]
ST1:= 'Марковский Николай'
ST2;= COPY (STl,1,4) - результат Марк
ST3:= COPY (ST1,1,6) - результат Марков
ST4: = COPY (ST1,12,7) - результат Николай.
Функция UPCASE (верхний регистр) типа CHAR
Обращение к функции: UPCASE (СН: CHAR)
Функция возвращает для символьного выражения СН, которое должно представлять собой прописную (малую) латинскую букву, соответствующую заглавную букву. Если символ СН - любой другой символ, он возвращается без преобразований |
Процедура DELETE (удалить) типа STUNG
Обращение к процедуре:
DELETE (ST: STRING, N, M: INTEGER)
Процедура удаляет из строки ST М символов, начиная с символа в позиции N строки ST. N и М - целые числа.
Var
ST1: String (20)
…
ST1:= 'Хорошая сегодня погода?'
DELETE (ST1,9,3);
WriteLn(ST1); Будет напечатано: Хорошая сегодня погода?
DELETE (ST1,23,1)
WriteLn(ST1); Будет напечатано: Хорошая сегодня погода
Процедура INSERT (вставить) типа STRING
Обращение к процедуре:
INSERT (SUBST, ST : STRING, M: INTEGER)
Процедура вставляет подстроку SUBST в строку ST, начиная с позиции М строки ST.
Подстрока SUBST и строка ST - строкового типа; М - целое число. Если значение М превышает длину строки ST, подстрока SUBST присоединяется справа к ST. Если общая длина ST и SUBST превышает описанную в SТ, то лишние символы справа отсекаются.
Var
ST1, ST2, ST3: Siring [20];
……….
ST1:= 'Хозяин собаки';
ST2:= 'хороший';
ST3:= 'хорошей';
INSERT (ST3, ST1, 7);
WriteLn(ST1); Будет напечатано: Хозяин хорошей собаки
INSERT (ST2.ST1,1);
WriteLn(ST1); Будет напечатано: хороший Хозяин хорошей собаки
Процедура STR (преобразование числового значения) типа STRING
Обращение к процедуре:
STR (X[:WIDTH [: DEC]]: REAL OR INTEGER, ST: STRING): STRING
Процедура преобразует число X вещественного или целого типа в строку символов ST, так как это делает процедура WriteLn перед выводом.
Параметры WIDTH и DEC, если они присутствуют, определяют общее количество позиций под число X и число позиций под дробную часть.
Const А=-9;
Var
В: REAL;
ST1: String [3];
ST2: String [10];
……………
В:= 6.87;
ST1:= STR(A: 3); - результат -9
ST2:- STR(B: 10,6); - результат 6.870000