Преобразование типов данных

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 в число и, если оно оказывается большим предыдущего числа, запоминаем его.