Существуют специальные таблицы кодировки символов, в которых каждому символу соответствует свой уникальный номер. На фото часть одной из таких таблиц. А ниже программка на паскале, иллюстрирующая работу этих функций:
program aaa; //Chr (x), Ord (x), Pred (x), Succ (x), var x: integer; y,z: string; begin //присвоим переменной у значение символа под номером 102: y:=chr(102); writeln('chr(102)= ',y); //присвоим переменной x номер позиции символа а в таблице кодировки Windows ASCII: x:=ord('f'); writeln('ord(''f'')= ',x); //а теперь возьмем символ русского алфавита "Ф": x:=ord('Ф');// writeln('ord(''Ф'')= ',x); //Теперь нам нужен символ, следующий, например, за символом Ю: y:=succ('Ю'); writeln('succ(''Ю'')= ',y); //Или символ, предществующий символу Я: y:=pred('Я'); writeln('pred(''Я'')= ',y); end.
Результат работы программы:
chr(102)= f ord('f')= 102 ord('Ф')= 212 succ('Ю')= Я pred('Я')= Ю
# # Код на ruby 2.2.3p173 max = 0 max_last = 0 min = 1000 min_last = 1000 n = 0
begin max_last = max min_last = min
File.open("input.txt", "r") do |infile| line = infile.gets.strip p line n = line.to_i if n == 0
while (line = infile.gets) p line number = line.strip.to_i
max = number if max == 0 or number == max + 1 min = number if min == 1000 or number == min - 1 p [min, max] end end end until (max == max_last and max < n) or (min > 0 and min == min_last) or (min == 0 and max == n)
p max + 1 if max == max_last and max < n p min - 1 if min > 0 and min == min_last p "error" if min == 0 and max == n
На фото часть одной из таких таблиц.
А ниже программка на паскале, иллюстрирующая работу этих функций:
program aaa;
//Chr (x), Ord (x), Pred (x), Succ (x),
var x: integer; y,z: string;
begin
//присвоим переменной у значение символа под номером 102:
y:=chr(102);
writeln('chr(102)= ',y);
//присвоим переменной x номер позиции символа а в таблице кодировки Windows ASCII:
x:=ord('f');
writeln('ord(''f'')= ',x);
//а теперь возьмем символ русского алфавита "Ф":
x:=ord('Ф');//
writeln('ord(''Ф'')= ',x);
//Теперь нам нужен символ, следующий, например, за символом Ю:
y:=succ('Ю');
writeln('succ(''Ю'')= ',y);
//Или символ, предществующий символу Я:
y:=pred('Я');
writeln('pred(''Я'')= ',y);
end.
Результат работы программы:
chr(102)= f
ord('f')= 102
ord('Ф')= 212
succ('Ю')= Я
pred('Я')= Ю
max = 0
max_last = 0
min = 1000
min_last = 1000
n = 0
begin
max_last = max
min_last = min
File.open("input.txt", "r") do |infile|
line = infile.gets.strip
p line
n = line.to_i if n == 0
while (line = infile.gets)
p line
number = line.strip.to_i
max = number if max == 0 or number == max + 1
min = number if min == 1000 or number == min - 1
p [min, max]
end
end
end until (max == max_last and max < n) or (min > 0 and min == min_last) or (min == 0 and max == n)
p max + 1 if max == max_last and max < n
p min - 1 if min > 0 and min == min_last
p "error" if min == 0 and max == n