Другие языки программирования и технологии
Котята, нужна помощь по Pascal с буковками
Фишка вот в чём: есть задача, отсортировать слова по алфавиту. Но тут загвоздка: не воспринимает "ё", ставит, скажем, слово "ёжик" раньше слов, начинающихся на "а". Как объяснить программе, что "е"<"ё"<"ж"?
Написал для тебя функцию для получения "корректного" кода символа, которая учитывает букву Ё. Вставь её в свою программу вместо всех вызовов обычной функции 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;
По сути, мы просто вставляем букву 'Ё' вместо буквы 'Ж', а все буквы, начиная с 'Ж', сдвигаем вправо на единицу.
Было => стало:
абвгдежзийклмнопрстуфхцчшщъыьэюя ...ё =>
абвгде ё жзийклмнопрстуфхцчшщъыьэюя
"Красивый" код с подсветкой здесь: 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;
Данил Плясов
Спасибо, но у меня в программе нет ни одного ord()
"ё" вообще лишнее колесо в телеге русского языка. И в принятом на компьютерах алфавите стоит отдельно от остальных букв русского языка, среди дополнительных знаков, чем и объясняется такое поведение. И писать "ёжик" в машинописном тексте полагается "ежик". Однако программа может делать как ты захочешь. Для этого тебе надо не пользоваться обычным сравнением, а написать свою программу сравнения букв. В общем, куча ненужной работы. Я бы просто после ввода строки пробежался по ней и заменил все буквы "ё" на "е".
Данил Плясов
А если будет сравниваться "ёжик" и "ежик"?
Прописать исключение по коду символа
Данил Плясов
Как?
Выстроить массив буков, в алфавитном порядке, и сравнивать буквы по индексам.
Похожие вопросы
- Пожалуйста, очень нужна помощь с Pascal
- Профессионалы pascal, нужна помощь
- Значит такой вопрос. Для чего нужен компилятор Free pascal. Не я понимаю что это язык программирования и...
- Вопрос связан с олимпиадой по информатике! (Нужные знания языков pascal или c++)
- Вопрос по поводу Pascal...Нужна помощь!
- Turbo Pascal ( Очень нужна помощь....)
- Нужна помощь с 1 прогой в Pascal. с использованием файлов???
- Нужна помощь с задачами по информатике turbo pascal
- Я в коледже Turbo Pascal прохожу. Скажите он вообще где нибудь нужен? Может Turbo Pascal морально устарел?
- Нужна помощь по информатике.