Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с калькулятором Найти похожие ветки
← →
Уця Шпиндель © (2006-10-28 23:29) [0]хотел соорудить калькулятор:
3 Label(в первых двух слагаемые и другие, в 3-м сумма и т.д.), 1 combobox(действия выбирать), 1 button(вычислить)
вот код:
var
num1:real;
num2:real;
begin
num1:=StrtoFloat(edit1.text);
num2:=StrtoFloat(edit2.text);
if combobox1.text="/" then edit3.Text FloattoStr(num1/num2);
if combobox1.text="*" then edit3.Text FloattoStr(num1*num2);
if combobox1.text="-" then edit3.Text FloattoStr(num1-num2);
if combobox1.text="+" then edit3.Text FloattoStr(num1+num2);
end;
все это программируется на кнопку, но че-то где-то пропустил...
поправьте пожалуйста
← →
DVM © (2006-10-28 23:33) [1]
> но че-то где-то пропустил...
Проверки на допустимость значений
← →
Орион © (2006-10-28 23:36) [2]
procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2: Extended;
begin
num1:=StrToFloat(Edit1.Text);
num2:=StrToFloat(Edit2.Text);
//не мешало бы проверку вставить на содержание Edit1/2.Text, ну да ладно :)
case ComboBox1.ItemIndex of
0: Edit3.Text:=FloatToStr(num1/num2); //деление на 0? ну и черт с ним :)
1: Edit3.Text:=FloatToStr(num1*num2);
2: Edit3.Text:=FloatToStr(num1-num2);
3: Edit3.Text:=FloatToStr(num1+num2);
end;
end;
← →
DVM © (2006-10-28 23:36) [3]если в edit1 или edit2 будет что-то, что не преобразовать в число - возникнет исключение.
если при делении делитель = 0 то возникнет исключение
и т.д.
← →
Ketmar © (2006-10-28 23:41) [4]а всё проще. ":=" после edit3.text пропустил. %-)
← →
Уця Шпиндель © (2006-10-28 23:44) [5]
> деление на 0? ну и черт с ним :)
я тоже так думаю ..))
← →
Орион © (2006-10-28 23:45) [6]> [5] Уця Шпиндель © (28.10.06 23:44)
а зря...
← →
Орион © (2006-10-28 23:47) [7]и еще,
Edit3.Text:=FloatToStr(...);
а каждой строке, как минимум глупо.
Лучше что-то вродеCalcRes:=num1(/,*,-,+)num2
, а в концеEdit3.Text:=StrToFloat(CaclRes);
← →
Орион © (2006-10-28 23:48) [8]:) FloatToStr конечно же :)
← →
Уця Шпиндель © (2006-10-28 23:49) [9]
> а всё проще. ":=" после edit3.text пропустил. %-)
точно!
а как в сombobox прописывать действия?(ну / * - + )
← →
DVM © (2006-10-28 23:55) [10]
procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2, res: real;
begin
try
num1 := StrtoFloat(edit1.text);
except
// Ошибка
exit;
end;
try
num2 := StrtoFloat(edit2.text);
except
// Ошибка
exit;
end;
case combobox1.text[1] of
"/": if num2 <> 0 then res := num1 / num2 else exit; // Ошибка
"*": res := num1 * num2;
"-": res := num1 - num2;
"+": res := num1 + num2;
end;
Edit3.Text := FloatToStr(res);
end;
end.
← →
Орион © (2006-10-28 23:57) [11]> [9] Уця Шпиндель © (28.10.06 23:49)
а это будет домашним заданием ;)
← →
Уця Шпиндель © (2006-10-29 00:03) [12]нашел!
ето в Items прописывается.
З.Ы.
метод тыка РУЛЕЗЗ!
З.З.Ы.
всем большое спасибо, что откликнулись.
← →
Ketmar © (2006-10-29 00:06) [13]>[12] Уця Шпиндель(c) 29-Oct-2006, 00:03
>метод тыка РУЛЕЗЗ!
а справка -- вообще рулез немеряный.
← →
Орион © (2006-10-29 00:07) [14]> [13] Ketmar © (29.10.06 00:06)
там тоже метод тыка используется... метод тыка пальцем в Ф1 =)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c