Читайте также: |
|
Нижче я наведу теоретичні відомості, які потрібні для розв’язання даної задачі та допоможуть краще усвідомити специфіку реалізації задачі.
2. Методи та засоби розв’язування задачі
Нижче я наведу теоретичні відомості, які потрібні для розв’язання даної задачі та допоможуть краще усвідомити специфіку реалізації задачі.
Оператори – це основні елементи, з яких будуються програми на будь-якій мові програмування. Більшість операторів складаються з виразів. Вираз представляє собою об’єднання операцій і операндів.
Найпростіший вираз складається з одного операнду.
Синтаксис оператора if:
if (<умова>)
<оператор1>;
[else <оператор2;>]
Оператор умови перевіряє чи вираз набуває правдивого значення, якщо так, то виконуються оператори, що розташовані безпосередньо після умови, якщо вираз набуває хибного значення, тобто =0, тоді виконуються наступні оператори. Оператор умови може використовуватись для перевірки більше ніж однієї послідовної умови.
Синтаксис оператора вибору:
switch(<вираз цілого типу>)
{
case <значення_1>:
<послідовність_операторів_1>;
break;
case <значення_2>:
<послідовність_операторів_2>;
break;
case <значення_n>:
<послідовність_операторів_n>;
break;
[default:
<послідовність_операторів_n+1>;]
}
Оператор-перемикач switch призначений для вибору одного з декількох альтернативних шляхів виконання програми.
Оператор циклу for забезпечує циклічне повторення певного оператора певну кількість разів. Повторення циклу здійснюється з використанням змінної лічильника, що змінюється при кожному проходженні тіла програми.
Синтаксис оператора:
For(ініціалізація;перевірка умови;нове значення)
В програмуванні масив — одна з найпростіших структур даних, сукупність елементів переважно одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві.
Масив може бути одновимірним (вектором), та багатовимірним (наприклад, двовимірною таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких співпадає з розмірністю масива
В переважній більшості мов програмування масив є стандартною вбудованою структурою даних.
В програмуванні та комп'ютерних науках структури даних — це способи організації даних в комп'ютерах. Часто разом зі структурою даних пов'язується і специфічний перелік операцій, які можуть бути виконаними над даними, організованими в таку структуру.
Правильний підбір структур даних є надзвичайно важливим для ефективного функціонування відповідних алгоритмів їх обробки. Добре побудовані структури даних дозволяють оптимізувати використання машинного часу та пам'яті комп'ютера для виконання найбільш критичних операцій.
Покажчик (вказівник) - це змінна або константа стандартного типу даних для збереження адреси змінної визначеного типу. Значення покажчика - це беззнакове ціле, воно повідомляє, де розміщена змінна,і нічого не говорить про саму змінну.
Змінна типу покажчик оголошується подібно звичайним змінним із застосуванням унарного символу “*”. Форма оголошення змінної типу покажчик наступна:
тип [модифікатор] * імені-покажчика;
Для визначення довжини рядка використовується функція strlen(). Її синтаксис:
size_t strlen(const char *s);
Функція strlen() повертає довжину рядка s, при цьому завершуючий нульовий символ не враховується.
Структури дозволяють об’єднувати в єдиному об’єкті сукупність значень, які можуть мати різні типи. Оголошення структури здійснюється за допомогою ключового слова struct.
Синтаксис опису структури виглядає так:
struct [ім’я_структури]
{
тип1 елемент1;
тип2 елемент2;
типN елементN;
} [список описів];
Операція розв’язання видимості:: (scope resolution operator) дозволяє здійснити доступ до глобальної змінної чи функції з блоку, в якому оголошена локальна змінна з тим самим ім’ям. Наприклад, вираз::I означає глобальну змінну І, навіть якщо в даному блоці оголошена локальна змінна з таким самим ім’ям І.
Для керування розподілом динамічної пам’яті в Сі++ широко використовуються оператори new та delete. Вони замінюють відомі нам з мови Сі malloc, calloc, free, проте це не означає, що всі вони не можуть використовуватися у Сі++. Уся справа саме у гнучкості нових операторів: new повертає покажчик на тип, для якого виділяється пам’ять, в той час як malloc повертає порожній покажчик, тому у першому випадку відпадає необхідність використовувати перетворення типу.
Клaс (class) - це визначений користувачем тип даних, що застосовується для опису абстрактної множини об’єктів, які пов.язані узагальненням структури та поведінки. У синтаксичному смислі клас в Сі++ дуже нагадує визначення структури в Сі, за виключенням деяких моментів. По-перше, він може містити в собі одну або декілька специфікацій доступу, що задаються як public, private або protected, по-друге, клас, зазвичай, може включати в себе ще й функції-методи поряд з елементами-даними.
Синтаксис:
class <ім’я> {
[ private: ]
[ <опис прихованих елементів> ]
[ protected:
<опис захищених елементів> ]
[ public:
<опис доступних елементів> ]
};
До елементів класу(структури) можна звертатись двома способами – це перше, якщо оголошено через масив, тоді в такому вигляді: [ім’я класу].[назва елементу класа] або якщо клас оголошений через вказівник, тоді оголошення буде виглядати так: [ім’я класу]->[назва елемента].
В мові С++ є три види специфікаторів доступу це: public; protected; private.
Public – це елементи-функції та елементи-дані доступні для функцій-елементів та інших функцій, де має місце представник класу
Private - елементи-дані та елементи-функції доступні лише для функцій-елементів поточного классу
аналіз Protected - елементи-дані та елементи-функції доступні лише для функцій-елементів поточного класу та класів,похідних від нього.
Функції – це окрема підпрограма, яка розв язує певну підзадачу, вона має свій тип, свої формальні змінні. Функція полегшує розв язання основної задачі, ділить програму на логічні підструктури.
Функція оголошується так:
Тип результату
назва функції(список формальних параметрів)
специфікації параметрів
{
Тіло функції
}
Назва функції обирається програмістом, вона не повинна співпадати з назвою змінних, службових слів та бібліотечних функцій.
Функція завжди повинна повертати результат у точку виклику з допомогою службового слова return.
В своїй роботі я також використав наступні функції: функції переведення символьних даних в числові – це StrToFloat(змінна), функція переведення числових даних в символьні FloatToStr(змінна), Edit1->Text.Length()- для визначення довжини рядка редагування, Edit1->Text.operator [](1) – звертання до першого елемента рядка Edit, Edit1->Text.Delete() – стирання елемента рядка Edit, Edit1->Text.Insert() – вставляння в рядок Edit символа, pow(x,y) – піднесення числа x до степеня y. Щоб не допустити порушення таких законів математики як ділення на нуль та інших, я ввів змінну, якщо вона дорівнює символу ‘e’, то виводиться повідомлення про помилку. Перевірка цієї змінної відбувається при кожній дії. Також потрібно було ввести змінні, що відповідають за наявність доданків, змінну, що набуває значення true при натисканні кнопки =, також ввів змінні, що відповідають за наявність чогось у пам’яті та змінну, що відповідає за наявність коми. Для того, щоб зробити введення сумування, множення чисел безперервним, без натискання кнопки дорівнює, я ввів змінну, в котрій міститься останнє введене число.
Тепер я наведу методи, за допомогою яких функціонують деякі кнопки:
BeakSpace
В цій кнопці я передбачив такі ситуації: коли в полі введена одна цифра або коли введене одноцифрове від’ємне число, тоді при натисканні кнопки в полі знову містяться символи ’0,’, також коли міститься в полі від’ємне число з однією цифрою після коми, поле очищується і знову містить ’0,’. При цілому додатному і з крапкою стирається остання цифра числа. Коли число не ціле, то при стиранні останньої цифри після коми змінна point набуває значення false.
Для цього я використав такі оператори: Edit1->Text.Length(), Edit1->Text.operator [], Edit1->Text.Delete.
Для кнопки зміни знаку потрібно було передбачити два випадки – це коли число від’ємне і коли додатнє. Коли число від’ємне, то стирається перший знак ‘–‘ за допомогою оператора Edit1->Text.operator []. Коли число додатнє, то вставляється знак ‘–‘ за допомогою оператора Edit1->Text.Insert().
При натисканні кнопки ‘, ’ змінна point набуває значення true. При натисканні кнопки ‘=’ змінна end набуває значення true.
Корінь квадратний
Перше потрібно перевірити умову чи число додатнє, якщо так то обчислюється результат так: pow(StrToFloat(Edit1->Text),0.5), якщо число від’ємне, то вивести відповідне повідомлення.
Квадрат
Для квадрата потрібно використати таку функцію: pow(StrToFloat(Edit1->Text),2).
Факторіал
Щоб обчислити факторіал потрібно ввести змінну-лічильник, яка при кожному циклі змінюється на 1 і так поки не буде рівним числу, факторіал якого обчислюєм.
Для дій з одним числом такими як корінь квадратний, синус, косинус, арксинус, арккосинус, логарифм потрібно, щоб логічні змінні такі, що відповідають за наявність доданків, вмісту в рядку Edit змінили своє значення на протилежне.
Також потрібно змінити змінну, що відповідає за дію, наприклад на знак ‘\0’.
Таку дію потрібно виконати після кожної операції.
Дата добавления: 2015-10-31; просмотров: 119 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Формулювання задачі | | | Програма та її опис |