Как сделать калькулятор в делфи 10
Перейти к содержимому

Как сделать калькулятор в делфи 10

  • автор:

Проект на Delphi «Стандартный Калькулятор»

Цель проекта: разработать программу «Стандартный калькулятор», практическое знакомство со способами создания программ на Delphi, изучение тем «Ветвление» и «Циклы» в процессе написания программы.

Количество часов на выполнение проекта: 5

  1. При изучении темы «Алгоритмизация и программирование» я использую систему программирования Delphi, так как считаю, что язык программирования Паскаль наиболее пригоден для использования в учебном процессе. Использование визуальной объектно-ориентированной системы позволяет знакомить учащихся с современными методами создания программ и создает положительную мотивацию в изучении информатики, так как учащиеся создают реально работающие и полезные программы, например калькуляторы, музыкальные и видео — проигрыватели и др.
  2. Проектная форма организации работы позволяет увлечь учащихся индивидуальной и коллективной работой над проектами. В проектной деятельности важно самовыражение автора, его личное творчество. Так же при использовании проектов активизируется поисковая активность учащихся и реализуется потребность в свободе: перемещение по классу; возможность выбора темпа изучения, уровня сложности материала, самого способа решения.
  3. В ходе выполнения проекта используется проблемный подход: по мере появления вопросов у учащихся «Как реализовать данную функцию?» изучаются соответствующие темы. При работе над проектом «Стандартный калькулятор» рассматриваются следующие темы: «Ветвление», «Множественный выбор», «Циклы»
  4. Данный проект предлагается учащимся после изучения тем «Основы объектно-ориентированного программирования», «Основы визуального проектирования и программирования в среде Delphi», «Описание констант и переменных», «Арифметические операции и функции»

1 урок «Разработка интерфейса программы»

Задание. Разработать интерфейс программы «Стандартный калькулятор»

MainMenu – создание меню программы
Label – надпись
Edit – поле для ввода и вывода
BitBtn – кнопка (настраивается цвет надписи на кнопке в отличие от Button)
Image – вставка изображения

Разработка интерфейса.

1. Создать форму.

Свойства формы.
Name: kalkul
Caption: Калькулятор
Color: цвет по желанию
BorderIcons: biMaximize – False, остальное True.

2. Разместить на форме объект Edit. Свойства: Name : Edit1, Text – пустая строка.

3. Разместить на форме соответствующее число кнопок.

– цифры от 0 до 9,
– знаки арифметических операций,
– знак «=»
– знаки функций (корень, синус, косинус и т.д.)


Объект – кнопка BitBtn.

Свойства:
Name – можно оставить по умолчанию
Caption – соответствующее выполняемой функции название
Font – шрифт и цвет шрифта по желанию

4. Поместить на форму изображение (если нужно), настроить цвет формы, шрифт, сделать соответствующие надписи на форме (если нужно).

Примерный вид интерфейса программы

Домашнее задание. Повторить темы: «Описание констант и переменных», «Арифметические операции и функции» по конспекту учащегося. См. Приложение 1 и Приложение 2.

2 урок «Написание процедур выполнения арифметических операций»

I. Написать процедуры ввода чисел. Для этого щелкнуть два раза по кнопке «1» (объект BitBtn1) и ввести следующий код:

Аналогично написать процедуры ввода остальных цифр и символа «,»

II. Создать процедуру очистки поля Edit1, кнопка «С» (объект BitBtn22)

  1. Ввести число в поле Edit1. При этом в поле Edit1 число будет представлено как текстовая строка.
  2. Нажать кнопку «+». В процедуре обработки этой кнопки необходимо выполнить следующие действия:
    • преобразовать эту строку в число с помощью функции StrToFloat;
    • сохранить это число в переменной X;
    • сохранить в переменной, например, kod код этой операции;
    • очистить поле Edit1.
  3. Ввести второе число в поле Edit1.
  4. Нажать кнопку «=».В процедуре обработки этой кнопки необходимо выполнить следующие действия:
    • преобразовать эту строку в число с помощью функции StrToFloat;
    • сохранить это число в переменной Y;
    • в зависимости от кода операции, сохраненной в переменной kod, выполнить арифметическую операцию, например, z:=x+y;
    • преобразовать число, находящееся в переменной Z, в текст с помощью функции FloatToStr и вывести в поле Edit1.

IV. Что необходимо для реализации этого алгоритма?

1. Описать переменные X, Y, Z, kod. Описывать переменные будем в основной программе, модуле Unit, чтобы переменные могли действовать в любой процедуре (глобальные переменные).

2. Создать процедуры обработки нажатий кнопок «+», «», «/», «*»

procedure TForm1.BitBtn17Click(Sender: TObject);
begin
x:= strtofloat(edit1.text);
kod := ‘+’;
edit1.Clear;
end;

Но что будет, если мы в поле Edit1 ничего не введем и нажмем кнопку «+»? Возникнет ошибка и программа завершится. Чтобы избежать этого надо проверить имеется ли в поле Edit1символы? И в зависимости от этого условия продолжить выполнять процедуру или вернуться к вводу данных. Следовательно, мы должны использовать алгоритмическую структуру «Ветвление».

Изучить с учащимися правила записи ветвления на языке Delphi.

Изменненая процедура обработки нажатия кнопки «+»

procedureTForm1.BitBtn17Click(Sender: TObject);
begin
ifedit1.Text<>» thenx:=strtofloat(edit1.text);
kod := ‘+’;
edit1.Clear;
end;

Аналогично создатьпроцедуры обработки нажатий кнопок «», «/», «*»

3. Создать процедуру обработки нажатия кнопки «=». В этой процедуре необходимо в зависимости от значения переменной kod выполнять четыре разных операции. Такая структура называется «Множественное ветвление» или «Выбор».

Изучить с учащимися правила записи структуры «Выбор» на языке Delphi.

procedure TForm1.BitBtn19Click(Sender: TObject); кнопка «=»
begin
if edit1.Text<>» then y:=strtofloat(edit1.text); впеременную y кладем edit1.text
case kod of
‘+’: z:=x+y;
‘-‘: z:=x-y
‘*’: z:=x*y;
‘/’: z:=x/y
end ;
edit1.Text:=floattostr(z) вывод в поле Edit1 значение переменной z
end;

3 урок «Написание процедур вычисления основных функций»

I. Создать процедуры вычисления функции «X в степени Y». Для этого необходимо:

1. Изучить тему «Циклы на языке Delphi».

2. Создать процедуру обработки нажатия кнопки «X в степени Y».

procedure TForm1.BitBtn24Click(Sender: TObject);
begin
x:= strtofloat(edit1.text);
kod := ‘^’;
edit1.Clear;
end;

3. Добавить в процедуру нажатия кнопки «=» следующий код

II. Создать процедуры вычисления остальных функций. При вычислении тригонометрических функций учесть, что компьютер работает с радианной мерой углов.
Например, процедура вычисления квадратного корня

Процедура вычисления функции sin

4–5 урок. «Написание процедур работы с меню и усовершенствование калькулятора»

У любой программы имеется система меню, которая позволяет выполнять разные сервисные функции. Создадим для нашего калькулятора меню, которое будет состоять, например, из следующий пунктов: «Файл», «Правка», «Справка». Для этого: поместить на форму объект MainMenu (в любое место формы, этот объект будет невидим при выполнении)

  • Два раза щелкнуть левой кнопкой мыши по этому объекту на форме.
  • Выделить в появившейся форме пунктирное поле и в инспекторе объектов в свойство Caption ввести «Файл».
  • Аналогично создать пункты меню «Правка» и «О программе».
  • В меню «Файл» создать пункт «Выход», а в «Правка» — пункты «Копировать» и «Вставить».
  • Закрыть форму создания меню.

Создание меню

Для создания справки создадим еще одну форму с именем Form2, на которой можно разместить справочные сведения и информацию об авторах программы. Для размещения текста можно воспользоваться объектом Memo, который представляет из себя почти готовый текстовый редактор, и объектом Image для размещения графики и фотографий. Для открытия формы воспользуемся командой Form2.ShowModal.

Процедура открытия формы «Справка»

procedure TForm1.N8Click(Sender: TObject);
begin
Form2.ShowModal Открытие формы «Справка»
end;

Усовершенствование калькулятора

В зависимости от желания и уровня подготовки, каждый учащийся может по-своему модернизировать программу. Кто-то пожелает просто улучшить интерфейс программы, а другой захочет превратить свой простой калькулятор в инженерный, добавив разнообразные математические функции, логические операции и функции, работу с 2-ми, 8-ми и 16-ми числами. В Приложении 3 приведен пример одного калькулятора.

Пишем калькулятор на Delphi 7 (часть1)

Фото стандартного калькулятора на делфи

В этой статье мы подробно рассмотрим создание простого стандартного калькулятора с помощью среды разработки Borland Delphi 7. Основные объекты калькулятора будем создавать программным способом.

Итак, меняем свойства главного окна (в окошке слева Object Inspector) Form1, в соответствии со следующей таблицей (остальные поля не трогаем):

Свойства Form1 Значение
Caption Калькулятор
AutoScroll false
BorderIcons [biSystemMenu, biMinimize]
BorderStyle bsSingle
Position poScreenCenter
Height 292
Width 286

Добавим на форму объект MainMenu (вверху или справа на панеле).

Delphi MainMenu

Кликнем на него два раза мышкой и заполним следующим образом:

Delphi 7 Создание главного меню для калькулятора. Вкладка Файл

Delphi 7 Создание главного меню для калькулятора. Вкладка Справка

Чтобы подчеркнуть букву в названии определенного пункта меню, необходимо перед ней поставить знак &. (Например, «&Справка»).

Далее переходим на создание объектов при помощи программного кода (жмем F12).

Попробуем сначала добавить текстовое поле, где будут выводиться все цифры и вычисления калькулятора (все, что записано ниже после слова «Например» — пишем в Delphi).

Для создания объекта программным способом, выполним следующие действия:

1. В uses пропишем модуль объектов.

Например: StdCtrls

2. Перед строкой implementation и после ключевого слова var создадим новую переменную, а в качестве типа переменной укажем класс объекта (класс объекта всегда начинается с буквы «Т» — вероятно, произошло от названия программы Turbo Pascal).

Например:

Edit: TMemo;
Button: array[0..22] of TButton;

3. В событии (например, при создании формы) сначала создаем новый объект (Edit:=TMemo.Create(form1);), затем отображаем его на Form1 (Edit.Parent:=form1;). А дальше, как и для обычного объекта, указываем его свойства (координаты, размеры и т.п.).

Например:

procedure TForm1.FormCreate (Sender: TObject);
begin
Edit := TMemo.Create( form1 );
Edit.Parent := form1;
Edit.Text := ‘0’;
Edit.Width := 250;
Edit.Height := 21;
Edit.Left := 10;
Edit.Top := 20;
Edit.Alignment := taRightJustify;
end;

Свойство Alignment выравнивает текст в крайнее правое положение.

Таким же образом создадим на форме кнопки. Но создавать их не будем по-отдельности. Создадим массив кнопок, который и выведем в определенном порядке на форму. У нас будет несколько групп кнопок (для ввода цифр и для вычислений). Так как у нас используется массив, соответственно каждый объект необходимо смещать таким образом, чтобы не получилось так, что один объект лежит на другом. Так не должно быть! Поэтому обязательно используйте свойства Top и Left для расположения объекта на форме Form1 в определенных координатах. Чтобы проще было программировать, мы создали массив кнопок от 0 до 9 с соответствующими им кнопками.

Должно получиться что-то вроде этого:

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N4Click(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
end;

var
Form1: TForm1;
Edit: TMemo;
Button: array[0..22] of TButton;

procedure TForm1.FormCreate (Sender: TObject);
var i, left, width, top: integer;
begin
left:=10;
width:=40;
// Создаем объект поля ввода
Edit := TMemo.Create( form1 );
Edit.Parent := form1;
Edit.Text := ‘0’;
Edit.Width := 244;
Edit.Height := 21;
Edit.Left := left;
Edit.Top := 20;
Edit.Alignment := taRightJustify;
// Создаем объекты кнопок для стандартного калькулятора
for i:=0 to 22 do
begin
Button[i] := TButton.Create( form1 );
Button[i].Parent := form1;
case i of
10..12:
begin
if i=10 then
left := 10;
Button[i].Left := left;
Button[i].Top := 51;
Button[i].Width := 75;
left := left+83;
end;
1..9:
begin
if i=1 then
begin
left := 10;
top := 176;
end;
left := left + width + 10;
if i mod 3 =1 then
begin
left := 10;
top := top — 30;
end;
Button[i].Width := width;
Button[i].Left := left;
Button[i].Top := top;
Button[i].Caption := inttostr(i);
end;
13..20:
begin
if i=13 then
begin
left := button[9].Left + button[9].Width + 10;
top := 206;
width := 40;
end;
left := left + width + 10;
if i mod 2 =1 then
begin
left := button[9].Left + button[9].Width + 10;
top := top — 30;
end;
Button[i].Width := width;
Button[i].Left := left;
Button[i].Top := top;
end;
0:
begin
Button[0].Width := width;
Button[0].Left := 10;
Button[0].Top := 176;
Button[i].Caption := inttostr(i);
end;
21,22:
begin
left := left + width + 10;
if i mod 2 =1 then
left := button[0].Left + button[9].Width + 10;
Button[i].Width := width;
Button[i].Left := left;
Button[i].Top := button[13].Top;
end;
end;
end;
// Даем названия каждой кнопке
button[10].Caption := ‘Backspace’;
button[11].Caption := ‘CE’;
button[12].Caption := ‘C’;
button[13].Caption := ‘+’;
button[14].Caption := ‘=’;
button[15].Caption := ‘-‘;
button[16].Caption := ‘1/x’;
button[17].Caption := ‘*’;
button[18].Caption := ‘%’;
button[19].Caption := ‘/’;
button[20].Caption := ‘sqrt’;
button[21].Caption := ‘+/-‘;
button[22].Caption := ‘,’;
end;

Затем, по-желанию, добавим на форму объект StatusBar (с вкладки Win32). В свойстве Panels откроем новое окно, создадим новую панель и назовем ее «Copyright @ 2013 FORTRAN NEW Company» (можно назвать по-своему).

Опубликовано: 2013-02-18 23:51:43

ИнтеллигенцияX

Сегодня, Мы напишем простенький калькулятор на языке программирования Delphi.

Добавим четыре кнопки и три текстовых поля.

Расставьте все элементы, как вам угодно.

Я сделал вот так :

DelphiCalc Калькулятор на Delphi

Для кнопки сложения :

If (Edit1.Text <> '') And (Edit2.Text <> '') then // Проверяем не пустые ли поля Edit3.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text)); // Преобразуем из строкового типа Edit1 и Edit2 в дробный, а для вывода в Edit3 преобразуем из дробного в строковой.

Для кнопки вычитания :

If (Edit1.Text <> '') And (Edit2.Text <> '') then Edit3.Text := FloatToStr(StrToFloat(Edit1.Text) - StrToFloat(Edit2.Text));

Для кнопки умножения :

If (Edit1.Text <> '') And (Edit2.Text <> '') then Edit3.Text := FloatToStr(StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text));

Для кнопки деления :

If (Edit1.Text <> '') And (Edit2.Text <> '') then Edit3.Text := FloatToStr(StrToFloat(Edit1.Text) / StrToFloat(Edit2.Text));

Как вы видите в коде присутствует условие If (Edit1.Text <> ‘ ‘) And (Edit2.Text <> ‘ ‘) then , которое проверяет на пустоту текстовых полей Edit1 и Edit2, если они будут пустые и мы нажмем на кнопку, то ничего не произойдет и спасет нас от ошибки.

Теперь поговорим о преобразовании.

Для того чтобы выполнять действиями с цифрами нам нужно из строкового типа сделать числовой тип.

StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) — преобразуем из строкового типа в дробный(с плавающей запятой) и производим сложение этих чисел.

Edit3.Text := FloatToStr — теперь, когда мы выполнили действие, нам нужно вывести ответ в Edit3, но опять же нужно преобразовывать, т.к Edit — хранит в себе строкой тип и с помощью FloatToStr, мы преобразуем в строкой тип.

FunPreobraz Калькулятор на Delphi

Ну и наконец проверяем :

DelphiCalc2 Калькулятор на Delphi

В проекте я прокомментировал почти весь код — От начала модуля до Конца модуля.

Гуляющее меню

  • Главная
  • Обратная связь
  • ИнтеллигенцияX
  • Исходники.NET
  • Исходники и примеры
  • Уроки VB.NET
  • Уроки Delphi 7
  • Уроки PascalABC.NET
  • Простая база данных на Delphi7
  • База данных в бесплатном аналоге Delphi — среде разработки Lazarus
  • Простая база данных на MS Visual Studio 2014 и MS SQL Server
  • Простая база данных на PHP и MySQL
  • Как работать из PHP с базой данных PostgreSQL
  • Как работать с базой данных SQLite в Android Studio
  • Карта блога

Опросы читателей

Я рекомендую

  • Веселая игра, где в конце надо убить оборотня
  • Уроки программирования (Visual Basic, C++ Builder)

Свежак

  • GPT: нейросеть, которая может написать все, что угодно. Или почти все…
  • Как ускорить Windows? 10 простых советов!
  • 11 интересных фактов из мира крипты
  • Не пора ли покупать «дешевую» крипту?
  • Альткоины медленно захватывают рынок криптовалют

Рубрики ИнтеллигенцииX

  • Android (14)
  • Corel Draw (1)
  • Microsoft Office (10)
  • PHP (7)
  • SEO (4)
  • Visual Studio (10)
  • WordPress (10)
  • Видео-обзоры (14)
  • Главная ценность (6)
  • Игры (15)
  • Из жизни (10)
  • Интернет (14)
  • Информац. новости (15)
  • История (4)
  • Крипта (19)
  • Мои разработки (5)
  • Нейронки (1)
  • Новости (33)
  • Новости блога (39)
  • Обновление блога (1)
  • Одобряю (13)
  • Осторожно! Развод (2)
  • Отдых, праздники (20)
  • Полезно знать (44)
  • Презентации (7)
  • Приколы (8)
  • Примеры C# (3)
  • Произведения (3)
  • Разное (45)
  • Софт (20)
  • Творчество читателей (10)
  • Уроки C# (16)
  • Уроки PascalABC.NET (3)
  • Уроки Visual Basic.NET (119)
  • Фильмы (23)
  • Хостинг и домен (6)

Как сделать калькулятор в делфи 10

Создадим программу, которая представляет собой арифметический калькулятор,
производящий четыре действия над действительными числами. Проектируемый калькулятор
должен функционировать следующим образом: пользователь вводит первый операнд,
выбирает операцию, затем вводит второй операнд и нажимает «равно». При этом
происходит вычисление результата соответствующей операции и его отображение в строке
данных калькулятора. Ввод операндов и операций осуществляется путем нажатия кнопки на
самом калькуляторе.
Создание новой программы на Delphi начинается с выбора опции File/ New Application. Это
означает, что начинается работа над новым приложением для Windows.
Сохраните созданный проект в папке Калькулятор, назвав файл проекта — Calc, а файл модуля
формы — CalcUnit.
В окне инспектора объектов изменим свойства элементов формы в соответствии со
следующим описанием:
form1
Создайте поле ввода-вывода информации Edit1 и кнопки Button1- Button17 (для кнопок с цифрами,
десятичной точкой и действиями). Разместите компоненты на форме в соответствии с рисунком:
Приложение «Простейший калькулятор»
Рис. Внешний вид формы проектируемого калькулятора.
В окне инспектора объектов изменить свойства элементов формы в соответствии с таблицей:

Перед созданием обработчиков введем несколько соглашений:
1. Пусть некоторый признак (флаг f) f=1, если над двумя введенными числами произведена операция
сложения; f=2, если над двумя введенными числами произведена операция вычитания; f=3, если
над двумя введенными числами произведена операция умножения; f=4, если над двумя
введенными числами произведена операция деления и f=5, если была нажата клавиша равно.
2. Необходимо учесть, что арифметические операции вводится циклически (например, после
выполнения операции, когда на индикаторе результат). Поэтому введем переменную zifra, которая
будет отвечать за ввод следующего числа. Переменная zifra будет иметь значение false, если не
введена цифра нового числа, а true, если введена первая цифра нового числа.
3. В программе потребуется использование переменных. Опишем их в разделе var следующим
образом:

Здесь переменная a хранит первое число, b – второе число, c – результат.
4. При запуске приложения Калькулятор, входящего в состав ОС Windows, в строке ввода
данных отображается «0», реализуем такую возможность в нашем приложении, также
установим предварительное значение признака (флага), которое будет уму присвоено после
открытия формы, а также признака того, что число не вводилось. Это делается следующей
процедурой:

5. При нажатии на любой кнопке с числом (при вводе операндов), введенный символ должен
отображаться в текстовом поле edInput (исключение составляет случай, когда ноль
вводится как первый символ числа). При этом необходимо различать первая ли цифра в
числе, или нет. Также необходимо менять значение признака zifra при вводе первой цифры
числа. Это делается следующими процедурами:

6. Аналогично запишутся обработчики для компонентов bt_3, bt_4, … bt_9, bt_0.
7. Необходимо учесть, что в действительном числе может быть только одна запятая, отделяющая
целую часть от дробной, т.е. повторное нажатие на кнопку с изображением запятой игнорируется.
Запрограммируем кнопку «,» (компонент btPoint):

8. Если нажимается кнопка «Сброс», надо обнулить значение a,b и f, очистить поле edInput и
параметру zifra задать значение false. Т.о. обработчик нажатия на кнопке, т.е. на событие
Click следующий:

9. Если же нажимается кнопка для совершения действия (/, *, -, +), то флагу надо дать
соответствующее значение, чтобы после ввода второго операнда и нажатия на кнопке
равно, знать какое действие совершать между первым a и вторым b операндом. Но надо
учесть, что если перед нажатием на кнопке с операцией была нажата кнопка равно (f=5), то
предыдущие вычисления продолжаются, и полученный результат должен теперь выступать
в роли первого операнда, т.е. надо выполнить команду a:=c. Т.о. обработчики нажатий
кнопок с действиями (/, *, -, +), т.е. на событие Click следующие:

10. Если же нажимается кнопка равно, то в зависимости от значения флага f надо произвести
одно из четырех действий: 1-«+», 2-«-», 3-«*», 4-«/» и после этого флагу дать значение f=5.
Т.о. обработчик нажатия на кнопке равно, т.е. на событие Click следующий:

11. Известное Вам приложение Калькулятор, входящего в состав ОС Windows, предполагает
ввод операндов с клавиатуры. Запрограммируем это событие компонента edInput, но
учтем, что в поле можно вводить только цифры и одну запятую:

12. Запустите созданное приложение, исправьте (если они появятся) ошибки. После
тестирования откомпилируйте проект и запустите готовое приложение.

P.S. Для того что бы калькулятор считал подряд, т.е. выдавал результат при нажатие операции, необходимо дописать к обработчику кнопки каждой операции код:

Полностью обработчик нажатия на кнопку:

procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
SpeedButton17Click(Sender); //если была операция то вычисляем
if f=5
then a:=c
else a:=strtofloat(edit1.Text);
f:=3;
zifra:=false;
end;

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •

Андрей May 12 2010 10:55:44
Отличный урок!
Alex May 16 2010 20:01:21
если после нажатия клавиши равно сразу без очистки ввести первый операнд потом действие потом второй операнд потом равно то считает неправильно. тоесть например вводим 5+5=10 и сразу без сброса 5+5=то уже будет равно 15. как поправить?
Kest May 17 2010 05:11:24

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’1′;
oper:=true;
end
else edit1.Text:= edit1.Text+’1′;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’2′;
oper:=true;
end
else edit1.Text:= edit1.Text+’2′;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’3′;
oper:=true;
end
else edit1.Text:= edit1.Text+’3′;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’4′;
oper:=true;
end
else edit1.Text:= edit1.Text+’4′;
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’5′;
oper:=true;
end
else edit1.Text:= edit1.Text+’5′;
end;

procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’6′;
oper:=true;
end
else edit1.Text:= edit1.Text+’6′;
end;

procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’7′;
oper:=true;
end
else edit1.Text:= edit1.Text+’7′;
end;

procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’8′;
oper:=true;
end
else edit1.Text:= edit1.Text+’8′;
end;
procedure Delay(dwMilliseconds: Longint);
var
iStart, iStop: DWORD;
begin
iStart := GetTickCount;
repeat
iStop := GetTickCount;
Application.ProcessMessages;
until (iStop — iStart) >= dwMilliseconds;
end;

procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’9′;
oper:=true;
end
else edit1.Text:= edit1.Text+’9′;
end;

procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
if (edit1.Text=’0′) or not (oper) then
begin
edit1.Text:=’0′;
oper:=true;
end
else edit1.Text:= edit1.Text+’0′;
end;

procedure TForm1.SpeedButton18Click(Sender: TObject);
begin
if pos(‘,’,edit1.Text)=0 then
Edit1.Text:=Edit1.Text+’,’;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
if strtofloat(edit1.Text)>=0 then
edit1.Text:=floattostr(sqrt(strtofloat(edit1.Text)))
else
begin
Edit1.Text:=’Извлечение корня невозможно.’;
delay(1500);
SpeedButton21Click(Sender);
end
end;

procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
if strtofloat(edit1.Text)=0 then
begin
Edit1.Text:=’Деление на нуль невозможно.’;
delay(1500);
SpeedButton21Click(Sender);
exit;
end;
if not (edit1.text=’0′) then
edit1.Text:=floattostr(1/(strtofloat(edit1.Text)));
end;

procedure TForm1.SpeedButton2Click2(Sender: TObject);
begin
edit1.Text:=floattostr(sin(strtofloat(edit1.Text)));
end;

procedure TForm1.SpeedButton20Click(Sender: TObject);
begin
edit1.Text:=floattostr(cos(strtofloat(edit1.Text)));
end;

procedure TForm1.SpeedButton21Click(Sender: TObject);
begin
a:=0;
b:=0;
c:=0;
cod:=0;
edit1.Text:=’0′;
oper:=false;
end;

procedure TForm1.Create_(Sender: TObject);
begin
a:=0;
b:=0;
c:=0;
cod:=0;
oper:=false;
end;

procedure TForm1.SpeedButton13Click(Sender: TObject);
begin

SpeedButton17Click(Sender);
then a:=c
else> a:=strtofloat(edit1.Text);
cod:=1;
oper:=false;
end;

procedure TForm1.SpeedButton12Click(Sender: TObject);
begin

then a:=c
else> a:=strtofloat(edit1.Text);
cod:=2;
oper:=false;
end;

procedure TForm1.SpeedButton11Click(Sender: TObject);
begin

SpeedButton17Click(Sender);
then a:=c
else> a:=strtofloat(edit1.Text);
cod:=3;
oper:=false;
end;

procedure TForm1.SpeedButton10Click(Sender: TObject);
begin

SpeedButton17Click(Sender);
then a:=c
else> a:=strtofloat(edit1.Text);
cod:=4;
oper:=false;
end;

procedure TForm1.SpeedButton17Click(Sender: TObject);
begin
case cod of
1: begin
c:=(a+strtofloat(edit1.Text));
edit1.Text:=floattostr(c);
end;
2: begin
c:=(a-strtofloat(edit1.Text));
edit1.Text:=floattostr(c);
end;
3: begin
c:=(a*strtofloat(edit1.Text));
edit1.Text:=floattostr(c);
end;
4: begin
if strtofloat(edit1.Text)=0 then
begin
Edit1.Text:=’Деление на нуль невозможно.’;
delay(1500);
SpeedButton21Click(Sender);
end
else
c:=(a/strtofloat(edit1.Text));
edit1.Text:=floattostr(c);
end;
end;
cod:=5;
oper:=false;
end;

procedure TForm1.SpeedButton23Click(Sender: TObject);
begin
edit1.Text:=floattostr(cos(strtofloat(edit1.Text))/sin(strtofloat(edit1.Text)));
end;

procedure TForm1.SpeedButton22Click(Sender: TObject);
begin
edit1.Text:=floattostr(strtofloat(edit1.Text)*strtofloat(edit1.Text));
end;

procedure TForm1.Key_press(Sender: TObject; var Key: Char);
begin
case key of
‘0’..’9′,#8:;
‘.’,’,’:begin
if key=’.’ then key:=’,’;
end
else key:=#0
end;
end;

procedure TForm1.SpeedButton24Click(Sender: TObject);
var
otv:string;
ost,chislo:integer;
begin
chislo:=strToint(Edit1.Text);
otv:=’ ‘ ;
repeat
ost:=chislo mod 8;
case ost of
0:otv:=’0’+otv;
1:otv:=’1’+otv;
2:otv:=’2’+otv;
3:otv:=’3’+otv;
4:otv:=’4’+otv;
5:otv:=’5’+otv;
6:otv:=’6’+otv;
7:otv:=’7’+otv;
end;
chislo:=chislo div 8;
until chislo = 0;
Edit1.Text:=otv;
f:=5;
//Zifra:=false;

(edInput.Text=’0′ or not (zifra)

так должно быть

(edInput.Text=’0′ or not (zifra))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *