Напишем калькулятор на Delphi. Создаём на форме поле Edit для считывания чисел и вывода информации.
Размещаем стандартные 10 кнопок для ввода нужной цифры (Button) 0..9. Создаём дополнительные кнопки ( Button ) для запятой, знака "=", "+","-","*","/", функции mod, div и процедуры a^b, для очистки и выхода из программы;
Итого у нас получается 21 кнопка.
Сначала нам нужно считать первое число, по этому в каждой кнопке в интервале 0..9, включая запятую, на событие OnClick пишем следующее:
procedure TForm1.Button7Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'1'; {вводим в поле само поле и приплюсовываем к концу этого поля 1}
end;
Так стоит проделать со всеми числами и запятой.
Итак, после проделанного стоит задуматься над сохранением чисел и действий над ними.
Создаём в разделе Unit четыре переменные (тем кто не может найти: там написано: Var Form:Tform1;)
Вот под этим сразу-же описываем 4 переменные:
var Form1: TForm1;
c:char; {для сохранения действия над числами}
a,b,d:real; {переменные в которых будут хранится значения}
Пришло время для считывания первой переменной, естественно её нужно считать до того как нажмётся один из арифметических знаков, на событие OnClick, начнём например со знака "+", пишем:
procedure TForm1.Button13Click(Sender: TObject);
begin
{проверяем введено ли число,
если нет - никаких действий не будет выполнено пока оно не будет введено}
if edit1.Text<>'' then
a:=strtofloat(edit1.Text); {считываем в переменную первое число}
c:='+'; {присваиваем чаровской переменной знак "+" дабы знать какую операцию нам делать}
edit1.Clear; {Очистка экрана после считывания первого числа}
end;
Повторим эту процедуру с остальными арифметическими действиями.
На событие OnClick кнопки "С" нужно вписать следующее:
procedure TForm1.Button19Click(Sender: TObject);
begin
Edit1.Clear; {Позволяет очистить поле ввода по требованию пользователя}
end;
На событие OnClick кнопки выхода нужно вписать:
procedure TForm1.Button20Click(Sender: TObject);
begin
close();
end;
Осталось считать вторую переменную: На событие OnClick знака "=" пишем:
procedure TForm1.Button12Click(Sender: TObject);
var q,w:integer; {Вспомогательные переменные в процедуре}
begin
if edit1.Text<>'' then b:=strtofloat(edit1.Text); {Считываем переменную}
case c of
'+':d:=a+b;
'-':d:=a-b;
'*':d:=a*b;
'/':d:=a/b;
'm':begin q:=round(a);w:=round(b);d:=q mod w;
'd':begin q:=round(a);w:=round(b);d:=q div w;
'^':begin
d:=a;w:=round(b);
for q:=1 to w-1 do
d:=d*a;
end;
end;
edit1.Text:=floattostr(d); {вывод}
end;
Автор публикации: Berestovskiy