Лекция 17 . Функции преобразования строковых величин.
автор: Садовский Ефим Моисеевич
1. Повторение.
Строковые величины. Замена символов. Подсчет количества символов. Накопление литерных величин. Цикл While.
2. Функции преобразования строковых величин.
Многие операции с числами гораздо проще выполнять, если предварительно их перевести в строковую величину. Для этого в Паскале используют стандартные процедуры Str и Val.
ВНИМАНИЕ! До этого дня мы в программа использовали функции, которые записывались справа от знака присваивания (sqrt(x), length(x), a mod b и др.) Процедура в отличии от функции – это отдельный оператор, который не нуждается ни в знаках присваивания, ни в дополнительных конструкциях языка. После процедур ставится точка с запятой. Примеры процедур: readln(x), writeln(‘X=’).
STR(X,S); – процедура преобразования целого числа Х в строковую величину S.
STR(X:0:2,S); – процедура преобразования действительного числа Х (Х-real) в строковую величину S.
Заметим, что при преобразовании действительных чисел необходимо использовать форматированный вид действительного числа — X:0:2, где первое число удобно всегда ставить 0, а второе — количество знаков после запятой.
VAL(S,X,K); — процедура преобразования строковой величины S в число Х. K – признак, переменная ЦЕЛОГО типа, которая остается равна 0, если преобразование удалось или, если преобразование не состоялось, ей присваивается номер первого символа, который не удалось преобразовать.
Например, после выполнения процедуры:
VAL(’35’,X,K); — X=35,K=0
S:=’3.4′; VAL(S,X,K); — S=’3.4′, X=3.4, K=0
S:=’3:4′; VAL(S,X,K); — S=’3:4′, X не определено, K=2
С числами в виде строки удобно:
— заменять цифры на указанные;
— подсчитывать количество цифр в числе;
— подсчитывать количество указанных цифр;
— находить сумму цифр;
— менять цифры местами (зная их порядковые номера);
С числами в виде строки нельзя:
— выполнять арифметические операции;
— вычислять значение математических функций.
Пример 1.
С клавиатуры вводится набор символов. Можно ли сказать, что это число? Пример 2.
Вычислить сумму цифр целого числа. Обратите внимание на то, что исходное число мы вводим как строковую величину, а затем процедурой VAL преобразуем каждый символ, то есть каждую цифру этой строковой величины в число, которое прибавляем к предыдущей сумме.
Пример 3.
С С клавиатуры вводится целое число. Возведите его в квадрат и затем замените все цифры в записи полученного числа, большие пяти, на единицы. 3. Решение задач.Pascal.
1. С клавиатуры вводятся два целых числа. Сколько раз в записи их суммы встречается цифра 1?
2. С клавиатуры вводится целое число. Запишите его наоборот (справа налево) и результат умножьте на 3.
3. С клавиатуры вводится целое число N (N>1000). Замените вторую и последнюю цифры на 3. Результат увеличьте в два раза. Сколько в полученном числе шестерок?