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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2013, 23:43   #1
vika18
 
Регистрация: 25.02.2013
Сообщений: 9
По умолчанию Программа с case

Помогите решить задачу,а то я понятия не имею
Для натурального числа напечатать фразу «мы нашли грибов в лесу», согласовав окончание слова «гриб» с числом . Использовать оператор выбора case. Использовать оператор выбора case.
vika18 вне форума Ответить с цитированием
Старый 26.02.2013, 00:06   #2
DIMASIKXXX32
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Цитата:
Сообщение от vika18 Посмотреть сообщение
Помогите решить задачу,а то я понятия не имею
Для натурального числа напечатать фразу «мы нашли грибов в лесу», согласовав окончание слова «гриб» с числом . Использовать оператор выбора case. Использовать оператор выбора case.
Я предполагаю типа такого что то должно быть или нет.
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var
    CountGrib:  Integer;
  begin
    CountGrib :=  StrToInt(Edit1.Text);
    case CountGrib of
      1:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' гриб в лесу';
      2..4:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' гриба в лесу';
      0,5..20:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' грибов в лесу';
    end;

  end;
DIMASIKXXX32 вне форума Ответить с цитированием
Старый 26.02.2013, 00:13   #3
vika18
 
Регистрация: 25.02.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от DIMASIKXXX32 Посмотреть сообщение
Я предполагаю типа такого что то должно быть или нет.
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var
    CountGrib:  Integer;
  begin
    CountGrib :=  StrToInt(Edit1.Text);
    case CountGrib of
      1:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' гриб в лесу';
      2..4:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' гриба в лесу';
      0,5..20:Label2.Caption:='мы нашли '+IntTostr(CountGrib)+' грибов в лесу';
    end;

  end;
Спасибо Всё работает,но я уже сама поняла
vika18 вне форума Ответить с цитированием
Старый 26.02.2013, 09:11   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

решение хорошее, но совсем не универсальное..
ну хорошо, если нашли от 0 до 20 грибов, а если 30-40-70-100... грибов? Пусть все свыше 20 выбрасывают, т.к. программа их не учитывает?

я бы предложил примерно такой вариант:
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var
    CountGrib :  Integer;
    s : string;
  begin
    CountGrib :=  StrToInt(Edit1.Text);
    s := 'мы нашли '+ IntTostr(CountGrib)+' ';

    if ( (CountGrib mod 100) >= 10) and ((CountGrib mod 100)  <= 20) 
                 then s := s + 'грибов'
    else
    case ( CountGrib mod 10 ) of
      1: s := s + 'гриб';
      2..4: s := s + 'гриба';
      0,5..9: s := s + 'грибов';
    end;
    Label2.Caption := s +  ' в лесу';
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение из case 1 в case 2(switch(), язык Си) Павел_95 Помощь студентам 13 11.01.2013 14:18
Программа с case. badname47 Паскаль, Turbo Pascal, PascalABC.NET 6 07.03.2012 10:40
с++.switch-case счетчик. не работает программа. Leeto Помощь студентам 0 22.12.2011 13:17
2 Case в 1 minamoto Общие вопросы Delphi 7 17.07.2011 05:44
программа с оператором case marmarmar Паскаль, Turbo Pascal, PascalABC.NET 2 27.02.2011 16:45