Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab№8.doc
Скачиваний:
1
Добавлен:
17.07.2019
Размер:
1.1 Mб
Скачать

Методические указания для выполнения лабораторных работ по дисциплине

И НФОРМАТИКА

Специальность:

СОД

к. ф. - м. н., доц. каф. Информатика Белинская С.И.

Лабораторная работа № 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]