Форум: "Начинающим";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];
ВнизСоздание калькулятора Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c