Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.13;
Скачать: CL | DM;

Вниз

Создание калькулятора   Найти похожие ветки 

 
Danuve   (2009-10-26 07:39) [0]

Я создаю калькулятор. Но при делении мне нужно указать, что на ноль делить нельзя... Я написал такой код, а он пишет, что у меня допущена ошибка:
procedure TForm1.Button2Click(Sender: TObject);
Var b1, b2, b3:real;
begin
 b1:=StrToInt(a1.text);
 b2:=StrToInt(a2.text);
 b3:=b1/b2;
 a3.Text:=floatToStr(b3)
 if b2=0 then a3.Text="На 0 делить нельзя!";

end;
Что неправильно?


 
AIK ©   (2009-10-26 07:51) [1]


> а он пишет, что у меня допущена ошибка:


1. Покажи что пишет
2. if b2=0 then a3.Text:="На 0 делить нельзя!";
3. Не зная элементарных вещей рано взялся за создания велосипеда


 
AIK ©   (2009-10-26 07:53) [2]

4: a3.Text:=floatToStr(b3);


 
AlexDan ©   (2009-10-26 08:01) [3]

b3 считается раньше предупреждения
if b2=0 then a3.Text:="На 0 делить нельзя!";
else b3:=b1/b2;


 
_   (2009-10-26 09:32) [4]


> Danuve


Проверяешь делитель, а уже разделил. Как так?


 
Palladin ©   (2009-10-26 10:04) [5]

растет смена.... читать уже не умеет... и думать тоже... сначала делит, а потом проверяет... гении... двоеточия не хватает, но даже не затруднился прочитать сообщение об ошибке компилятора


 
clickmaker ©   (2009-10-26 11:08) [6]

> b3:=b1/b2;
> a3.Text:=floatToStr(b3)
> if b2=0 then a3.Text="На 0 делить нельзя!";

пальцы бегут впереди мыслей )


 
MonoLife ©   (2009-10-26 11:55) [7]

На самом деле, пока мы спим, система усиленно пытается делить на ноль, в надежде, что когда-нибудь у нее это получится и она обретет разум))


 
Franzy   (2009-10-26 12:21) [8]


> if b2=0 then


Я-то думал такие вещи (про сравнение чисел с плавающей точкой) еще на первом курсе объясняют...


 
Юрий Зотов ©   (2009-10-26 13:00) [9]

> Franzy   (26.10.09 12:21) [8]

С нулем и со степенями двойки можно.


 
Jeer ©   (2009-10-26 18:30) [10]


>
> С нулем и со степенями двойки можно.
>


с константами, заданными явно или через "переменные" -  можно.


 
Дмитрий Белькевич   (2009-10-27 12:09) [11]

Человек, вероятно, не понимает, что процедура выполняется последовательно, сверху вниз, а предполагает, что она работает "параллельно" вся сразу... Хотя отладчиком мог бы пробежаться - посмотреть.

Еще одна очевидная недоработка - не следует использовать StrToInt, лучше TryStrToInt или StrToIntDef. Предвидя последующие вопросы :) Еще лучше, в плане юзабилити, разрешать юзеру вводить только числа и разделитель десятичной дроби.

Но это уже сильно потом... Хотя бы с последовательностью выполнения разобраться...


 
Virgo_Style ©   (2009-10-27 15:12) [12]

Это просто подстрочный перевод задания  :0)

...
разделить первое число на второе и вывести результат в TEdit;
если делитель равен нулю, вывести сообщение "на ноль делить нельзя".
...


 
oldman ©   (2009-10-27 16:16) [13]

В решении лабы много лишних букв


procedure TForm1.Button2Click(Sender: TObject);
begin
try
 a3.Text:=FloatToStr(StrToInt(a1.Text)/StrToInt(a2.Text))
except
 a3.Text="На 0 делить нельзя!";
finally
end;


:)))

ЗЫ: Функции перевода число-текст-число оставил авторские


 
Anatoly Podgoretsky ©   (2009-10-27 16:22) [14]

> oldman  (27.10.2009 16:16:13)  [13]

Если не обращать внимание на не рабочий код, то сразу в глаза бросается, что вне зависимости от ошибки, почему то апприори считается, что это ошибка деления на 0.
Кроме того на 0 делить можно и нужно.


 
oldman ©   (2009-10-27 16:26) [15]


> Anatoly Podgoretsky ©   (27.10.09 16:22) [14]


Код нерабочий специально. :)
А в [0] тоже проверяется только деление на 0.
На 0 делить можно и нужно - согласен.
А что получим? 0 или бесконечность? Или таки константу?


 
Anatoly Podgoretsky ©   (2009-10-27 16:41) [16]

> oldman  (27.10.2009 16:26:15)  [15]

Ну ты и гад, а ведь парень будет мучаться.
А у тебя проверяется все, вколючая деление на слова.
...
В результате деления получим или число, или +-INF, или NAN


 
oldman ©   (2009-10-27 17:20) [17]


> Anatoly Podgoretsky ©   (27.10.09 16:41) [16]
> > oldman  (27.10.2009 16:26:15)  [15]
>
> Ну ты и гад, а ведь парень будет мучаться.


Зто нормально. Это скоро пройдет.
Ему недолго осталось. В смысле мучаться.
Идея понятна. Код напишет сам.


 
ПостОвый терминатор ©   (2009-10-27 17:32) [18]

Коллеги, прошу извинить за назойливость:)
Где (и когда) Вы в последний раз видели Danuve?


 
brother ©   (2009-10-28 04:12) [19]

> [0] Danuve   (26.10.09 07:39)

был тут в)



Страницы: 1 вся ветка

Текущий архив: 2009.12.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
15-1255816936
POOP
2009-10-18 02:02
2009.12.13
Помогите с Latex


15-1255817384
POOP
2009-10-18 02:09
2009.12.13
установил TexLive 2008


2-1256201388
ghost
2009-10-22 12:49
2009.12.13
проверка на недопустимые символы


15-1255375330
Petr V. Abramov
2009-10-12 23:22
2009.12.13
как бороться с IE8


2-1256623184
Sw
2009-10-27 08:59
2009.12.13
Combobox и Escape