- •Основні конструкції мови програмування Базові поняття мови програмування
- •Структура програм
- •Структура програми на мові Рascal
- •Структура програми на мові с
- •Введення-виведення інформації
- •Введення-виведення даних мовою Pascal
- •Введення/виведення даних в с
- •Оператори
- •Оператори реалізації послідовного процесу
- •Оператори розгалуження
- •Оператори циклу.
- •[Ред.] Перевірка типів
- •[Ред.] Діапазон числових типів даних
- •[Ред.] Примітки
Оператори
Одним із найбільш змістовних понять мови програмування є поняття оператора.
Оператор - це синтаксична конструкція, яка задає певну базову алгоритмічну конструкцію. Кожен оператор представляє собою закінчену фразу мови і визначає деякий закінчений етап обробки даних.
Оператори і є тією множиною, за допомогою елементів якої структурно задається алфавітне відображення засобами цієї мови, тобто формулюється алгоритм.
Послідовність виконуваних дій називають обчислювальним процесом. У цій послідовності можна умовно виділити три типи управління черговістю дій:
-
слідування, при якому дії виконуються відповідно до порядку їх слідування в тексті програми (такий процес назиивають послідовним або лінійним);
-
розгалужений процес, що відповідає прийняттю рішення, при якому послідовність дій визначається деякою умовою;
-
циклічний процес, який передбачає повторення однієї і тієї ж дії або групи дій.
Відповідно у мовах програмування використовується декілька типів операторів, кожен із яких має певне призначення.
Всі оператори можна розбити на дві групи:
-
основні оператори, які не містять інших операторів;
-
похідні оператори - в склад яких входять інші оператори.
В записі алгоритму можуть використовуватися послідовності із цих операторів, без обмежень на їх кількість.
Оператори відділяються один від одного певним роздільником. У багатьох алгоритмічних мовах програмування, зокрема, Pascal, ним є символ «;».
Оператори, зазвичай, виконуються послідовно у тому порядку, в якому вони вказані в тексті програми.
Оператори реалізації послідовного процесу
Оператор присвоєння. Загалом, вирішення будь-якої задачі представляє собою процес отримання по певним правилам із вхідних даних деяких нових даних. Правила отримання нових даних задаються за допомогою виразів.
Один із типів операторів - оператор присвоєння – як раз і служить для задання правил обчислення нового значення за допомогою виразу, що міститься в цьому операторі, із запам’ятовуванням результата в якості значення деякої змінної.
У Pascal оператор присвоєння має наступний формат:
змінна : = вираз .
Він вказує обчислити заданий праворуч вираз і присвоїти отриманий результат зазначеній ліворуч змінній. Наприклад,
a : = 9 ;
b : = a / 3 + a ;
s := ‘A’ ;
Формалізація оператора присвоєння в термінах РБНФ для мови С:
оператор_ присвоєння::=змінна = вираз {= вираз}.
Відповідно, формат оператора присвоєння для мови С:
змінна = вираз_1 = … = вираз_n
Наприклад,
f = x / Sin(y);
a = d = v = 5;
У Pascal не можна за допомогою одного оператора присвоювання присвоїти одне і теж значення декільком змінним.
У мові С можуть також використовуватися оператори скороченого присвоєння, наведені у табл. 12.
Таблиця 12. Оператори скороченого присвоєння мови С
Операції присвоєння (скороченого присвоєння) |
|||
+= |
Присвоєння суми чисел |
a+=b |
a=a+b. Короткі числа перетворюються у довгі із збереженням значення, довгі у короткі – із втратою старших бітів. Дійсні числа перетворюються в цілі з відкиданням дробової частини. |
%= |
Присвоєння остачі ділення |
a%=b |
a=a%b. Остача визначається тільки при діленні цілих чисел. |
-= |
Присвоєння різниці чисел |
a-a-=b |
a= a-b |
*= |
Присвоєння добутку чисел |
a*=b |
a=a*b |
/= |
Присвоєння частки від ділення |
a/=b |
a=a/b |
>>= |
Присвоєння із зсувом вправо |
a>>=b |
|
<<= |
Присвоєння із зсувом вліво |
a<<=b |
|
&= |
Присвоєння бітової кон’юнкції |
a&=b |
|
|= |
Присвоєння бітової диз'юнкції |
a|=b |
|
^= |
Присвоєння значення операції «виключаюче АБО» |
a^=b |
|
У випадку довгих виразів рекомендується розчленовувати їх на більш прості, особливо, якщо отримані підвирази повторюються в основному виразі. Обчислення підвиразів в окремих операторах до того ж спрощує перевірку роботи програми.
Складений оператор. Для однозначного розуміння програми часто потрібно, щоб в тому чи іншому місці синтаксичної конструкції фігурував один оператор, тоді як семантика (логіка) програми вимагає задання у цьому місці декількох операторів.
Для вирішення виникаючого у такому випадку конфлікту між синтаксисом мови і реальною потребою програми служить складений оператор, який поєднує послідовність операторів у єдине ціле, інтерпретуючи їх як один оператор.
Синтаксично він складається з послідовності операторів, вкладених в операторні дужки begin - end. Його формат для Pascal:
begin
<оператор 1>;
. . .
<оператор n>;
end;
Формалізація в терминах РБНФ:
складений оператор:: = begin оператор{; оператор}end.
Виконання складеного оператора зводиться до послідовного - у порядку їхнього написання - виконання вкладених у нього операторів.
Наприклад,
begin
f := x / y;
writeln (‘f =’, f);
end ;
Формат складеного оператора для С:
{ оператор_1;
...
оператор_n;
};