Урок 12
Составление алгоритмов обработки строковых величин
Теоретическая часть
В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот. Например, возьмем 2 числа: 125 и 347. Если эти числа записаны в строковых переменных, то с ними можно производить те действия, которые производятся над строками. Например, в результате операции сцепления '125' + '347' получится '125347'. Если же данные числа будут записаны в переменных типа Integer или Real, то над ними можно производить операции, предусмотренные для чисел (сложение, вычитание умножение, деление и т.д.). Например, в результате операции сложения 125+347 получится 472.
п.1. Функции преобразования строкового представления числа к числовому значению.
StrToFloat(а) - функция, преобразует строку a (string) в число (real)
Например: m:='20.1'; s:='24.3'; t:=s+m; Результат: 24.320.1; k:=StrToFloat(m)+StrToFloat(s); Результат: 44.4
StrToInt(a) - функция, преобразует строку a (string) в число (integer)
Например: m:='200'; s:='240'; t:=s+m; Результат: 240200; k:=StrToInt(m)+StrToInt(s); Результат: 440
п.2. Функции преобразования числа к строковому представлению.
FloatToStr(x) - функция, преобразует число х (real) в строку а (string).
Например: m:=20.1; s:=24.3; t:=s+m; Результат: 44.4; k:=FloatToStr(m) +FloatToStr(s); Результат: 24.320.1
IntToStr(x) - функция, преобразует число х (integer) в строку а (string)
Например: m:=200; s:=240; t:=s+m; Результат: 440; k:=IntToStr(m)+IntToStr(s); Результат: 200240
п. 3. Процедуры преобразования типов
Str (x, st) — преобразование числового значения X в строковый и помещение результата в строку St.
Например: k:= 12; Str (k, s); Результат: s='12'
Val (st, x, code) — преобразует значение строки St в величину целочисленного или вещественного типа и помещает результат в X. Code - целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение code равно нулю, если ошибка обнаружена (строковое значение не переводится в цифровое), code будет содержать номер позиции первого ошибочного символа, а значение x не определено.
Например: 1. s:=’5.78’; val(s,n,cod); Результат: n=5.78 cod=0
2. s:=’5,78’; val(s,n,cod); Результат: n=0 cod=2 – второй символ ошибочный
Задача. С клавиатуры вводится строка, содержащая целое число. Составьте программу, которая найдет сумму цифр введенного числа.
program t;
var x:string;
a,s, k,code :integer;
begin
writeln('Введите строку ');
readln(x);
k:=1; s:=0;
while k<= length(x) do
begin
val(copy(x,k,1),a,code);
s:=s+a;
k:=k+1;
end;
writeln('Сумма цифр введенного числа = ',s);
end.
Практическая часть
Задание 1. С клавиатуры вводятся два числа: целое и вещественное. Составьте программу, которая преобразовывает эти числа в строку.
Задание 2. С клавиатуры вводятся две строки содержащие числа. Составьте программу, которая преобразует эти строки в числа и выполнить арифметическое действие сложение этих чисел.
Задание 3. С клавиатуры вводится строка, содержащая арифметическое выражение в виде двух чисел, между которыми стоит знак арифметического действия минус. Составьте программу, которая выполняет данное арифметическое действие и выводит результат.
Например : Ввод: 40-17 Результат: 30-17=23
Электронная рабочая тетрадь
Задание 1. Символьные и строковые величины(найти пару)
Задание 2. Символьные и строковые величины(ввод текста)
Задание 3. Символьные и строковые величины(заполнить пропуски)
Задание 4. Строковая величина(сортировка картинок)
Задание 5. Стандартные процедуры и функции(таблица соответствий)
Проверка знаний