Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2015, 13:21   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Склонение слова в зависимости от числа

Добрый день!
Как склонять слово например "АРБУЗ" в зависимости от числа в integer переменной?

Например: 1 АРБУЗ 2 АРБУЗа 5 АРБУЗов ?
nibufep вне форума Ответить с цитированием
Старый 06.09.2015, 13:51   #2
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Вот такой код у меня валяется на компе, но никогда не использовал, вроде работает))
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Num: Integer;
  D1, D2: 0..9;
  s: String;
begin
  Num := Abs(20);
  D1 := Num mod 10;
  Num := Num div 10;
  D2 := Num mod 10;
  s := 'АРБУЗ';
    case D1 of
      1: if D2 = 1 then s := s + 'ОВ';
      2..4:
        begin
          if D2 = 1 then s := s + 'ОВ'
          else s := s + 'А';
        end;
    else s := s + 'ОВ';
    end;
  ShowMessage(s);
end;
ДралсяСошибками вне форума Ответить с цитированием
Старый 06.09.2015, 14:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что делать со словом "пальто"? Или "Солнце"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.09.2015, 14:32   #4
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от ДралсяСошибками Посмотреть сообщение
Вот такой код у меня валяется на компе, но никогда не использовал, вроде работает))
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Num: Integer;
  D1, D2: 0..9;
  s: String;
begin
  Num := Abs(20);
  D1 := Num mod 10;
  Num := Num div 10;
  D2 := Num mod 10;
  s := 'АРБУЗ';
    case D1 of
      1: if D2 = 1 then s := s + 'ОВ';
      2..4:
        begin
          if D2 = 1 then s := s + 'ОВ'
          else s := s + 'А';
        end;
    else s := s + 'ОВ';
    end;
  ShowMessage(s);
end;
А если 2 слова склонять, например:

101 рабочий поток или 30 рабочих потоков ?
nibufep вне форума Ответить с цитированием
Старый 06.09.2015, 14:47   #5
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Пальто не склоняется
А про остальное не знаю, у меня был пример только на "ов")))
ДралсяСошибками вне форума Ответить с цитированием
Старый 06.09.2015, 14:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Пальто не склоняется
Ага. Оно сгибается
Зато "Виталий" склоняется еще как
В три погибели не обещаю, но 2 Виталия или 100500 Виталиев из меня клонировать вполне можно
Так что пока не освоит ТС правила склонения о написании ПО думать не стоит.
И сама программа получится чуть сложнее чем просто.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.09.2015, 15:09   #7
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Я всегда старался избегать таких извращений, можно просто написать:
Код:
s := 'Рабочих потоков: ' + i;
и профит)))
ДралсяСошибками вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать программу,имеющая процедуру,кторая в производном текстовом файле,которая имеет слова и числа,изменяющая все числа числа,ме Fingergod Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 20:08
Окончание слова, в зависимости от числа. Bonio Помощь студентам 4 27.02.2010 19:40
Формат числа в зависимости от погрешности sumoru SQL, базы данных 2 14.12.2009 12:26
Окрашивание текста в зависимости от длинны слова(подскажите как) LAZER Помощь студентам 15 10.05.2009 20:59
Консолидация в зависимости от числа месяца Smile E Microsoft Office Excel 6 11.09.2007 21:24