Преобразование типов данных
function FloatToStr(a: real): string;
Преобразует вещественное число к строковому представлению
function IntToStr(a: integer): string;
Преобразует целое число к строковому представлению
function ReadIntegerFromString(s: string; var from: integer): integer;
Считывает целое из строки начиная с позиции from и устанавливает from за считанным значением
function ReadRealFromString(s: string; var from: integer): real;
Считывает вещественное из строки начиная с позиции from и устанавливает from за считанным значением
procedure Str(i: целое; var s: string);
Преобразует целое значение i к строковому представлению и записывает результат в s
procedure Str(r: real; var s: string);
Преобразует вещественное значение r к строковому представлению и записывает результат в s
function StrToFloat(s: string): real;
Преобразует строковое представление вещественного числа к числовому значению
function StrToInt(s: string): integer;
Преобразует строковое представление целого числа к числовому значению
function StrToInt64(s: string): int64;
Преобразует строковое представление целого числа к числовому значению
function TryReadRealFromString(s: string; var from: integer; var res: real): boolean;
Считывает вещественное из строки начиная с позиции from и устанавливает from за считанным значением. Возвращает True если считывание удачно и False в противном случае
function TryStrToFloat(s: string; var value: real): boolean;
Преобразует строковое представление s вещественного числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False
function TryStrToFloat(s: string; var value: single): boolean;
Преобразует строковое представление s вещественного числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False
function TryStrToInt(s: string; var value: integer): boolean;
Преобразует строковое представление s целого числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False
function TryStrToInt64(s: string; var value: int64): boolean;
Преобразует строковое представление s целого числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False
procedure Val(s: string; var value: число; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value.Если преобразование успешно, то err=0, иначе err>0
Пример
Составить программу, которая преобразовывает введенные с клавиатуры числа в строки и демонстрирует сложение чисел и сцепление строк.
program Primer5_5;
uses crt;
var a, b: integer; sa, sb: string;
begin
write('Введите два числа: '); readln(a,b); {ввод чисел}
writeln ('Сумма чисел: ',а,' + ',b, ' = ', a+b); {вывод суммы чисел}
str(a,sa); str(b,sb); {преобразование в строки}
writeln ('Сцепление строк: ',sa, ' + ',sb, ' = ',sa+sb); {вывод строки}
end.
Упражнения
Задание 1
Исправьте текст представленной ниже программы для решения задачи:
Для заданной строки символов определить сумму всех входящих в неё цифр.
Программа
programsum_cifr_str;usescrt;vari,v,k,sum:integer;s:string;beginWrite('Введитестроку:');readln(s);sum:=0;Fori:=1tolength(s)dobeginval(s[i],v,k);ifk=0thensum:=sum+v;end;Writeln(sum);end
Сохранить программу
Задание 2
Измените текст предыдущей программы так, чтобы получилось решение задачи:
Для заданной строки символов вычислить сумму входящих в неё цифр, причем знак очередного слагаемого должен быть противоположным знаку предыдущего слагаемого.
Сохранить программу
Задание 3
Задано целое число. Найти сумму и произведение первой и последней цифры этого числа.
Сохранить программу
Алгоритм решения задачи
преобразуем число в строку (процедура str)
выделяем первый и последний символы строки
преобразуем их в числа (процедура val)
выполняем арифметические действия с полученными числами.
Задание 4
Для заданной строки символов найти наибольшее записанное в этой строке целое число (без учета знака числа). Например, для строки "sdfvgsd1.9fdmjgvb-15.2dnj05" наибольшее целое число 15.
Сохранить программу
Подсказка
Организуем цикл, в котором будем проверять, является ли очередной символ цифрой, если да, то организуем новый цикл, в котором будем формировать строку sn, состоящую из цифр (очередное целое число). Потом преобразуем sn в число и, если оно оказывается большим предыдущего числа, запоминаем его.