Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > множества


Автор: koljan 12.4.2006, 16:27
Цитата

22. Статистика-2. Дан текст. Определите, каких букв (строчных или прописных) в нем больше, и преобразуйте следующим образом: если больше прописных букв, чем строчных, то все буквы преобразуются в прописные; если больше строчных, то все буквы преобразуются в строчные; если поровну и тех и других — текст остается без изменения.



как я понял надо делать множество или несколько.
а как потом сравнивать введённую строку с этими самыми множествами?


PASCAL

Автор: DEER 13.4.2006, 10:12
Держи
писал в Delphi 7, так что функций UpperCase и LowerCase может и не быть,
если нужно с поддержкой русского языка, надо менять множества BIG и SMAL, перечислив в них все буквы, (т.е. не 'А'..'Я', а 'А','Б','В' и так далее). И ещё написать свои функции для поднимания или опускания регистра для русских букв.
Код

const BIG: set of char = ['A'..'Z'];
      SMAL: set of char = ['a'..'z'];
var
 str: String;
 i : byte;
 countSm, countBig: byte;
begin
 countSm := 0;
 countBig := 0;
 str := 'aadfAAA';
 for i:= 1 to Length(str) do begin
   if str[i] in BIG then inc(countBig)
     else if str[i] in SMAL then inc(countSm);
 end;
 if countBig > countSm
  then str := UpperCase(str)
  else if countBig < countSm
       then str := LowerCase(str);
 ShowMessage(str);
end;

Автор: koljan 14.4.2006, 22:43
это на дэльфи код шо ли?
в паскале ведь нет UpperCase есть UpCase и ещё есть ли ф-ция приводящая строку к нижнему регистру

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