
- •Тема: Строковый тип данных. Обработка строк Строковый тип данных
- •Описание строковой переменной
- •Действия со строками
- •Стандартные функции для работы со строками
- •Стандартные процедуры для работы со строками
- •Процедуры преобразования типов
- •Лабораторная работа №7 Тема: Строковый тип данных. Обработка строк. Задание 1
- •Образец выполнения задания
- •Вариант 1
- •Тема: Множества
- •О перечисляемых типах
- •Множества
- •Лабораторная работа №8 Тема: Множества Задание 1
- •Задание 2
- •Литература
Процедуры преобразования типов
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.
Оператор процедуры |
Значение S |
Str (sin(1):6:4, S) |
‘0.0175’ |
Str (3456, S) |
‘3456’ |
Val (S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.
Тип x |
Оператор процедуры |
Значение x |
Значение kod |
Real |
Val(’12.34’, x, kod) |
12.34 |
0 |
Integer |
Val(’12.34’, x, kod) |
12 |
3 |
Лабораторная работа №7 Тема: Строковый тип данных. Обработка строк. Задание 1
Задание: составить программу решения задачи.
Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
Определить сколько и каких переменных потребуется для решения задачи.
Определить входные данные и способ их задания.
Определить, что должно быть получено в результате выполнения программы.
Записать словами по шагам ход решения задачи.
Образец выполнения задания
Задача: С/Pascal. Дана строка символов. Заменить все вхождения символа '{' на 'begin', а каждое вхождение символа '}' — на 'end'.
Для решения данной задачи мне потребуются следующие переменные: S для ввода строки, тип переменной - string; k, h целочисленные переменные для определения позиции соответственно ‘{‘ и ‘}’.
Входными данными в данной задаче является строка S, ввод строки буду осуществлять с клавиатуры.
В результате выполнения программы на экран должна быть выведена преобразованная строка S.
Ход решения задачи:
ввод строки S;
определю первую позицию символа ‘{‘ в строке S с помощью следующего оператора: k:= pos(‘{‘, S);
т.к. символ ‘{‘ может встречаться в строке S несколько раз, организую цикл, который можно записать следующим образом: пока k<>0 повторять
а) удалить из строки S, начиная с позиции k один символ;
б) вставить в строку S подстроку ‘begin’, начиная с позиции k
в) определить следующую позицию символа ‘{‘
определю первую позицию символа ‘}‘ в строке S с помощью следующего оператора: h:= pos(‘}‘, S);
т.к. символ ‘}‘ может встречаться в строке S несколько раз, организую цикл, который можно записать следующим образом: пока h<>0 повторять
а) удалить из строки S, начиная с позиции h один символ;
б) вставить в строку S подстроку ‘end’, начиная с позиции h
в) определить следующую позицию символа ‘}‘
вывести на экран преобразованную строку S.
Текст программы
Program zadacha6_1;
Var
S: string;
k,h: integer;
Begin
Writeln(‘введите строку’);
Readln( S);
k:=pos(‘{‘, S);
While k<>0 do
Begin
Delete(S, k, 1);
Insert(‘begin’, S, k);
K:=pos(‘{‘, S);
End;
h:=pos(‘}‘, S);
While h<>0 do
Begin
Delete(S, h, 1);
Insert(‘end’, S, h);
h:=pos(‘}‘, S);
End;
Writeln( S);
End.
Дальнейшие действия: откомпилировать и запустить программу, ввести данные, записать полученный результат. При необходимости использовать пошаговый режим выполнения программы с отслеживанием значений переменных.