Книги Фильмы Музыка Статьи Игры Обои Везде
RSS новости
samouchka.net » Статьи » Программирование » Delphi...Pascal » Как написать программу «Калькулятор»
Опрос
Какой операционной системой вы пользуетесь?
Dos
Linux
Mac
FreeBSD
9x
2000
XP
Vista
Seven
другая

Календарь
«    Апрель 2007    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 

Как написать программу «Калькулятор»

Комментариев: 3 | Размещено: 13.04.07

Техническая информация

Категория: Статьи » Программирование » Delphi...Pascal
Дата: 13.04.07
Комментариев: [3]

Основная информация о публикации Как написать программу «Калькулятор»


В данной статье описывается создание калькулятора в среде Borland Delphi. Сначала создаем интерфейс, описывать как его создавать, какие и как ставить кнопки нет смысла (я оставляю это на вашей фантазии), всего на форме 26 кнопок (среди них кнопки цифр – 10, кнопок функций – 16), также один компонент TPanel – на нем будет выводить результат действия калькулятора. Итак, приступим к коду. Добавим в наш код 4 главных переменных

var
  i,p,r:real; //они будут сохранять числа введенные пользователем
  mode:integer; //режим калькулятора (умножить, разделить и т.д)


Можно их внести в раздел protected или private. Теперь приступим к нашим кнопкам. В каждой цифровой кнопке обработаем событие OnClick. Код будет идентичен для всех цифровых кнопок (от 1 до 10й).

procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Caption:=Panel1.Caption+'1';//для всех остальных кнопок заменяйте 1 на
//нужное вам число
end;
Вы наверное заметили что мы в самом начале написания программы ввели переменную mode, настало время объяснить для чего она нам. Переменная mode будет содержать числовое значение действия: 1 – прибавление, 2 – вычитание, 3 – деление, 4 – умножение, 5 – возведение в степень. Пора заняться теперь кнопками действий. Чтобы долго не расписывать что делать, ниже код для пяти кнопок (прибавления, вычитания, умножения деления, возведения в степень).

procedure TForm1.ButtonMinusClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=2;
Panel1.Caption:='';
end;

procedure TForm1.ButtonDivClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=3;
Panel1.Caption:='';
end;

procedure TForm1.ButtonMultiplyClick(Sender: TObject);
begin
i:=StrToFloat(Panel1.Caption);
mode:=4;
Panel1.Caption:='';
end;

procedure TForm1.ButtonPowerClick(Sender: TObject);
begin
i:=StrToFloat(Panel2.Caption);
mode:=5;
Panel2.Caption:='';
end;
Кратко поясню что мы сделали. При нажатии на кнопку мы сохраняем значения введенного числа в переменной I, затем переменной mode присвоем значения действия. Теперь у нас есть все необходимые знания для обработки события OnClick для кнопки со значением "=".

Ниже проведен код для этого действия:

procedure TForm1.ButtonClick(Sender: TObject);
begin
case mode of
1:begin
   p:=StrToFloat(Panel1.Caption);
   r:=i+p;
   Panel1.Caption:=FloatToStr(r);
  end;
2:begin
   p:=StrToFloat(Panel1.Caption);
   r:=i-p;
   Panel1.Caption:=FloatToStr(r);
  end;
3:begin
   p:=StrToFloat(Panel1.Caption);
   r:=i/p;
   Panel1.Caption:=FloatToStr(r);
  end;
4:begin
   p:=StrToFloat(Panel1.Caption);
   r:=i*p;
   Panel1.Caption:=FloatToStr(r);
  end;
5:begin
   p:=StrToFloat(Panel1.Caption);
   r:=Power(i,p);
   Panel1.Caption:=FloatToStr(r);
end;
end;
end;


 (голосов: 25)
 
Техническая информация:

Советуем к просмотру:


аватар vladi написал:
#3: Гости, 11 фев 2009, 14:48 (Ком: 0 )
Насолько я знаю, калькулятор уже изобретен ag
аватар angel0fdeath написал:
#2: Гости, 23 июл 2007, 14:51 (Ком: 0 )
да и вообще слишком простая прога, а если пользователю надо возвести 66 в 77 степень причём с точностью до последнего разряда... тут надо BCD числа использовать или чё то типа того
аватар antid написал:
#1: Гости, 21 июл 2007, 21:22 (Ком: 0 )
есть одна поправочка: а если пользователь нажал вместо равно другую кнопку действий(например, плюс или минус), то наша программа тупо не будет пахать..и еще при наборе чисел ввести буквы, strtofloat тоже не запашет.эта прога нуждается
в большой корректировке.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

Наверх