Delphi_seven — Delphi 7 Калькулятор систем счислений


Содержание

Системы счисления в Делфи

Пожалуста, кто знает помогите переделать программу-конвертер систем счислений так, чтобы она работала не только с целыми числами, а и с вещественными, очень прошу! Вот код программы для целых чисел:
unit Unit1;

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MConnect, ObjBrkr, HTTPApp, HTTPProd;

type
TForm1 = class(TForm)
Edit1: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
end;

var
Form1: TForm1;
x,p,num:integer;
implementation

procedure check;
begin
case x of
10: Form1.Edit2.text:=’A’+Form1.edit2.text;
11: Form1.Edit2.text:=’B’+Form1.edit2.text;
12: Form1.Edit2.text:=’C’+Form1.edit2.text;
13: Form1.Edit2.text:=’D’+Form1.edit2.text;
14: Form1.Edit2.text:=’E’+Form1.edit2.text;
15: Form1.Edit2.text:=’F’+Form1.edit2.text;
else form1.Edit2.text:=inttostr(x)+form1.edit2.text;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Clear;
p:=strtoint(combobox1.items[combobox1.itemindex]);
num:=strtoint(edit1.Text);
x:=0;
repeat
x:=num mod p;
check;
num:=num div p;
until num

x:=num;
if x<>0 then check;
end;

6 ответов

не совсем понял суть вопроса. напишите точную формулировку задания.

integer — целые числа
double — вещественные

Вот, набросал. Вроде правильно работает:

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

TForm1 = class(TForm)
// Исходное число в десятичной системе счисления.
// Десятичная точка обозначается знаком запятая: ‘,’
edDecimalNum: TEdit;
// Число в заданной системе счисления,
// получившееся в резултате прербразования.
edXNum: TEdit;
// Число задающее основание системы счисления.
edBase: TEdit;
// Точность преобразования — знаков после запятой в результирующем
// представлении числа.
edPrecision: TEdit;
// Кнопка по нажатию на которую происходит преобразование.
BtnTranslate: TButton;
//Ниже — надписи для перечисленных выше элементов.
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
// Обработчик события onClick для BtnTranslate.
procedure BtnTranslateClick(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
end;

var
Form1: TForm1;

function IntToDigit(aVal : Byte) : String;
begin
case aVal of
0..9 : Result := IntToStr(aVal);
10 : Result := ‘A’;
11 : Result := ‘B’;
12 : Result := ‘C’;
13 : Result := ‘D’;
14 : Result := ‘E’;
15 : Result := ‘F’;
end;
end;

function DecimalToXStr (aBase : Byte; Precision : Byte; aVal : Extended) : String;
var
Val : Extended;
IntVal : Int64;
FracVal : Extended;
StrInt : String;
StrFrac : String;
i : Integer;
begin
// Получаем целую и дробную части числа.
IntVal := Trunc(aVal);
FracVal := Frac(aVal);
//Переводим целую часть.
StrInt := »;
repeat
StrInt := IntToDigit(IntVal mod aBase) + StrInt;
IntVal := IntVal div aBase;
until IntVal = 0;
// Если дробная часть = 0, то перевод закончен.
if FracVal = 0 then begin
Result := StrInt;
exit;
end;
//Переводим дробную часть. Точность — до Precision цифр после запятой.
StrFrac := »;
for i := 1 to Precision do begin
Val := FracVal * aBase;
StrFrac := StrFrac + IntToDigit(Trunc(Val));
FracVal := Frac(Val);
//Если дробная часть = 0, то перевод закончен.
if FracVal = 0 then Break;
end;
Result := StrInt + ‘,’ + StrFrac;
end;

Перевод с десятичной системы счисления в другие СС

Нужно перевести число с десятичной системы счисления в 2 и до 16.

Товарищ предложил вот такое решение. Оно работает корректно. Но, я не пойму как это происходит ведь как было показано в лабораторной работе в которой дробная и целая часть числа переводиться по разным правилам и в конечном итоге целая и дробная часть складывается и получается нужное число. То есть перевод целой части тут по правильному алгоритму делается, а дробной не по тому же алгоритму, что в лабе. Как оно так получается?

Тема: Простой калькулятор на Delphi

Опции темы
Отображение
  • Линейный вид
  • Комбинированный вид
  • Древовидный вид

Простой калькулятор на Delphi

Привет! Сейчас я расскажу вам, как можно сделать простой калькулятор на Delphi

В этой статье я на примере покажу как можно быстро сделать калькулятор на языке программирования Delphi.

Откроем новый проект в делфи. Создадим примерно вот такую форму:

Измените все надписи примерно вот так:

Затем, не запуская программу, нажмем 2 раза на кнопку «Сложить». Открылся код нашего калькулятора. Колесиком подымем до строки VAR

Объявим там переменные (если не понятно, просто следуйте инструкции)

Впишем под VAR переменные A,B,C и укажем их тип


Затем вернемся к процедуре, которая создалась у нас при двойном нажатии на кнопку «Сложить». Если кто-нибудь не понял, где это, то это почти в самом низу кода, начинается на:

procedure TForm1.Button4Click(Sender: TObject);

и заканчивается на:

Но если все равно кто-то не понял, то обратитесь в нашей нарисованной форме, и снова дважды нажмите на на кнопку — и вы попадете аккурат в нашу процедуру — курсор будет находиться между begin и end;

Нам нужно сложение? Значит нам нужно три переменных — первое слагаемое, второе слагаемое и сумма.

У нас на форме уже есть три поля Edit — нетрудно догадаться, что в двух из них будут слагаемые, а в третьей выводиться результат операции (в нашем случае сложения).

Нам нужно присвоить переменным вводимые данные из полей. Для этого нужно вписать между begin и end; вот такие строки:

A := Edit1.Text;
B := Edit2.Text;
C := A+B;

Тут все просто, каждую строку можно прочесть.
A равен тексту из поля Edit1
B равен тексту из поля Edit2
С равен сумме A и B

Но возникает проблема — переменные A,B,C у нас тип числа (c:Extended), а данные, которые мы получаем из полей — строковые. Это можно решить встроенной функцией StrToInt. Следовательно, код должен выглядеть вот так:

A := StrToFloat(Edit1.Text);
B := StrToFloat(Edit2.Text);
C := A+B;

Теперь результат нам нужно вывести в поле Edit3

Все поля Edit имеют свойство Text — это свойство показывает текст в этом поле

Присвоим полю Edit3 значение переменной C:

Тут возникает другая проблема переменные A и B у нас стоковые, а нам для вывода нужны числовые. Воспользуемся обратной функцией FloatToStr

Вот готовый код:

A := StrToFloat(Edit1.Text);
B := StrToFloat(Edit2.Text);
C := A+B;
Edit3.Text :=FloatToStr(c);

Можно запустить программу. Вот что должно получится:

Работает? Отлично! Нет? Пересмотрите правильность ввода данных.

Но стоп, у нас ведь калькулятор, а не сумматор? Значит остальным кнопкам нужно присвоить соответствующие значения. Тут все просто, копируем код сложения, затем дважды нажимаем на нужную кнопку, к примеру «Отнять», и вставляем. Нужно лишь заменить знак сложения + на знак вычитания —

Аналогично с другими кнопками.

Теперь рассмотрим кнопку «Очистить»

Эта кнопка должна очищать поле вывода результата. Так же дважды на нее. Откроется код. Впишем туда:

Эта значит, что при нажатии на кнопку поле Edit3 должно очиститься. Проверим? Запускайте программу, выполните какое-нибудь математическое действие, и нажмите «Очистить». Чудеса! Результат пропал!

Вот и все! Наш калькулятор готов. Но выглядит он как то убого — я добавил в него парочку пояснений и вот что у меня вышло:

На этом я закончу свой первый урок. Надеюсь, что все было понятно и интересно!

Пишем калькулятор на 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 (вверху или справа на панеле).

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

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

Далее переходим на создание объектов при помощи программного кода (жмем 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.W > 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;
w > // Создаем объект поля ввода
Edit := TMemo.Create( form1 );
Edit.Parent := form1;
Edit.Text := ‘0’;
Edit.W > 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].W > 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].W > 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;
w > 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].W > Button[i].Left := left;
Button[i].Top := top;
end;
0:
begin
Button[0].W > 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].W > 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;

Цукерберг рекомендует:  Php - Активация по E-mail.

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

Программа «Калькулятор двоичных и шестнадцатеричных систем счисления»

Создание программы для выполнения простейших математических функций с применением языка программирования ObjectPascal. Проектирование графического интерфейса Калькулятора двоичных и шестнадцатеричных систем. Описание алгоритма на естественном языке.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.05.2014
Размер файла 115,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

1. Внешнее описание

1.1 Определение требований к программному средству

1.2 Спецификация качества программного обеспечения

1.3 Функциональная спецификация

2.1 Проектирование графического интерфейса

3.1 Спецификация классов

3.2 Описание алгоритма на естественном языке

4.2 Руководство администратора

4.3 Руководство пользователя

Приложение А. Листинг программы

В данной пояснительной записке рассматривается описание программы «Калькулятора двоичных и шестнадцатеричных систем счисления».

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

В качестве основного инструмента разработки применяется Delphi 7. Язык программирования Object Pascal.

1. Внешнее описание


1.1 Определение требований к программному средству

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

1.2 Спецификация качества программного обеспечения

Функциональность: программа должна являться полностью завершенным программным продуктом, не требующим каких-либо дополнительных специальных компонентов.

Надёжность: программа должна быть автономной.

Эффективность: программа должна функционировать без наличия привода CD/DVD-дисков, должна предъявлять минимальные требования к аппаратному обеспечению, требования к аппаратным ресурсам должны быть намного ниже, чем для самой ОС.Программа должна иметь интуитивно понятный пользовательский графический интерфейс.

1.3 Функциональная спецификация

Минимальные технические характеристики компьютера, на котором гарантируется стабильная работа программы:

— компьютер/процессор: компьютер с процессором класса Pentium II 450 МГц;

— память: 64 МБОЗУ;

— монитор: монитор Super VGA с разрешением 800×600 точек или более высоким, поддерживающий 256 цветов;

— операционная система: операционная система Windows 2000, необходимо наличие Microsoft.NET FrameworkRuntime v2.0;

— наличие свободного дискового пространства на жёстком диске (порядка 1 мегабайта).

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

— завершение работы Windows. В этом случае программа должна завершать свою работу.

2.1 Проектирование графического интерфейса

Главная форма содержит основные элементы интерфейса и даёт доступ ко всем функциям

Рисунок 1 — главная форма программы

Форма Form1 содержит следующие элементы управления:

— поле для просмотра введенных и вычисленных значений;

— цифровые, арифметические и клавиши управления: для ввода цифр, арифметических операций и функций очистки и вычисления данных;

3.1 Спецификация классов

Подсистема расчета реализована функцией:

— procedureTForm1.Button17Click(Sender: TObject) — производит арифметические операции над введенными числами;

Подсистема интерфейса — объединяет все остальные подсистемы. Здесь реализован весь пользовательский интерфейс.

— procedure TForm1.Button1Click(Sender: TObject)вводцифровыхзначений 0-9, `A’-`F’;

— procedure TForm1.Button16Click(Sender: TObject);

procedure TForm1.Button12Click(Sender: TObject);

procedure TForm1.Button11Click(Sender: TObject);

procedure TForm1.Button4Click(Sender: TObject); — ввод арифметической операции.

— procedure TForm1.Button24Click(Sender: TObject) — сброс значений и операций

— procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState) — удаление последнего символа во введенном числе клавишей BackSpace.

?functionTForm1.BinToInt (Value: integer): double; — функция перевода числа из двоичной системы счисления в десятичную систему счисления.

. functionTForm1.Bin(x: Integer): string; — функция перевода числа из десятичной в двоичную систему счисления.

. functionTForm1.HEX(a:integer):string; — функция перевода числа из десятичной в шестнадцатеричную систему счисления.

. functionTForm1.HexToInt(HexNum: string): LongInt; — функция перевода числа из шестнадцатеричной в десятичную систему счисления.


3.2 Описание алгоритма на естественном языке

Работу программы можно разбить на несколько независимых алгоритмов. Каждый алгоритм запускается соответствующим событием.

Алгоритм арифметической операции. В данном алгоритме происходит проверка условным оператором(if):

ComboBox на индекс =0 (на форме “двоичная”), вызов функции BinToInt для преобразования двух чисел двоичной системы счисления в десятичную систему счисления, арифметические операции `+’,’-‘,’*’,’/’ над введенными числами и перевод результата из десятичной в двоичную систему счисления функцией IntToBin.

ComboBox на индекс =1 (на форме “шестнадцатеричная”), вызов функции HexToInt для преобразования двух чисел шестнадцатеричной системы счисления в десятичную систему счисления, арифметические операции `+’,’-‘,’*’,’/’ над введенными числами и перевод результата из десятичной в шестнадцатеричную систему счисления функцией IntToBin.

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

Тест 1. Ввод цифровых данных.

При вводе цифровых данных ошибок не возникает.

Тест 2. Ввод арифметических операций.

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

4.2 Руководство администратора

Программа поставляется в виде исполнимого файла «Calc.exe» размером 14 КБ не требует установки и дополнительной настройки.

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

4.3 Руководство пользователя

программа калькулятор интерфейс алгоритм

Программа предназначена для произведения элементарных арифметических операций над двоичными и шестнадцатеричными числами.

Для ввода числовых, знаковых и арифметических значений используются соответствующие клавиши на форме.

Для очистки и удаления введенного значения используются клавиши Сброс.

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

При разработке данного программного средства применялся язык программирования ObjectPascal.

Приложение А. Листинг модуляForm1

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Delphi_seven — Delphi 7 Калькулятор систем счислений

3.Разработка интерфейса программы…………………………………………………………..9

4.Разработка работоспособности и реализации………………………………………………12

Программы, работающие на компьютере, можно разделить на три категории:

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

2. Системные программы, выполняющие различные вспомогательные функции, например диагностика компьютера или резервное копирование информации.

3. Инструментальные системы (системы программирования), обеспечивающие создание новых программ.

Данные категории программ в свою очередь также разделяются на несколько разделов. Например, прикладные программы можно разделить по уровнюсложности обработки информации и результатов. Для математических вычислений существует множество различных програмных продуктов. Это известные всем пакеты MathCad, MathLab, Mathematika, Axum. Есть и более порстые: всевозможные программы – калькуляторы (имитирующие работу обычного калькулятора). В среде Windows есть такая программа (Calc.exe), по аналогии с ней было сделано данное задание.

Задание.Разработать программу, которая позволяет вводить любые числа и переводить их в любую систему счисления и обратно; также должна быть возможность выполнения любой операции с двумя числами(сложение, вычитание, деление, умножение).

1.Аналитический обзор предметной области

Задача построения тестирующих программ как составной части интеллектуальной обучающей системы обусловлена следующими преимуществамитестирования как способа проверки знаний:
1. Простота решения исходной задачи построения системы.
2. Возможность дополнения тестирующей системы в процессе использования.
3. Достаточно простая схема практического использования.
4. Привлекательность для пользователя за счет времени и усилий, затрачиваемых на проверку знаний.
Известно, что тест как таковой наиболеепросто реализовать в виде компьютерной программы. В программировании это – хрестоматийный пример, входящий в любой учебник по объектно-ориентированному программированию.
Под тестирующей программой тут понимается программа, предлагающая пользователю вопрос и несколько вариантов ответов на него. Тестирующие программы могут различаться в деталях своего построения, но общий принцип и его реализацияу всех таких программ одинаковый.
Основной задачей тестирующих программ является, так или иначе, проверка знаний пользователя. Причем наиболее простые тесты имеют фиксированное количество стандартных вопросов, неизменную систему оценки полученных ответов, статический алгоритм построения последовательности теста.
Следующим шагом развития таких систем стало увеличение базыданных вопросов и ответов, а как следствие – разнообразие задаваемых программой вопросов. Как правило, эти вопросы выбирались случайным образом из базы данных. Подобный алгоритм позволил создать иллюзию уникальности предлагаемых тестов. Случайный выбор вопроса давал возможность формировать тесты с лавинообразным нарастанием количеством вариантов.
Например, рассмотрим тест, состоящий из 4вопросов, каждый из которых имеет 3 варианта. Легко подсчитать, что общее количество вариантов равно 34 = 81. Добавив всего один дополнительный вариант каждого вопроса, получаем уже 44 = 256 уникальных вариантов. Под уникальным вариантом понимается вариант, хотя бы одна задача которого отличается от задач других вариантов. Реальный тест, состоящий из 5 вопросов.

Чтобы читать весь документ, зарегистрируйся.

Проект на 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)

III. Создать процедуры обработки нажатий кнопок «+», «», «/», «*» и «=». Для этого необходимо сначала разобрать с учащимися алгоритм работы с калькулятором:

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

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 ввести «Файл».
  • Аналогично создать пункты меню «Правка» и «О программе».
  • В меню «Файл» создать пункт «Выход», а в «Правка» — пункты «Копировать» и «Вставить».
  • Закрыть форму создания меню.
procedure TForm1.N2Click(Sender: TObject);
begin
close
end; procedure TForm1.N4Click(Sender: TObject);
begin
Edit1.CopyToClipboard; / копироватьвбуферобмена/
end;

procedure TForm1.N5Click(Sender: TObject);
begin
Edit1.PasteFromClipboard; /вставить из буфера обмена/
end;

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

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

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

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

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

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

Заключение. На уроках информатики проектная форма организации работы позволяет раскрыть творческий потенциал учащихся, активизирует исследовательскую работу и позволяет выбрать индивидуальный темп и сложность выполнения работы.
Кроме проекта «Стандартный калькулятор» я использую и другие работы, например «Вычисление площади фигуры методом Монте-Карло» (см. Приложение 4), «Нахождение корней уравнения методом половинного деления (см. Приложение 5), «Расчет электрических цепей (см. Приложение 6) и другие.

Повышение оригинальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp» , которое позволит вам всего за несколько минут, выполнить повышение оригинальности любого файла в формате MS Word. После такого повышения оригинальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, РУКОНТЕКСТ, etxt.ru. Программа «StudentHelp» работает по уникальной технологии так, что на внешний вид, файл с повышенной оригинальностью не отличается от исходного.

Результат поиска


курсовая работа Разработка приложения «Двоичный калькулятор» средствами Borland Delphi
Тип работы: курсовая работа. Добавлен: 30.11.2012. Год: 2011. Страниц: 43. Уникальность по antiplagiat.ru:


Автономное образовательное учреждение
высшего профессионального образования
«Ленинградский государственный университет имени А.С.Пушкина»
Кафедра информатики и вычислительной математики
КУРСОВАЯ РАБОТА
на тему: «Разработка приложения «Двоичный калькулятор» средствами Borland Delphi»
Специальность: 080801.65 — прикладная информатика в экономике

            Выполнила:

            студентка III курса Д.В.Алёхина
            Руководитель:
            канд. пед. наук, доцент Е.В.Федоркевич


Пушкин 2010

Оглавление
Введение 2
Глава1. Двоичная система счисления. 2
§ 1История 2
§ 2 Целочисленные и вещественные типы данных языка Object Pascal 2
Глава 2. Приложение для реализации алгоритмов над данными целочисленных типов 2
§ 1 Система программирования Borland Delphi 2
§ 2 Описание компонентов Delphi 2

    Компонент TButton 2
    Компонент TEdit 2
    Компонент TLabel 2
    Компонент RadioButton 2
    Компонент TMainMenu 2
    Компонент TSaveDialog 2

§ 3 Инструкция пользователя 2
Заключение 2
Список источников 2
Приложение 1. Текст программных модулей 2
Приложение 2. Система тестов 2

Введение

Человеку достаточно сложно произвести в уме математические операции над двоичными числами. Для облегчения расчетов люди создают специальные приложения, выполняющие функции калькулятора. Одним из средств разработки таких программ является Borland Delphi.
В данной курсовой работе предложено создать Windows-приложение на языке Object Pascal в среде визуального программирования Borland Delphi, которое должно обеспечивать выполнение операций по вводу, обработке и выводу информации, содержащей двоичные числа.
При выполнении поставленной задачи разработчику понадобятся навыки по алгоритмизации, программированию и решению в интегрированной визуальной среде программирования Delphi задач по математике.

Глава1. Двоичная система счисления.

§ 1История

    Современная двоичная система была полностью описана Лейбницем в XVII веке в работе Explication de l’Arithmetique Binaire [8] . В системе счисления Лейбница были использованы цифры 0 и 1, как и в современной двоичной системе.
    В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике , которая в настоящее время известна как Булева алгебра или алгебра логики . Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
    В 1937 году Клод Шеннон предствил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT , в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника .
    В ноябре 1937 года Джордж Штибиц , впоследствии работавший в Bell Labs , создал на базе реле компьютер «Model K» (от англ. «Kitchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами . Во время демонстрации на конференции American Mathematical Society в Дармутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа . Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман , Джон Мокли и Норберт Винер , впоследствии писавшие об этом в своих мемуарах.

§ 2 Целочисленные и вещественные типы данных языка Object Pascal

Идентификатор Длина (байт) Диапазон значений Операции Byte 1 0..255 + , — / , *
Div , Mod
>= ,
= , <> Shortint 1 -128..127 Integer 2 -32768..32767 Word 2 0..65535 Longint 4 -2147483648..2147483647

Таблица 1. Целочисленные типы данных.

Вещественные типы данных представляют собой вещественные значения. Обычно они используются в вычислениях по формулам, в арифметических выражениях, в командах присвоения и занимают от 4 до 6 байт памяти персонального компьютера.
Сведения о диапазоне разных типов вещественных чисел и их формате в языке Паскаль представлены в нижеследующей таблице.

Идентификатор типа Диапазон значений чисел Значащие цифры мантиссы Требуемая память в байтах
real от 2.9e-39 до 1.7e38 11-12 6 байт
single от 1.5e-45 до 3.4e38 7-8 4 байта
double от 5.0e-324 до 1.7e308 15-16 8 байт
extended от 3.4e-4932 до 1.1e4932 19-20 10 байт
comp от -2e63 + 1 до 2e63 — 1 10-20 8 байт

Таблица 2. Целочисленные типы данных.

Глава 2. Приложение для реализации алгоритмов над данными целочисленных типов

§ 1 Система программирования Borland Delphi


Borland Delphi представляет собой средство разработки приложений для Microsoft Windows, в основе которого лежит язык Object Pascal. Delphi является мощным и простым в использовании инструментом для создания автономных программ, обладающих графическим интерфейсом. В основе данной системы лежит технологии событийного программирования и визуального проектирования, применение которых позволяет существенно сократить время разработки и облегчить процесс создания приложений.
При технологии событийного программирования выполнение кода программы не следует по заранее определенному пути, т.к. оно зависит от реакции программы на различные события. События могут быть пользовательскими, возникшими в результате действий пользователя (например, щелчок мыши), системными, возникающими в операционной системе (например, сообщения от таймера), и программными (например, если обнаружена ошибка и ее надо обработать).
Визуальное проектирование позволяет создать видимую часть приложения из готовых компонентов Delphi. Технология заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. В процессе проектирования автоматически формируется часть кода программы, при этом учитываются выбранные разработчиком размеры, положения, цвет и другие свойства компонентов.

§ 2 Описание компонентов Delphi

В Delphi поля ввода, отображения и редактирования информации, кнопки, индикаторы и прочие элементы управления, находящиеся в форме, называются компонентами. Они могут быть визуальными, т.е. доступны пользователю после запуска приложения, и не визуальными — доступны только для разработчика, и при запуске приложения не отображаются на форме.
Форма и компоненты, использованные для разработки приложения «Двоичный калькулятор», изображены на Рисунке 1.
5.

1.
4.
3.
Рисунок 1. Форма разработанного приложения «Двоичный калькулятор».

    1 – TButton
    2 – TEdit
    3 – TLabel
    4. –RadioButton
    5 – TMainMenu
    6 – TSaveDialog

Основные свойства, общие для всех компонентов:

      Name — имя компонента в программе;
      Caption — текст, появляющийся на компоненте;
      Font — определяет атрибуты шрифта;
      Hint — всплывающая подсказка, которая появляется при наведении курсора на компонент;
      ShowHint — (если true) всплывающая подсказка появится при наведении курсора;
      Visible — (если true) видимость компонента на форме;
      Enabled — (если true) компонент реагирует на события
      Heigth — высота компонента;
      Width — ширина компонента.

Компонент TButton

Компонент TEdit

Компонент TLabel

Компонент RadioButton

Компонент TMainMenu

Компонент TSaveDialog

Страница библиотеки «Dialogs». Эти компоненты-диалоги предназначены для выбора имени файла, который будет в дальнейшем использован для чтения или записи. Диалог может быть настроен на представление имен файлов какого-нибудь одного типа или нескольких типов.
TSaveDialog — диалоговое окно сохранния файла.
Свойства:

    Filter — список, в котором отображаются типы;

Рисунок 3. Свойство Filter для диалогов

    FilterIndex — номер фильтра, который будет показан в момент открытия диалога;
    DefaultExt — расширение файла по умолчанию;
    FileName — указанное пользователем имя файла.

Метод:

    Execute — вызывает диалог, возвращает true, если пользователь произвел выбор в диалоге.
    Опции:
    ofFileMustExist — в случае, если пользователь написал имя несуществующего файла, появляется сообщение об ошибке, и пользователю будет предоставлена возможность сновь указать требуемый файл;
    ofEnableSizing — разрешает пользователю изменять размер диалогового окна;
    ofNoValidate — не позволяет писать в именах файлов неразрешенные символы, но не мешает выбирать файлы с неразрешенными символами в имени;
    ofOverwritePrompt — в случае, если при сохранении файла пользователь написал имя существующего файла, появляется замечание, что файл с таким именем существует, и запрашивается желание пользователя переписать существующий файл.

§ 3 Инструкция пользователя

Ввод чисел
После запуска приложения появляется окно (рис.4).
Рисунок 4. Окно приложения.
Доступны кнопки действий над числами и кнопка СБ(сброс)
После нажатия на любую из кнопок появляется подсказка в виде сообщения (рис.5).

Рисунок 5. Окно сообщения.
После нажатия на «Файл». Перед Вами откроется список, в котором можете выбрать «Вставить из файла» (рис.6).

Рисунок 6. Список источников данных.
Таким образом данные загружаются из текстового файла, содержащего числа, с которыми будет работать приложение. Если выбранный файл пуст, появится соответсвующее сообщение (рис.7).

Рисунок 7. Окно приложения.
Нажмите «ОК» и заполните текстовый файл данными.
Если же вы вводите числа вручную с клавиатуры в верхнее поле «Число 1» (в нем мигает курсор) введи первое число, с которым хотите работать. Оно указано стрелкой на рис.8
. Рисунок 8.
Далее введите второе число, с которым хотите работать в поле «Число 2». Оно указано стрелкой на рис.9.
. Рисунок 9.
Если вы не ввели какое-либо из чисел, то появятся подсказки (рис.10,11)

Рисунок 10. Окно сообщения.

Рисунок 11. Окно сообщения.
После ввода данных нажмите на кнопку, обозначающую то действие которое вы хотите совершить. Приложение проверит, правильно ли Вы ввели числа. Если были введены символы, буквы или не двоичные числа, появится сообщение об ошибке (рис.12,13), указывающее на число в котором допущена ошибка

Рисунок 12.
Рисунок 13.
Если данные введены корректно, то в поле «Ответ» (рис.14) вы увидите результат выбранного вами действия.
Рисунок 14
Если отмечена кнопка «Показать результат в 10сс» (рис.15), то приложение выдаст результат, помимо двоичной системы счисления еще и в десятичной системе счисления (рис.16).
Рисунок 15
Рисунок16

Если вы попробуете разделить число 1 на 0, то приложение выдаст сообщение об ошибке (рис.17)
Рисунок17
После выполнения выбранного вами действия, доступными будут кнопка сброса (СБ) и пункты меню Файл: «Сохранить в файл», «Вставить из файла», «Выход» и пункты меню Справка «О программе».
Кнопка сброса (рис.18) очистит поля «Число 1» и «Число 2» и снова сделает доступными кнопки действия.
Рисунок18
Пункт меню Файл «Сохранить в файл» позволяет пользователю сохранить в файл информацию о последней, осуществленной им операцию.
В файл сохраняются операнды(Число 1 и Число 2), действие выбранное пользователем и результат выполнения.
После выбора этого пункта из меню появится диалоговое окно (рис.19), в котором вы можете дать имя файлу и выбрать место его сохранения. Файл будет иметь расширение «.txt».

Рисунок 19. Диалоговое окно сохранения файла.
Чтобы закрыть приложение, выберите в меню «Выход». Приложение будет закрыто без сохранения данных.

Заключение

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

      введены не корректные данные (например, текст);
      в качестве источника данных был выбран пустой файл;
      выбрана операция над двумя числами, а введено только одно.
      Было введено не двоичное число
      Пользователь попытался разделить на 0

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

Список источников

    http://www.cyberguru.ru/ programming/delphi/
    Архангельский А.Я. 100 компонентов общего назначения библиотеки Delphi 5 — 2002 г.
    Тюканов А.С., Васильев Н.А. РГПУ им. А.И. Герцена. Практикум по программированию: Электронный задачник — СПб, 1997-2004гг.

Приложение 1. Текст программных модулей

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

type
TForm1 = class(TForm)
EdParametr1: TEdit;
EdParametr2: TEdit;
BtPlus: TButton;
BtMinus: TButton;
BtUmn: TButton;
Btdel: TButton;
EdOtv: TEdit;
BtOch: TButton;
Label1: TLabel;
Label2: TLabel;
BtDiv: TButton;
BtMod: TButton;
Label3: TLabel;
MainMenu1: TMainMenu;
Fail: TMenuItem;
Spr: TMenuItem;
Save: TMenuItem;
Past: TMenuItem;
Raz: TMenuItem;
Vuxod: TMenuItem;
Spravka: TMenuItem;
Edit1: TEdit;
RBt1: TRadioButton;
Lb10cc: TLabel;
sdMyCalc: TSaveDialog;
Memo1: TMemo;
Edit2: TEdit;
procedure BtPlusClick(Sender: TObject);
procedure BtMinusClick(Sender: TObject);
procedure BtUmnClick(Sender: TObject);
procedure BtdelClick(Sender: TObject);
procedure VuxodClick(Sender: TObject);
procedure SpravkaClick(Sender: TObject);
procedure BtDivClick(Sender: TObject);
procedure BtModClick(Sender: TObject);
procedure BtOchClick(Sender: TObject);
procedure RBt1Click(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure PastClick(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
end;

var
Form1: TForm1;

var
parametr1,parametr2,otvet1: string;
prmtr1,prmtr2:integer;
otvet:real;
code1,code2,code3,code4: integer;
i,k,k1,V:integer; <дополнительные переменные>
n,n1:integer; <запоминает длину строки>
y,y1,y2,y3,y4,st,st1,st2: string;
x,x1,x2,x3,x4:real; <дополнительные переменные для перевода>
otvet2,x5,x6,x7,otvet3: integer;
otvet4:real;
F:file;
var fFile: TextFile;

procedure TForm1.BtPlusClick(Sender: TObject);
begin
edit2.Text:=’Сложение’;
y:=»;
y1:=»;
y2:=»;
y3:=»;
y4:=»;
<проверяем числовое ли значение у параметров>

parametr1:=EdParametr1.Text;
if parametr1=» then
begin
beep;
showmessage(‘Вы не ввели первое число!’);
edParametr1.SetFocus;
edParametr1.SelectAll;
end;
if parametr1<>» then begin

parametr2:=EdParametr2.Text;
if parametr2=» then
begin
beep;
showmessage(‘Вы не ввели второе число!’);
edParametr2.SetFocus;
edParametr2.SelectAll;
end
else
begin
k:=0;
val(parametr1,prmtr1,code1);
for i:=1 to length(parametr1) do
if (parametr1[i]<>‘0’) and (parametr1[i]<>‘1’) and (parametr1[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число1!’);
edparametr1.SetFocus;
edparametr1.SelectAll;
end
else
begin
k:=0;
val(parametr2,prmtr2,code2);
for i:=1 to length(parametr2) do
if (parametr2[i]<>‘0’) and (parametr2[i]<>‘1’) and (parametr2[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число2!’);
edparametr2.SetFocus;
edparametr2.SelectAll;
end
else
begin
btPlus.Enabled:=false;
btMinus.Enabled:=false;
btMod.Enabled:=false;
btDiv.Enabled:=false;
btUmn.Enabled:=false;
btDel.Enabled:=false;
save.Enabled:=true;

k:=0;
k1:=0;
for i:=1 to length(parametr1) do
if parametr1[i]=’,’ then <Число 1 вещественное!>
begin
k:=k+1;
y1:=copy(parametr1,i+1,length( parametr1));
y:=copy(parametr1,1,i-1);

n:=length(y);
n1:=length(y1);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);

for i:=1 to n1 do
begin
val(y1[i],x,code2);
x2:=x2+x*(exp((-i)*ln(2)));
end;
str(x2:0:5,y1);





end;
if k=0 then
begin
<Число 1 не вещественное>
<перевод числа 1 в десятичную систему счисления>
n:=length(parametr1);
x1:=0;
for i:=1 to n do
begin
val(parametr1[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);
end;
end;
<Проверяем вещественное ли Число 2 >
for i:=1 to length(parametr2) do
if parametr2[i]=’,’ then begin <Число 2 вещественное!>
k1:=k1+1;
y3:=copy(parametr2,i+1,length( parametr2));
y2:=copy(parametr2,1,i-1);

n:=length(y2);
n1:=length(y3);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y2[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y2);

procedure TForm1.BtMinusClick(Sender: TObject);
begin
edit2.Text:=’Вычитание’;
y:=»;
y1:=»;
y2:=»;
y3:=»;
y4:=»;
<проверяем числовое ли значение у параметров>

parametr1:=EdParametr1.Text;
if parametr1=» then
begin
beep;
showmessage(‘Вы не ввели первое число!’);
edParametr1.SetFocus;
edParametr1.SelectAll;
end;
if parametr1<>» then begin

parametr2:=EdParametr2.Text;
if parametr2=» then
begin
beep;
showmessage(‘Вы не ввели второе число!’);
edParametr2.SetFocus;
edParametr2.SelectAll;
end
else
begin
k:=0;
val(parametr1,prmtr1,code1);
for i:=1 to length(parametr1) do
if (parametr1[i]<>‘0’) and (parametr1[i]<>‘1’) and (parametr1[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число1!’);
edparametr1.SetFocus;
edparametr1.SelectAll;
end
else
begin
k:=0;
val(parametr2,prmtr2,code2);
for i:=1 to length(parametr2) do
if (parametr2[i]<>‘0’) and (parametr2[i]<>‘1’) and (parametr2[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число2!’);
edparametr2.SetFocus;
edparametr2.SelectAll;
end
else
begin
btPlus.Enabled:=false;
btMinus.Enabled:=false;
btMod.Enabled:=false;
btDiv.Enabled:=false;
btUmn.Enabled:=false;
btDel.Enabled:=false;
save.Enabled:=true;

k:=0;
k1:=0;
for i:=1 to length(parametr1) do
if parametr1[i]=’,’ then <Число 1 вещественное!>
begin
k:=k+1;
y1:=copy(parametr1,i+1,length( parametr1));
y:=copy(parametr1,1,i-1);

n:=length(y);
n1:=length(y1);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);

for i:=1 to n1 do
begin
val(y1[i],x,code2);
x2:=x2+x*(exp((-i)*ln(2)));
end;
str(x2:0:5,y1);





end;
if k=0 then
begin
<Число 1 не вещественное>
<перевод числа 1 в десятичную систему счисления>
n:=length(parametr1);
x1:=0;
for i:=1 to n do
begin
val(parametr1[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);
end;
end;
<Проверяем вещественное ли Число 2 >
for i:=1 to length(parametr2) do
if parametr2[i]=’,’ then begin <Число 2 вещественное!>
k1:=k1+1;
y3:=copy(parametr2,i+1,length( parametr2));
y2:=copy(parametr2,1,i-1);

n:=length(y2);
n1:=length(y3);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y2[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y2);

procedure TForm1.BtUmnClick(Sender: TObject);
begin
edit2.Text:=’Умножение’;
y:=»;
y1:=»;
y2:=»;
y3:=»;
y4:=»;
<проверяем числовое ли значение у параметров>

parametr1:=EdParametr1.Text;
if parametr1=» then
begin
beep;
showmessage(‘Вы не ввели первое число!’);
edParametr1.SetFocus;
edParametr1.SelectAll;
end;
if parametr1<>» then begin

parametr2:=EdParametr2.Text;
if parametr2=» then
begin
beep;
showmessage(‘Вы не ввели второе число!’);
edParametr2.SetFocus;
edParametr2.SelectAll;
end
else
begin
k:=0;
val(parametr1,prmtr1,code1);
for i:=1 to length(parametr1) do
if (parametr1[i]<>‘0’) and (parametr1[i]<>‘1’) and (parametr1[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число1!’);
edparametr1.SetFocus;
edparametr1.SelectAll;
end
else
begin
k:=0;
val(parametr2,prmtr2,code2);
for i:=1 to length(parametr2) do
if (parametr2[i]<>‘0’) and (parametr2[i]<>‘1’) and (parametr2[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число2!’);
edparametr2.SetFocus;
edparametr2.SelectAll;
end
else
begin
btPlus.Enabled:=false;
btMinus.Enabled:=false;
btMod.Enabled:=false;
btDiv.Enabled:=false;
btUmn.Enabled:=false;
btDel.Enabled:=false;
save.Enabled:=true;

k:=0;
k1:=0;
for i:=1 to length(parametr1) do
if parametr1[i]=’,’ then <Число 1 вещественное!>
begin
k:=k+1;
y1:=copy(parametr1,i+1,length( parametr1));
y:=copy(parametr1,1,i-1);

n:=length(y);
n1:=length(y1);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);

for i:=1 to n1 do
begin
val(y1[i],x,code2);
x2:=x2+x*(exp((-i)*ln(2)));
end;
str(x2:0:5,y1);





end;
if k=0 then
begin
<Число 1 не вещественное>
<перевод числа 1 в десятичную систему счисления>
n:=length(parametr1);
x1:=0;
for i:=1 to n do
begin
val(parametr1[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y);
end;
end;
<Проверяем вещественное ли Число 2 >
for i:=1 to length(parametr2) do
if parametr2[i]=’,’ then begin <Число 2 вещественное!>
k1:=k1+1;
y3:=copy(parametr2,i+1,length( parametr2));
y2:=copy(parametr2,1,i-1);

n:=length(y2);
n1:=length(y3);
x1:=0;
x2:=0;
for i:=1 to n do
begin
val(y2[i],x,code1);
x1:=x1+x*(exp((n-i)*ln(2)));
end;
str(x1:0:0,y2);

procedure TForm1.BtdelClick(Sender: TObject);
begin
edit2.Text:=’Деление’;
y:=»;
y1:=»;
y2:=»;
y3:=»;
y4:=»;
<проверяем числовое ли значение у параметров>

val(parametr2,prmtr2,code1);
parametr1:=EdParametr1.Text;
if parametr1=» then
begin
beep;
showmessage(‘Вы не ввели первое число!’);
edParametr1.SetFocus;
edParametr1.SelectAll;
end;
if parametr1<>» then begin

parametr2:=EdParametr2.Text;
if parametr2=» then
begin
beep;
showmessage(‘Вы не ввели второе число!’);
edParametr2.SetFocus;
edParametr2.SelectAll;
end
else
begin
if (parametr2<>») and (prmtr2=0) then
begin
beep;
showmessage(‘На ноль делить нельзя!’);
edparametr2.SetFocus;
edparametr2.SelectAll;
end
else
begin
k:=0;
val(parametr1,prmtr1,code1);
for i:=1 to length(parametr1) do
if (parametr1[i]<>‘0’) and (parametr1[i]<>‘1’) and (parametr1[i]<>‘,’) then
k:=k+1;
if k<>0 then
begin
beep;
showmessage(‘Вы некорректно ввели число1!’);
edparametr1.SetFocus;
edparametr1.SelectAll;
end
else
begin
k:=0;
val(parametr2,prmtr2,code2);
for i:=1 to length(parametr2) do
и т.д.

Перейти к полному тексту работы

Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru

Смотреть полный текст работы бесплатно

Смотреть похожие работы

* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.

специфический калькулятор на Делфи

berkutua

Доброе время суток.
Вопрос по курсовой. Нужно сделать в Делфи калькулятор, который переводит из 16 сс в 2, 8, и 10 сс.
Задача казалось бы и легка, но есть нюансы. Мой алгоритм: вводимое число разбить на разряды а потом по отдельности сравнивать с библиотекой (когда переводим из 16сс в 2сс). Например 12А разбить на 1,2, и А. Проблема заключается в том, как это сделать? Как это записать в Делфи…? Может это и не самый лучший вариант, может есть и лучше. Буду очень благодарен за любую помощь, за любой алгоритм.

ЗЫ Если не там постанул(не в том разделе), извеняюсь.

berkutua

Barmutik

Ну какие проблемы .. не вдаваясь в Ваши алгоритмы.. просто обращайтесь к Вашей строке по одному символу и получите то что Вам надо ..

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

Delphi_seven — Delphi 7 Калькулятор систем счислений

Для десятичной системы счисления.

О возведении числа в степень и длинной арифметике

Возведение в степень даже самых малых чисел (как 2, 3, 5, 7) с ростом показателя степени очень быстро приводит к результатам, которые выражаются десятками и сотнями десятичных цифр.

Например, 2 в степени 179 представляет собой 54-значное число

2 179 = 766247770432944429179173513575154591809369561091801088

И хорошо, если точность результата не очень важна

Тогда можно использовать типы данных, поддерживающих экспоненциальную форму (double, extended).

А если точностью пожертвовать нельзя, то приходится использовать длинную арифметику (иначе ошибки переполнения не миновать).

Алгоритм? Просто в цикле перемножаем число-основание поразрядно столько раз, сколько предписано показателем степени

Цукерберг рекомендует:  Основы языка Swift. Современные технологии программирования под Apple на Swift 5, xcode 10
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих