Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR7-8.doc
Скачиваний:
31
Добавлен:
10.03.2016
Размер:
222.21 Кб
Скачать

Процедуры преобразования типов

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

Задание: составить программу решения задачи.

Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:

  1. Определить сколько и каких переменных потребуется для решения задачи.

  2. Определить входные данные и способ их задания.

  3. Определить, что должно быть получено в результате выполнения программы.

  4. Записать словами по шагам ход решения задачи.

Образец выполнения задания

Задача: С/Pascal. Дана строка символов. Заменить все вхождения символа '{' на 'begin', а каждое вхождение символа '}' — на 'end'.

  1. Для решения данной задачи мне потребуются следующие переменные: S для ввода строки, тип переменной - string; k, h целочисленные переменные для определения позиции соответственно ‘{‘ и ‘}’.

  2. Входными данными в данной задаче является строка S, ввод строки буду осуществлять с клавиатуры.

  3. В результате выполнения программы на экран должна быть выведена преобразованная строка S.

  4. Ход решения задачи:

  • ввод строки 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.

Дальнейшие действия: откомпилировать и запустить программу, ввести данные, записать полученный результат. При необходимости использовать пошаговый режим выполнения программы с отслеживанием значений переменных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]