Програма Калькулятор

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати


Зміст
"1-3" \ n \ p "" Вступ
1. Метод рішення
2. Опис програми
3. Керівництво користувача
Робота з пам'яттю:
Гарячі клавіші:
Використання меню
Вимірювання кутів в градусах і радіанах
4. Результати моделювання


Введення

Програми, що працюють на комп'ютері, можна розділити на три категорії:
1. Прикладні програми, які безпосередньо забезпечують виконання необхідних користувачам робіт: редагування текстів, малювання, обробку інформаційних масивів і т.д.
2. Системні програми, що виконують різні допоміжні функції, наприклад діагностика комп'ютера або резервне копіювання інформації.
3. Інструментальні системи (системи програмування), що забезпечують створення нових програм.
Дані категорії програм у свою чергу так - ж поділяються на кілька розділів. Наприклад, прикладні програми можна розділити за рівнем складності обробки інформації та результатів. Для математичних обчислень існує безліч різних програмних продуктів. Це відомі всім пакунки MathCad, MathLab, Mathematika, Axum. Є й більш порстие: всілякі програми - калькулятори (імітують роботу звичайного калькулятора). У середовищі Windows є така програма (Calc.exe), за аналогією з нею було зроблено дане завдання.
Завдання
Написати програму «Калькулятор». Використовувати одне поле для введення операторів і для виведення результату. Передбачити можливість вибору типу калькулятора: звичайний або інженерний. З допомогою інженерного можна обчислювати: тригонометричні функції (для кутів в градусах і радіанах), зведення в ступінь, факторіал, логарифм, експоненту, цілочисельне ділення і т.п.

1. Метод рішення

У програмі «Калькулятор» використано одне поле для введення операторів і для виведення результату. У полі виведення даних числа відображаються з точністю 6 знаків після коми. Проект має 6 модулів, кожен з яких містить свою форму. Головний модуль проекту називається CALC, пов'язаний з першою формою Form1. На даній формі перебуває меню управління (для вибору дій програми), рядок стану (висновок підказки), фоновий малюнок (звернення до файлу Fon.jpg).
Форми модулів Unitcalc3 і Unitcalc5 містять одне поле для введення і виведення результату. Unitcalc3 - звичайний калькулятор, Unitcalc5 - інженерний (розширений набір дій).
Для представлення довідкової інформації у програмі використаний модуль Unitcalc2, зі зверненням компонента Memo до файлу допомоги Help.txt.
Модуль Unitcalc4 з формою Form4 має заголовок «About». Даний модуль звертається до файлу - малюнку Im.bmp і виводить на екран інформацію про автора.
Модуль Unit6 - виводить на екран миготливу заставку (використаний компоненти Timer і Image). Вікно заставки містить кнопку для її закриття.
Примітка: файли Help.txt, Fon.jpg, Im.bmp і Skull1.jpg повинні знаходиться в тому ж каталозі, що й основний файл програми.
Передбачена можливість вибору типу калькулятора: звичайний або інженерний. За допомогою звичайного режиму можна обчислювати тільки чотири елементарні функції: додавання (x + y), віднімання (x - y), множення (x * y) і ділення (x / y). З допомогою інженерного можна обчислювати: тригонометричні функції для кутів в градусах і радіанах (блок-схема алгоритму наведена в Додатку 2), зведення в квадрат (y 2), куб (y 3) ступінь ( ), Факторіал (y! = 1 * 2 * 3 * ... * y), натуральний логарифм (ln (y)), поділ (1 / y) і т.п. (Блок-схема алгоритму обчислення результатів по натисненню кнопки = наведена у Додатку 1). У тригонометричних обчисленнях функція тангенс кута обчислюється за допомогою відношення синуса до косинусу (sin / cos).

2. Опис програми

Програма Calc for win (calc4win.exe) розроблена в середовищі Delphi версії 6.
Для зберігання даних у програмі використовуються глобальні змінні типу string, char, real, integer.
Висновок малюнка з файлу на диску у форму здійснюється за допомогою процедури LoadFromFile (Name).
Висновок текстової інформації з файлу допомоги Help.txt проводиться процедурою Form2.Memo1.lines.Add (s).
Передбачено висновок повідомлень за допомогою функції MessageDlg при діленні на нуль, добуванні кореня з від'ємного числа, а також обчислення логарифма негативного числа і виходу значень числової змінної за межі визначених числових типів.

3. Керівництво користувача

Дана програма призначена для виконання математичних обчислень, імітуючи дії калькулятора. Для роботи з нею потрібно запустити файл Calc4win.exe. У каталозі, що містить файл Calc4win.exe, є графічний файл використовується для оформлення інформаційної форми. Апаратні вимоги: миша / клавіатура. Системні вимоги: 486 або сумісний процесор, 16 Mb RAM, ОС Windows9x. Для роботи програми потрібно 707 kb дискового простору.
Для початку роботи потрібно запустити виконуваний файл Calс4win.exe.
Програма Calc for win має два режими роботи: Звичайний і Інженерний, які можна вибрати в меню Вид.
У Звичайному режимі калькулятор обчислює тільки чотири елементарні функції (складання, віднімання, множення і ділення).
У Інженерному виконуються такі функції як зведення в ступінь, факторіал, логарифм, тригонометричні обчислення, округлення результату до цілого, робота з пам'яттю і т.п. Передбачений вибір кута: градуси або радіани.
Інструкція з експлуатації програми:
1. Виконання простих обчислень:
· У меню Вид виберіть Звичайний або натисніть клавішу F2;
· Введіть перше число;
· Натисніть кнопку + (додавання), - (віднімання), * (множення) або / (поділ);
· Введіть наступне число;
· Введіть необхідний оператор;
· Введіть інші числа і оператори;
· Натисніть кнопку =.
2. Виконання інженерних обчислень:
· У меню Вигляд виберіть Інженерний або натисніть клавішу F3;
· Виберіть систему числення;
· Введіть перше число;
· Виберіть потрібний оператор;
· Введіть наступне число;
· Введіть інші оператори і числа;
· Натисніть кнопку =.

Робота з пам'яттю:

· Щоб занести число в пам'ять, натисніть кнопку M write;
· Після збереження числа над кнопками пам'яті на панелі калькулятора з'явиться індикатор M. Кожне нове число, занесене в пам'ять, замінює попереднє;
· Щоб викликати число з пам'яті, натисніть кнопку M read;
· Щоб очистити пам'ять, натисніть кнопку M clear;
· Щоб скласти або відняти відображуване число з числом, що зберігається в пам'яті, натисніть кнопку M + або M -. Щоб викликати результат, натисніть кнопку M read;

Гарячі клавіші:

F1 - Виклик довідки;
F10 - Вихід з програми;
F2 - Звичайний режим роботи;
F3 - Інженерний режим;

Використання меню

Для більш швидкого і зручного використання калькулятор створене меню, що містить всі основні функції програми.
1. Вид:
- Звичайний F2 (визначає Звичайний режим роботи калькулятор);
- Інженерний F3 (визначає Інженерний режим роботи калькулятор);
2. Довідка:
- Допомога F1 (відкриває вікно довідки для полегшеною і правильної роботи користувача з програмою);
- About (виводить на екран інформацію про автора);
3. Вихід:
- Вихід F 10 (служить для правильного виходу їх програми).

Вимірювання кутів в градусах і радіанах

Режим калькулятора Інженерний дає можливість змінювати міру виміру кутів. Для цього необхідно тільки вказати в чому повинен вимірюватися аргумент тригонометричної функції. За умовчанням це градуси DEG.

4. Результати моделювання

Блок-схема алгоритму до кнопки =



Список ідентифікаторів, використаних в блок-схемою з коротким описом:
§ X, Y, Z - ідентифікатори типу real. Змінні використовуються як у
§ Звичайному режимі, так і в Інженерному.

Блок-схема алгоритму обчислення факторіала


Список ідентифікаторів, використаних в блок-схемою з коротким описом:
§ Y, Z, Fact - ідентифікатори типу real.
§ K - ідентифікатор типу Integer.
Текст до FORM 5
unit Unitcalc5;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm5 = class (TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
.
.
Button39: TButton;
Label1: TLabel;
Label2: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Bevel8: TBevel;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure Button1Click (Sender: TObject);
.
.
procedure Button39Click (Sender: TObject);
procedure RadioButton1Click (Sender: TObject);
procedure RadioButton2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form5: TForm5;
s, s1, c: string; t, i, j: integer;
x, y, z, m, f: real; cf: char;
implementation
{$ R *. dfm}
procedure operat (x, y: real; c: string; var z: real);
begin
if c = '+' then z: = x + y;
if c = '-' then z: = xy;
if c = '*' then z: = x * y;
if c = 'x ^ y' then z: = exp (y * ln (x));
if (c ='/') then
if (y <> 0) then z: = x / y else
messagedlg ('На 0 ділити не можна ", mterror, [mbok], 0);
if c =''then z: = y;
end;
procedure okr (var c: string);
var i, j: integer; x: real;
begin
i: = length (c); j: = i;
while copy (c, j, 1) = 0 "do
begin
delete (c, j, 1);
j: = j-1;
end;
val (c, x, i);
if (x> 1E +16) or (x <-1E +16) then
begin
s: = '0';
messagedlg ('Занадто велике чіссло', mtcustom, [mbok], 0);
end;
end;

procedure o (p: string; var c, c1: string);
begin
if length (c) <16 then
begin
c: = c + p; c1: = c;
end;
end;

procedure TForm5.Button10Click (Sender: TObject);
begin
o (0 ", s, s1);
edit1.text: = ('' + s)
end;
procedure TForm5.Button1Click (Sender: TObject);
begin
o ('1 ', s, s1);
edit1.text: = ('' + s)
end;
.
.
.
procedure TForm5.Button9Click (Sender: TObject);
begin
o ('9 ', s, s1);
edit1.text: = ('' + s)
end;
procedure TForm5.Button20Click (Sender: TObject);
begin
if copy (s, 1,1 )='-'
then delete (s, 1,1)
else s :='-'+ s;
s1: = s;
edit1.text: = ('' + s)
end;
procedure TForm5.Button16Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z; c :='+';
str (z: 6:6, s); okr (s);
edit1.text: = ('' + s);
s: =''; t: = 0;
end;
procedure TForm5.Button21Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z; c :='-';
str (z: 6:6, s); okr (s);
edit1.text: = ('' + s);
s: =''; t: = 0;
end;
procedure TForm5.Button15Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z; c :='*';
str (z: 6:6, s); okr (s);
edit1.text: = ('' + s);
s :=''; t: = 0;
end;

procedure TForm5.Button14Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z; c :='/';
str (z: 6:6, s); okr (s);
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button26Click (Sender: TObject);
begin
val (s1, y, i);
z: = y * y;
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button27Click (Sender: TObject);
begin
val (s1, y, i);
z: = y * y * y;
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button12Click (Sender: TObject);
begin
c :='';
t: = 0;
s :='';
s1: = s;
y: = 0;
edit1.text: = ('0');
end;
procedure TForm5.Button30Click (Sender: TObject);
begin
val (s1, y, i);
z: = round (y);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button13Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z;
c :='';
str (z: 6:6, s);
okr (s);
s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button19Click (Sender: TObject);
begin
val (s1, y, i);
if y <> 0 then
begin
z: = 1 / y;
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
end else
begin
messagedlg ('На 0 ділити не можна ", mterror, [mbok], 0);
{Edit1.text: = ('E');}
end;
s :=''; t: = 0;
end;
procedure TForm5.Button37Click (Sender: TObject);
begin
t: = 0;
s :='';
s1: = s;
edit1.text: = ('0');
end;
procedure TForm5.Button18Click (Sender: TObject);
begin
val (s1, y, i);
begin
if radiobutton1.Checked then
f: = y * 3.14159265359/180
else f: = y; end;
z: = cos (f);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button22Click (Sender: TObject);
begin
val (s1, y, i);
begin
if radiobutton1.Checked then
f: = y * 3.14159265359/180
else f: = y; end;
z: = sin (f);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button23Click (Sender: TObject);
begin
val (s1, y, i);
if y <> 0
then begin
if radiobutton1.Checked
then
f: = y * 3.14159265359/180
else f: = y;
z: = sin (f) / cos (f);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
end else
begin
messagedlg ('На 0 ділити не можна ", mterror, [mbok], 0);
end;
s :=''; t: = 0;
end;
procedure TForm5.Button24Click (Sender: TObject);
begin
val (s1, y, i);
if y <> 0
then begin
if radiobutton1.Checked
then
f: = y * 3.14159265359/180
else f: = y;
z: = cos (f) / sin (f);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
end else
begin
messagedlg ('На 0 ділити не можна ", mterror, [mbok], 0);
end;
s :=''; t: = 0;
end;

procedure TForm5.Button25Click (Sender: TObject);
begin
val (s1, y, i);
if y> = 0 then begin
z: = sqrt (y);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
end else begin
messagedlg ('Корінь з від'ємного числа витягти не можна', mterror, [mbok], 0);
end;
s :=''; t: = 0;
end;
procedure TForm5.Button28Click (Sender: TObject);
begin
val (s1, y, i);
operat (x, y, c, z);
x: = z;
c: = 'x ^ y';
str (z: 6:6, s); okr (s);
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button32Click (Sender: TObject);
begin
z: = 3.14159265359;
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button29Click (Sender: TObject);
begin
val (s1, y, i);
if y> = 1 then begin
z: = ln (y);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
end else
begin
messagedlg ('LN X <= 0 невизначений', mterror, [mbok], 0);
end;
s :=''; t: = 0;
end;
procedure TForm5.Button31Click (Sender: TObject);
var k: integer; fact: real;
begin
val (s1, y, i);
fact: = 1;
k: = 1;
if (y> 1) and (y <= 18) then
begin
y: = round (y);
repeat
k: = k +1;
fact: = fact * k;
until k = y;
end
else
begin
s: = '0';
messagedlg ('Занадто велике чіссло', mtcustom, [mbok], 0);
end;
z: = round (fact);
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button38Click (Sender: TObject);
begin
val (s1, y, i); m: = m + y;
s :=''; t: = 0;
if m <> 0 then edit2.text: = ('M')
else edit2.text: = ('');
end;
procedure TForm5.Button39Click (Sender: TObject);
begin
val (s1, y, i); m: = my;
s :=''; t: = 0;
if m <> 0 then edit2.text: = ('M')
else edit2.text: = ('');
end;

procedure TForm5.Button34Click (Sender: TObject);
begin
val (s1, y, i); m: = y;
s :=''; t: = 0;
if m <> 0 then edit2.text: = ('M')
else edit2.text: = ('');
end;
procedure TForm5.Button35Click (Sender: TObject);
begin
str (m: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
procedure TForm5.Button36Click (Sender: TObject);
begin
m: = 0;
if m <> 0 then edit2.text: = ('M')
else edit2.text: = ('');
end;
procedure TForm5.Button11Click (Sender: TObject);
begin
if t = 0 then
begin
s: = s +'.'; s1: = s;
edit1.text: = ('' + s);
t: = 1
end;
end;
procedure TForm5.RadioButton1Click (Sender: TObject);
begin
radiobutton1.checked: = true;
radiobutton2.checked: = false;
end;
procedure TForm5.RadioButton2Click (Sender: TObject);
begin
radiobutton2.checked: = true;
radiobutton1.checked: = false;
end;
procedure TForm5.Button17Click (Sender: TObject);
begin
val (s1, y, i);
z: = random;
str (z: 6:6, s); okr (s); s1: = s;
edit1.text: = ('' + s);
s :=''; t: = 0;
end;
end.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
30.4кб. | скачати


Схожі роботи:
Програма - калькулятор
Програма калькулятор 2
Калькулятор на основі мікропроцесора
Калькулятор для матриць
Програма Txtprintcom - резидентна програма для швидкого і зручного друкування виборчого тексту
ОС Windows XP програма Провідник програма Total Commander
Ігрова програма 15
Програма дослідження
Програма Витоки
© Усі права захищені
написати до нас