stify"> p = 3.141592653 ... random (x) Псевдовипадкове число, розташоване в діапазоні 0 ... (х-1)
Так як функції тангенса і котангенс в мові Pascal відсутні, вони виражаються через значення синуса і косинуса:
В
Десятковий логарифм можна виразити таким способом -
В
У мові Pascal немає зведення в ступінь. Піднесення до степеня для позитивних значень можна виконати за допомогою наступних співвідношень:
В
Приклади виразів:
В
У Object Pascal це вираз буде виглядати так:
При використанні вікон редагування для висновку, введення і редагування чисел необхідно використовувати функції взаємного перетворення рядків і чисел. FloatToStr і IntToStr перетворять відповідно речові і цілочисельні змінні в рядкові. Функція StrToFloat призначена для перетворення рядка в значення з плаваючою комою, і StrToInt - перетворення рядка в ціле значення. p align="justify"> Для реакції на конкретний тип виняткової ситуації застосовується блок try .. except. У найпростішому вигляді синтаксис його наступний: <0ператори, які можуть викликати виняткову ситуацію>
<Оператори>;;
Виконання блоку починається з секції try. За відсутності виняткових ситуацій тільки вона і виконується. Секція except отримує управління у разі якщо вони виникли. Наприклад: = 5/0;
showmessage ( Ділити на нуль не можна! );;
Хід роботи
. Розмістимо на формі 2 компоненти Panel, 16 компонентів Button і віконце редагування Edit. Розташуємо їх на формі наступним чином. br/>В
Розміри панелей і кнопок можуть бути довільними, в даному прикладі були використані наступні параметри:
Panel1Panel2Button ... Width-180Width-70Width-50Height - 235Height - 235Height - 50
Очистимо властивість Text компонента Edit1, а властивостей Caption компонентів задамо відповідні значення.
. Отже, приступимо до коду. Додамо в наш код 4 глобальних змінних. p align="justify"> var: TForm1;, p, r: real;
// вони будуть зберігати числа введені користувачем (i-значення першого введеного числа, р - другого, r - отриманий результат): integer;
// режим калькулятора (помножити, розділити і т.д)
Мінлива mode буде містити числове значення дії: 1 - додаток, 2 - віднімання, 3 - розподіл, 4 - множення.
. Тепер приступимо до наших кнопках. У кожної цифрової кнопці опрацюємо подія OnClick. Код буде ідентичний для всіх цифрових кнопок (від 1 до 10-й). Наведемо приклад коду для першої кнопки (цифра 1):
procedure TForm1.Button1Click (Sender: TObject);
edit1.Text: = edit1.Text + '1 ';//для всіх інших кнопок замінюйте 1 на потрібне вам число
end;
Далі пишемо обробники OnClick для кнопок операцій.
Для кнопки В«+В»: TForm1.ButtonPlusClick (Sender: TObject);: = StrToFloat (Edit1.Text);: = 1;
Edit1.Text: ='';// це дві одинарні лапки
end;
Для кнопки В«-В»
procedure TForm1.ButtonMinusClick (Sender: TObject);: = StrToFloat (Edit1.Text);: = 2;. Text: ='';;
Для кнопки В«*В»
procedure TForm1.ButtonMultiplyClick (Sender: TObject);: = StrToFloat (Edit1.Text);: = 3;. Text: ='';;
Для кнопки В«/В»
procedure TForm1.ButtonDIVClick (Sender: TObject);: = StrToFloat (Edit1.Text);: = 4;. Text: ='';;
Коротко пояснимо, що ми зробили. При натисканні на кнопку ми зберігаємо значення введеного числа у змінній I, потім змінної mode присвоюємо значення дії. Тепер у нас є всі необхідні дані для обробки події OnClick для кнопки "=". p align="justify"> procedure TForm1.ButtonRezultClick (Sender: TObject); mode of
: begin: = StrToFloat (Edit1.Text);: = i + p;. Text: = FloatToStr (r);;
: begin: = StrToFloat (Edit1.Text);: = ip;. Text: = FloatToStr (r);;
: begin: = StrToFloat (Edit1.Text);: = i * p;. Text: = FloatToStr (r);;
: begin: = StrToFloat (Edit1.Text);: = i/p;. Text: = FloatToStr (r);;;;
Створимо обробник для кнопки С (Скидання):
procedure TForm1.ButtonResetClick (Sender: TObject);. Text: ='';: = 0; i: = 0; p: = 0;;
Щоб при появі вікна калькулятора фокус був переданий вікна введення напишемо обробник...