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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 18:24   #1
2Nboy
Новичок
Джуниор
 
Регистрация: 07.06.2012
Сообщений: 3
Восклицание Как быть с boolean? (программа в Delphi)

Требуется вычислить значения функции применяя оператор CASE

y= (x^2)-3.2 если x<5
y= sqrt(x-2) если x>8
y=0.5 d в остальных случаях.

Написал я программу

var
Form1: TForm1;
y:Extended;
o:Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
o:=StrToInt(Edit1.Text);
case o of
1,2,3,4: y:=o*o-3.2;
5,6,7,8: y:=Sqrt(o-2);
else y:=0,5;
end;
Label3.Caption:='ó='+FloatToStr(y);
end;
end.
Но она не понимает отрицательных чисел на вводе. Препод сказал нужно применить ещё одну переменную b: boolean!
Подскажите пожалуйста как переписать код!
2Nboy вне форума Ответить с цитированием
Старый 07.06.2012, 18:40   #2
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от 2Nboy Посмотреть сообщение
Требуется вычислить значения функции применяя оператор CASE

y= (x^2)-3.2 если x<5
y= sqrt(x-2) если x>8
y=0.5 d в остальных случаях.

Написал я программу

var
Form1: TForm1;
y:Extended;
o:Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
o:=StrToInt(Edit1.Text);
case o of
1,2,3,4: y:=o*o-3.2;
5,6,7,8: y:=Sqrt(o-2);
else y:=0,5;
end;
Label3.Caption:='ó='+FloatToStr(y);
end;
end.
Но она не понимает отрицательных чисел на вводе. Препод сказал нужно применить ещё одну переменную b: boolean!
Подскажите пожалуйста как переписать код!
Понимает и присваивает значение y 0.5. Только небольшая ошибка в присваивании.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  o := StrToInt(Edit1.Text);
  case o of
    1..4:
      y := o * o - 3.2;
    5..8:
      y := Sqrt(o - 2);
  else
    y := 0.5;
  end;
  Label3.Caption := 'o=' + FloatToStr(y);
end;
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 08.06.2012, 16:41   #3
2Nboy
Новичок
Джуниор
 
Регистрация: 07.06.2012
Сообщений: 3
По умолчанию

Нет.
Вот правильный код:
var
Form1: TForm1;
y:Extended;
o:Integer;
b:boolean;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

o:=StrToInt(Edit1.Text);
b:=o<5;
case b of
true: y:=o*o-3.2;
false: y:= 0.5;
end;
begin
b:=o>8;
case b of
true: y:=Sqrt(o-2);

end;
2Nboy вне форума Ответить с цитированием
Старый 08.06.2012, 16:45   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Вот правильный код:
Код:
case b of
true: y:=o*o-3.2;
false: y:= 0.5;
end;
спрячьте этот ужос подальше и никому не показывайте )

Код:
case b of
true: y:=Sqrt(o-2);
end;
а это вполне достойное пополнение коллецкии шЫдевров форума )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Именная лицензия Delphi XE. Как быть при увольнении? artemavd Общие вопросы Delphi 32 28.03.2012 18:13
Программа пишит ошибку,в Еххелл как мне быть!Скрин прилогаю!! Germess Microsoft Office Excel 1 28.03.2012 00:21
Массивы .Программа должна быть на С адуч2323 Помощь студентам 0 26.12.2011 21:31
Обьясните как работать с Boolean ? SuBwooFer JavaScript, Ajax 1 02.03.2010 00:51