Лабораторная работа № 10-11.
Тема: Создать программу с использованием процедур и функций.
Цель работы: применение теоретических знаний и получение практических навыков составления блок-схем и программ для реализации алгоритмов с использованием процедур и функций на языке Pascal.
Пояснения к работе:
Символы и строки
Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании.
Строка имеет две разновидности длины:
• общая длина строки, которая характеризует размер памяти, отводимый строке при описании;
• текущая длина строки (всегда меньше или равна общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени.
В языках программирования используется два способа реализации строк.
В -первом способе реализации текущая длина строки указывается в нулевом (то есть имеющем индекс 0) элементе строки. В этот элемент зaписывается символ, код которого равняется значению текущей длины. Нулевой элемент строки при этом сделан невидимым для пользователя, однако использовать его в программах (записывать в него и извлекать из него информацию) хотя не рекомендуется, но в принципе допускается. Поскольку каждый символ занимает один байт памяти, то, при таком способе указания текущей длины, максимально допустимая длина строки будет ограничена максимальным значением, которое можно записать в один байт памяти. То есть максимальная текущая длина строки может быть не более 255 символов.
Преимуществом такого способа представления строк является чрезвычайно простой доступ к значению текущей длины строки, что позволяет эффективно выполнять работу со строками. Недостаток состоит в ограничении на максимальную длину строки.
В Turbo Pascal версии 7.0, также как и во всех предыдущих версиях, рассмотренному способу реализации строк соответствует предопределенный тип String. Тип string – строка, во многом похож на одномерный массив символов, однако, в отличие от него, количество символов в строке может меняться от 0 до N, где N- максимальное количество символов в строке. N может быть любого порядкового типа.
Объявление строки.
Var имя_переменной: string [N];
Допускается не указывать N. В этом случае по умолчанию будет браться максимально возможная длина(256), а конец ввода будет определяться нажатием клавиши Enter. Над длиной строки можно осуществлять необходимые действия и таким образом изменять длину.
Стандартные процедуры и функции для работы со строками.
Concat (S1, S2, S3,…,Sn)- возвращает строку, представляющую из себя сложение указанных строк (S3:=concat(‘abc’, ‘12’)).
Copy (St, Index, Count)- копирует из строки St, начиная с символа Index, количество символов Count.
Delete (St, Index, Count)- удаляет из строки St, начиная с символа Index, количество символов Count.
Insert (subst, St, Index)- вставляет подстроку subst в строку St, начиная с символа с номером Index.
Length (St)- возвращает длину строки St.
Pos (subst, St)- отыскивает в строке St подстроку subst и возвращает номер позиции с которой она начинается. Если подстрока не найдена то возвращает ноль.
Операции отношения выполняются над двумя строками посимвольно слева на право с учетом внутренней кодировки символов.