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

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

  • автор:

МАТРИЧНЫЙ КАЛЬКУЛЯТОР DELPHI

Matricial Calculator — это программа, которая может выполнять матричные операции, такие как сложение, вычитание, умножение, транспонирование матрицы и т.д. на Delphi. Для создания матрицы в Delphi используется многомерный массив. Например:

var
Matrix : array[0..2, 0..2] of Integer;
I, J: Integer;
begin
//инициализируем матрицу
for I := 0 to 2 do
for J := 0 to 2 do
Matrix[I, J] := I + J;
end;

Этот код инициализирует матрицу 3 на 3 и заполняет ее суммой двух индексов. Далее можно выполнять матричные операции на этой матрице.

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

Ниже приведен пример кода для сложения матриц:

procedure Matrices_Sum(A, B, C: TMatrix);
var
I, J: Integer;
begin
for I := 0 to A.RowCount — 1 do
for J := 0 to A.ColCount — 1 do
C[I, J] := A[I, J] + B[I, J];
end;

В этом примере Matrices_Sum — это процедура, которая принимает три матрицы (A, B, и C) и складывает матрицы A и B, результат помещается в матрицу C.

Таким образом, матричный калькулятор может быть реализован на Delphi через использование многомерных массивов для представления матриц и соответствующих матричных операций для их обработки.

Borland Delphi7 Разработка приложения (Калькулятор)

Пишем калькулятор на 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)
  • Полезно знать (45)
  • Презентации (7)
  • Приколы (8)
  • Примеры C# (3)
  • Произведения (3)
  • Разное (45)
  • Софт (20)
  • Творчество читателей (10)
  • Уроки C# (16)
  • Уроки PascalABC.NET (3)
  • Уроки Visual Basic.NET (119)
  • Фильмы (23)
  • Хостинг и домен (6)

Проект на 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 приведен пример одного калькулятора.

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

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