Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Знаки препинания


Автор: soloweb 30.10.2006, 21:29
Короче нужно найти в строке знаки препинания и вывести их в алфавитном порядке!
Есть специальная функция для определения знака препинания: Типа это знак препинания или нет, или же тупо сравниваем типа if (str[2]='!') or (str[2]=',') ...
И как их сравнить (В алфавитном порядке)! Знаками сравнения < > <> или есть что-то другое!
Нужна помошь начинающему программисту!
Заранее спасибо!

Автор: DarlkElfTen 30.10.2006, 21:43
их можно сравнить по коду()

char(i):real
и по возрастающей например
а про первое-я б ы так сделал..или массив в котором это сохраним..или вроде тип етсь группа...или нечто подобное..)

скажем от '.'...'!' ))
но это уже бретЪ

Автор: soloweb 30.10.2006, 21:52
Короче посмотреть ANSI надо-бы! smile

Автор: anwe 30.10.2006, 22:05
Цитата
их можно сравнить по коду()
char(i):real

Для сравнения символов по их коду надо использовать ord

Автор: soloweb 30.10.2006, 22:43
Так как же составить множество знаков препинания! Кто-нибудь знает! HELP! В Среду сдавать! smile

Автор: skyboy 30.10.2006, 23:06
вот! ключевое слово - множество! например, так:
Код

....
if a in [',','.',';',':','/','\','|','?','@','!'] {список можно и нужно дополнить!}
....

Как определить алфавитный порядок? по коду символа, видимо, ибо в алфавите не предусмотрен порядок неалфавитных символов. можно по приведению типов byte(a)... Можно, конечно, определить свой порядок, но смысл? при таком-то странном задании(я про алфавитную сортировку не-алфавитных символов)

Автор: anwe 30.10.2006, 23:06
Ну как составить? Создай массив знаков (как константу) и сравнивай с ним. Кстати, если под строками понимается текст, то есть смысл составить ентот массив так, чтобы чаще встречающиеся знаки были первыми его элементами (запятая, точка, тире...). Если же это набор символов, то - без разницы.

Автор: Alexeis 30.10.2006, 23:06
Цитата(soloweb @  30.10.2006,  22:43 Найти цитируемый пост)
Так как же составить множество знаков препинания! Кто-нибудь знает! HELP! В Среду сдавать! smile

Например так
Код

const
  signs : set of char = ['!',',','.',':',';','-','?'];

Автор: soloweb 30.10.2006, 23:13
Сенкс ребята! smile 

Автор: DarlkElfTen 31.10.2006, 13:54
Цитата

Для сравнения символов по их коду надо использовать ord 

интерсено почему  раньше делал просто чаром..ктати ам есть два варианта
char(<string>)
char(<integer>)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)