Методические указания и задания к лабораторным работам для учащихся ссуз специальности Т1002



страница21/31
Дата14.08.2018
Размер2.1 Mb.
#43969
ТипМетодические указания
1   ...   17   18   19   20   21   22   23   24   ...   31

Порядок выполнения работы


  1. Изучить теоретические сведения по теме “ Изучение наиболее часто употребляемых универсальных процедур и оформление их в виде личной библиотеки программиста”.

  2. Получить у преподавателя индивидуальное задание. Разработать личную библиотеку, включив в нее процедуры, определенные в задании.

  3. Показать работающую программу преподавателю.

  4. Ответить на контрольные вопросы.

Контрольные вопросы


  1. Стандартные функции и процедуры в Паскале.

  2. Концепция разработки собственного модуля со стандартными процедурами и функциями.

  3. Разработка собственных процедур и функций, включаемых в личную библиотеку программиста.

  4. Пример программы.



Лабораторная работа № 23

Написание программы на языке Паскаль с использованием стандартных строковых процедур и функций



Цель работы: формирование знаний и умений по работе со строками. Приобретение навыков работы со стандартными строковыми процедурами и функциями.

Краткие теоретические сведения


Строка — это последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентифи­катор String, за которым следует заключенное в квадратные скобки значение мак­симально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.

Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант.

Недопустимо применение строковых переменных в качестве селектора в операторе Case.

Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.



Формат описания строкового типа

Type

<имя типа> =String [максимальная длина строки];

Var

<идентификатор, . . . > : <имя типа>;

Переменную типа String можно задать и без описания типа:



Var

<идентификатор, . . . > : String [максимальная длина строки];
Фрагмент описания строковых данных

Const

Address = 'ул. Переверткина, 25'; {Строковая константа}

Type

Flot = string[125];

Var

Fstr : Flot; {Описание с заданием типа)

St1 : String; {По умолчанию длина строки St1= 255}

St2, St3 : string[50] ;

Nazv : string[280]; (Ошибка, длина строки Nazv превышает 255}
Строка в языке Турбо Паскаль трактуется как цепочка символов. (Для строки из N символов отводится N+1 байт; N байт-для хранения символов строки, а один байт — для значения текущей длины строки).

К любому символу в строке можно обратиться, указав его номер. В самом начале строки (под нулевым номером) расположен байт, содержащий значение текущей длины строки.



0

1

2

3



N+1

N

текущая длина строки

Поэтому для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1.

Например, для раз­мещения в памяти переменных Fstr, St1, St2 требуется соответственно 126, 35 и 51 байт (см. приведенный выше пример).

Рассмотрим структуру размещения строки в памяти на следующем примере. Пусть М — максимальная длина строки, L — текущая длина, А — ячейка памяти.

Тогда:

А —содержит величину текущей длины;



А+1 — первый символ строки;

A+L — последний значащий символ;

A+L+1

… — незанятые ячейки памяти



А+М

Стандартные строковые процедуры и функции


Delete (Str,Poz,N) — удаление N символов строки Str, начиная с позиции Poz. Если значение Poz > 255, возникает программное прерывание.

Например:

Значение Str

Выражение

Результат

'абвгде'
'река Волга'

Delete(Str, 4, 2);
Delete(Str, 1, 5);

'абве'
'Волга'

Insert (Strl, Str2, Роz) –вставка строки Str1 в строку Str2, начиная с позиции Poz.

Например:

Var


Sl, S2 : string[ll] ;

S1 := ' ЕС ';



S2 := 'ЭВМ1841';

Insert(S1,S2,4) ;

В результате выполнения последнего выражения значение строки S2 станет равным 'ЭВМ ЕС 1841'.

Str (IBR,St) — преобразование числового значения величины IBR и помещение результата в строку St. После IBR может записываться формат, аналогичный фор­мату вывода. Если в формате указано недостаточное для вывода количество разря­дов, поле вывода расширяется автоматически до нужной длины.

Например:


Значение IBR

Выражение

Результат

1500

4.8Е+03


76854

Str(IBR:6,St)

Str(IBR:10,St)

Str(-IBR:3,St)


'_1500'

'____4800'

'—76854'


Val (St,IBR,Code) — преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содер­жать незначащих пробелов в начале и в конце. Code — целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно нулю, если ошибка обнаружена (например, литерное значение переводится в цифровое), Code будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.

Например:

Значение St

Выражение

Результат

'1450'

'14.2Е+02'

'14.2А+02


Val(St,IBR,Cod) Val(St,lBR,Cod) Val(St,IBR,Cod)

Code=0

Code=0


Code=5

Copy (St,Poz,N) — выделяет из строки St подстроку длиной N символов, начиная с по­зиции Poz. Если Poz > Length(St), то результатом будет пробел; если Poz > 255, воз­никнет ошибка при выполнении. Функция Length описана ниже. Poz, N — цело­численные выражения.

Например:

Значение St

Выражение

Результат

'ABCDEFG' 'ABCDEFG'

Copy(St, 2, 3) Copy(St, 4, 10)

'BCD'

'DEFG'


Concat (Strl,Str2,...,StrN) — выполняет сцепление строк Strl, Str2,..,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцеплен­ных строк не должна превышать 255.

Например:

Выражение

Результат

Concat('AA','XX','Y')

Соnсаt('Индекс','394063')



'AAXXY' 'Индекс 394063'


Length (St) — вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип.

Например:

Значение St

Выражение

Результат

'123456789' 'System 370'

Length(St) Length(St)

9

10



Pos (Strl,Str2) — обнаруживает первое появление в строке Str2 подстроки Strl. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Strl. Если в Str2 подстроки Strl не найдено, результат равен 0.

Например:

Значение Str1

Выражение

Результат

'abcdef '

'abcdef'


Pos('de',Strl) Pos('r',Strl)

4

0



UpCase (Ch) — преобразует строчную букву в прописную. Параметр и резуль­тат имеют литерный тип. Обрабатывает буквы только латинского алфавита.

Значение Ch

Выражение

Результат

'd'

UpCase(Ch)

'D'


Поделитесь с Вашими друзьями:
1   ...   17   18   19   20   21   22   23   24   ...   31




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница