- •Тема 2.2. Основные понятия языка программирования высокого уровня Free Pascal
- •Системы программирования
- •Интегрированная среда разработки FreePascal
- •Введение в язык Паскаль Характеристика языка программирования Паскаль
- •Основные понятия технологии программирования
- •Алфавит языка Паскаль
- •Структура программы на Паскале
- •Типы данных
- •Стандартные типы данных
- •Структуры данных
- •Строковый тип
- •Структурированные переменные
- •Представление основных структур программирования на языке Паскаль Операции и выражения
- •Арифметические операции и выражения
- •Логические операции
- •Оператор присваивания
- •Составной оператор
- •Условный оператор
- •Процедура write
- •Процедура ввода
- •Оператор выбора
- •Операторы повторений
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Метки и операторы перехода
- •Работа с массивами
- •Операции над строками
- •Функция Length
- •Функция Upcase
- •Функция Сopy
- •Функция Pos
- •Процедуры Insert и Delete
- •Процедура Str
- •Процедура val
- •Практические примеры работы со строковыми данными
- •Оператор присоединения with
- •Процедуры и функции Паскаля
- •Формальные и фактические параметры
- •Типизированные константы
- •Interface
- •Implementation
- •Interface
- •Interface
- •Implementation
- •Файловый тип данных Типизированные файлы
- •Текстовые файлы
Функция Length
Встроенная функция Length(длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной.
Пример.
var
word: string;
begin
write (‘Введите, пожалуйста, слово: ‘);
readln (word);
writeln (‘Это слово состоит из ’, length(word) : 3, ‘ букв!’)
end.
При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.
Функция Upcase
Функция Upcaseпозволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа, поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.
Пример.
var
word : string;
i : byte;
begin
word := ‘Фирма Microsoft’;
for i := 1 to length (word) do word [i] := upcase (word[i]);
writeln (word); {Выводится текст “ Фирма MICROSOFT”}
end.
Русские литеры не могут обрабатываться этой функцией, поэтому в результате работы этой программы на терминал выдается строка, содержащая большие английские и маленькие русские буквы.
Функция Сopy
Функция Сopyпозволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая функцию copy, необходимо указывать следующие параметры: 1) имя строки, из которой должен извлекаться копируемый фрагмент; 2) позицию в строке, начиная с которой будет копироваться фрагмент; 3) число копируемых символов.
Пример.
var
ws: string [79];
w1,w2,w3 : string [20];
begin
ws := ‘фотографирование’;
w1 := copy (ws, 1, 4); writeln (w1);
w2 := copy (ws, 5, 4); writeln (w2);
w3 := copy (ws, 10, 3); writeln (w3);
end.
В результате выполнения программы на экран выводится:
фото
граф
ров
Сообщения об ошибке не будет в случаях, если начальная или конечная позиции копируемого фрагмента находятся вне пределов исходной строки символов. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором – фрагмент от начальной позиции копирования до конца исходной строки.
Функция Pos
С помощью функции Posосуществляется поиск определенного фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции в строке, с которой фрагмент начинается. Если в строке фрагмент не найден, то функция возвращает ноль.
var
ws : string [79];
sw : string [20];
p : byte;
begin
ws := ‘Электрификация’;
sw := ‘Эл’; p := Pos (sw,ws); writeln(p);
sw := ‘три’; p := Pos (sw,ws); writeln(p);
sw := ‘к’; p := Pos (sw,ws); writeln(p);
end.
В результате выполнения программы на экране появляется:
1
5
4
Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск. Большие и маленькие буквы считаются различными символами.
Процедуры Insert и Delete
Процедура Insertвставляет в исходную строку какую-либо другую строку, начиная с указанной позиции. Оператор Insert (w1, ws, 4); вставит строку w1 в строку ws перед 4-ой позицией.
Процедура Deleteудаляет в исходной строке фрагмент определенной длины, начинающийся с указанной позиции. Оператор Delete (ws, 2, 3); удаляет из строки ws фрагмент, состоящий из трех символов и начинающийся со второй позиции.
var
ws : string [79];
sw : string [20];
begin
ws := ‘компьютеризация’; writeln (ws);
delete (ws, 1, 7); writeln (ws);
delete (ws, 3, 2); writeln (ws);
sw := ‘Г’; insert(sw, ws, 1); writeln (ws);
sw := ‘не’; insert(sw, ws, 3); writeln (ws);
end.
В результате работы данной программы на экран будут выведены следующие строки:
компьютеризация
еризация
ерация
Герация
Генерация
Во избежание ошибок при применении процедур Insert и Delete указанные в списке параметров позиции должны обязательно присутствовать в обрабатываемых строках.
