Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Множества


Автор: Ak47black 18.2.2007, 16:20
Помогите понять как будет выглядит следущий код на Cи 
Код

var
  i: Integer;
begin
  i:= 5;// for example
  case i of
    1..2: ShowMessage('1..2');
    3..5: ShowMessage('3..5');
  end;
end;
 
Особенно интересно как будет выгладить этот кусок 1..2:

Автор: Feriman 18.2.2007, 16:30
Код

// ...
int i = 5;

switch (i)
{
    case 1:
    case 2:
        ShowMessage("1..2");
        break;
    case 3:
    case 4:
    case 5:
        ShowMessage("3..5");
        break;
}


P.S. Считаеться что функция ShowMessage() определена.

Автор: Ak47black 18.2.2007, 16:36
А как диапазон задать например в паскале то так 0..99, неписать-же от 0 до 99

Автор: Anikmar 18.2.2007, 16:44
Цитата(Ak47black @  18.2.2007,  16:36 Найти цитируемый пост)
А как диапазон задать например в паскале то так 0..99, неписать-же от 0 до 99

используйте оператор if

Автор: DEIN 18.2.2007, 16:51
Логично. Спасибо.

Автор: Ak47black 18.2.2007, 17:28
Ну а на языке Cи, я как понимаю нету понятия "Множества" как такового, как например на Delphi множество можно записать 0..99?

Автор: nickless 18.2.2007, 17:31
В С нет встроенного типа "множество", тут надо обходится тем что есть, но если имеется ввиду С++, то там есть куча классов для этой цели, например std::set

Автор: Ak47black 18.2.2007, 17:45
Спасибо
nickless, 
Теперь понятно.

Автор: Любитель 18.2.2007, 18:00
Цитата(Ak47black @  18.2.2007,  17:28 Найти цитируемый пост)
как например на Delphi множество можно записать 0..99

Вообще это вовсе не множество, а диапазон (subrange).

Автор: Rockie 21.2.2007, 17:13
Код

var
  i: Integer;
begin
  i:= 5;// for example
  case i of
    1..2: ShowMessage('1..2');
    3..5: ShowMessage('3..5');
  end;
end;


Код

int i = 5;
if(i>1 && i<2)  ShowMessage("1..2");  // так как i-целое, это условие не может выполниться
if(i>3 && i<5)  ShowMessage("3..5");


чтобы сделать "включительно":

Код

if(i>=1 && i<=2)  ShowMessage("1..2");

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