Еще он сказал что в C можно сделать так:
предположим что у нас есть строковая переменная A, в которой содержится число 686 в виде строки. Если мы прибавим к нему строку содержащую число 0, то это возвратит нам числовую переменную 686, т.е. B:=A+'0' даст нам числовую переменную В равную 686
А не должно бы. Вот если (и в C, и в Pascal) отнять от символа (не строки) символ
'0', получится число, которое равно от 0 до 9 для символов
'0', …,
'9' соответственно, потому что эти символы имеют друг за другом идущие коды. Правда, насколько помню, в паскале нельзя вычитать символы — сначала надо привести их к какому-нибудь целому типу (вам должен подойти
Byte).
я не совсем понимаю как мне записать в другую переменную число из строковой пользуясь вашим методом, но не используя Val
Попробуйте заполнить содержимым вот такую оболочку:
{ где-то наверху... }
var
i: Integer;
s: String;
c: Char;
{ интересующий кусок: }
for i := 1 to Length(s) do begin
c = s[i];
{ ??? }
end;
Вот вы подумайте, как могла бы работать сама
Val? У распространённых процессоров обычно нет инструкции для перевода строки в число.
Чтобы обрабатывать отрицательные числа, надо будет ещё учитывать, что строка может начинаться символом
'-', и для полноты может начинаться ещё и символом
'+'. Чтобы обрабатывать дробные числа, надо будет учесть, что в середине строки может встречаться разделитель (
'.' и по праздникам
','), хотя от некоторых любителей писать
E и это не спасёт.
-- Вс июл 14, 2013 23:07:03 --Кстати, если вам не понравится тот цикл с
to, можете использовать цикл и с
downto.