Другие языки программирования и технологии

Котята, нужна помощь по Pascal с буковками

Фишка вот в чём: есть задача, отсортировать слова по алфавиту. Но тут загвоздка: не воспринимает "ё", ставит, скажем, слово "ёжик" раньше слов, начинающихся на "а". Как объяснить программе, что "е"<"ё"<"ж"?
Данил Плясов
Данил Плясов
2 217
Написал для тебя функцию для получения "корректного" кода символа, которая учитывает букву Ё. Вставь её в свою программу вместо всех вызовов обычной функции ord().
По сути, мы просто вставляем букву 'Ё' вместо буквы 'Ж', а все буквы, начиная с 'Ж', сдвигаем вправо на единицу.

Было => стало:
абвгдежзийклмнопрстуфхцчшщъыьэюя ...ё =>
абвгде ё жзийклмнопрстуфхцчшщъыьэюя

"Красивый" код с подсветкой здесь: http://snipt.org/ughja5

function ord1( a: char ) : integer;
var x: integer;
begin
x = ord( a );
if x >= ord( 'ж' ) and x <= ord( 'я' )
or x >= ord( 'Ж' ) and x <= ord( 'Я' ) then x := x + 1;
else if x = ord( 'ё' ) then x := ord( 'ж' );
else if x = ord( 'Ё' ) then x := ord( 'Ж' );
ord1 := x;
end;
НА
Нуржан Ахметов
1 895
Лучший ответ
Данил Плясов Спасибо, но у меня в программе нет ни одного ord()
"ё" вообще лишнее колесо в телеге русского языка. И в принятом на компьютерах алфавите стоит отдельно от остальных букв русского языка, среди дополнительных знаков, чем и объясняется такое поведение. И писать "ёжик" в машинописном тексте полагается "ежик". Однако программа может делать как ты захочешь. Для этого тебе надо не пользоваться обычным сравнением, а написать свою программу сравнения букв. В общем, куча ненужной работы. Я бы просто после ввода строки пробежался по ней и заменил все буквы "ё" на "е".
Данил Плясов А если будет сравниваться "ёжик" и "ежик"?
Прописать исключение по коду символа
Выстроить массив буков, в алфавитном порядке, и сравнивать буквы по индексам.
Егор Кундей
Егор Кундей
1 013