Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1256283306
grav
2009-10-23 11:35
2009.12.13
Выгрузка сообщений об ошибках в текстовый файл


15-1255893240
Kostafey
2009-10-18 23:14
2009.12.13
SQL: Размышления о хаосе и порядке.


6-1197208549
Свой
2007-12-09 16:55
2009.12.13
ASP и .NET


2-1256277237
kyn66
2009-10-23 09:53
2009.12.13
Подсчет среднего значения с нулевыми числами


15-1255362228
Alexio
2009-10-12 19:43
2009.12.13
Ошибки страниц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский