- •5.5.2. Стандартные функции для данных типа char
- •5.5.3. Определение переменных строкового типа. Особенности типа string
- •5.5.4. Строковые выражения
- •5.5.5. Строковые процедуры и функции
- •5.6. Пример программы
- •5.7. Варианты заданий
- •5.8. Содержание отчета (см. П. 1.10)
- •5.9. Контрольные вопросы
- •6.4. Порядок выполнения работы
- •5. Устно ответить на контрольные вопросы (п.6.9).
- •6. Оформить отчет (см. П. 1.10).
- •6.5. Справки по структуре и операторам Pascal-программы, использующей пользовательские процедуры и функции
- •6.5.1. Описание процедуры. Оператор процедуры
- •Структура описания процедуры
- •6.5.2. Описание функции. Указатель функции
- •6.5.3. Локализация имен в Turbo Pascal
- •6.6. Варианты заданий
- •6.7. Содержание отчета (см. П. 1.10)
- •6.8. Контрольные вопросы
- •5. Устно ответить на контрольные вопросы (п. 7.9).
- •6. Оформить отчет (см. П. 1.10).
- •7.5. Справки по файловым процедурам и функциям
- •7.5.1. Описание файловых переменных
- •7.5.2. Установочные и завершающие операции с файлами
- •7.5.3. Операции ввода-вывода
- •7.5.4. Операции перемещения по файлу, определение параметров файла
- •7.5.5. Обработка ошибок ввода-вывода
- •7.5.6. Текстовые файлы
- •7.6. Пример структуры программы
- •7.7. Варианты заданий
- •7.8. Содержание отчета (см. П. 1.10)
- •7.9. Контрольные вопросы
- •Основная литература
- •Дополнительная литература
- •Приложение. Титульный лист
- •Отчет о лабораторных работах по дисциплине «Информатика и программирование»
5.5.5. Строковые процедуры и функции
Информация о строковых процедурах и функциях дана в таблице 5.3.
Таблица 5.3
Назначение процедуры или функции |
Заголовок процедуры или функции |
Пример |
Удаление N символов строки St начиная с позиции Pos |
Delete (St: string, Pos,N: byte) |
St:= 'абвгде'; Delete(St, 4, 2); {St='абве'} |
Вставка строки Str1 в строку Str2 начиная с позиции Pos |
Insert ('*', Str2, 4) |
Str2:='абвгде'; Insert '*', Str2, 4 {Str2='абв*где'} |
Преобразование числового значения величины V(integer или real) и помещение результата в строку St |
Str (V: real, St: string) |
V:=1500; Str(V:6, St); {St:=' 1500'} |
Преобразование строки St в величину целочисленного или вещественного типа и помещение результата в V |
Val (St: string,V: real, Code: integer) |
St:='1.455'; Val(St,V,Cod); {V=1.455, Cod=0} |
Сцепление строк St1, St2,... |
Concat (St1,St2,..,Stn:string): string |
St1:=’За’; St2:=’дача’; Y:=Concat(St1,St2) (Y=Задача) |
Выделение из строки St подстроки длиной N символов начиная с позиции Pos |
Copy (St: string, Pos,N: byte): string |
St:='абвгде'; Y:=Copy(St, 2, 3); {Y='бвг'} |
Вычисление длины строки St |
Length (St: string): byte |
St:='абвгде'; Y:=Length(St); {Y=6} |
Определение позиции первого появления в строке St2 подстроки St1 |
Pos (St1,St2): byte |
St2:='abcdef'; Y:=Pos('de',St2); {Y=4} |
5.6. Пример программы
Программа, осуществляющая ввод массива из 10 слов длиной 6-8 символов, в каждом слове заменяет символы 'a' на 'б', а также осуществляет преобразования вещественной и строковой констант.
Program Prim_Str;
Const CH=12.34;
KST= '12.34';
Var X : array [1..10] of string[8]; {Массив слов}
St : srting[7]; {Параметр для процедуры Str()}
V : real; {Параметр для процедуры Val}
Code : byte; {Параметр для процедуры Val}
Dl : integer; {Длина слова в массиве}
n : integer; {Позиция символа 'а'}
i, j : byte; {Переменные цикла}
Begin
{---------------Ввод массива из десяти слов-----------------}
Writeln('Программа обработки данных строкового типа');
Writeln;
Writeln('Введите 10 слов из 6-8 символов');
For i:=1 to 10 do begin
Write(i, ' -е слово ');
Readln(X[i]); end;
{----------------Вывод на экран введенных данных---------------}
Writeln('Введенные слова');
For i:=1 to 10 do Writeln(i, '-ое слово ', X[i]);
dl:=length(X[1]); {определение длины первого слова}
{----------------Вывод кодов символов первого слова--------------}
For i:=1 to dl do
Begin
Write ORD (X [1,i]); Writeln
End;
{---------------Преобразование числа в строку -----------------}
Str(CH,St);
Writeln('Число ',CH:7:3,' преобразуется в строку ', St);
{---------------Преобразование строки в число ------------------}
Val(KST, V, Code);
Writeln('Строка ', KST, ' преобразуется в число ', V);
Writeln(' код ошибки ', Code);
{------ Поиск в словах символа 'a' и замена его на символ 'б' ---}
For i:=1 to 10 do begin
{- Определение наличия символа 'а' в слове X[i] и его позиции }
n:=pos('а', X[i]);
{---Запись символа 'б' на место, занимаемое символом 'а'-----}
if n>0 then X[n]:='б' end;
{-----------Преобразование массива из 10 слов в строку и------}
{-----------------вывод результата ---------------------------}
{------предлагается запрограммировать самостоятельно------}
End.
