Что делает Ord?
Есть код:
var
i: integer; // объявляем
begin
n := 0; // объявляем в 10 системе
for i := 1 to Length(s) do //цикл Length(s) определяет текущую длину строки
if s[i] in ['0'..'7'] // от 0 до 7 могу ввести число
then n := n * 8 + ord(s[i]) - ord('0') //
else exit; // выход
vosem := true;
end;
var
s: string; // объявление
n: longint; // объявление
begin
Write('Введите число в восьмеричной системе: '); ReadLn(s); // вывод
if vosem(s, n) // вызов функции
then WriteLn(s, '(8) = ', n, '(10)') // вывод 8 и 10
else
WriteLn('*** Плохое число'); // вывод
end.
Что делает
then n := n * 8 + ord(s[i]) - ord('0') что в i и для чего - ord('0').
Нужно было и 8 в 10 систему счисления.
Ответы (2 шт):
Автор решения: KoVadim
→ Ссылка
Ord - это функция, которая берет символ (char) и переводит его в ASCII код. Благодаря тому, что цифры в ASCII упорядочены от 0 до 9, вычитая с кода символа значения кода нуля, можно получить собственно само число.
Автор решения: Eugene X
→ Ссылка
KoVadim ваш ответ совсем не верен.
Функция Ord возвращает "Порядковое число".
Что касается ASCII символа (как в примере) то это индекс символа.
Но так-же функция Ord может работать с другими типами данных например enum.
program Hello;
type
TDigits = (dgOne, dgTwo, dgThree);
begin
Write('Ordinal index: ', Ord(dgTwo));
end.
Вернёт
Ordinal index: 1